diff --git a/NuGet.config b/NuGet.config index 13929bbcd87a42..f56a950991efda 100644 --- a/NuGet.config +++ b/NuGet.config @@ -11,11 +11,13 @@ one as a template. The following line is a marker to insert the test restore sources. --> - + + + diff --git a/eng/Signing.props b/eng/Signing.props index 22e4bfa53608e5..77d857c39fb046 100644 --- a/eng/Signing.props +++ b/eng/Signing.props @@ -50,11 +50,6 @@ - - - - - + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c705e342f6df4c..16c97e6bb92710 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -10,61 +10,61 @@ - + https://github.com/dotnet/arcade - 6813f5aa511a7a4498fa217a54219b5704a01f83 + f73f462f75b5fa21805f0b3c477b11277c5da556 - + https://github.com/dotnet/arcade - 6813f5aa511a7a4498fa217a54219b5704a01f83 + f73f462f75b5fa21805f0b3c477b11277c5da556 - + https://github.com/dotnet/arcade - 6813f5aa511a7a4498fa217a54219b5704a01f83 + f73f462f75b5fa21805f0b3c477b11277c5da556 - + https://github.com/dotnet/arcade - 6813f5aa511a7a4498fa217a54219b5704a01f83 + f73f462f75b5fa21805f0b3c477b11277c5da556 - + https://github.com/dotnet/arcade - 6813f5aa511a7a4498fa217a54219b5704a01f83 + f73f462f75b5fa21805f0b3c477b11277c5da556 - + https://github.com/dotnet/arcade - 6813f5aa511a7a4498fa217a54219b5704a01f83 + f73f462f75b5fa21805f0b3c477b11277c5da556 - + https://github.com/dotnet/arcade - 6813f5aa511a7a4498fa217a54219b5704a01f83 + f73f462f75b5fa21805f0b3c477b11277c5da556 - + https://github.com/dotnet/arcade - 6813f5aa511a7a4498fa217a54219b5704a01f83 + f73f462f75b5fa21805f0b3c477b11277c5da556 - + https://github.com/dotnet/arcade - 6813f5aa511a7a4498fa217a54219b5704a01f83 + f73f462f75b5fa21805f0b3c477b11277c5da556 - + https://github.com/dotnet/arcade - 6813f5aa511a7a4498fa217a54219b5704a01f83 + f73f462f75b5fa21805f0b3c477b11277c5da556 - + https://github.com/dotnet/arcade - 6813f5aa511a7a4498fa217a54219b5704a01f83 + f73f462f75b5fa21805f0b3c477b11277c5da556 - + https://github.com/dotnet/arcade - 6813f5aa511a7a4498fa217a54219b5704a01f83 + f73f462f75b5fa21805f0b3c477b11277c5da556 - + https://github.com/dotnet/arcade - 6813f5aa511a7a4498fa217a54219b5704a01f83 + f73f462f75b5fa21805f0b3c477b11277c5da556 - + https://github.com/dotnet/arcade - 6813f5aa511a7a4498fa217a54219b5704a01f83 + f73f462f75b5fa21805f0b3c477b11277c5da556 https://dev.azure.com/dnceng/internal/_git/dotnet-optimization diff --git a/eng/Versions.props b/eng/Versions.props index 094ff7afcee1a7..8ac79bec840f2c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -1,12 +1,12 @@ - 5.0.0 + 5.0.3 5 0 - 0 - rtm + 3 + servicing $(MajorVersion).$(MinorVersion).0.0 @@ -48,16 +48,16 @@ - 5.0.0-beta.20510.1 - 5.0.0-beta.20510.1 - 5.0.0-beta.20510.1 - 5.0.0-beta.20510.1 - 5.0.0-beta.20510.1 - 5.0.0-beta.20510.1 - 2.5.1-beta.20510.1 - 5.0.0-beta.20510.1 - 5.0.0-beta.20510.1 - 5.0.0-beta.20510.1 + 5.0.0-beta.21063.3 + 5.0.0-beta.21063.3 + 5.0.0-beta.21063.3 + 5.0.0-beta.21063.3 + 5.0.0-beta.21063.3 + 5.0.0-beta.21063.3 + 2.5.1-beta.21063.3 + 5.0.0-beta.21063.3 + 5.0.0-beta.21063.3 + 5.0.0-beta.21063.3 5.0.0-rc.1.20451.14 5.0.0-rc.1.20451.14 diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1 index bb3617133f09e6..a0b5fc37f43885 100644 --- a/eng/common/SetupNugetSources.ps1 +++ b/eng/common/SetupNugetSources.ps1 @@ -99,8 +99,9 @@ function InsertMaestroPrivateFeedCredentials($Sources, $Creds, $Username, $Passw function EnablePrivatePackageSources($DisabledPackageSources) { $maestroPrivateSources = $DisabledPackageSources.SelectNodes("add[contains(@key,'darc-int')]") ForEach ($DisabledPackageSource in $maestroPrivateSources) { - Write-Host "`tEnsuring private source '$($DisabledPackageSource.key)' is enabled" - $DisabledPackageSource.SetAttribute("value", "false") + Write-Host "`tEnsuring private source '$($DisabledPackageSource.key)' is enabled by deleting it from disabledPackageSource" + # Due to https://github.com/NuGet/Home/issues/10291, we must actually remove the disabled entries + $DisabledPackageSources.RemoveChild($DisabledPackageSource) } } diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh index ef33382954cffe..2734601c13c4b3 100644 --- a/eng/common/SetupNugetSources.sh +++ b/eng/common/SetupNugetSources.sh @@ -158,8 +158,8 @@ if [ "$?" == "0" ]; then for DisabledSourceName in ${DisabledDarcIntSources[@]} ; do if [[ $DisabledSourceName == darc-int* ]] then - OldDisableValue="add key=\"$DisabledSourceName\" value=\"true\"" - NewDisableValue="add key=\"$DisabledSourceName\" value=\"false\"" + OldDisableValue="" + NewDisableValue="" sed -i.bak "s|$OldDisableValue|$NewDisableValue|" $ConfigFile echo "Neutralized disablePackageSources entry for '$DisabledSourceName'" fi diff --git a/eng/common/build.ps1 b/eng/common/build.ps1 index 1fd7f686faea1d..94a91c0817e8ba 100644 --- a/eng/common/build.ps1 +++ b/eng/common/build.ps1 @@ -7,7 +7,6 @@ Param( [string] $msbuildEngine = $null, [bool] $warnAsError = $true, [bool] $nodeReuse = $true, - [bool] $useDefaultDotnetInstall = $false, [switch][Alias('r')]$restore, [switch] $deployDeps, [switch][Alias('b')]$build, @@ -66,7 +65,6 @@ function Print-Usage() { Write-Host " -prepareMachine Prepare machine for CI run, clean up processes after build" Write-Host " -warnAsError Sets warnaserror msbuild parameter ('true' or 'false')" Write-Host " -msbuildEngine Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)." - Write-Host " -useDefaultDotnetInstall Use dotnet-install.* scripts from public location as opposed to from eng common folder" Write-Host "" Write-Host "Command line arguments not listed above are passed thru to msbuild." diff --git a/eng/common/build.sh b/eng/common/build.sh index 19849adbee3fb8..252b63604e6edc 100755 --- a/eng/common/build.sh +++ b/eng/common/build.sh @@ -36,8 +36,6 @@ usage() echo " --prepareMachine Prepare machine for CI run, clean up processes after build" echo " --nodeReuse Sets nodereuse msbuild parameter ('true' or 'false')" echo " --warnAsError Sets warnaserror msbuild parameter ('true' or 'false')" - echo " --useDefaultDotnetInstall Use dotnet-install.* scripts from public location as opposed to from eng common folder" - echo "" echo "Command line arguments not listed above are passed thru to msbuild." echo "Arguments can also be passed in with a single hyphen." @@ -80,7 +78,6 @@ prepare_machine=false verbosity='minimal' runtime_source_feed='' runtime_source_feed_key='' -use_default_dotnet_install=false properties='' while [[ $# > 0 ]]; do @@ -159,14 +156,10 @@ while [[ $# > 0 ]]; do runtime_source_feed=$2 shift ;; - -runtimesourcefeedkey) + -runtimesourcefeedkey) runtime_source_feed_key=$2 shift ;; - -usedefaultdotnetinstall) - use_default_dotnet_install=$2 - shift - ;; *) properties="$properties $1" ;; diff --git a/eng/common/dotnet-install-scripts/dotnet-install.ps1 b/eng/common/dotnet-install-scripts/dotnet-install.ps1 deleted file mode 100644 index f63b533f25a975..00000000000000 --- a/eng/common/dotnet-install-scripts/dotnet-install.ps1 +++ /dev/null @@ -1,774 +0,0 @@ -# -# Copyright (c) .NET Foundation and contributors. All rights reserved. -# Licensed under the MIT license. See LICENSE file in the project root for full license information. -# - -# Copied from https://dot.net/v1/dotnet-install.ps1 on 8/26/2020 - -<# -.SYNOPSIS - Installs dotnet cli -.DESCRIPTION - Installs dotnet cli. If dotnet installation already exists in the given directory - it will update it only if the requested version differs from the one already installed. -.PARAMETER Channel - Default: LTS - Download from the Channel specified. Possible values: - - Current - most current release - - LTS - most current supported release - - 2-part version in a format A.B - represents a specific release - examples: 2.0, 1.0 - - Branch name - examples: release/2.0.0, Master - Note: The version parameter overrides the channel parameter. -.PARAMETER Version - Default: latest - Represents a build version on specific channel. Possible values: - - latest - most latest build on specific channel - - coherent - most latest coherent build on specific channel - coherent applies only to SDK downloads - - 3-part version in a format A.B.C - represents specific version of build - examples: 2.0.0-preview2-006120, 1.1.0 -.PARAMETER InstallDir - Default: %LocalAppData%\Microsoft\dotnet - Path to where to install dotnet. Note that binaries will be placed directly in a given directory. -.PARAMETER Architecture - Default: - this value represents currently running OS architecture - Architecture of dotnet binaries to be installed. - Possible values are: , amd64, x64, x86, arm64, arm -.PARAMETER SharedRuntime - This parameter is obsolete and may be removed in a future version of this script. - The recommended alternative is '-Runtime dotnet'. - Installs just the shared runtime bits, not the entire SDK. -.PARAMETER Runtime - Installs just a shared runtime, not the entire SDK. - Possible values: - - dotnet - the Microsoft.NETCore.App shared runtime - - aspnetcore - the Microsoft.AspNetCore.App shared runtime - - windowsdesktop - the Microsoft.WindowsDesktop.App shared runtime -.PARAMETER DryRun - If set it will not perform installation but instead display what command line to use to consistently install - currently requested version of dotnet cli. In example if you specify version 'latest' it will display a link - with specific version so that this command can be used deterministicly in a build script. - It also displays binaries location if you prefer to install or download it yourself. -.PARAMETER NoPath - By default this script will set environment variable PATH for the current process to the binaries folder inside installation folder. - If set it will display binaries location but not set any environment variable. -.PARAMETER Verbose - Displays diagnostics information. -.PARAMETER AzureFeed - Default: https://dotnetcli.azureedge.net/dotnet - This parameter typically is not changed by the user. - It allows changing the URL for the Azure feed used by this installer. -.PARAMETER UncachedFeed - This parameter typically is not changed by the user. - It allows changing the URL for the Uncached feed used by this installer. -.PARAMETER FeedCredential - Used as a query string to append to the Azure feed. - It allows changing the URL to use non-public blob storage accounts. -.PARAMETER ProxyAddress - If set, the installer will use the proxy when making web requests -.PARAMETER ProxyUseDefaultCredentials - Default: false - Use default credentials, when using proxy address. -.PARAMETER ProxyBypassList - If set with ProxyAddress, will provide the list of comma separated urls that will bypass the proxy -.PARAMETER SkipNonVersionedFiles - Default: false - Skips installing non-versioned files if they already exist, such as dotnet.exe. -.PARAMETER NoCdn - Disable downloading from the Azure CDN, and use the uncached feed directly. -.PARAMETER JSonFile - Determines the SDK version from a user specified global.json file - Note: global.json must have a value for 'SDK:Version' -#> -[cmdletbinding()] -param( - [string]$Channel="LTS", - [string]$Version="Latest", - [string]$JSonFile, - [string]$InstallDir="", - [string]$Architecture="", - [ValidateSet("dotnet", "aspnetcore", "windowsdesktop", IgnoreCase = $false)] - [string]$Runtime, - [Obsolete("This parameter may be removed in a future version of this script. The recommended alternative is '-Runtime dotnet'.")] - [switch]$SharedRuntime, - [switch]$DryRun, - [switch]$NoPath, - [string]$AzureFeed="https://dotnetcli.azureedge.net/dotnet", - [string]$UncachedFeed="https://dotnetcli.blob.core.windows.net/dotnet", - [string]$FeedCredential, - [string]$ProxyAddress, - [switch]$ProxyUseDefaultCredentials, - [string[]]$ProxyBypassList=@(), - [switch]$SkipNonVersionedFiles, - [switch]$NoCdn -) - -Set-StrictMode -Version Latest -$ErrorActionPreference="Stop" -$ProgressPreference="SilentlyContinue" - -if ($NoCdn) { - $AzureFeed = $UncachedFeed -} - -$BinFolderRelativePath="" - -if ($SharedRuntime -and (-not $Runtime)) { - $Runtime = "dotnet" -} - -# example path with regex: shared/1.0.0-beta-12345/somepath -$VersionRegEx="/\d+\.\d+[^/]+/" -$OverrideNonVersionedFiles = !$SkipNonVersionedFiles - -function Say($str) { - try - { - Write-Host "dotnet-install: $str" - } - catch - { - # Some platforms cannot utilize Write-Host (Azure Functions, for instance). Fall back to Write-Output - Write-Output "dotnet-install: $str" - } -} - -function Say-Verbose($str) { - try - { - Write-Verbose "dotnet-install: $str" - } - catch - { - # Some platforms cannot utilize Write-Verbose (Azure Functions, for instance). Fall back to Write-Output - Write-Output "dotnet-install: $str" - } -} - -function Say-Invocation($Invocation) { - $command = $Invocation.MyCommand; - $args = (($Invocation.BoundParameters.Keys | foreach { "-$_ `"$($Invocation.BoundParameters[$_])`"" }) -join " ") - Say-Verbose "$command $args" -} - -function Invoke-With-Retry([ScriptBlock]$ScriptBlock, [int]$MaxAttempts = 3, [int]$SecondsBetweenAttempts = 1) { - $Attempts = 0 - - while ($true) { - try { - return $ScriptBlock.Invoke() - } - catch { - $Attempts++ - if ($Attempts -lt $MaxAttempts) { - Start-Sleep $SecondsBetweenAttempts - } - else { - throw - } - } - } -} - -function Get-Machine-Architecture() { - Say-Invocation $MyInvocation - - # On PS x86, PROCESSOR_ARCHITECTURE reports x86 even on x64 systems. - # To get the correct architecture, we need to use PROCESSOR_ARCHITEW6432. - # PS x64 doesn't define this, so we fall back to PROCESSOR_ARCHITECTURE. - # Possible values: amd64, x64, x86, arm64, arm - - if( $ENV:PROCESSOR_ARCHITEW6432 -ne $null ) - { - return $ENV:PROCESSOR_ARCHITEW6432 - } - - return $ENV:PROCESSOR_ARCHITECTURE -} - -function Get-CLIArchitecture-From-Architecture([string]$Architecture) { - Say-Invocation $MyInvocation - - switch ($Architecture.ToLower()) { - { $_ -eq "" } { return Get-CLIArchitecture-From-Architecture $(Get-Machine-Architecture) } - { ($_ -eq "amd64") -or ($_ -eq "x64") } { return "x64" } - { $_ -eq "x86" } { return "x86" } - { $_ -eq "arm" } { return "arm" } - { $_ -eq "arm64" } { return "arm64" } - default { throw "Architecture not supported. If you think this is a bug, report it at https://github.com/dotnet/sdk/issues" } - } -} - -# The version text returned from the feeds is a 1-line or 2-line string: -# For the SDK and the dotnet runtime (2 lines): -# Line 1: # commit_hash -# Line 2: # 4-part version -# For the aspnetcore runtime (1 line): -# Line 1: # 4-part version -function Get-Version-Info-From-Version-Text([string]$VersionText) { - Say-Invocation $MyInvocation - - $Data = -split $VersionText - - $VersionInfo = @{ - CommitHash = $(if ($Data.Count -gt 1) { $Data[0] }) - Version = $Data[-1] # last line is always the version number. - } - return $VersionInfo -} - -function Load-Assembly([string] $Assembly) { - try { - Add-Type -Assembly $Assembly | Out-Null - } - catch { - # On Nano Server, Powershell Core Edition is used. Add-Type is unable to resolve base class assemblies because they are not GAC'd. - # Loading the base class assemblies is not unnecessary as the types will automatically get resolved. - } -} - -function GetHTTPResponse([Uri] $Uri) -{ - Invoke-With-Retry( - { - - $HttpClient = $null - - try { - # HttpClient is used vs Invoke-WebRequest in order to support Nano Server which doesn't support the Invoke-WebRequest cmdlet. - Load-Assembly -Assembly System.Net.Http - - if(-not $ProxyAddress) { - try { - # Despite no proxy being explicitly specified, we may still be behind a default proxy - $DefaultProxy = [System.Net.WebRequest]::DefaultWebProxy; - if($DefaultProxy -and (-not $DefaultProxy.IsBypassed($Uri))) { - $ProxyAddress = $DefaultProxy.GetProxy($Uri).OriginalString - $ProxyUseDefaultCredentials = $true - } - } catch { - # Eat the exception and move forward as the above code is an attempt - # at resolving the DefaultProxy that may not have been a problem. - $ProxyAddress = $null - Say-Verbose("Exception ignored: $_.Exception.Message - moving forward...") - } - } - - if($ProxyAddress) { - $HttpClientHandler = New-Object System.Net.Http.HttpClientHandler - $HttpClientHandler.Proxy = New-Object System.Net.WebProxy -Property @{ - Address=$ProxyAddress; - UseDefaultCredentials=$ProxyUseDefaultCredentials; - BypassList = $ProxyBypassList; - } - $HttpClient = New-Object System.Net.Http.HttpClient -ArgumentList $HttpClientHandler - } - else { - - $HttpClient = New-Object System.Net.Http.HttpClient - } - # Default timeout for HttpClient is 100s. For a 50 MB download this assumes 500 KB/s average, any less will time out - # 20 minutes allows it to work over much slower connections. - $HttpClient.Timeout = New-TimeSpan -Minutes 20 - $Response = $HttpClient.GetAsync("${Uri}${FeedCredential}").Result - if (($Response -eq $null) -or (-not ($Response.IsSuccessStatusCode))) { - # The feed credential is potentially sensitive info. Do not log FeedCredential to console output. - $ErrorMsg = "Failed to download $Uri." - if ($Response -ne $null) { - $ErrorMsg += " $Response" - } - - throw $ErrorMsg - } - - return $Response - } - finally { - if ($HttpClient -ne $null) { - $HttpClient.Dispose() - } - } - }) -} - -function Get-Latest-Version-Info([string]$AzureFeed, [string]$Channel, [bool]$Coherent) { - Say-Invocation $MyInvocation - - $VersionFileUrl = $null - if ($Runtime -eq "dotnet") { - $VersionFileUrl = "$UncachedFeed/Runtime/$Channel/latest.version" - } - elseif ($Runtime -eq "aspnetcore") { - $VersionFileUrl = "$UncachedFeed/aspnetcore/Runtime/$Channel/latest.version" - } - # Currently, the WindowsDesktop runtime is manufactured with the .Net core runtime - elseif ($Runtime -eq "windowsdesktop") { - $VersionFileUrl = "$UncachedFeed/Runtime/$Channel/latest.version" - } - elseif (-not $Runtime) { - if ($Coherent) { - $VersionFileUrl = "$UncachedFeed/Sdk/$Channel/latest.coherent.version" - } - else { - $VersionFileUrl = "$UncachedFeed/Sdk/$Channel/latest.version" - } - } - else { - throw "Invalid value for `$Runtime" - } - try { - $Response = GetHTTPResponse -Uri $VersionFileUrl - } - catch { - throw "Could not resolve version information." - } - $StringContent = $Response.Content.ReadAsStringAsync().Result - - switch ($Response.Content.Headers.ContentType) { - { ($_ -eq "application/octet-stream") } { $VersionText = $StringContent } - { ($_ -eq "text/plain") } { $VersionText = $StringContent } - { ($_ -eq "text/plain; charset=UTF-8") } { $VersionText = $StringContent } - default { throw "``$Response.Content.Headers.ContentType`` is an unknown .version file content type." } - } - - $VersionInfo = Get-Version-Info-From-Version-Text $VersionText - - return $VersionInfo -} - -function Parse-Jsonfile-For-Version([string]$JSonFile) { - Say-Invocation $MyInvocation - - If (-Not (Test-Path $JSonFile)) { - throw "Unable to find '$JSonFile'" - } - try { - $JSonContent = Get-Content($JSonFile) -Raw | ConvertFrom-Json | Select-Object -expand "sdk" -ErrorAction SilentlyContinue - } - catch { - throw "Json file unreadable: '$JSonFile'" - } - if ($JSonContent) { - try { - $JSonContent.PSObject.Properties | ForEach-Object { - $PropertyName = $_.Name - if ($PropertyName -eq "version") { - $Version = $_.Value - Say-Verbose "Version = $Version" - } - } - } - catch { - throw "Unable to parse the SDK node in '$JSonFile'" - } - } - else { - throw "Unable to find the SDK node in '$JSonFile'" - } - If ($Version -eq $null) { - throw "Unable to find the SDK:version node in '$JSonFile'" - } - return $Version -} - -function Get-Specific-Version-From-Version([string]$AzureFeed, [string]$Channel, [string]$Version, [string]$JSonFile) { - Say-Invocation $MyInvocation - - if (-not $JSonFile) { - switch ($Version.ToLower()) { - { $_ -eq "latest" } { - $LatestVersionInfo = Get-Latest-Version-Info -AzureFeed $AzureFeed -Channel $Channel -Coherent $False - return $LatestVersionInfo.Version - } - { $_ -eq "coherent" } { - $LatestVersionInfo = Get-Latest-Version-Info -AzureFeed $AzureFeed -Channel $Channel -Coherent $True - return $LatestVersionInfo.Version - } - default { return $Version } - } - } - else { - return Parse-Jsonfile-For-Version $JSonFile - } -} - -function Get-Download-Link([string]$AzureFeed, [string]$SpecificVersion, [string]$CLIArchitecture) { - Say-Invocation $MyInvocation - - # If anything fails in this lookup it will default to $SpecificVersion - $SpecificProductVersion = Get-Product-Version -AzureFeed $AzureFeed -SpecificVersion $SpecificVersion - - if ($Runtime -eq "dotnet") { - $PayloadURL = "$AzureFeed/Runtime/$SpecificVersion/dotnet-runtime-$SpecificProductVersion-win-$CLIArchitecture.zip" - } - elseif ($Runtime -eq "aspnetcore") { - $PayloadURL = "$AzureFeed/aspnetcore/Runtime/$SpecificVersion/aspnetcore-runtime-$SpecificProductVersion-win-$CLIArchitecture.zip" - } - elseif ($Runtime -eq "windowsdesktop") { - $PayloadURL = "$AzureFeed/Runtime/$SpecificVersion/windowsdesktop-runtime-$SpecificProductVersion-win-$CLIArchitecture.zip" - } - elseif (-not $Runtime) { - $PayloadURL = "$AzureFeed/Sdk/$SpecificVersion/dotnet-sdk-$SpecificProductVersion-win-$CLIArchitecture.zip" - } - else { - throw "Invalid value for `$Runtime" - } - - Say-Verbose "Constructed primary named payload URL: $PayloadURL" - - return $PayloadURL, $SpecificProductVersion -} - -function Get-LegacyDownload-Link([string]$AzureFeed, [string]$SpecificVersion, [string]$CLIArchitecture) { - Say-Invocation $MyInvocation - - if (-not $Runtime) { - $PayloadURL = "$AzureFeed/Sdk/$SpecificVersion/dotnet-dev-win-$CLIArchitecture.$SpecificVersion.zip" - } - elseif ($Runtime -eq "dotnet") { - $PayloadURL = "$AzureFeed/Runtime/$SpecificVersion/dotnet-win-$CLIArchitecture.$SpecificVersion.zip" - } - else { - return $null - } - - Say-Verbose "Constructed legacy named payload URL: $PayloadURL" - - return $PayloadURL -} - -function Get-Product-Version([string]$AzureFeed, [string]$SpecificVersion) { - Say-Invocation $MyInvocation - - if ($Runtime -eq "dotnet") { - $ProductVersionTxtURL = "$AzureFeed/Runtime/$SpecificVersion/productVersion.txt" - } - elseif ($Runtime -eq "aspnetcore") { - $ProductVersionTxtURL = "$AzureFeed/aspnetcore/Runtime/$SpecificVersion/productVersion.txt" - } - elseif ($Runtime -eq "windowsdesktop") { - $ProductVersionTxtURL = "$AzureFeed/Runtime/$SpecificVersion/productVersion.txt" - } - elseif (-not $Runtime) { - $ProductVersionTxtURL = "$AzureFeed/Sdk/$SpecificVersion/productVersion.txt" - } - else { - throw "Invalid value specified for `$Runtime" - } - - Say-Verbose "Checking for existence of $ProductVersionTxtURL" - - try { - $productVersionResponse = GetHTTPResponse($productVersionTxtUrl) - - if ($productVersionResponse.StatusCode -eq 200) { - $productVersion = $productVersionResponse.Content.ReadAsStringAsync().Result.Trim() - if ($productVersion -ne $SpecificVersion) - { - Say "Using alternate version $productVersion found in $ProductVersionTxtURL" - } - - return $productVersion - } - else { - Say-Verbose "Got StatusCode $($productVersionResponse.StatusCode) trying to get productVersion.txt at $productVersionTxtUrl, so using default value of $SpecificVersion" - $productVersion = $SpecificVersion - } - } catch { - Say-Verbose "Could not read productVersion.txt at $productVersionTxtUrl, so using default value of $SpecificVersion" - $productVersion = $SpecificVersion - } - - return $productVersion -} - -function Get-User-Share-Path() { - Say-Invocation $MyInvocation - - $InstallRoot = $env:DOTNET_INSTALL_DIR - if (!$InstallRoot) { - $InstallRoot = "$env:LocalAppData\Microsoft\dotnet" - } - return $InstallRoot -} - -function Resolve-Installation-Path([string]$InstallDir) { - Say-Invocation $MyInvocation - - if ($InstallDir -eq "") { - return Get-User-Share-Path - } - return $InstallDir -} - -function Is-Dotnet-Package-Installed([string]$InstallRoot, [string]$RelativePathToPackage, [string]$SpecificVersion) { - Say-Invocation $MyInvocation - - $DotnetPackagePath = Join-Path -Path $InstallRoot -ChildPath $RelativePathToPackage | Join-Path -ChildPath $SpecificVersion - Say-Verbose "Is-Dotnet-Package-Installed: DotnetPackagePath=$DotnetPackagePath" - return Test-Path $DotnetPackagePath -PathType Container -} - -function Get-Absolute-Path([string]$RelativeOrAbsolutePath) { - # Too much spam - # Say-Invocation $MyInvocation - - return $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($RelativeOrAbsolutePath) -} - -function Get-Path-Prefix-With-Version($path) { - $match = [regex]::match($path, $VersionRegEx) - if ($match.Success) { - return $entry.FullName.Substring(0, $match.Index + $match.Length) - } - - return $null -} - -function Get-List-Of-Directories-And-Versions-To-Unpack-From-Dotnet-Package([System.IO.Compression.ZipArchive]$Zip, [string]$OutPath) { - Say-Invocation $MyInvocation - - $ret = @() - foreach ($entry in $Zip.Entries) { - $dir = Get-Path-Prefix-With-Version $entry.FullName - if ($dir -ne $null) { - $path = Get-Absolute-Path $(Join-Path -Path $OutPath -ChildPath $dir) - if (-Not (Test-Path $path -PathType Container)) { - $ret += $dir - } - } - } - - $ret = $ret | Sort-Object | Get-Unique - - $values = ($ret | foreach { "$_" }) -join ";" - Say-Verbose "Directories to unpack: $values" - - return $ret -} - -# Example zip content and extraction algorithm: -# Rule: files if extracted are always being extracted to the same relative path locally -# .\ -# a.exe # file does not exist locally, extract -# b.dll # file exists locally, override only if $OverrideFiles set -# aaa\ # same rules as for files -# ... -# abc\1.0.0\ # directory contains version and exists locally -# ... # do not extract content under versioned part -# abc\asd\ # same rules as for files -# ... -# def\ghi\1.0.1\ # directory contains version and does not exist locally -# ... # extract content -function Extract-Dotnet-Package([string]$ZipPath, [string]$OutPath) { - Say-Invocation $MyInvocation - - Load-Assembly -Assembly System.IO.Compression.FileSystem - Set-Variable -Name Zip - try { - $Zip = [System.IO.Compression.ZipFile]::OpenRead($ZipPath) - - $DirectoriesToUnpack = Get-List-Of-Directories-And-Versions-To-Unpack-From-Dotnet-Package -Zip $Zip -OutPath $OutPath - - foreach ($entry in $Zip.Entries) { - $PathWithVersion = Get-Path-Prefix-With-Version $entry.FullName - if (($PathWithVersion -eq $null) -Or ($DirectoriesToUnpack -contains $PathWithVersion)) { - $DestinationPath = Get-Absolute-Path $(Join-Path -Path $OutPath -ChildPath $entry.FullName) - $DestinationDir = Split-Path -Parent $DestinationPath - $OverrideFiles=$OverrideNonVersionedFiles -Or (-Not (Test-Path $DestinationPath)) - if ((-Not $DestinationPath.EndsWith("\")) -And $OverrideFiles) { - New-Item -ItemType Directory -Force -Path $DestinationDir | Out-Null - [System.IO.Compression.ZipFileExtensions]::ExtractToFile($entry, $DestinationPath, $OverrideNonVersionedFiles) - } - } - } - } - finally { - if ($Zip -ne $null) { - $Zip.Dispose() - } - } -} - -function DownloadFile($Source, [string]$OutPath) { - if ($Source -notlike "http*") { - # Using System.IO.Path.GetFullPath to get the current directory - # does not work in this context - $pwd gives the current directory - if (![System.IO.Path]::IsPathRooted($Source)) { - $Source = $(Join-Path -Path $pwd -ChildPath $Source) - } - $Source = Get-Absolute-Path $Source - Say "Copying file from $Source to $OutPath" - Copy-Item $Source $OutPath - return - } - - $Stream = $null - - try { - $Response = GetHTTPResponse -Uri $Source - $Stream = $Response.Content.ReadAsStreamAsync().Result - $File = [System.IO.File]::Create($OutPath) - $Stream.CopyTo($File) - $File.Close() - } - finally { - if ($Stream -ne $null) { - $Stream.Dispose() - } - } -} - -function Prepend-Sdk-InstallRoot-To-Path([string]$InstallRoot, [string]$BinFolderRelativePath) { - $BinPath = Get-Absolute-Path $(Join-Path -Path $InstallRoot -ChildPath $BinFolderRelativePath) - if (-Not $NoPath) { - $SuffixedBinPath = "$BinPath;" - if (-Not $env:path.Contains($SuffixedBinPath)) { - Say "Adding to current process PATH: `"$BinPath`". Note: This change will not be visible if PowerShell was run as a child process." - $env:path = $SuffixedBinPath + $env:path - } else { - Say-Verbose "Current process PATH already contains `"$BinPath`"" - } - } - else { - Say "Binaries of dotnet can be found in $BinPath" - } -} - -$CLIArchitecture = Get-CLIArchitecture-From-Architecture $Architecture -$SpecificVersion = Get-Specific-Version-From-Version -AzureFeed $AzureFeed -Channel $Channel -Version $Version -JSonFile $JSonFile -$DownloadLink, $EffectiveVersion = Get-Download-Link -AzureFeed $AzureFeed -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture -$LegacyDownloadLink = Get-LegacyDownload-Link -AzureFeed $AzureFeed -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture - -$InstallRoot = Resolve-Installation-Path $InstallDir -Say-Verbose "InstallRoot: $InstallRoot" -$ScriptName = $MyInvocation.MyCommand.Name - -if ($DryRun) { - Say "Payload URLs:" - Say "Primary named payload URL: $DownloadLink" - if ($LegacyDownloadLink) { - Say "Legacy named payload URL: $LegacyDownloadLink" - } - $RepeatableCommand = ".\$ScriptName -Version `"$SpecificVersion`" -InstallDir `"$InstallRoot`" -Architecture `"$CLIArchitecture`"" - if ($Runtime -eq "dotnet") { - $RepeatableCommand+=" -Runtime `"dotnet`"" - } - elseif ($Runtime -eq "aspnetcore") { - $RepeatableCommand+=" -Runtime `"aspnetcore`"" - } - foreach ($key in $MyInvocation.BoundParameters.Keys) { - if (-not (@("Architecture","Channel","DryRun","InstallDir","Runtime","SharedRuntime","Version") -contains $key)) { - $RepeatableCommand+=" -$key `"$($MyInvocation.BoundParameters[$key])`"" - } - } - Say "Repeatable invocation: $RepeatableCommand" - exit 0 -} - -if ($Runtime -eq "dotnet") { - $assetName = ".NET Core Runtime" - $dotnetPackageRelativePath = "shared\Microsoft.NETCore.App" -} -elseif ($Runtime -eq "aspnetcore") { - $assetName = "ASP.NET Core Runtime" - $dotnetPackageRelativePath = "shared\Microsoft.AspNetCore.App" -} -elseif ($Runtime -eq "windowsdesktop") { - $assetName = ".NET Core Windows Desktop Runtime" - $dotnetPackageRelativePath = "shared\Microsoft.WindowsDesktop.App" -} -elseif (-not $Runtime) { - $assetName = ".NET Core SDK" - $dotnetPackageRelativePath = "sdk" -} -else { - throw "Invalid value for `$Runtime" -} - -if ($SpecificVersion -ne $EffectiveVersion) -{ - Say "Performing installation checks for effective version: $EffectiveVersion" - $SpecificVersion = $EffectiveVersion -} - -# Check if the SDK version is already installed. -$isAssetInstalled = Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage $dotnetPackageRelativePath -SpecificVersion $SpecificVersion -if ($isAssetInstalled) { - Say "$assetName version $SpecificVersion is already installed." - Prepend-Sdk-InstallRoot-To-Path -InstallRoot $InstallRoot -BinFolderRelativePath $BinFolderRelativePath - exit 0 -} - -New-Item -ItemType Directory -Force -Path $InstallRoot | Out-Null - -$installDrive = $((Get-Item $InstallRoot).PSDrive.Name); -$diskInfo = Get-PSDrive -Name $installDrive -if ($diskInfo.Free / 1MB -le 100) { - Say "There is not enough disk space on drive ${installDrive}:" - exit 0 -} - -$ZipPath = [System.IO.Path]::combine([System.IO.Path]::GetTempPath(), [System.IO.Path]::GetRandomFileName()) -Say-Verbose "Zip path: $ZipPath" - -$DownloadFailed = $false -Say "Downloading link: $DownloadLink" -try { - DownloadFile -Source $DownloadLink -OutPath $ZipPath -} -catch { - Say "Cannot download: $DownloadLink" - if ($LegacyDownloadLink) { - $DownloadLink = $LegacyDownloadLink - $ZipPath = [System.IO.Path]::combine([System.IO.Path]::GetTempPath(), [System.IO.Path]::GetRandomFileName()) - Say-Verbose "Legacy zip path: $ZipPath" - Say "Downloading legacy link: $DownloadLink" - try { - DownloadFile -Source $DownloadLink -OutPath $ZipPath - } - catch { - Say "Cannot download: $DownloadLink" - $DownloadFailed = $true - } - } - else { - $DownloadFailed = $true - } -} - -if ($DownloadFailed) { - throw "Could not find/download: `"$assetName`" with version = $SpecificVersion`nRefer to: https://aka.ms/dotnet-os-lifecycle for information on .NET Core support" -} - -Say "Extracting zip from $DownloadLink" -Extract-Dotnet-Package -ZipPath $ZipPath -OutPath $InstallRoot - -# Check if the SDK version is installed; if not, fail the installation. -$isAssetInstalled = $false - -# if the version contains "RTM" or "servicing"; check if a 'release-type' SDK version is installed. -if ($SpecificVersion -Match "rtm" -or $SpecificVersion -Match "servicing") { - $ReleaseVersion = $SpecificVersion.Split("-")[0] - Say-Verbose "Checking installation: version = $ReleaseVersion" - $isAssetInstalled = Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage $dotnetPackageRelativePath -SpecificVersion $ReleaseVersion -} - -# Check if the SDK version is installed. -if (!$isAssetInstalled) { - Say-Verbose "Checking installation: version = $SpecificVersion" - $isAssetInstalled = Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage $dotnetPackageRelativePath -SpecificVersion $SpecificVersion -} - -if (!$isAssetInstalled) { - throw "`"$assetName`" with version = $SpecificVersion failed to install with an unknown error." -} - -Remove-Item $ZipPath - -Prepend-Sdk-InstallRoot-To-Path -InstallRoot $InstallRoot -BinFolderRelativePath $BinFolderRelativePath - -Say "Installation finished" -exit 0 \ No newline at end of file diff --git a/eng/common/dotnet-install-scripts/dotnet-install.sh b/eng/common/dotnet-install-scripts/dotnet-install.sh deleted file mode 100644 index 92161141f6c327..00000000000000 --- a/eng/common/dotnet-install-scripts/dotnet-install.sh +++ /dev/null @@ -1,1133 +0,0 @@ -#!/usr/bin/env bash -# Copyright (c) .NET Foundation and contributors. All rights reserved. -# Licensed under the MIT license. See LICENSE file in the project root for full license information. -# - -# Stop script on NZEC -set -e -# Stop script if unbound variable found (use ${var:-} if intentional) -set -u -# By default cmd1 | cmd2 returns exit code of cmd2 regardless of cmd1 success -# This is causing it to fail -set -o pipefail - -# Use in the the functions: eval $invocation -invocation='say_verbose "Calling: ${yellow:-}${FUNCNAME[0]} ${green:-}$*${normal:-}"' - -# standard output may be used as a return value in the functions -# we need a way to write text on the screen in the functions so that -# it won't interfere with the return value. -# Exposing stream 3 as a pipe to standard output of the script itself -exec 3>&1 - -# Setup some colors to use. These need to work in fairly limited shells, like the Ubuntu Docker container where there are only 8 colors. -# See if stdout is a terminal -if [ -t 1 ] && command -v tput > /dev/null; then - # see if it supports colors - ncolors=$(tput colors) - if [ -n "$ncolors" ] && [ $ncolors -ge 8 ]; then - bold="$(tput bold || echo)" - normal="$(tput sgr0 || echo)" - black="$(tput setaf 0 || echo)" - red="$(tput setaf 1 || echo)" - green="$(tput setaf 2 || echo)" - yellow="$(tput setaf 3 || echo)" - blue="$(tput setaf 4 || echo)" - magenta="$(tput setaf 5 || echo)" - cyan="$(tput setaf 6 || echo)" - white="$(tput setaf 7 || echo)" - fi -fi - -say_warning() { - printf "%b\n" "${yellow:-}dotnet_install: Warning: $1${normal:-}" -} - -say_err() { - printf "%b\n" "${red:-}dotnet_install: Error: $1${normal:-}" >&2 -} - -say() { - # using stream 3 (defined in the beginning) to not interfere with stdout of functions - # which may be used as return value - printf "%b\n" "${cyan:-}dotnet-install:${normal:-} $1" >&3 -} - -say_verbose() { - if [ "$verbose" = true ]; then - say "$1" - fi -} - -# This platform list is finite - if the SDK/Runtime has supported Linux distribution-specific assets, -# then and only then should the Linux distribution appear in this list. -# Adding a Linux distribution to this list does not imply distribution-specific support. -get_legacy_os_name_from_platform() { - eval $invocation - - platform="$1" - case "$platform" in - "centos.7") - echo "centos" - return 0 - ;; - "debian.8") - echo "debian" - return 0 - ;; - "debian.9") - echo "debian.9" - return 0 - ;; - "fedora.23") - echo "fedora.23" - return 0 - ;; - "fedora.24") - echo "fedora.24" - return 0 - ;; - "fedora.27") - echo "fedora.27" - return 0 - ;; - "fedora.28") - echo "fedora.28" - return 0 - ;; - "opensuse.13.2") - echo "opensuse.13.2" - return 0 - ;; - "opensuse.42.1") - echo "opensuse.42.1" - return 0 - ;; - "opensuse.42.3") - echo "opensuse.42.3" - return 0 - ;; - "rhel.7"*) - echo "rhel" - return 0 - ;; - "ubuntu.14.04") - echo "ubuntu" - return 0 - ;; - "ubuntu.16.04") - echo "ubuntu.16.04" - return 0 - ;; - "ubuntu.16.10") - echo "ubuntu.16.10" - return 0 - ;; - "ubuntu.18.04") - echo "ubuntu.18.04" - return 0 - ;; - "alpine.3.4.3") - echo "alpine" - return 0 - ;; - esac - return 1 -} - -get_linux_platform_name() { - eval $invocation - - if [ -n "$runtime_id" ]; then - echo "${runtime_id%-*}" - return 0 - else - if [ -e /etc/os-release ]; then - . /etc/os-release - echo "$ID${VERSION_ID:+.${VERSION_ID}}" - return 0 - elif [ -e /etc/redhat-release ]; then - local redhatRelease=$(&1 || true) | grep -q musl -} - -get_current_os_name() { - eval $invocation - - local uname=$(uname) - if [ "$uname" = "Darwin" ]; then - echo "osx" - return 0 - elif [ "$uname" = "FreeBSD" ]; then - echo "freebsd" - return 0 - elif [ "$uname" = "Linux" ]; then - local linux_platform_name - linux_platform_name="$(get_linux_platform_name)" || { echo "linux" && return 0 ; } - - if [ "$linux_platform_name" = "rhel.6" ]; then - echo $linux_platform_name - return 0 - elif is_musl_based_distro; then - echo "linux-musl" - return 0 - else - echo "linux" - return 0 - fi - fi - - say_err "OS name could not be detected: UName = $uname" - return 1 -} - -get_legacy_os_name() { - eval $invocation - - local uname=$(uname) - if [ "$uname" = "Darwin" ]; then - echo "osx" - return 0 - elif [ -n "$runtime_id" ]; then - echo $(get_legacy_os_name_from_platform "${runtime_id%-*}" || echo "${runtime_id%-*}") - return 0 - else - if [ -e /etc/os-release ]; then - . /etc/os-release - os=$(get_legacy_os_name_from_platform "$ID${VERSION_ID:+.${VERSION_ID}}" || echo "") - if [ -n "$os" ]; then - echo "$os" - return 0 - fi - fi - fi - - say_verbose "Distribution specific OS name and version could not be detected: UName = $uname" - return 1 -} - -machine_has() { - eval $invocation - - hash "$1" > /dev/null 2>&1 - return $? -} - - -check_min_reqs() { - local hasMinimum=false - if machine_has "curl"; then - hasMinimum=true - elif machine_has "wget"; then - hasMinimum=true - fi - - if [ "$hasMinimum" = "false" ]; then - say_err "curl (recommended) or wget are required to download dotnet. Install missing prerequisite to proceed." - return 1 - fi - return 0 -} - -check_pre_reqs() { - eval $invocation - - if [ "${DOTNET_INSTALL_SKIP_PREREQS:-}" = "1" ]; then - return 0 - fi - - if [ "$(uname)" = "Linux" ]; then - if is_musl_based_distro; then - if ! command -v scanelf > /dev/null; then - say_warning "scanelf not found, please install pax-utils package." - return 0 - fi - LDCONFIG_COMMAND="scanelf --ldpath -BF '%f'" - [ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libintl)" ] && say_warning "Unable to locate libintl. Probable prerequisite missing; install libintl (or gettext)." - else - if [ ! -x "$(command -v ldconfig)" ]; then - say_verbose "ldconfig is not in PATH, trying /sbin/ldconfig." - LDCONFIG_COMMAND="/sbin/ldconfig" - else - LDCONFIG_COMMAND="ldconfig" - fi - local librarypath=${LD_LIBRARY_PATH:-} - LDCONFIG_COMMAND="$LDCONFIG_COMMAND -NXv ${librarypath//:/ }" - fi - - [ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep zlib)" ] && say_warning "Unable to locate zlib. Probable prerequisite missing; install zlib." - [ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep ssl)" ] && say_warning "Unable to locate libssl. Probable prerequisite missing; install libssl." - [ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libicu)" ] && say_warning "Unable to locate libicu. Probable prerequisite missing; install libicu." - [ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep lttng)" ] && say_warning "Unable to locate liblttng. Probable prerequisite missing; install libcurl." - [ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libcurl)" ] && say_warning "Unable to locate libcurl. Probable prerequisite missing; install libcurl." - fi - - return 0 -} - -# args: -# input - $1 -to_lowercase() { - #eval $invocation - - echo "$1" | tr '[:upper:]' '[:lower:]' - return 0 -} - -# args: -# input - $1 -remove_trailing_slash() { - #eval $invocation - - local input="${1:-}" - echo "${input%/}" - return 0 -} - -# args: -# input - $1 -remove_beginning_slash() { - #eval $invocation - - local input="${1:-}" - echo "${input#/}" - return 0 -} - -# args: -# root_path - $1 -# child_path - $2 - this parameter can be empty -combine_paths() { - eval $invocation - - # TODO: Consider making it work with any number of paths. For now: - if [ ! -z "${3:-}" ]; then - say_err "combine_paths: Function takes two parameters." - return 1 - fi - - local root_path="$(remove_trailing_slash "$1")" - local child_path="$(remove_beginning_slash "${2:-}")" - say_verbose "combine_paths: root_path=$root_path" - say_verbose "combine_paths: child_path=$child_path" - echo "$root_path/$child_path" - return 0 -} - -get_machine_architecture() { - eval $invocation - - if command -v uname > /dev/null; then - CPUName=$(uname -m) - case $CPUName in - armv7l) - echo "arm" - return 0 - ;; - aarch64) - echo "arm64" - return 0 - ;; - esac - fi - - # Always default to 'x64' - echo "x64" - return 0 -} - -# args: -# architecture - $1 -get_normalized_architecture_from_architecture() { - eval $invocation - - local architecture="$(to_lowercase "$1")" - case "$architecture" in - \) - echo "$(get_normalized_architecture_from_architecture "$(get_machine_architecture)")" - return 0 - ;; - amd64|x64) - echo "x64" - return 0 - ;; - arm) - echo "arm" - return 0 - ;; - arm64) - echo "arm64" - return 0 - ;; - esac - - say_err "Architecture \`$architecture\` not supported. If you think this is a bug, report it at https://github.com/dotnet/sdk/issues" - return 1 -} - -# The version text returned from the feeds is a 1-line or 2-line string: -# For the SDK and the dotnet runtime (2 lines): -# Line 1: # commit_hash -# Line 2: # 4-part version -# For the aspnetcore runtime (1 line): -# Line 1: # 4-part version - -# args: -# version_text - stdin -get_version_from_version_info() { - eval $invocation - - cat | tail -n 1 | sed 's/\r$//' - return 0 -} - -# args: -# install_root - $1 -# relative_path_to_package - $2 -# specific_version - $3 -is_dotnet_package_installed() { - eval $invocation - - local install_root="$1" - local relative_path_to_package="$2" - local specific_version="${3//[$'\t\r\n']}" - - local dotnet_package_path="$(combine_paths "$(combine_paths "$install_root" "$relative_path_to_package")" "$specific_version")" - say_verbose "is_dotnet_package_installed: dotnet_package_path=$dotnet_package_path" - - if [ -d "$dotnet_package_path" ]; then - return 0 - else - return 1 - fi -} - -# args: -# azure_feed - $1 -# channel - $2 -# normalized_architecture - $3 -# coherent - $4 -get_latest_version_info() { - eval $invocation - - local azure_feed="$1" - local channel="$2" - local normalized_architecture="$3" - local coherent="$4" - - local version_file_url=null - if [[ "$runtime" == "dotnet" ]]; then - version_file_url="$uncached_feed/Runtime/$channel/latest.version" - elif [[ "$runtime" == "aspnetcore" ]]; then - version_file_url="$uncached_feed/aspnetcore/Runtime/$channel/latest.version" - elif [ -z "$runtime" ]; then - if [ "$coherent" = true ]; then - version_file_url="$uncached_feed/Sdk/$channel/latest.coherent.version" - else - version_file_url="$uncached_feed/Sdk/$channel/latest.version" - fi - else - say_err "Invalid value for \$runtime" - return 1 - fi - say_verbose "get_latest_version_info: latest url: $version_file_url" - - download "$version_file_url" - return $? -} - -# args: -# json_file - $1 -parse_jsonfile_for_version() { - eval $invocation - - local json_file="$1" - if [ ! -f "$json_file" ]; then - say_err "Unable to find \`$json_file\`" - return 1 - fi - - sdk_section=$(cat $json_file | awk '/"sdk"/,/}/') - if [ -z "$sdk_section" ]; then - say_err "Unable to parse the SDK node in \`$json_file\`" - return 1 - fi - - sdk_list=$(echo $sdk_section | awk -F"[{}]" '{print $2}') - sdk_list=${sdk_list//[\" ]/} - sdk_list=${sdk_list//,/$'\n'} - sdk_list="$(echo -e "${sdk_list}" | tr -d '[[:space:]]')" - - local version_info="" - while read -r line; do - IFS=: - while read -r key value; do - if [[ "$key" == "version" ]]; then - version_info=$value - fi - done <<< "$line" - done <<< "$sdk_list" - if [ -z "$version_info" ]; then - say_err "Unable to find the SDK:version node in \`$json_file\`" - return 1 - fi - - unset IFS; - echo "$version_info" - return 0 -} - -# args: -# azure_feed - $1 -# channel - $2 -# normalized_architecture - $3 -# version - $4 -# json_file - $5 -get_specific_version_from_version() { - eval $invocation - - local azure_feed="$1" - local channel="$2" - local normalized_architecture="$3" - local version="$(to_lowercase "$4")" - local json_file="$5" - - if [ -z "$json_file" ]; then - case "$version" in - latest) - local version_info - version_info="$(get_latest_version_info "$azure_feed" "$channel" "$normalized_architecture" false)" || return 1 - say_verbose "get_specific_version_from_version: version_info=$version_info" - echo "$version_info" | get_version_from_version_info - return 0 - ;; - coherent) - local version_info - version_info="$(get_latest_version_info "$azure_feed" "$channel" "$normalized_architecture" true)" || return 1 - say_verbose "get_specific_version_from_version: version_info=$version_info" - echo "$version_info" | get_version_from_version_info - return 0 - ;; - *) - echo "$version" - return 0 - ;; - esac - else - local version_info - version_info="$(parse_jsonfile_for_version "$json_file")" || return 1 - echo "$version_info" - return 0 - fi -} - -# args: -# azure_feed - $1 -# channel - $2 -# normalized_architecture - $3 -# specific_version - $4 -construct_download_link() { - eval $invocation - - local azure_feed="$1" - local channel="$2" - local normalized_architecture="$3" - local specific_version="${4//[$'\t\r\n']}" - local specific_product_version="$(get_specific_product_version "$1" "$4")" - - local osname - osname="$(get_current_os_name)" || return 1 - - local download_link=null - if [[ "$runtime" == "dotnet" ]]; then - download_link="$azure_feed/Runtime/$specific_version/dotnet-runtime-$specific_product_version-$osname-$normalized_architecture.tar.gz" - elif [[ "$runtime" == "aspnetcore" ]]; then - download_link="$azure_feed/aspnetcore/Runtime/$specific_version/aspnetcore-runtime-$specific_product_version-$osname-$normalized_architecture.tar.gz" - elif [ -z "$runtime" ]; then - download_link="$azure_feed/Sdk/$specific_version/dotnet-sdk-$specific_product_version-$osname-$normalized_architecture.tar.gz" - else - return 1 - fi - - echo "$download_link" - return 0 -} - -# args: -# azure_feed - $1 -# specific_version - $2 -get_specific_product_version() { - # If we find a 'productVersion.txt' at the root of any folder, we'll use its contents - # to resolve the version of what's in the folder, superseding the specified version. - eval $invocation - - local azure_feed="$1" - local specific_version="${2//[$'\t\r\n']}" - local specific_product_version=$specific_version - - local download_link=null - if [[ "$runtime" == "dotnet" ]]; then - download_link="$azure_feed/Runtime/$specific_version/productVersion.txt${feed_credential}" - elif [[ "$runtime" == "aspnetcore" ]]; then - download_link="$azure_feed/aspnetcore/Runtime/$specific_version/productVersion.txt${feed_credential}" - elif [ -z "$runtime" ]; then - download_link="$azure_feed/Sdk/$specific_version/productVersion.txt${feed_credential}" - else - return 1 - fi - - specific_product_version=$(curl -s --fail "$download_link") - if [ $? -ne 0 ] - then - specific_product_version=$(wget -qO- "$download_link") - if [ $? -ne 0 ] - then - specific_product_version=$specific_version - fi - fi - specific_product_version="${specific_product_version//[$'\t\r\n']}" - - echo "$specific_product_version" - return 0 -} - -# args: -# azure_feed - $1 -# channel - $2 -# normalized_architecture - $3 -# specific_version - $4 -construct_legacy_download_link() { - eval $invocation - - local azure_feed="$1" - local channel="$2" - local normalized_architecture="$3" - local specific_version="${4//[$'\t\r\n']}" - - local distro_specific_osname - distro_specific_osname="$(get_legacy_os_name)" || return 1 - - local legacy_download_link=null - if [[ "$runtime" == "dotnet" ]]; then - legacy_download_link="$azure_feed/Runtime/$specific_version/dotnet-$distro_specific_osname-$normalized_architecture.$specific_version.tar.gz" - elif [ -z "$runtime" ]; then - legacy_download_link="$azure_feed/Sdk/$specific_version/dotnet-dev-$distro_specific_osname-$normalized_architecture.$specific_version.tar.gz" - else - return 1 - fi - - echo "$legacy_download_link" - return 0 -} - -get_user_install_path() { - eval $invocation - - if [ ! -z "${DOTNET_INSTALL_DIR:-}" ]; then - echo "$DOTNET_INSTALL_DIR" - else - echo "$HOME/.dotnet" - fi - return 0 -} - -# args: -# install_dir - $1 -resolve_installation_path() { - eval $invocation - - local install_dir=$1 - if [ "$install_dir" = "" ]; then - local user_install_path="$(get_user_install_path)" - say_verbose "resolve_installation_path: user_install_path=$user_install_path" - echo "$user_install_path" - return 0 - fi - - echo "$install_dir" - return 0 -} - -# args: -# relative_or_absolute_path - $1 -get_absolute_path() { - eval $invocation - - local relative_or_absolute_path=$1 - echo "$(cd "$(dirname "$1")" && pwd -P)/$(basename "$1")" - return 0 -} - -# args: -# input_files - stdin -# root_path - $1 -# out_path - $2 -# override - $3 -copy_files_or_dirs_from_list() { - eval $invocation - - local root_path="$(remove_trailing_slash "$1")" - local out_path="$(remove_trailing_slash "$2")" - local override="$3" - local osname="$(get_current_os_name)" - local override_switch=$( - if [ "$override" = false ]; then - if [ "$osname" = "linux-musl" ]; then - printf -- "-u"; - else - printf -- "-n"; - fi - fi) - - cat | uniq | while read -r file_path; do - local path="$(remove_beginning_slash "${file_path#$root_path}")" - local target="$out_path/$path" - if [ "$override" = true ] || (! ([ -d "$target" ] || [ -e "$target" ])); then - mkdir -p "$out_path/$(dirname "$path")" - if [ -d "$target" ]; then - rm -rf "$target" - fi - cp -R $override_switch "$root_path/$path" "$target" - fi - done -} - -# args: -# zip_path - $1 -# out_path - $2 -extract_dotnet_package() { - eval $invocation - - local zip_path="$1" - local out_path="$2" - - local temp_out_path="$(mktemp -d "$temporary_file_template")" - - local failed=false - tar -xzf "$zip_path" -C "$temp_out_path" > /dev/null || failed=true - - local folders_with_version_regex='^.*/[0-9]+\.[0-9]+[^/]+/' - find "$temp_out_path" -type f | grep -Eo "$folders_with_version_regex" | sort | copy_files_or_dirs_from_list "$temp_out_path" "$out_path" false - find "$temp_out_path" -type f | grep -Ev "$folders_with_version_regex" | copy_files_or_dirs_from_list "$temp_out_path" "$out_path" "$override_non_versioned_files" - - rm -rf "$temp_out_path" - - if [ "$failed" = true ]; then - say_err "Extraction failed" - return 1 - fi -} - -# args: -# remote_path - $1 -# [out_path] - $2 - stdout if not provided -download() { - eval $invocation - - local remote_path="$1" - local out_path="${2:-}" - - if [[ "$remote_path" != "http"* ]]; then - cp "$remote_path" "$out_path" - return $? - fi - - local failed=false - if machine_has "curl"; then - downloadcurl "$remote_path" "$out_path" || failed=true - elif machine_has "wget"; then - downloadwget "$remote_path" "$out_path" || failed=true - else - failed=true - fi - if [ "$failed" = true ]; then - say_verbose "Download failed: $remote_path" - return 1 - fi - return 0 -} - -downloadcurl() { - eval $invocation - local remote_path="$1" - local out_path="${2:-}" - - # Append feed_credential as late as possible before calling curl to avoid logging feed_credential - remote_path="${remote_path}${feed_credential}" - - local curl_options="--retry 20 --retry-delay 2 --connect-timeout 15 -sSL -f --create-dirs " - local failed=false - if [ -z "$out_path" ]; then - curl $curl_options "$remote_path" || failed=true - else - curl $curl_options -o "$out_path" "$remote_path" || failed=true - fi - if [ "$failed" = true ]; then - say_verbose "Curl download failed" - return 1 - fi - return 0 -} - -downloadwget() { - eval $invocation - local remote_path="$1" - local out_path="${2:-}" - - # Append feed_credential as late as possible before calling wget to avoid logging feed_credential - remote_path="${remote_path}${feed_credential}" - local wget_options="--tries 20 --waitretry 2 --connect-timeout 15 " - local failed=false - if [ -z "$out_path" ]; then - wget -q $wget_options -O - "$remote_path" || failed=true - else - wget $wget_options -O "$out_path" "$remote_path" || failed=true - fi - if [ "$failed" = true ]; then - say_verbose "Wget download failed" - return 1 - fi - return 0 -} - -calculate_vars() { - eval $invocation - valid_legacy_download_link=true - - normalized_architecture="$(get_normalized_architecture_from_architecture "$architecture")" - say_verbose "normalized_architecture=$normalized_architecture" - - specific_version="$(get_specific_version_from_version "$azure_feed" "$channel" "$normalized_architecture" "$version" "$json_file")" - specific_product_version="$(get_specific_product_version "$azure_feed" "$specific_version")" - say_verbose "specific_version=$specific_version" - if [ -z "$specific_version" ]; then - say_err "Could not resolve version information." - return 1 - fi - - download_link="$(construct_download_link "$azure_feed" "$channel" "$normalized_architecture" "$specific_version")" - say_verbose "Constructed primary named payload URL: $download_link" - - legacy_download_link="$(construct_legacy_download_link "$azure_feed" "$channel" "$normalized_architecture" "$specific_version")" || valid_legacy_download_link=false - - if [ "$valid_legacy_download_link" = true ]; then - say_verbose "Constructed legacy named payload URL: $legacy_download_link" - else - say_verbose "Cound not construct a legacy_download_link; omitting..." - fi - - install_root="$(resolve_installation_path "$install_dir")" - say_verbose "InstallRoot: $install_root" -} - -install_dotnet() { - eval $invocation - local download_failed=false - local asset_name='' - local asset_relative_path='' - - if [[ "$runtime" == "dotnet" ]]; then - asset_relative_path="shared/Microsoft.NETCore.App" - asset_name=".NET Core Runtime" - elif [[ "$runtime" == "aspnetcore" ]]; then - asset_relative_path="shared/Microsoft.AspNetCore.App" - asset_name="ASP.NET Core Runtime" - elif [ -z "$runtime" ]; then - asset_relative_path="sdk" - asset_name=".NET Core SDK" - else - say_err "Invalid value for \$runtime" - return 1 - fi - - # Check if the SDK version is already installed. - if is_dotnet_package_installed "$install_root" "$asset_relative_path" "$specific_version"; then - say "$asset_name version $specific_version is already installed." - return 0 - fi - - mkdir -p "$install_root" - zip_path="$(mktemp "$temporary_file_template")" - say_verbose "Zip path: $zip_path" - - say "Downloading link: $download_link" - - # Failures are normal in the non-legacy case for ultimately legacy downloads. - # Do not output to stderr, since output to stderr is considered an error. - download "$download_link" "$zip_path" 2>&1 || download_failed=true - - # if the download fails, download the legacy_download_link - if [ "$download_failed" = true ]; then - say "Cannot download: $download_link" - - if [ "$valid_legacy_download_link" = true ]; then - download_failed=false - download_link="$legacy_download_link" - zip_path="$(mktemp "$temporary_file_template")" - say_verbose "Legacy zip path: $zip_path" - say "Downloading legacy link: $download_link" - download "$download_link" "$zip_path" 2>&1 || download_failed=true - - if [ "$download_failed" = true ]; then - say "Cannot download: $download_link" - fi - fi - fi - - if [ "$download_failed" = true ]; then - say_err "Could not find/download: \`$asset_name\` with version = $specific_version" - say_err "Refer to: https://aka.ms/dotnet-os-lifecycle for information on .NET Core support" - return 1 - fi - - say "Extracting zip from $download_link" - extract_dotnet_package "$zip_path" "$install_root" - - # Check if the SDK version is installed; if not, fail the installation. - # if the version contains "RTM" or "servicing"; check if a 'release-type' SDK version is installed. - if [[ $specific_version == *"rtm"* || $specific_version == *"servicing"* ]]; then - IFS='-' - read -ra verArr <<< "$specific_version" - release_version="${verArr[0]}" - unset IFS; - say_verbose "Checking installation: version = $release_version" - if is_dotnet_package_installed "$install_root" "$asset_relative_path" "$release_version"; then - return 0 - fi - fi - - # Check if the standard SDK version is installed. - say_verbose "Checking installation: version = $specific_product_version" - if is_dotnet_package_installed "$install_root" "$asset_relative_path" "$specific_product_version"; then - return 0 - fi - - say_err "\`$asset_name\` with version = $specific_product_version failed to install with an unknown error." - return 1 -} - -args=("$@") - -local_version_file_relative_path="/.version" -bin_folder_relative_path="" -temporary_file_template="${TMPDIR:-/tmp}/dotnet.XXXXXXXXX" - -channel="LTS" -version="Latest" -json_file="" -install_dir="" -architecture="" -dry_run=false -no_path=false -no_cdn=false -azure_feed="https://dotnetcli.azureedge.net/dotnet" -uncached_feed="https://dotnetcli.blob.core.windows.net/dotnet" -feed_credential="" -verbose=false -runtime="" -runtime_id="" -override_non_versioned_files=true -non_dynamic_parameters="" - -while [ $# -ne 0 ] -do - name="$1" - case "$name" in - -c|--channel|-[Cc]hannel) - shift - channel="$1" - ;; - -v|--version|-[Vv]ersion) - shift - version="$1" - ;; - -i|--install-dir|-[Ii]nstall[Dd]ir) - shift - install_dir="$1" - ;; - --arch|--architecture|-[Aa]rch|-[Aa]rchitecture) - shift - architecture="$1" - ;; - --shared-runtime|-[Ss]hared[Rr]untime) - say_warning "The --shared-runtime flag is obsolete and may be removed in a future version of this script. The recommended usage is to specify '--runtime dotnet'." - if [ -z "$runtime" ]; then - runtime="dotnet" - fi - ;; - --runtime|-[Rr]untime) - shift - runtime="$1" - if [[ "$runtime" != "dotnet" ]] && [[ "$runtime" != "aspnetcore" ]]; then - say_err "Unsupported value for --runtime: '$1'. Valid values are 'dotnet' and 'aspnetcore'." - if [[ "$runtime" == "windowsdesktop" ]]; then - say_err "WindowsDesktop archives are manufactured for Windows platforms only." - fi - exit 1 - fi - ;; - --dry-run|-[Dd]ry[Rr]un) - dry_run=true - ;; - --no-path|-[Nn]o[Pp]ath) - no_path=true - non_dynamic_parameters+=" $name" - ;; - --verbose|-[Vv]erbose) - verbose=true - non_dynamic_parameters+=" $name" - ;; - --no-cdn|-[Nn]o[Cc]dn) - no_cdn=true - non_dynamic_parameters+=" $name" - ;; - --azure-feed|-[Aa]zure[Ff]eed) - shift - azure_feed="$1" - non_dynamic_parameters+=" $name "\""$1"\""" - ;; - --uncached-feed|-[Uu]ncached[Ff]eed) - shift - uncached_feed="$1" - non_dynamic_parameters+=" $name "\""$1"\""" - ;; - --feed-credential|-[Ff]eed[Cc]redential) - shift - feed_credential="$1" - non_dynamic_parameters+=" $name "\""$1"\""" - ;; - --runtime-id|-[Rr]untime[Ii]d) - shift - runtime_id="$1" - non_dynamic_parameters+=" $name "\""$1"\""" - ;; - --jsonfile|-[Jj][Ss]on[Ff]ile) - shift - json_file="$1" - ;; - --skip-non-versioned-files|-[Ss]kip[Nn]on[Vv]ersioned[Ff]iles) - override_non_versioned_files=false - non_dynamic_parameters+=" $name" - ;; - -?|--?|-h|--help|-[Hh]elp) - script_name="$(basename "$0")" - echo ".NET Tools Installer" - echo "Usage: $script_name [-c|--channel ] [-v|--version ] [-p|--prefix ]" - echo " $script_name -h|-?|--help" - echo "" - echo "$script_name is a simple command line interface for obtaining dotnet cli." - echo "" - echo "Options:" - echo " -c,--channel Download from the channel specified, Defaults to \`$channel\`." - echo " -Channel" - echo " Possible values:" - echo " - Current - most current release" - echo " - LTS - most current supported release" - echo " - 2-part version in a format A.B - represents a specific release" - echo " examples: 2.0; 1.0" - echo " - Branch name" - echo " examples: release/2.0.0; Master" - echo " Note: The version parameter overrides the channel parameter." - echo " -v,--version Use specific VERSION, Defaults to \`$version\`." - echo " -Version" - echo " Possible values:" - echo " - latest - most latest build on specific channel" - echo " - coherent - most latest coherent build on specific channel" - echo " coherent applies only to SDK downloads" - echo " - 3-part version in a format A.B.C - represents specific version of build" - echo " examples: 2.0.0-preview2-006120; 1.1.0" - echo " -i,--install-dir Install under specified location (see Install Location below)" - echo " -InstallDir" - echo " --architecture Architecture of dotnet binaries to be installed, Defaults to \`$architecture\`." - echo " --arch,-Architecture,-Arch" - echo " Possible values: x64, arm, and arm64" - echo " --runtime Installs a shared runtime only, without the SDK." - echo " -Runtime" - echo " Possible values:" - echo " - dotnet - the Microsoft.NETCore.App shared runtime" - echo " - aspnetcore - the Microsoft.AspNetCore.App shared runtime" - echo " --dry-run,-DryRun Do not perform installation. Display download link." - echo " --no-path, -NoPath Do not set PATH for the current process." - echo " --verbose,-Verbose Display diagnostics information." - echo " --azure-feed,-AzureFeed Azure feed location. Defaults to $azure_feed, This parameter typically is not changed by the user." - echo " --uncached-feed,-UncachedFeed Uncached feed location. This parameter typically is not changed by the user." - echo " --feed-credential,-FeedCredential Azure feed shared access token. This parameter typically is not specified." - echo " --skip-non-versioned-files Skips non-versioned files if they already exist, such as the dotnet executable." - echo " -SkipNonVersionedFiles" - echo " --no-cdn,-NoCdn Disable downloading from the Azure CDN, and use the uncached feed directly." - echo " --jsonfile Determines the SDK version from a user specified global.json file." - echo " Note: global.json must have a value for 'SDK:Version'" - echo " --runtime-id Installs the .NET Tools for the given platform (use linux-x64 for portable linux)." - echo " -RuntimeId" - echo " -?,--?,-h,--help,-Help Shows this help message" - echo "" - echo "Obsolete parameters:" - echo " --shared-runtime The recommended alternative is '--runtime dotnet'." - echo " This parameter is obsolete and may be removed in a future version of this script." - echo " Installs just the shared runtime bits, not the entire SDK." - echo "" - echo "Install Location:" - echo " Location is chosen in following order:" - echo " - --install-dir option" - echo " - Environmental variable DOTNET_INSTALL_DIR" - echo " - $HOME/.dotnet" - exit 0 - ;; - *) - say_err "Unknown argument \`$name\`" - exit 1 - ;; - esac - - shift -done - -if [ "$no_cdn" = true ]; then - azure_feed="$uncached_feed" -fi - -check_min_reqs -calculate_vars -script_name=$(basename "$0") - -if [ "$dry_run" = true ]; then - say "Payload URLs:" - say "Primary named payload URL: $download_link" - if [ "$valid_legacy_download_link" = true ]; then - say "Legacy named payload URL: $legacy_download_link" - fi - repeatable_command="./$script_name --version "\""$specific_version"\"" --install-dir "\""$install_root"\"" --architecture "\""$normalized_architecture"\""" - if [[ "$runtime" == "dotnet" ]]; then - repeatable_command+=" --runtime "\""dotnet"\""" - elif [[ "$runtime" == "aspnetcore" ]]; then - repeatable_command+=" --runtime "\""aspnetcore"\""" - fi - repeatable_command+="$non_dynamic_parameters" - say "Repeatable invocation: $repeatable_command" - exit 0 -fi - -check_pre_reqs -install_dotnet - -bin_path="$(get_absolute_path "$(combine_paths "$install_root" "$bin_folder_relative_path")")" -if [ "$no_path" = false ]; then - say "Adding to current process PATH: \`$bin_path\`. Note: This change will be visible only when sourcing script." - export PATH="$bin_path":"$PATH" -else - say "Binaries of dotnet can be found in $bin_path" -fi - -say "Installation finished successfully." diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index 0854e489615a5c..761fb1a29c3587 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -67,176 +67,180 @@ parameters: VSMasterChannelId: 1012 stages: -- stage: Validate - dependsOn: ${{ parameters.validateDependsOn }} - displayName: Validate Build Assets - variables: - - template: common-variables.yml - jobs: - - template: setup-maestro-vars.yml - parameters: - BARBuildId: ${{ parameters.BARBuildId }} - PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} +- ${{ if or(and(le(parameters.publishingInfraVersion, 2), eq(parameters.inline, 'true')), eq( parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}: + - stage: Validate + dependsOn: ${{ parameters.validateDependsOn }} + displayName: Validate Build Assets + variables: + - template: common-variables.yml + jobs: + - template: setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + + - ${{ if and(le(parameters.publishingInfraVersion, 2), eq(parameters.inline, 'true')) }}: + - job: + displayName: Post-build Checks + dependsOn: setupMaestroVars + variables: + - name: TargetChannels + value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.TargetChannels'] ] + pool: + vmImage: 'windows-2019' + steps: + - task: PowerShell@2 + displayName: Maestro Channels Consistency + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/check-channel-consistency.ps1 + arguments: -PromoteToChannels "$(TargetChannels)" + -AvailableChannelIds ${{parameters.NetEngLatestChannelId}},${{parameters.NetEngValidationChannelId}},${{parameters.NetDev5ChannelId}},${{parameters.NetDev6ChannelId}},${{parameters.GeneralTestingChannelId}},${{parameters.NETCoreToolingDevChannelId}},${{parameters.NETCoreToolingReleaseChannelId}},${{parameters.NETInternalToolingChannelId}},${{parameters.NETCoreExperimentalChannelId}},${{parameters.NetEngServicesIntChannelId}},${{parameters.NetEngServicesProdChannelId}},${{parameters.Net5Preview8ChannelId}},${{parameters.Net5RC1ChannelId}},${{parameters.Net5RC2ChannelId}},${{parameters.NetCoreSDK313xxChannelId}},${{parameters.NetCoreSDK313xxInternalChannelId}},${{parameters.NetCoreSDK314xxChannelId}},${{parameters.NetCoreSDK314xxInternalChannelId}},${{parameters.VS166ChannelId}},${{parameters.VS167ChannelId}},${{parameters.VS168ChannelId}},${{parameters.VSMasterChannelId}} - - ${{ if and(le(parameters.publishingInfraVersion, 2), eq(parameters.inline, 'true')) }}: - job: - displayName: Post-build Checks + displayName: NuGet Validation dependsOn: setupMaestroVars - variables: - - name: TargetChannels - value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.TargetChannels'] ] + condition: eq( ${{ parameters.enableNugetValidation }}, 'true') pool: vmImage: 'windows-2019' + variables: + - name: AzDOProjectName + value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ] + - name: AzDOPipelineId + value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ] + - name: AzDOBuildId + value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ] steps: + - task: DownloadBuildArtifacts@0 + displayName: Download Package Artifacts + inputs: + buildType: specific + buildVersionToDownload: specific + project: $(AzDOProjectName) + pipeline: $(AzDOPipelineId) + buildId: $(AzDOBuildId) + artifactName: PackageArtifacts + - task: PowerShell@2 - displayName: Maestro Channels Consistency + displayName: Validate inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/check-channel-consistency.ps1 - arguments: -PromoteToChannels "$(TargetChannels)" - -AvailableChannelIds ${{parameters.NetEngLatestChannelId}},${{parameters.NetEngValidationChannelId}},${{parameters.NetDev5ChannelId}},${{parameters.NetDev6ChannelId}},${{parameters.GeneralTestingChannelId}},${{parameters.NETCoreToolingDevChannelId}},${{parameters.NETCoreToolingReleaseChannelId}},${{parameters.NETInternalToolingChannelId}},${{parameters.NETCoreExperimentalChannelId}},${{parameters.NetEngServicesIntChannelId}},${{parameters.NetEngServicesProdChannelId}},${{parameters.Net5Preview8ChannelId}},${{parameters.Net5RC1ChannelId}},${{parameters.Net5RC2ChannelId}},${{parameters.NetCoreSDK313xxChannelId}},${{parameters.NetCoreSDK313xxInternalChannelId}},${{parameters.NetCoreSDK314xxChannelId}},${{parameters.NetCoreSDK314xxInternalChannelId}},${{parameters.VS166ChannelId}},${{parameters.VS167ChannelId}},${{parameters.VS168ChannelId}},${{parameters.VSMasterChannelId}} - - - job: - displayName: NuGet Validation - dependsOn: setupMaestroVars - condition: eq( ${{ parameters.enableNugetValidation }}, 'true') - pool: - vmImage: 'windows-2019' - variables: - - name: AzDOProjectName - value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ] - - name: AzDOPipelineId - value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ] - - name: AzDOBuildId - value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ] - steps: - - task: DownloadBuildArtifacts@0 - displayName: Download Package Artifacts - inputs: - buildType: specific - buildVersionToDownload: specific - project: $(AzDOProjectName) - pipeline: $(AzDOPipelineId) - buildId: $(AzDOBuildId) - artifactName: PackageArtifacts - - - task: PowerShell@2 - displayName: Validate - inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1 - arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ - -ToolDestinationPath $(Agent.BuildDirectory)/Extract/ - - - job: - displayName: Signing Validation - dependsOn: setupMaestroVars - condition: eq( ${{ parameters.enableSigningValidation }}, 'true') - variables: - - template: common-variables.yml - - name: AzDOProjectName - value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ] - - name: AzDOPipelineId - value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ] - - name: AzDOBuildId - value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ] - pool: - vmImage: 'windows-2019' - steps: - - ${{ if eq(parameters.useBuildManifest, true) }}: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1 + arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ + -ToolDestinationPath $(Agent.BuildDirectory)/Extract/ + + - job: + displayName: Signing Validation + dependsOn: setupMaestroVars + condition: eq( ${{ parameters.enableSigningValidation }}, 'true') + variables: + - template: common-variables.yml + - name: AzDOProjectName + value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ] + - name: AzDOPipelineId + value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ] + - name: AzDOBuildId + value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ] + pool: + vmImage: 'windows-2019' + steps: + - ${{ if eq(parameters.useBuildManifest, true) }}: + - task: DownloadBuildArtifacts@0 + displayName: Download build manifest + inputs: + buildType: specific + buildVersionToDownload: specific + project: $(AzDOProjectName) + pipeline: $(AzDOPipelineId) + buildId: $(AzDOBuildId) + artifactName: BuildManifests - task: DownloadBuildArtifacts@0 - displayName: Download build manifest + displayName: Download Package Artifacts inputs: buildType: specific buildVersionToDownload: specific project: $(AzDOProjectName) pipeline: $(AzDOPipelineId) buildId: $(AzDOBuildId) - artifactName: BuildManifests - - task: DownloadBuildArtifacts@0 - displayName: Download Package Artifacts - inputs: - buildType: specific - buildVersionToDownload: specific - project: $(AzDOProjectName) - pipeline: $(AzDOPipelineId) - buildId: $(AzDOBuildId) - artifactName: PackageArtifacts - - # This is necessary whenever we want to publish/restore to an AzDO private feed - # Since sdk-task.ps1 tries to restore packages we need to do this authentication here - # otherwise it'll complain about accessing a private feed. - - task: NuGetAuthenticate@0 - displayName: 'Authenticate to AzDO Feeds' - - - task: PowerShell@2 - displayName: Enable cross-org publishing - inputs: - filePath: eng\common\enable-cross-org-publishing.ps1 - arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) - - # Signing validation will optionally work with the buildmanifest file which is downloaded from - # Azure DevOps above. - - task: PowerShell@2 - displayName: Validate - inputs: - filePath: eng\common\sdk-task.ps1 - arguments: -task SigningValidation -restore -msbuildEngine vs - /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts' - /p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt' - ${{ parameters.signingValidationAdditionalParameters }} - - - template: ../steps/publish-logs.yml - parameters: - StageLabel: 'Validation' - JobLabel: 'Signing' - - - job: - displayName: SourceLink Validation - dependsOn: setupMaestroVars - condition: eq( ${{ parameters.enableSourceLinkValidation }}, 'true') - variables: - - template: common-variables.yml - - name: AzDOProjectName - value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ] - - name: AzDOPipelineId - value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ] - - name: AzDOBuildId - value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ] - pool: - vmImage: 'windows-2019' - steps: - - task: DownloadBuildArtifacts@0 - displayName: Download Blob Artifacts - inputs: - buildType: specific - buildVersionToDownload: specific - project: $(AzDOProjectName) - pipeline: $(AzDOPipelineId) - buildId: $(AzDOBuildId) - artifactName: BlobArtifacts - - - task: PowerShell@2 - displayName: Validate - inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/sourcelink-validation.ps1 - arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/ - -ExtractPath $(Agent.BuildDirectory)/Extract/ - -GHRepoName $(Build.Repository.Name) - -GHCommit $(Build.SourceVersion) - -SourcelinkCliVersion $(SourceLinkCLIVersion) - continueOnError: true - - - template: /eng/common/templates/job/execute-sdl.yml - parameters: - enable: ${{ parameters.SDLValidationParameters.enable }} + artifactName: PackageArtifacts + + # This is necessary whenever we want to publish/restore to an AzDO private feed + # Since sdk-task.ps1 tries to restore packages we need to do this authentication here + # otherwise it'll complain about accessing a private feed. + - task: NuGetAuthenticate@0 + displayName: 'Authenticate to AzDO Feeds' + + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + + # Signing validation will optionally work with the buildmanifest file which is downloaded from + # Azure DevOps above. + - task: PowerShell@2 + displayName: Validate + inputs: + filePath: eng\common\sdk-task.ps1 + arguments: -task SigningValidation -restore -msbuildEngine vs + /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts' + /p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt' + ${{ parameters.signingValidationAdditionalParameters }} + + - template: ../steps/publish-logs.yml + parameters: + StageLabel: 'Validation' + JobLabel: 'Signing' + + - job: + displayName: SourceLink Validation dependsOn: setupMaestroVars - additionalParameters: ${{ parameters.SDLValidationParameters.params }} - continueOnError: ${{ parameters.SDLValidationParameters.continueOnError }} - artifactNames: ${{ parameters.SDLValidationParameters.artifactNames }} - downloadArtifacts: ${{ parameters.SDLValidationParameters.downloadArtifacts }} + condition: eq( ${{ parameters.enableSourceLinkValidation }}, 'true') + variables: + - template: common-variables.yml + - name: AzDOProjectName + value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ] + - name: AzDOPipelineId + value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ] + - name: AzDOBuildId + value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ] + pool: + vmImage: 'windows-2019' + steps: + - task: DownloadBuildArtifacts@0 + displayName: Download Blob Artifacts + inputs: + buildType: specific + buildVersionToDownload: specific + project: $(AzDOProjectName) + pipeline: $(AzDOPipelineId) + buildId: $(AzDOBuildId) + artifactName: BlobArtifacts + + - task: PowerShell@2 + displayName: Validate + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/sourcelink-validation.ps1 + arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/ + -ExtractPath $(Agent.BuildDirectory)/Extract/ + -GHRepoName $(Build.Repository.Name) + -GHCommit $(Build.SourceVersion) + -SourcelinkCliVersion $(SourceLinkCLIVersion) + continueOnError: true + + - template: /eng/common/templates/job/execute-sdl.yml + parameters: + enable: ${{ parameters.SDLValidationParameters.enable }} + dependsOn: setupMaestroVars + additionalParameters: ${{ parameters.SDLValidationParameters.params }} + continueOnError: ${{ parameters.SDLValidationParameters.continueOnError }} + artifactNames: ${{ parameters.SDLValidationParameters.artifactNames }} + downloadArtifacts: ${{ parameters.SDLValidationParameters.downloadArtifacts }} - ${{ if or(ge(parameters.publishingInfraVersion, 3), eq(parameters.inline, 'false')) }}: - stage: publish_using_darc - dependsOn: Validate + ${{ if or(eq(parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}: + dependsOn: Validate + ${{ if and(ne(parameters.enableNugetValidation, 'true'), ne(parameters.enableSigningValidation, 'true'), ne(parameters.enableSourceLinkValidation, 'true'), ne(parameters.SDLValidationParameters.enable, 'true')) }}: + dependsOn: ${{ parameters.validateDependsOn }} displayName: Publish using Darc variables: - template: common-variables.yml diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 9014e062514b5e..60eb601c8f3000 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -62,10 +62,6 @@ $ErrorActionPreference = 'Stop' # Base-64 encoded SAS token that has permission to storage container described by $runtimeSourceFeed [string]$runtimeSourceFeedKey = if (Test-Path variable:runtimeSourceFeedKey) { $runtimeSourceFeedKey } else { $null } -# If false, use copy of dotnet-install from /eng/common/dotnet-install-scripts (for custom behaviors). -# otherwise will fetch from public location. -[bool]$useDefaultDotnetInstall = if (Test-Path variable:useDefaultDotnetInstall) { $useDefaultDotnetInstall } else { $false } - function Create-Directory ([string[]] $path) { New-Item -Path $path -Force -ItemType 'Directory' | Out-Null } @@ -197,46 +193,37 @@ function InitializeDotNetCli([bool]$install, [bool]$createSdkLocationFile) { function GetDotNetInstallScript([string] $dotnetRoot) { $installScript = Join-Path $dotnetRoot 'dotnet-install.ps1' if (!(Test-Path $installScript)) { - create-directory $dotnetroot - - if ($useDefaultDotnetInstall) - { - $progresspreference = 'silentlycontinue' # don't display the console progress ui - it's a huge perf hit + Create-Directory $dotnetRoot + $ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit - $maxretries = 5 - $retries = 1 + $maxRetries = 5 + $retries = 1 - $uri = "https://dot.net/$dotnetinstallscriptversion/dotnet-install.ps1" + $uri = "https://dot.net/$dotnetInstallScriptVersion/dotnet-install.ps1" - while($true) { - try { - write-host "get $uri" - invoke-webrequest $uri -outfile $installscript - break - } - catch { - write-host "failed to download '$uri'" - write-error $_.exception.message -erroraction continue - } + while($true) { + try { + Write-Host "GET $uri" + Invoke-WebRequest $uri -OutFile $installScript + break + } + catch { + Write-Host "Failed to download '$uri'" + Write-Error $_.Exception.Message -ErrorAction Continue + } - if (++$retries -le $maxretries) { - $delayinseconds = [math]::pow(2, $retries) - 1 # exponential backoff - write-host "retrying. waiting for $delayinseconds seconds before next attempt ($retries of $maxretries)." - start-sleep -seconds $delayinseconds - } - else { - throw "unable to download file in $maxretries attempts." - } + if (++$retries -le $maxRetries) { + $delayInSeconds = [math]::Pow(2, $retries) - 1 # Exponential backoff + Write-Host "Retrying. Waiting for $delayInSeconds seconds before next attempt ($retries of $maxRetries)." + Start-Sleep -Seconds $delayInSeconds } - } - else - { - # Use a special version of the script from eng/common that understands the existence of a "productVersion.txt" in a dotnet path. - # See https://github.com/dotnet/arcade/issues/6047 for details - $engCommonCopy = Resolve-Path (Join-Path $PSScriptRoot 'dotnet-install-scripts\dotnet-install.ps1') - Copy-Item $engCommonCopy -Destination $installScript -Force + else { + throw "Unable to download file in $maxRetries attempts." + } + } } + return $installScript } diff --git a/eng/common/tools.sh b/eng/common/tools.sh index b5d63cb1b7cbac..98186e7849659f 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -68,10 +68,6 @@ fi runtime_source_feed=${runtime_source_feed:-''} runtime_source_feed_key=${runtime_source_feed_key:-''} -# Determines if dotnet-install.sh comes from the eng/common folder or the internet -# (default = public version) -use_default_dotnet_install=${use_default_dotnet_install:-false} - # Resolve any symlinks in the given path. function ResolvePath { local path=$1 @@ -271,30 +267,23 @@ function GetDotNetInstallScript { if [[ ! -a "$install_script" ]]; then mkdir -p "$root" - if [[ "$use_default_dotnet_install" == true ]]; then - echo "Downloading '$install_script_url'" + echo "Downloading '$install_script_url'" - # Use curl if available, otherwise use wget - if command -v curl > /dev/null; then - with_retries curl "$install_script_url" -sSL --retry 10 --create-dirs -o "$install_script" || { - local exit_code=$? - Write-PipelineTelemetryError -category 'InitializeToolset' "Failed to acquire dotnet install script (exit code '$exit_code')." - ExitWithExitCode $exit_code - } - else - with_retries wget -v -O "$install_script" "$install_script_url" || { - local exit_code=$? - Write-PipelineTelemetryError -category 'InitializeToolset' "Failed to acquire dotnet install script (exit code '$exit_code')." - ExitWithExitCode $exit_code - } - fi + # Use curl if available, otherwise use wget + if command -v curl > /dev/null; then + with_retries curl "$install_script_url" -sSL --retry 10 --create-dirs -o "$install_script" || { + local exit_code=$? + Write-PipelineTelemetryError -category 'InitializeToolset' "Failed to acquire dotnet install script (exit code '$exit_code')." + ExitWithExitCode $exit_code + } else - # Use a special version of the script from eng/common that understands the existence of a "productVersion.txt" in a dotnet path. - # See https://github.com/dotnet/arcade/issues/6047 for details - cp $repo_root/eng/common/dotnet-install-scripts/dotnet-install.sh $install_script + with_retries wget -v -O "$install_script" "$install_script_url" || { + local exit_code=$? + Write-PipelineTelemetryError -category 'InitializeToolset' "Failed to acquire dotnet install script (exit code '$exit_code')." + ExitWithExitCode $exit_code + } fi fi - # return value _GetDotNetInstallScript="$install_script" } diff --git a/eng/install-native-dependencies.sh b/eng/install-native-dependencies.sh index 63a5acdd369639..a1eb3eb259a17c 100755 --- a/eng/install-native-dependencies.sh +++ b/eng/install-native-dependencies.sh @@ -11,6 +11,18 @@ if [ "$1" = "Linux" ]; then fi elif [ "$1" = "OSX" ] || [ "$1" = "tvOS" ] || [ "$1" = "iOS" ]; then engdir=$(dirname "${BASH_SOURCE[0]}") + + # run this only on AzDo + if [ "$BUILD_BUILDNUMBER" != "" ]; then + # workaround for old osx images on hosted agents + # piped in case we get an agent without these values installed + if ! brew_output="$(brew uninstall openssl@1.0.2t 2>&1 >/dev/null)"; then + echo "didn't uninstall openssl@1.0.2t" + else + echo "succesfully uninstalled openssl@1.0.2t" + fi + fi + brew update --preinstall brew bundle --no-upgrade --no-lock --file "${engdir}/Brewfile" if [ "$?" != "0" ]; then diff --git a/eng/native/build-commons.sh b/eng/native/build-commons.sh index 7eb2d0be165f13..bd10b0ccc8fb69 100755 --- a/eng/native/build-commons.sh +++ b/eng/native/build-commons.sh @@ -169,12 +169,14 @@ EOF export CXXFLAGS="${CXXFLAGS} ${EXTRA_CXXFLAGS}" export LDFLAGS="${LDFLAGS} ${EXTRA_LDFLAGS}" + local exit_code if [[ "$__StaticAnalyzer" == 1 ]]; then pushd "$intermediatesDir" buildTool="$SCAN_BUILD_COMMAND -o $__BinDir/scan-build-log $buildTool" echo "Executing $buildTool install -j $__NumProc" "$buildTool" install -j "$__NumProc" + exit_code="$?" popd else @@ -185,13 +187,13 @@ EOF echo "Executing $cmake_command --build \"$intermediatesDir\" --target install -- -j $__NumProc" $cmake_command --build "$intermediatesDir" --target install -- -j "$__NumProc" + exit_code="$?" fi CFLAGS="${SAVED_CFLAGS}" CXXFLAGS="${SAVED_CXXFLAGS}" LDFLAGS="${SAVED_LDFLAGS}" - local exit_code="$?" if [[ "$exit_code" != 0 ]]; then echo "${__ErrMsgPrefix}Failed to build \"$message\"." exit "$exit_code" diff --git a/eng/packaging.props b/eng/packaging.props index d723eddfea5a1e..21dfeffc871a38 100644 --- a/eng/packaging.props +++ b/eng/packaging.props @@ -20,10 +20,10 @@ true - 5.0.0 + $(ProductVersion) - $(ProductVersion) + 5.0.1 true true diff --git a/eng/pipelines/common/checkout-job.yml b/eng/pipelines/common/checkout-job.yml index 297a4b57a61f17..9d7f4272d667cd 100644 --- a/eng/pipelines/common/checkout-job.yml +++ b/eng/pipelines/common/checkout-job.yml @@ -52,7 +52,9 @@ jobs: parameters: subsetName: ${{ path.subset }} arguments: - - --difftarget origin/$(System.PullRequest.TargetBranch) + # The commit that we're building is always a merge commit that is merging into the target branch. + # So the first parent of the commit is on the target branch and the second parent is on the source branch. + - --difftarget HEAD^1 - --subset ${{ path.subset }} - ${{ if ne(path.include[0], '') }}: - --includepaths '${{ join('+', path.include) }}' diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 221f8d366262d3..c3b1aa8d1a2a26 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -33,7 +33,7 @@ jobs: variables: - name: _osParameter value: -os ${{ parameters.osGroup }} - + - ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubGroup, '_musl')) }}: - name: _osParameter value: /p:RuntimeOS=linux-musl /p:OutputRid=linux-musl-${{ parameters.archType }} @@ -54,12 +54,33 @@ jobs: ${{ if ne(parameters.isOfficialBuild, true) }}: value: '' + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - group: AzureDevOps-Artifact-Feeds-Pats + - ${{ each variable in parameters.variables }}: - ${{ variable }} steps: - template: /eng/pipelines/common/clone-checkout-bundle-step.yml + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - ${{ if ne(parameters.osGroup, 'Windows_NT') }}: + - task: Bash@3 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh + arguments: $(Build.SourcesDirectory)/NuGet.config $Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: + - task: PowerShell@2 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)\eng\common\SetupNugetSources.ps1 + arguments: -ConfigFile $(Build.SourcesDirectory)\NuGet.config -Password $Env:Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + - ${{ if eq(parameters.isOfficialBuild, true) }}: - template: /eng/pipelines/common/restore-internal-tools.yml @@ -76,7 +97,7 @@ jobs: - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_crossBuildPropertyArg) $(_cxx11Parameter) displayName: Build product - - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: + - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: - script: | du -sh $(Build.SourcesDirectory)/* df -h diff --git a/eng/pipelines/common/upload-unsigned-artifacts-step.yml b/eng/pipelines/common/upload-unsigned-artifacts-step.yml index c4fea2adaa634b..71998bb0e9c424 100644 --- a/eng/pipelines/common/upload-unsigned-artifacts-step.yml +++ b/eng/pipelines/common/upload-unsigned-artifacts-step.yml @@ -1,9 +1,11 @@ parameters: name: '' + condition: always() steps: - task: CopyFiles@2 displayName: Prepare job-specific intermediate unsigned artifacts subdirectory + condition: and(succeeded(), ${{ parameters.condition }}) inputs: SourceFolder: '$(Build.SourcesDirectory)/artifacts/packages/$(_BuildConfig)' Contents: | @@ -14,6 +16,7 @@ steps: - task: PublishBuildArtifacts@1 displayName: Publish intermediate unsigned artifacts + condition: and(succeeded(), ${{ parameters.condition }}) inputs: pathToPublish: '$(Build.StagingDirectory)/UnsignedArtifacts' artifactName: IntermediateUnsignedArtifacts diff --git a/eng/pipelines/common/xplat-setup.yml b/eng/pipelines/common/xplat-setup.yml index 9c025864515fd9..6198c6a6a0d1e8 100644 --- a/eng/pipelines/common/xplat-setup.yml +++ b/eng/pipelines/common/xplat-setup.yml @@ -103,12 +103,12 @@ jobs: ${{ if eq(parameters.jobParameters.pool, '') }}: pool: # Public Linux Build Pool - ${{ if and(in(parameters.osGroup, 'Linux', 'FreeBSD'), eq(variables['System.TeamProject'], 'public')) }}: + ${{ if and(in(parameters.osGroup, 'Linux', 'FreeBSD', 'Browser'), eq(variables['System.TeamProject'], 'public')) }}: name: NetCorePublic-Pool queue: BuildPool.Ubuntu.1604.Amd64.Open # Official Build Linux Pool - ${{ if and(in(parameters.osGroup, 'Linux', 'FreeBSD'), ne(variables['System.TeamProject'], 'public')) }}: + ${{ if and(in(parameters.osGroup, 'Linux', 'FreeBSD', 'Browser'), ne(variables['System.TeamProject'], 'public')) }}: name: NetCoreInternal-Pool queue: BuildPool.Ubuntu.1604.Amd64 diff --git a/eng/pipelines/coreclr/templates/xplat-job.yml b/eng/pipelines/coreclr/templates/xplat-job.yml index 7f03b78d162f71..b4fb71b4d86cc7 100644 --- a/eng/pipelines/coreclr/templates/xplat-job.yml +++ b/eng/pipelines/coreclr/templates/xplat-job.yml @@ -98,10 +98,31 @@ jobs: - name: crossArg value: '' + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - group: AzureDevOps-Artifact-Feeds-Pats + - ${{ each variable in parameters.variables }}: - ${{insert}}: ${{ variable }} steps: - template: /eng/pipelines/common/clone-checkout-bundle-step.yml + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - ${{ if ne(parameters.osGroup, 'Windows_NT') }}: + - task: Bash@3 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh + arguments: $(Build.SourcesDirectory)/NuGet.config $Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: + - task: PowerShell@2 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)\eng\common\SetupNugetSources.ps1 + arguments: -ConfigFile $(Build.SourcesDirectory)\NuGet.config -Password $Env:Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + - ${{ parameters.steps }} diff --git a/eng/pipelines/installer/jobs/base-job.yml b/eng/pipelines/installer/jobs/base-job.yml index efbb487ccd427f..8613782091b58b 100644 --- a/eng/pipelines/installer/jobs/base-job.yml +++ b/eng/pipelines/installer/jobs/base-job.yml @@ -77,6 +77,9 @@ jobs: - name: SignType value: test + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - group: AzureDevOps-Artifact-Feeds-Pats + # Set up non-PR build from internal project - ${{ if eq(parameters.isOfficialBuild, true) }}: - name: SignType @@ -420,6 +423,24 @@ jobs: destinationFolder: $(AllArtifactsDownloadPath)/libraries_bin_${{ platform }}_${{ parameters.liveLibrariesBuildConfig }}/ cleanUnpackFolder: false + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - ${{ if ne(parameters.osGroup, 'Windows_NT') }}: + - task: Bash@3 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh + arguments: $(Build.SourcesDirectory)/NuGet.config $Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: + - task: PowerShell@2 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)\eng\common\SetupNugetSources.ps1 + arguments: -ConfigFile $(Build.SourcesDirectory)\NuGet.config -Password $Env:Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - template: /eng/pipelines/common/download-artifact-step.yml parameters: @@ -469,7 +490,7 @@ jobs: - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - template: /eng/pipelines/common/macos-sign-with-entitlements.yml parameters: - filesToSign: + filesToSign: - name: dotnet path: $(Build.SourcesDirectory)/artifacts/bin/osx-${{ parameters.archType }}.$(_BuildConfig)/corehost entitlementsFile: $(Build.SourcesDirectory)/eng/pipelines/common/entitlements.plist @@ -480,7 +501,7 @@ jobs: - script: $(BaseJobBuildCommand) -subset installer.nocorehost displayName: Build and Package - - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: + - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: - script: | du -sh $(Build.SourcesDirectory)/* df -h diff --git a/eng/pipelines/libraries/base-job.yml b/eng/pipelines/libraries/base-job.yml index 2ae778e893939a..4050681999a693 100644 --- a/eng/pipelines/libraries/base-job.yml +++ b/eng/pipelines/libraries/base-job.yml @@ -84,6 +84,9 @@ jobs: - ${{ if eq(parameters.isOfficialBuild, 'true') }}: - _msbuildCommonParameters: /p:OfficialBuildId=$(Build.BuildNumber) + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - group: AzureDevOps-Artifact-Feeds-Pats + - _runtimeArtifactName: '' - _runtimeDownloadPath: '' - _runtimeArtifactsPathArg: '' @@ -126,6 +129,24 @@ jobs: steps: - template: /eng/pipelines/common/clone-checkout-bundle-step.yml + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - ${{ if ne(parameters.osGroup, 'Windows_NT') }}: + - task: Bash@3 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh + arguments: $(Build.SourcesDirectory)/NuGet.config $Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: + - task: PowerShell@2 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)\eng\common\SetupNugetSources.ps1 + arguments: -ConfigFile $(Build.SourcesDirectory)\NuGet.config -Password $Env:Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + - ${{ if and(ne(parameters.liveRuntimeBuildConfig, ''), eq(parameters.runTests, true)) }}: - template: /eng/pipelines/common/download-artifact-step.yml parameters: diff --git a/eng/pipelines/libraries/build-job.yml b/eng/pipelines/libraries/build-job.yml index 6a70952a3a22a2..a7a9b603e340ee 100644 --- a/eng/pipelines/libraries/build-job.yml +++ b/eng/pipelines/libraries/build-job.yml @@ -129,6 +129,7 @@ jobs: - template: /eng/pipelines/common/upload-unsigned-artifacts-step.yml parameters: name: Libraries_AllConfigurations + condition: eq(variables['_librariesBuildProducedPackages'], true) - ${{ if eq(parameters.runTests, true) }}: - template: /eng/pipelines/libraries/helix.yml @@ -141,3 +142,5 @@ jobs: creator: dotnet-bot testRunNamePrefixSuffix: $(_testRunNamePrefixSuffix) extraHelixArguments: $(_extraHelixArguments) + ${{ if eq(parameters.framework, 'allConfigurations') }}: + condition: eq(variables['_librariesBuildProducedPackages'], true) diff --git a/eng/pipelines/mono/templates/xplat-job.yml b/eng/pipelines/mono/templates/xplat-job.yml index 0cb275692c5c4f..b0364b227a0f31 100644 --- a/eng/pipelines/mono/templates/xplat-job.yml +++ b/eng/pipelines/mono/templates/xplat-job.yml @@ -89,10 +89,31 @@ jobs: - name: _HelixSource value: ci/dotnet/runtime/$(Build.SourceBranch) + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - group: AzureDevOps-Artifact-Feeds-Pats + - ${{ each variable in parameters.variables }}: - ${{insert}}: ${{ variable }} steps: - template: /eng/pipelines/common/clone-checkout-bundle-step.yml + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - ${{ if ne(parameters.osGroup, 'Windows_NT') }}: + - task: Bash@3 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh + arguments: $(Build.SourcesDirectory)/NuGet.config $Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: + - task: PowerShell@2 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)\eng\common\SetupNugetSources.ps1 + arguments: -ConfigFile $(Build.SourcesDirectory)\NuGet.config -Password $Env:Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + - ${{ parameters.steps }} diff --git a/eng/pipelines/official/jobs/prepare-signed-artifacts.yml b/eng/pipelines/official/jobs/prepare-signed-artifacts.yml index 7b0eba0b5cd020..187871cd324327 100644 --- a/eng/pipelines/official/jobs/prepare-signed-artifacts.yml +++ b/eng/pipelines/official/jobs/prepare-signed-artifacts.yml @@ -20,9 +20,21 @@ jobs: - name: SignType value: $[ coalesce(variables.OfficialSignType, 'real') ] + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - group: AzureDevOps-Artifact-Feeds-Pats + steps: - template: /eng/pipelines/common/clone-checkout-bundle-step.yml + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - task: PowerShell@2 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)\eng\common\SetupNugetSources.ps1 + arguments: -ConfigFile $(Build.SourcesDirectory)\NuGet.config -Password $Env:Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + - ${{ if eq(parameters.isOfficialBuild, true) }}: - task: NuGetAuthenticate@0 @@ -33,7 +45,7 @@ jobs: zipSources: false feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json continueOnError: false - condition: and(succeeded(), + condition: and(succeeded(), in(variables['SignType'], 'real', 'test')) - task: DownloadBuildArtifacts@0 diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 3c59b5139374d8..5a023d9e4e87a5 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -794,7 +794,7 @@ jobs: runtimeFlavor: mono buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} platforms: - - Windows_NT_x64 + # - Windows_NT_x64 - OSX_x64 - Linux_arm64 - Linux_x64 diff --git a/eng/restore/harvestPackages.targets b/eng/restore/harvestPackages.targets index a7fc8aa34655f5..576ab1f6403d94 100644 --- a/eng/restore/harvestPackages.targets +++ b/eng/restore/harvestPackages.targets @@ -1,16 +1,21 @@ - + - - - <_AllPkgProjs Include="$(LibrariesProjectRoot)*\pkg\**\*.pkgproj" /> - - + + - <_AllPkgProjsToPackageIdentity Include="@(_AllPkgProjs -> '%(Filename)')" /> + <_AllPkgProjs Include="$(LibrariesProjectRoot)*\pkg\**\*.pkgproj"> + MSBuildRestoreSessionId + + + + + + + @@ -18,6 +23,7 @@ + <_OverridenPackageDownloads Include="@(_PackageDownload)" Condition="'@(PackageDownload)' == '@(_PackageDownload)' and %(Identity) != ''" /> <_PackageDownload Remove="@(_OverridenPackageDownloads)" /> <_PackageDownload Include="@(PackageDownload)" /> diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index 039b0d9a39b3c5..0b8bad5cb3aad0 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -155,7 +155,7 @@ AssemblyFile="$(CreateCreateWasmBundlesAssemblyPath)" /> - 2020a + 2020d - + <_Parameter1>windows @@ -33,7 +33,8 @@ <_unsupportedOSPlatforms Include="$(UnsupportedOSPlatforms)" /> - + + <_Parameter1>%(_unsupportedOSPlatforms.Identity) diff --git a/global.json b/global.json index b4ecbea8957e0e..219db96e551229 100644 --- a/global.json +++ b/global.json @@ -1,21 +1,21 @@ { "sdk": { - "version": "5.0.100-preview.8.20417.9", + "version": "5.0.100", "allowPrerelease": true, "rollForward": "major" }, "tools": { - "dotnet": "5.0.100-rc.2.20479.15" + "dotnet": "5.0.100" }, "native-tools": { "cmake": "3.14.5", "python3": "3.7.1" }, "msbuild-sdks": { - "Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk": "5.0.0-beta.20510.1", - "Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.20510.1", - "Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk": "5.0.0-beta.20510.1", - "Microsoft.DotNet.Helix.Sdk": "5.0.0-beta.20510.1", + "Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk": "5.0.0-beta.21063.3", + "Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.21063.3", + "Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk": "5.0.0-beta.21063.3", + "Microsoft.DotNet.Helix.Sdk": "5.0.0-beta.21063.3", "Microsoft.FIX-85B6-MERGE-9C38-CONFLICT": "1.0.0", "Microsoft.NET.Sdk.IL": "5.0.0-preview.8.20359.4", "Microsoft.Build.NoTargets": "2.0.1", diff --git a/src/coreclr/dir.common.props b/src/coreclr/dir.common.props index b4f47d43e734ca..5de71a924cdc2d 100644 --- a/src/coreclr/dir.common.props +++ b/src/coreclr/dir.common.props @@ -41,16 +41,6 @@ $(BinDir).nuget\ - - - 5.0.0 - - - true - $(PackageVersion) - - - true diff --git a/src/coreclr/src/.nuget/packaging.props b/src/coreclr/src/.nuget/packaging.props index d9bc61f45a554d..e05fdab6e2bb59 100644 --- a/src/coreclr/src/.nuget/packaging.props +++ b/src/coreclr/src/.nuget/packaging.props @@ -25,6 +25,14 @@ $(ArtifactsObjDir)version.txt + + + false + false + $(PackageVersion) + + + (nNumberOfBytesRead); @@ -492,43 +495,42 @@ bool IpcStream::Write(const void *lpBuffer, const uint32_t nBytesToWrite, uint32 if (!fSuccess) { + DWORD dwError = GetLastError(); + // if we're waiting infinitely, only make one syscall - if (timeoutMs == InfiniteTimeout) + if (timeoutMs == InfiniteTimeout && dwError == ERROR_IO_PENDING) { fSuccess = GetOverlappedResult(_hPipe, // pipe overlap, // overlapped &nNumberOfBytesWritten, // out actual number of bytes written true) != 0; // block until async IO completes } - else + else if (dwError == ERROR_IO_PENDING) { - DWORD dwError = GetLastError(); - if (dwError == ERROR_IO_PENDING) + // Wait on overlapped IO event (triggers when async IO is complete regardless of success) + // or timeout + DWORD dwWait = WaitForSingleObject(_oOverlap.hEvent, (DWORD)timeoutMs); + if (dwWait == WAIT_OBJECT_0) { - // Wait on overlapped IO event (triggers when async IO is complete regardless of success) - // or timeout - DWORD dwWait = WaitForSingleObject(_oOverlap.hEvent, (DWORD)timeoutMs); - if (dwWait == WAIT_OBJECT_0) - { - // async IO compelted, get the result - fSuccess = GetOverlappedResult(_hPipe, // pipe - overlap, // overlapped - &nNumberOfBytesWritten, // out actual number of bytes written - true) != 0; // block until async IO completes - } - else + // async IO compelted, get the result + fSuccess = GetOverlappedResult(_hPipe, // pipe + overlap, // overlapped + &nNumberOfBytesWritten, // out actual number of bytes written + true) != 0; // block until async IO completes + } + else + { + // We either timed out or something else went wrong. + // For any error, attempt to cancel IO and ensure the cancel happened + if (CancelIoEx(_hPipe, overlap) != 0) { - // We either timed out or something else went wrong. - // For any error, attempt to cancel IO and ensure the cancel happened - if (CancelIoEx(_hPipe, overlap) != 0) - { - // check if the async write beat the cancellation - fSuccess = GetOverlappedResult(_hPipe, overlap, &nNumberOfBytesWritten, true) != 0; - // Failure here isn't recoverable, so return as such - } + // check if the async write beat the cancellation + fSuccess = GetOverlappedResult(_hPipe, overlap, &nNumberOfBytesWritten, true) != 0; + // Failure here isn't recoverable, so return as such } } } + // error is unrecoverable, so return as such } nBytesWritten = static_cast(nNumberOfBytesWritten); diff --git a/src/coreclr/src/debug/di/divalue.cpp b/src/coreclr/src/debug/di/divalue.cpp index c85e188c16b49d..2e70a306180c59 100644 --- a/src/coreclr/src/debug/di/divalue.cpp +++ b/src/coreclr/src/debug/di/divalue.cpp @@ -421,7 +421,6 @@ HRESULT CordbValue::InternalCreateHandle(CorDebugHandleType handleType, DebuggerIPCEvent event; CordbProcess *process; - BOOL fStrong = FALSE; // @dbgtodo- , as part of inspection, convert this path to throwing. if (ppHandle == NULL) @@ -431,13 +430,14 @@ HRESULT CordbValue::InternalCreateHandle(CorDebugHandleType handleType, *ppHandle = NULL; - if (handleType == HANDLE_STRONG) + switch (handleType) { - fStrong = TRUE; - } - else - { - _ASSERTE(handleType == HANDLE_WEAK_TRACK_RESURRECTION); + case HANDLE_STRONG: + case HANDLE_WEAK_TRACK_RESURRECTION: + case HANDLE_PINNED: + break; + default: + return E_INVALIDARG; } @@ -460,7 +460,7 @@ HRESULT CordbValue::InternalCreateHandle(CorDebugHandleType handleType, CORDB_ADDRESS addr = GetValueHome() != NULL ? GetValueHome()->GetAddress() : NULL; event.CreateHandle.objectToken = CORDB_ADDRESS_TO_PTR(addr); - event.CreateHandle.fStrong = fStrong; + event.CreateHandle.handleType = handleType; // Note: two-way event here... HRESULT hr = process->SendIPCEvent(&event, sizeof(DebuggerIPCEvent)); @@ -1827,6 +1827,10 @@ HRESULT CordbObjectValue::QueryInterface(REFIID id, void **pInterface) { *pInterface = static_cast(this); } + else if (id == IID_ICorDebugHeapValue4) + { + *pInterface = static_cast(this); + } else if ((id == IID_ICorDebugStringValue) && (m_info.objTypeData.elementType == ELEMENT_TYPE_STRING)) { @@ -1963,6 +1967,21 @@ HRESULT CordbObjectValue::CreateHandle( return CordbValue::InternalCreateHandle(handleType, ppHandle); } // CreateHandle +/* +* Creates a pinned handle for this heap value. +* +* Not Implemented In-Proc. +*/ +HRESULT CordbObjectValue::CreatePinnedHandle( + ICorDebugHandleValue ** ppHandle) +{ + PUBLIC_API_ENTRY(this); + FAIL_IF_NEUTERED(this); + ATT_REQUIRE_STOPPED_MAY_FAIL(GetProcess()); + + return CordbValue::InternalCreateHandle(HANDLE_PINNED, ppHandle); +} // CreatePinnedHandle + // Get class information for this object // Arguments: // output: ppClass - ICDClass instance for this object @@ -3325,6 +3344,10 @@ HRESULT CordbBoxValue::QueryInterface(REFIID id, void **pInterface) { *pInterface = static_cast(this); } + else if (id == IID_ICorDebugHeapValue4) + { + *pInterface = static_cast(this); + } else if (id == IID_IUnknown) { *pInterface = static_cast(static_cast(this)); @@ -3387,6 +3410,24 @@ HRESULT CordbBoxValue::CreateHandle( return CordbValue::InternalCreateHandle(handleType, ppHandle); } // CordbBoxValue::CreateHandle +// Creates a pinned handle for this heap value. +// Not Implemented In-Proc. +// Create a handle for a heap object. +// @todo: How to prevent this being called by non-heap object? +// Arguments: +// output: ppHandle - on success, the newly created handle +// Return Value: S_OK on success or E_INVALIDARG, E_OUTOFMEMORY, or CORDB_E_HELPER_MAY_DEADLOCK +HRESULT CordbBoxValue::CreatePinnedHandle( + ICorDebugHandleValue ** ppHandle) +{ + PUBLIC_API_ENTRY(this); + FAIL_IF_NEUTERED(this); + ATT_REQUIRE_STOPPED_MAY_FAIL(GetProcess()); + + return CordbValue::InternalCreateHandle(HANDLE_PINNED, ppHandle); +} // CreatePinnedHandle + + HRESULT CordbBoxValue::GetValue(void *pTo) { // Can't get a whole copy of a box. @@ -3565,6 +3606,10 @@ HRESULT CordbArrayValue::QueryInterface(REFIID id, void **pInterface) { *pInterface = static_cast(this); } + else if (id == IID_ICorDebugHeapValue4) + { + *pInterface = static_cast(this); + } else if (id == IID_IUnknown) { *pInterface = static_cast(static_cast(this)); @@ -3888,6 +3933,23 @@ HRESULT CordbArrayValue::CreateHandle( return CordbValue::InternalCreateHandle(handleType, ppHandle); } // CordbArrayValue::CreateHandle +/* +* Creates a pinned handle for this heap value. +* Not Implemented In-Proc. +* Arguments: +* output: ppHandle - on success, the newly created handle +* Return Value: S_OK on success or E_INVALIDARG, E_OUTOFMEMORY, or CORDB_E_HELPER_MAY_DEADLOCK +*/ +HRESULT CordbArrayValue::CreatePinnedHandle( + ICorDebugHandleValue ** ppHandle) +{ + PUBLIC_API_ENTRY(this); + FAIL_IF_NEUTERED(this); + ATT_REQUIRE_STOPPED_MAY_FAIL(GetProcess()); + + return CordbValue::InternalCreateHandle(HANDLE_PINNED, ppHandle); +} // CreatePinnedHandle + // get a copy of the array // Arguments // output: pTo - pointer to a caller-allocated and managed buffer to hold the copy. The caller must guarantee @@ -4358,14 +4420,7 @@ HRESULT CordbHandleValue::Dispose() m_appdomain->GetADToken()); event.DisposeHandle.vmObjectHandle = vmObjHandle; - if (m_handleType == HANDLE_STRONG) - { - event.DisposeHandle.fStrong = TRUE; - } - else - { - event.DisposeHandle.fStrong = FALSE; - } + event.DisposeHandle.handleType = m_handleType; // Note: one-way event here... hr = process->SendIPCEvent(&event, sizeof(DebuggerIPCEvent)); diff --git a/src/coreclr/src/debug/di/module.cpp b/src/coreclr/src/debug/di/module.cpp index 39f306f7c0f4a8..ac77f75c8274f4 100644 --- a/src/coreclr/src/debug/di/module.cpp +++ b/src/coreclr/src/debug/di/module.cpp @@ -2758,6 +2758,7 @@ HRESULT CordbModule::GetJITCompilerFlags(DWORD *pdwFlags ) HRESULT CordbModule::IsMappedLayout(BOOL *isMapped) { + PUBLIC_API_ENTRY(this); VALIDATE_POINTER_TO_OBJECT(isMapped, BOOL*); FAIL_IF_NEUTERED(this); @@ -2765,11 +2766,12 @@ HRESULT CordbModule::IsMappedLayout(BOOL *isMapped) CordbProcess *pProcess = GetProcess(); ATT_REQUIRE_STOPPED_MAY_FAIL(pProcess); - PUBLIC_API_BEGIN(pProcess); + + EX_TRY { hr = pProcess->GetDAC()->IsModuleMapped(m_vmModule, isMapped); } - PUBLIC_API_END(hr); + EX_CATCH_HRESULT(hr); return hr; } diff --git a/src/coreclr/src/debug/di/process.cpp b/src/coreclr/src/debug/di/process.cpp index bb09213c555319..badcd863d47b36 100644 --- a/src/coreclr/src/debug/di/process.cpp +++ b/src/coreclr/src/debug/di/process.cpp @@ -2169,10 +2169,6 @@ HRESULT CordbProcess::QueryInterface(REFIID id, void **pInterface) { *pInterface = static_cast(this); } - else if (id == IID_ICorDebugProcess10) - { - *pInterface = static_cast(this); - } else if (id == IID_ICorDebugProcess11) { *pInterface = static_cast(this); diff --git a/src/coreclr/src/debug/di/rspriv.h b/src/coreclr/src/debug/di/rspriv.h index 4dc93ebf731729..57fb0ecf0b294b 100644 --- a/src/coreclr/src/debug/di/rspriv.h +++ b/src/coreclr/src/debug/di/rspriv.h @@ -2935,7 +2935,6 @@ class CordbProcess : public ICorDebugProcess5, public ICorDebugProcess7, public ICorDebugProcess8, - public ICorDebugProcess10, public ICorDebugProcess11, public IDacDbiInterface::IAllocator, public IDacDbiInterface::IMetaDataLookup, @@ -3146,7 +3145,7 @@ class CordbProcess : COM_METHOD EnableExceptionCallbacksOutsideOfMyCode(BOOL enableExceptionsOutsideOfJMC); //----------------------------------------------------------- - // ICorDebugProcess10 + // ICorDebugProcess10 (To be removed in .NET 6, in a separate cleanup PR) //----------------------------------------------------------- COM_METHOD EnableGCNotificationEvents(BOOL fEnable); @@ -9168,6 +9167,7 @@ class CordbObjectValue : public CordbValue, public ICorDebugValue3, public ICorDebugHeapValue2, public ICorDebugHeapValue3, + public ICorDebugHeapValue4, public ICorDebugExceptionObjectValue, public ICorDebugComObjectValue, public ICorDebugDelegateObjectValue @@ -9243,6 +9243,11 @@ class CordbObjectValue : public CordbValue, COM_METHOD GetThreadOwningMonitorLock(ICorDebugThread **ppThread, DWORD *pAcquisitionCount); COM_METHOD GetMonitorEventWaitList(ICorDebugThreadEnum **ppThreadEnum); + //----------------------------------------------------------- + // ICorDebugHeapValue4 + //----------------------------------------------------------- + COM_METHOD CreatePinnedHandle(ICorDebugHandleValue ** ppHandle); + //----------------------------------------------------------- // ICorDebugObjectValue //----------------------------------------------------------- @@ -9492,7 +9497,8 @@ class CordbBoxValue : public CordbValue, public ICorDebugValue2, public ICorDebugValue3, public ICorDebugHeapValue2, - public ICorDebugHeapValue3 + public ICorDebugHeapValue3, + public ICorDebugHeapValue4 { public: CordbBoxValue(CordbAppDomain * appdomain, @@ -9582,6 +9588,11 @@ class CordbBoxValue : public CordbValue, COM_METHOD GetThreadOwningMonitorLock(ICorDebugThread **ppThread, DWORD *pAcquisitionCount); COM_METHOD GetMonitorEventWaitList(ICorDebugThreadEnum **ppThreadEnum); + //----------------------------------------------------------- + // ICorDebugHeapValue4 + //----------------------------------------------------------- + COM_METHOD CreatePinnedHandle(ICorDebugHandleValue ** ppHandle); + //----------------------------------------------------------- // ICorDebugGenericValue //----------------------------------------------------------- @@ -9620,7 +9631,8 @@ class CordbArrayValue : public CordbValue, public ICorDebugValue2, public ICorDebugValue3, public ICorDebugHeapValue2, - public ICorDebugHeapValue3 + public ICorDebugHeapValue3, + public ICorDebugHeapValue4 { public: CordbArrayValue(CordbAppDomain * appdomain, @@ -9706,6 +9718,11 @@ class CordbArrayValue : public CordbValue, COM_METHOD GetThreadOwningMonitorLock(ICorDebugThread **ppThread, DWORD *pAcquisitionCount); COM_METHOD GetMonitorEventWaitList(ICorDebugThreadEnum **ppThreadEnum); + //----------------------------------------------------------- + // ICorDebugHeapValue4 + //----------------------------------------------------------- + COM_METHOD CreatePinnedHandle(ICorDebugHandleValue ** ppHandle); + //----------------------------------------------------------- // ICorDebugArrayValue //----------------------------------------------------------- diff --git a/src/coreclr/src/debug/ee/controller.cpp b/src/coreclr/src/debug/ee/controller.cpp index 81d7ad6c60428c..6159a70d3e6aeb 100644 --- a/src/coreclr/src/debug/ee/controller.cpp +++ b/src/coreclr/src/debug/ee/controller.cpp @@ -2708,10 +2708,21 @@ DPOSS_ACTION DebuggerController::ScanForTriggers(CORDB_ADDRESS_TYPE *address, #ifdef FEATURE_DATABREAKPOINT if (stWhat & ST_SINGLE_STEP && tpr != TPR_TRIGGER_ONLY_THIS && - DebuggerDataBreakpoint::TriggerDataBreakpoint(thread, context)) + DebuggerDataBreakpoint::IsDataBreakpoint(thread, context)) { - DebuggerDataBreakpoint *pDataBreakpoint = new (interopsafe) DebuggerDataBreakpoint(thread); - pDcq->dcqEnqueue(pDataBreakpoint, FALSE); + if (g_pDebugger->m_isSuspendedForGarbageCollection) + { + // The debugger is not interested in Data Breakpoints during garbage collection + // We can safely ignore them since the Data Breakpoints are now on pinned objects + LOG((LF_CORDB, LL_INFO10000, "D:DDBP: Ignoring data breakpoint while suspended for GC \n")); + + used = DPOSS_USED_WITH_NO_EVENT; + } + else if(DebuggerDataBreakpoint::TriggerDataBreakpoint(thread, context)) + { + DebuggerDataBreakpoint *pDataBreakpoint = new (interopsafe) DebuggerDataBreakpoint(thread); + pDcq->dcqEnqueue(pDataBreakpoint, FALSE); + } } #endif @@ -8995,12 +9006,9 @@ bool DebuggerContinuableExceptionBreakpoint::SendEvent(Thread *thread, bool fIpC #ifdef FEATURE_DATABREAKPOINT -/* static */ bool DebuggerDataBreakpoint::TriggerDataBreakpoint(Thread *thread, CONTEXT * pContext) +/* static */ bool DebuggerDataBreakpoint::IsDataBreakpoint(Thread *thread, CONTEXT * pContext) { - LOG((LF_CORDB, LL_INFO10000, "D::DDBP: Doing TriggerDataBreakpoint...\n")); - bool hitDataBp = false; - bool result = false; #ifdef TARGET_UNIX #error Not supported #endif // TARGET_UNIX @@ -9014,6 +9022,15 @@ bool DebuggerContinuableExceptionBreakpoint::SendEvent(Thread *thread, bool fIpC #else // defined(TARGET_X86) || defined(TARGET_AMD64) #error Not supported #endif // defined(TARGET_X86) || defined(TARGET_AMD64) + return hitDataBp; +} + +/* static */ bool DebuggerDataBreakpoint::TriggerDataBreakpoint(Thread *thread, CONTEXT * pContext) +{ + LOG((LF_CORDB, LL_INFO10000, "D::DDBP: Doing TriggerDataBreakpoint...\n")); + + bool hitDataBp = IsDataBreakpoint(thread, pContext); + bool result = false; if (hitDataBp) { if (g_pDebugger->IsThreadAtSafePlace(thread)) diff --git a/src/coreclr/src/debug/ee/controller.h b/src/coreclr/src/debug/ee/controller.h index 8d87e9dc257303..9bcfc8682f7b2c 100644 --- a/src/coreclr/src/debug/ee/controller.h +++ b/src/coreclr/src/debug/ee/controller.h @@ -1811,6 +1811,7 @@ class DebuggerDataBreakpoint : public DebuggerController return true; } + static bool IsDataBreakpoint(Thread *thread, CONTEXT * pContext); static bool TriggerDataBreakpoint(Thread *thread, CONTEXT * pContext); }; diff --git a/src/coreclr/src/debug/ee/debugger.cpp b/src/coreclr/src/debug/ee/debugger.cpp index 5ead858581acac..2bb655e65e5578 100644 --- a/src/coreclr/src/debug/ee/debugger.cpp +++ b/src/coreclr/src/debug/ee/debugger.cpp @@ -935,6 +935,7 @@ Debugger::Debugger() m_forceNonInterceptable(FALSE), m_pLazyData(NULL), m_defines(_defines), + m_isSuspendedForGarbageCollection(FALSE), m_isBlockedOnGarbageCollectionEvent(FALSE), m_willBlockOnGarbageCollectionEvent(FALSE), m_isGarbageCollectionEventsEnabled(FALSE), @@ -6001,6 +6002,7 @@ void Debugger::SuspendForGarbageCollectionCompleted() } CONTRACTL_END; + this->m_isSuspendedForGarbageCollection = TRUE; if (!CORDebuggerAttached() || !this->m_isGarbageCollectionEventsEnabledLatch) { return; @@ -6038,6 +6040,8 @@ void Debugger::ResumeForGarbageCollectionStarted() } CONTRACTL_END; + this->m_isSuspendedForGarbageCollection = FALSE; + if (!CORDebuggerAttached() || !this->m_isGarbageCollectionEventsEnabledLatch) { return; @@ -11369,7 +11373,7 @@ bool Debugger::HandleIPCEvent(DebuggerIPCEvent * pEvent) Object * pObject = (Object*)pEvent->CreateHandle.objectToken; OBJECTREF objref = ObjectToOBJECTREF(pObject); AppDomain * pAppDomain = pEvent->vmAppDomain.GetRawPtr(); - BOOL fStrong = pEvent->CreateHandle.fStrong; + CorDebugHandleType handleType = pEvent->CreateHandle.handleType; OBJECTHANDLE objectHandle; // This is a synchronous event (reply required) @@ -11385,17 +11389,27 @@ bool Debugger::HandleIPCEvent(DebuggerIPCEvent * pEvent) if (SUCCEEDED(pEvent->hr)) { - if (fStrong == TRUE) - { - // create strong handle - objectHandle = pAppDomain->CreateStrongHandle(objref); - } - else - { + switch (handleType) + { + case HANDLE_STRONG: + // create strong handle + objectHandle = pAppDomain->CreateStrongHandle(objref); + break; + case HANDLE_WEAK_TRACK_RESURRECTION: // create the weak long handle objectHandle = pAppDomain->CreateLongWeakHandle(objref); - } - pEvent->CreateHandleResult.vmObjectHandle.SetRawPtr(objectHandle); + break; + case HANDLE_PINNED: + // create pinning handle + objectHandle = pAppDomain->CreatePinningHandle(objref); + break; + default: + pEvent->hr = E_INVALIDARG; + } + } + if (SUCCEEDED(pEvent->hr)) + { + pEvent->CreateHandleResult.vmObjectHandle.SetRawPtr(objectHandle); } } @@ -11407,14 +11421,21 @@ bool Debugger::HandleIPCEvent(DebuggerIPCEvent * pEvent) { // DISPOSE an object handle OBJECTHANDLE objectHandle = pEvent->DisposeHandle.vmObjectHandle.GetRawPtr(); + CorDebugHandleType handleType = pEvent->DisposeHandle.handleType; - if (pEvent->DisposeHandle.fStrong == TRUE) + switch (handleType) { + case HANDLE_STRONG: DestroyStrongHandle(objectHandle); - } - else - { + break; + case HANDLE_WEAK_TRACK_RESURRECTION: DestroyLongWeakHandle(objectHandle); + break; + case HANDLE_PINNED: + DestroyPinningHandle(objectHandle); + break; + default: + pEvent->hr = E_INVALIDARG; } break; } diff --git a/src/coreclr/src/debug/ee/debugger.h b/src/coreclr/src/debug/ee/debugger.h index 6c113315852b13..7218819e5a2366 100644 --- a/src/coreclr/src/debug/ee/debugger.h +++ b/src/coreclr/src/debug/ee/debugger.h @@ -2919,6 +2919,7 @@ class Debugger : public DebugInterface virtual void SuspendForGarbageCollectionCompleted(); virtual void ResumeForGarbageCollectionStarted(); #endif + BOOL m_isSuspendedForGarbageCollection; BOOL m_isBlockedOnGarbageCollectionEvent; BOOL m_willBlockOnGarbageCollectionEvent; BOOL m_isGarbageCollectionEventsEnabled; diff --git a/src/coreclr/src/debug/inc/dbgipcevents.h b/src/coreclr/src/debug/inc/dbgipcevents.h index 6fd2cf197c65af..ecc8b2cc5ec64f 100644 --- a/src/coreclr/src/debug/inc/dbgipcevents.h +++ b/src/coreclr/src/debug/inc/dbgipcevents.h @@ -2297,8 +2297,8 @@ struct MSLAYOUT DebuggerIPCEvent struct MSLAYOUT { - void *objectToken; - BOOL fStrong; + void *objectToken; + CorDebugHandleType handleType; } CreateHandle; struct MSLAYOUT @@ -2310,7 +2310,7 @@ struct MSLAYOUT DebuggerIPCEvent struct MSLAYOUT { VMPTR_OBJECTHANDLE vmObjectHandle; - BOOL fStrong; + CorDebugHandleType handleType; } DisposeHandle; struct MSLAYOUT diff --git a/src/coreclr/src/gc/unix/cgroup.cpp b/src/coreclr/src/gc/unix/cgroup.cpp index 00ebc14a9492d2..d61026f1c828f5 100644 --- a/src/coreclr/src/gc/unix/cgroup.cpp +++ b/src/coreclr/src/gc/unix/cgroup.cpp @@ -66,8 +66,8 @@ class CGroup static void Initialize() { s_cgroup_version = FindCGroupVersion(); - s_memory_cgroup_path = FindCGroupPath(&IsCGroup1MemorySubsystem); - s_cpu_cgroup_path = FindCGroupPath(&IsCGroup1CpuSubsystem); + s_memory_cgroup_path = FindCGroupPath(s_cgroup_version == 1 ? &IsCGroup1MemorySubsystem : nullptr); + s_cpu_cgroup_path = FindCGroupPath(s_cgroup_version == 1 ? &IsCGroup1CpuSubsystem : nullptr); } static void Cleanup() @@ -257,12 +257,19 @@ class CGroup if (strncmp(filesystemType, "cgroup", 6) == 0) { - char* context = nullptr; - char* strTok = strtok_r(options, ",", &context); - while (strTok != nullptr) + bool isSubsystemMatch = is_subsystem == nullptr; + if (!isSubsystemMatch) { - if ((s_cgroup_version == 2) || ((s_cgroup_version == 1) && is_subsystem(strTok))) + char* context = nullptr; + char* strTok = strtok_r(options, ",", &context); + while (!isSubsystemMatch && strTok != nullptr) { + isSubsystemMatch = is_subsystem(strTok); + strTok = strtok_r(nullptr, ",", &context); + } + } + if (isSubsystemMatch) + { mountpath = (char*)malloc(lineLen+1); if (mountpath == nullptr) goto done; @@ -281,9 +288,6 @@ class CGroup *pmountpath = mountpath; *pmountroot = mountroot; mountpath = mountroot = nullptr; - goto done; - } - strTok = strtok_r(nullptr, ",", &context); } } } diff --git a/src/coreclr/src/inc/cordebug.idl b/src/coreclr/src/inc/cordebug.idl index efecf3b55063c3..66862c7c2b8b1c 100644 --- a/src/coreclr/src/inc/cordebug.idl +++ b/src/coreclr/src/inc/cordebug.idl @@ -159,6 +159,7 @@ interface ICorDebugReferenceValue; interface ICorDebugHeapValue; interface ICorDebugHeapValue2; interface ICorDebugHeapValue3; +interface ICorDebugHeapValue4; interface ICorDebugHandleValue; interface ICorDebugObjectValue; interface ICorDebugStringValue; @@ -1603,13 +1604,15 @@ typedef enum CorDebugCreateProcessFlags /* ICorDebugHeapValue::CreateHandle takes a handle flavor. - * A strong handle will keep an object alive while a weak track resurrection - * will not. + * - A strong handle will keep an object alive while allowing GC relocation + * - A weak handle will not keep an object alive + * - A pinned handle will keep an object alive and disallow GC relocation */ typedef enum CorDebugHandleType { HANDLE_STRONG = 1, - HANDLE_WEAK_TRACK_RESURRECTION = 2 + HANDLE_WEAK_TRACK_RESURRECTION = 2, + HANDLE_PINNED = 3 } CorDebugHandleType; #pragma warning(push) @@ -3304,6 +3307,9 @@ interface ICorDebugProcess10 : IUnknown // Enable or disable the GC notification events. The GC notification events are turned off by default // They will be delivered through ICorDebugManagedCallback4 // + // This interface is deprecated. The EnableGCNotificationEvents(true) occasionally deadlocked debug sessions + // in .NET Core 5.0 and later. Please use the IID_ICorDebugHeapValue4 to pin an object and prevent its relocation + // // Parameters // fEnable - true to enable the events, false to disable // @@ -6472,6 +6478,27 @@ interface ICorDebugHeapValue3 : IUnknown HRESULT GetMonitorEventWaitList([out] ICorDebugThreadEnum **ppThreadEnum); }; +/* + * ICorDebugHeapValue4 + */ + +[ + object, + local, + uuid(B35DD495-A555-463B-9BE9-C55338486BB8), + pointer_default(unique) +] +interface ICorDebugHeapValue4 : IUnknown +{ + + /* + * Creates a handle of the given type for this heap value. + * + */ + HRESULT CreatePinnedHandle([out] ICorDebugHandleValue ** ppHandle); + +}; + /* * ICorDebugObjectValue is a subclass of ICorDebugValue which applies to * values which contain an object. diff --git a/src/coreclr/src/interop/comwrappers.cpp b/src/coreclr/src/interop/comwrappers.cpp index a7d4db77698027..f39472778cdb91 100644 --- a/src/coreclr/src/interop/comwrappers.cpp +++ b/src/coreclr/src/interop/comwrappers.cpp @@ -223,12 +223,10 @@ namespace namespace { const int32_t TrackerRefShift = 32; - const ULONGLONG TrackerRefCounter = ULONGLONG{ 1 } << TrackerRefShift; - const ULONGLONG ComRefCounter = ULONGLONG{ 1 }; - const ULONGLONG TrackerRefZero = 0x0000000080000000; + const ULONGLONG TrackerRefCounter = ULONGLONG{ 1 } << TrackerRefShift; + const ULONGLONG DestroySentinel = 0x0000000080000000; const ULONGLONG TrackerRefCountMask = 0xffffffff00000000; const ULONGLONG ComRefCountMask = 0x000000007fffffff; - const ULONGLONG RefCountMask = 0xffffffff7fffffff; constexpr ULONG GetTrackerCount(_In_ ULONGLONG c) { @@ -419,11 +417,29 @@ HRESULT ManagedObjectWrapper::Create( void ManagedObjectWrapper::Destroy(_In_ ManagedObjectWrapper* wrapper) { _ASSERTE(wrapper != nullptr); + _ASSERTE(GetComCount(wrapper->_refCount) == 0); - // Manually trigger the destructor since placement - // new was used to allocate the object. - wrapper->~ManagedObjectWrapper(); - InteropLibImports::MemFree(wrapper, AllocScenario::ManagedObjectWrapper); + // Attempt to set the destroyed bit. + LONGLONG refCount; + LONGLONG prev; + do + { + prev = wrapper->_refCount; + refCount = prev | DestroySentinel; + } while (::InterlockedCompareExchange64(&wrapper->_refCount, refCount, prev) != prev); + + // The destroy sentinel represents the bit that indicates the wrapper + // should be destroyed. Since the reference count field (64-bit) holds + // two counters we rely on the singular sentinal value - no other bits + // in the 64-bit counter are set. If there are outstanding bits set it + // indicates there are still outstanding references. + if (refCount == DestroySentinel) + { + // Manually trigger the destructor since placement + // new was used to allocate the object. + wrapper->~ManagedObjectWrapper(); + InteropLibImports::MemFree(wrapper, AllocScenario::ManagedObjectWrapper); + } } ManagedObjectWrapper::ManagedObjectWrapper( @@ -449,48 +465,9 @@ ManagedObjectWrapper::ManagedObjectWrapper( ManagedObjectWrapper::~ManagedObjectWrapper() { - // If the target isn't null, then a managed object - // is going to leak. - _ASSERTE(Target == nullptr); -} - -ULONGLONG ManagedObjectWrapper::UniversalRelease(_In_ ULONGLONG dec) -{ - OBJECTHANDLE local = Target; - - LONGLONG refCount; - if (dec == ComRefCounter) - { - _ASSERTE(dec == 1); - refCount = ::InterlockedDecrement64(&_refCount); - } - else - { - _ASSERTE(dec == TrackerRefCounter); - LONGLONG prev; - do - { - prev = _refCount; - refCount = prev - dec; - } while (::InterlockedCompareExchange64(&_refCount, refCount, prev) != prev); - } - - // It is possible that a target wasn't set during an - // attempt to reactive the wrapper. - if ((RefCountMask & refCount) == 0 && local != nullptr) - { - _ASSERTE(!IsSet(CreateComInterfaceFlagsEx::IsPegged)); - _ASSERTE(refCount == TrackerRefZero || refCount == 0); - - // Attempt to reset the target if its current value is the same. - // It is possible the wrapper is in the middle of being reactivated. - (void)TrySetObjectHandle(nullptr, local); - - // Tell the runtime to delete the managed object instance handle. - InteropLibImports::DeleteObjectInstanceHandle(local); - } - - return refCount; + // If the target isn't null, then release it. + if (Target != nullptr) + InteropLibImports::DeleteObjectInstanceHandle(Target); } void* ManagedObjectWrapper::AsRuntimeDefined(_In_ REFIID riid) @@ -551,16 +528,18 @@ void ManagedObjectWrapper::ResetFlag(_In_ CreateComInterfaceFlagsEx flag) ::InterlockedAnd((LONG*)&_flags, resetMask); } -ULONG ManagedObjectWrapper::IsActiveAddRef() +bool ManagedObjectWrapper::IsRooted() const { - ULONG count = GetComCount(::InterlockedIncrement64(&_refCount)); - if (count == 1) + bool rooted = GetComCount(_refCount) > 0; + if (!rooted) { - // Ensure the current target is null. - ::InterlockedExchangePointer(&Target, nullptr); + // Only consider tracker ref count to be a "strong" ref count if it is pegged and alive. + rooted = (GetTrackerCount(_refCount) > 0) + && (IsSet(CreateComInterfaceFlagsEx::IsPegged) + || InteropLibImports::GetGlobalPeggingState()); } - return count; + return rooted; } ULONG ManagedObjectWrapper::AddRefFromReferenceTracker() @@ -578,7 +557,29 @@ ULONG ManagedObjectWrapper::AddRefFromReferenceTracker() ULONG ManagedObjectWrapper::ReleaseFromReferenceTracker() { - return GetTrackerCount(UniversalRelease(TrackerRefCounter)); + if (GetTrackerCount(_refCount) == 0) + { + _ASSERTE(!"Over release of MOW - ReferenceTracker"); + return (ULONG)-1; + } + + LONGLONG refCount; + LONGLONG prev; + do + { + prev = _refCount; + refCount = prev - TrackerRefCounter; + } while (::InterlockedCompareExchange64(&_refCount, refCount, prev) != prev); + + // If we observe the destroy sentinel, then this release + // must destroy the wrapper. + if (refCount == DestroySentinel) + { + _ASSERTE(!IsSet(CreateComInterfaceFlagsEx::IsPegged)); + Destroy(this); + } + + return GetTrackerCount(refCount); } HRESULT ManagedObjectWrapper::Peg() @@ -652,12 +653,20 @@ HRESULT ManagedObjectWrapper::QueryInterface( ULONG ManagedObjectWrapper::AddRef(void) { + _ASSERTE((_refCount & DestroySentinel) == 0); return GetComCount(::InterlockedIncrement64(&_refCount)); } ULONG ManagedObjectWrapper::Release(void) { - return GetComCount(UniversalRelease(ComRefCounter)); + _ASSERTE((_refCount & DestroySentinel) == 0); + if (GetComCount(_refCount) == 0) + { + _ASSERTE(!"Over release of MOW - COM"); + return (ULONG)-1; + } + + return GetComCount(::InterlockedDecrement64(&_refCount)); } namespace @@ -684,12 +693,19 @@ NativeObjectWrapperContext* NativeObjectWrapperContext::MapFromRuntimeContext(_I HRESULT NativeObjectWrapperContext::Create( _In_ IUnknown* external, + _In_opt_ IUnknown* inner, _In_ InteropLib::Com::CreateObjectFlags flags, _In_ size_t runtimeContextSize, _Outptr_ NativeObjectWrapperContext** context) { _ASSERTE(external != nullptr && context != nullptr); + // Aggregated inners are only currently supported for Aggregated + // scenarios involving IReferenceTracker. + _ASSERTE(inner == nullptr + || ((flags & InteropLib::Com::CreateObjectFlags_TrackerObject) + && (flags & InteropLib::Com::CreateObjectFlags_Aggregated))); + HRESULT hr; ComHolder trackerObject; @@ -710,7 +726,7 @@ HRESULT NativeObjectWrapperContext::Create( // Contract specifically requires zeroing out runtime context. ::memset(runtimeContext, 0, runtimeContextSize); - NativeObjectWrapperContext* contextLocal = new (cxtMem) NativeObjectWrapperContext{ runtimeContext, trackerObject }; + NativeObjectWrapperContext* contextLocal = new (cxtMem) NativeObjectWrapperContext{ runtimeContext, trackerObject, inner }; if (trackerObject != nullptr) { @@ -722,6 +738,13 @@ HRESULT NativeObjectWrapperContext::Create( Destroy(contextLocal); return hr; } + + // Aggregation with a tracker object must be "cleaned up". + if (flags & InteropLib::Com::CreateObjectFlags_Aggregated) + { + _ASSERTE(inner != nullptr); + contextLocal->HandleReferenceTrackerAggregation(); + } } *context = contextLocal; @@ -732,21 +755,48 @@ void NativeObjectWrapperContext::Destroy(_In_ NativeObjectWrapperContext* wrappe { _ASSERTE(wrapper != nullptr); + // Check if the tracker object manager should be informed prior to being destroyed. + IReferenceTracker* trackerMaybe = wrapper->GetReferenceTracker(); + if (trackerMaybe != nullptr) + { + // We only call this during a GC so ignore the failure as + // there is no way we can handle it at this point. + HRESULT hr = TrackerObjectManager::BeforeWrapperDestroyed(trackerMaybe); + _ASSERTE(SUCCEEDED(hr)); + (void)hr; + } + // Manually trigger the destructor since placement // new was used to allocate the object. wrapper->~NativeObjectWrapperContext(); InteropLibImports::MemFree(wrapper, AllocScenario::NativeObjectWrapper); } -NativeObjectWrapperContext::NativeObjectWrapperContext(_In_ void* runtimeContext, _In_opt_ IReferenceTracker* trackerObject) +namespace +{ + // State ownership mechanism. + enum : int + { + TrackerObjectState_NotSet = 0, + TrackerObjectState_SetNoRelease = 1, + TrackerObjectState_SetForRelease = 2, + }; +} + +NativeObjectWrapperContext::NativeObjectWrapperContext( + _In_ void* runtimeContext, + _In_opt_ IReferenceTracker* trackerObject, + _In_opt_ IUnknown* nativeObjectAsInner) : _trackerObject{ trackerObject } , _runtimeContext{ runtimeContext } - , _isValidTracker{ (trackerObject != nullptr ? TRUE : FALSE) } + , _trackerObjectDisconnected{ FALSE } + , _trackerObjectState{ (trackerObject == nullptr ? TrackerObjectState_NotSet : TrackerObjectState_SetForRelease) } + , _nativeObjectAsInner{ nativeObjectAsInner } #ifdef _DEBUG , _sentinel{ LiveContextSentinel } #endif { - if (_isValidTracker == TRUE) + if (_trackerObjectState == TrackerObjectState_SetForRelease) (void)_trackerObject->AddRef(); } @@ -754,6 +804,10 @@ NativeObjectWrapperContext::~NativeObjectWrapperContext() { DisconnectTracker(); + // If the inner was supplied, we need to release our reference. + if (_nativeObjectAsInner != nullptr) + (void)_nativeObjectAsInner->Release(); + #ifdef _DEBUG _sentinel = DeadContextSentinel; #endif @@ -766,12 +820,43 @@ void* NativeObjectWrapperContext::GetRuntimeContext() const noexcept IReferenceTracker* NativeObjectWrapperContext::GetReferenceTracker() const noexcept { - return ((_isValidTracker == TRUE) ? _trackerObject : nullptr); + return ((_trackerObjectState == TrackerObjectState_NotSet) ? nullptr : _trackerObject); } +// See TrackerObjectManager::AfterWrapperCreated() for AddRefFromTrackerSource() usage. +// See NativeObjectWrapperContext::HandleReferenceTrackerAggregation() for additional +// cleanup logistics. void NativeObjectWrapperContext::DisconnectTracker() noexcept { - // Attempt to disconnect from the tracker. - if (TRUE == ::InterlockedCompareExchange((LONG*)&_isValidTracker, FALSE, TRUE)) + // Return if already disconnected or the tracker isn't set. + if (FALSE != ::InterlockedCompareExchange((LONG*)&_trackerObjectDisconnected, TRUE, FALSE) + || _trackerObjectState == TrackerObjectState_NotSet) + { + return; + } + + _ASSERTE(_trackerObject != nullptr); + + // Always release the tracker source during a disconnect. + // This to account for the implied IUnknown ownership by the runtime. + (void)_trackerObject->ReleaseFromTrackerSource(); // IUnknown + + // Disconnect from the tracker. + if (_trackerObjectState == TrackerObjectState_SetForRelease) + { + (void)_trackerObject->ReleaseFromTrackerSource(); // IReferenceTracker (void)_trackerObject->Release(); + } +} + +void NativeObjectWrapperContext::HandleReferenceTrackerAggregation() noexcept +{ + _ASSERTE(_trackerObjectState == TrackerObjectState_SetForRelease && _trackerObject != nullptr); + + // Aggregation with an IReferenceTracker instance creates an extra AddRef() + // on the outer (e.g. MOW) so we clean up that issue here. + _trackerObjectState = TrackerObjectState_SetNoRelease; + + (void)_trackerObject->ReleaseFromTrackerSource(); // IReferenceTracker + (void)_trackerObject->Release(); } diff --git a/src/coreclr/src/interop/comwrappers.hpp b/src/coreclr/src/interop/comwrappers.hpp index 3ae91d8a88c7d4..e4d849a562574a 100644 --- a/src/coreclr/src/interop/comwrappers.hpp +++ b/src/coreclr/src/interop/comwrappers.hpp @@ -82,10 +82,6 @@ class ManagedObjectWrapper ~ManagedObjectWrapper(); - // Represents a single implementation of how to release - // the wrapper. Supplied with a decrementing value. - ULONGLONG UniversalRelease(_In_ ULONGLONG dec); - // Query the runtime defined tables. void* AsRuntimeDefined(_In_ REFIID riid); @@ -102,8 +98,8 @@ class ManagedObjectWrapper void SetFlag(_In_ CreateComInterfaceFlagsEx flag); void ResetFlag(_In_ CreateComInterfaceFlagsEx flag); - // Used while validating wrapper is active. - ULONG IsActiveAddRef(); + // Indicate if the wrapper should be considered a GC root. + bool IsRooted() const; public: // IReferenceTrackerTarget ULONG AddRefFromReferenceTracker(); @@ -139,7 +135,9 @@ class NativeObjectWrapperContext { IReferenceTracker* _trackerObject; void* _runtimeContext; - Volatile _isValidTracker; + Volatile _trackerObjectDisconnected; + int _trackerObjectState; + IUnknown* _nativeObjectAsInner; #ifdef _DEBUG size_t _sentinel; @@ -151,6 +149,7 @@ class NativeObjectWrapperContext // Create a NativeObjectWrapperContext instance static HRESULT NativeObjectWrapperContext::Create( _In_ IUnknown* external, + _In_opt_ IUnknown* nativeObjectAsInner, _In_ InteropLib::Com::CreateObjectFlags flags, _In_ size_t runtimeContextSize, _Outptr_ NativeObjectWrapperContext** context); @@ -159,7 +158,7 @@ class NativeObjectWrapperContext static void Destroy(_In_ NativeObjectWrapperContext* wrapper); private: - NativeObjectWrapperContext(_In_ void* runtimeContext, _In_opt_ IReferenceTracker* trackerObject); + NativeObjectWrapperContext(_In_ void* runtimeContext, _In_opt_ IReferenceTracker* trackerObject, _In_opt_ IUnknown* nativeObjectAsInner); ~NativeObjectWrapperContext(); public: @@ -171,6 +170,9 @@ class NativeObjectWrapperContext // Disconnect reference tracker instance. void DisconnectTracker() noexcept; + +private: + void HandleReferenceTrackerAggregation() noexcept; }; // Manage native object wrappers that support IReferenceTracker. diff --git a/src/coreclr/src/interop/inc/interoplib.h b/src/coreclr/src/interop/inc/interoplib.h index a1f32b99ecdb23..39ceadfbb809c9 100644 --- a/src/coreclr/src/interop/inc/interoplib.h +++ b/src/coreclr/src/interop/inc/interoplib.h @@ -38,11 +38,8 @@ namespace InteropLib // Destroy the supplied wrapper void DestroyWrapperForObject(_In_ void* wrapper) noexcept; - // Check if a wrapper is active. - HRESULT IsActiveWrapper(_In_ IUnknown* wrapper) noexcept; - - // Reactivate the supplied wrapper. - HRESULT ReactivateWrapper(_In_ IUnknown* wrapper, _In_ InteropLib::OBJECTHANDLE handle) noexcept; + // Check if a wrapper is considered a GC root. + HRESULT IsWrapperRooted(_In_ IUnknown* wrapper) noexcept; // Get the object for the supplied wrapper HRESULT GetObjectForWrapper(_In_ IUnknown* wrapper, _Outptr_result_maybenull_ OBJECTHANDLE* object) noexcept; @@ -58,6 +55,9 @@ namespace InteropLib // See https://docs.microsoft.com/windows/win32/api/windows.ui.xaml.hosting.referencetracker/ // for details. bool FromTrackerRuntime; + + // The supplied external object is wrapping a managed object. + bool ManagedObjectWrapper; }; // See CreateObjectFlags in ComWrappers.cs @@ -66,13 +66,21 @@ namespace InteropLib CreateObjectFlags_None = 0, CreateObjectFlags_TrackerObject = 1, CreateObjectFlags_UniqueInstance = 2, + CreateObjectFlags_Aggregated = 4, }; + // Get the true identity for the supplied IUnknown. + HRESULT GetIdentityForCreateWrapperForExternal( + _In_ IUnknown* external, + _In_ enum CreateObjectFlags flags, + _Outptr_ IUnknown** identity) noexcept; + // Allocate a wrapper context for an external object. // The runtime supplies the external object, flags, and a memory // request in order to bring the object into the runtime. HRESULT CreateWrapperForExternal( _In_ IUnknown* external, + _In_opt_ IUnknown* inner, _In_ enum CreateObjectFlags flags, _In_ size_t contextSize, _Out_ ExternalWrapperResult* result) noexcept; diff --git a/src/coreclr/src/interop/interoplib.cpp b/src/coreclr/src/interop/interoplib.cpp index f730817dea3175..9aff8c2bb335c1 100644 --- a/src/coreclr/src/interop/interoplib.cpp +++ b/src/coreclr/src/interop/interoplib.cpp @@ -54,53 +54,26 @@ namespace InteropLib ManagedObjectWrapper::Destroy(wrapper); } - HRESULT IsActiveWrapper(_In_ IUnknown* wrapperMaybe) noexcept + HRESULT IsWrapperRooted(_In_ IUnknown* wrapperMaybe) noexcept { ManagedObjectWrapper* wrapper = ManagedObjectWrapper::MapFromIUnknown(wrapperMaybe); if (wrapper == nullptr) return E_INVALIDARG; - ULONG count = wrapper->IsActiveAddRef(); - if (count == 1 || wrapper->Target == nullptr) - { - // The wrapper isn't active. - (void)wrapper->Release(); - return S_FALSE; - } - - return S_OK; - } - - HRESULT ReactivateWrapper(_In_ IUnknown* wrapperMaybe, _In_ OBJECTHANDLE handle) noexcept - { - ManagedObjectWrapper* wrapper = ManagedObjectWrapper::MapFromIUnknown(wrapperMaybe); - if (wrapper == nullptr || handle == nullptr) - return E_INVALIDARG; - - // Take an AddRef() as an indication of ownership. - (void)wrapper->AddRef(); - - // If setting this object handle fails, then the race - // was lost and we will cleanup the handle. - if (!wrapper->TrySetObjectHandle(handle)) - InteropLibImports::DeleteObjectInstanceHandle(handle); - - return S_OK; + return wrapper->IsRooted() ? S_OK : S_FALSE; } HRESULT GetObjectForWrapper(_In_ IUnknown* wrapper, _Outptr_result_maybenull_ OBJECTHANDLE* object) noexcept { - if (object == nullptr) - return E_POINTER; - + _ASSERTE(wrapper != nullptr && object != nullptr); *object = nullptr; - HRESULT hr = IsActiveWrapper(wrapper); - if (hr != S_OK) - return hr; - + // Attempt to get the managed object wrapper. ManagedObjectWrapper *mow = ManagedObjectWrapper::MapFromIUnknown(wrapper); - _ASSERTE(mow != nullptr); + if (mow == nullptr) + return E_INVALIDARG; + + (void)mow->AddRef(); *object = mow->Target; return S_OK; @@ -125,8 +98,43 @@ namespace InteropLib return wrapper->IsSet(CreateComInterfaceFlagsEx::IsComActivated) ? S_OK : S_FALSE; } + HRESULT GetIdentityForCreateWrapperForExternal( + _In_ IUnknown* external, + _In_ enum CreateObjectFlags flags, + _Outptr_ IUnknown** identity) noexcept + { + _ASSERTE(external != nullptr && identity != nullptr); + + IUnknown* checkForIdentity = external; + + // Check if the flags indicate we are creating + // an object for an external IReferenceTracker instance + // that we are aggregating with. + bool refTrackerInnerScenario = (flags & CreateObjectFlags_TrackerObject) + && (flags & CreateObjectFlags_Aggregated); + + ComHolder trackerObject; + if (refTrackerInnerScenario) + { + // We are checking the supplied external value + // for IReferenceTracker since in .NET 5 this could + // actually be the inner and we want the true identity + // not the inner . This is a trick since the only way + // to get identity from an inner is through a non-IUnknown + // interface QI. Once we have the IReferenceTracker + // instance we can be sure the QI for IUnknown will really + // be the true identity. + HRESULT hr = external->QueryInterface(&trackerObject); + if (SUCCEEDED(hr)) + checkForIdentity = trackerObject.p; + } + + return checkForIdentity->QueryInterface(identity); + } + HRESULT CreateWrapperForExternal( _In_ IUnknown* external, + _In_opt_ IUnknown* inner, _In_ enum CreateObjectFlags flags, _In_ size_t contextSize, _Out_ ExternalWrapperResult* result) noexcept @@ -136,10 +144,11 @@ namespace InteropLib HRESULT hr; NativeObjectWrapperContext* wrapperContext; - RETURN_IF_FAILED(NativeObjectWrapperContext::Create(external, flags, contextSize, &wrapperContext)); + RETURN_IF_FAILED(NativeObjectWrapperContext::Create(external, inner, flags, contextSize, &wrapperContext)); result->Context = wrapperContext->GetRuntimeContext(); result->FromTrackerRuntime = (wrapperContext->GetReferenceTracker() != nullptr); + result->ManagedObjectWrapper = (ManagedObjectWrapper::MapFromIUnknown(external) != nullptr); return S_OK; } @@ -150,17 +159,6 @@ namespace InteropLib // A caller should not be destroying a context without knowing if the context is valid. _ASSERTE(context != nullptr); - // Check if the tracker object manager should be informed prior to being destroyed. - IReferenceTracker* trackerMaybe = context->GetReferenceTracker(); - if (trackerMaybe != nullptr) - { - // We only call this during a GC so ignore the failure as - // there is no way we can handle it at this point. - HRESULT hr = TrackerObjectManager::BeforeWrapperDestroyed(trackerMaybe); - _ASSERTE(SUCCEEDED(hr)); - (void)hr; - } - NativeObjectWrapperContext::Destroy(context); } diff --git a/src/coreclr/src/interop/trackerobjectmanager.cpp b/src/coreclr/src/interop/trackerobjectmanager.cpp index 91cc894c0eef07..f205484d3b0af6 100644 --- a/src/coreclr/src/interop/trackerobjectmanager.cpp +++ b/src/coreclr/src/interop/trackerobjectmanager.cpp @@ -296,7 +296,8 @@ HRESULT TrackerObjectManager::AfterWrapperCreated(_In_ IReferenceTracker* obj) // Send out AddRefFromTrackerSource callbacks to notify tracker runtime we've done AddRef() // for certain interfaces. We should do this *after* we made a AddRef() because we should never // be in a state where report refs > actual refs - RETURN_IF_FAILED(obj->AddRefFromTrackerSource()); + RETURN_IF_FAILED(obj->AddRefFromTrackerSource()); // IUnknown + RETURN_IF_FAILED(obj->AddRefFromTrackerSource()); // IReferenceTracker return S_OK; } diff --git a/src/coreclr/src/jit/codegenarm.cpp b/src/coreclr/src/jit/codegenarm.cpp index 2eaa80862396dd..36d7b3c7dd3fbe 100644 --- a/src/coreclr/src/jit/codegenarm.cpp +++ b/src/coreclr/src/jit/codegenarm.cpp @@ -1345,6 +1345,9 @@ void CodeGen::genCodeForStoreInd(GenTreeStoreInd* tree) } GetEmitter()->emitInsLoadStoreOp(ins_Store(type), emitActualTypeSize(type), data->GetRegNum(), tree); + + // If store was to a variable, update variable liveness after instruction was emitted. + genUpdateLife(tree); } } diff --git a/src/coreclr/src/jit/codegenarm64.cpp b/src/coreclr/src/jit/codegenarm64.cpp index a9dbcef15ec5d4..004cdde3f1a4db 100644 --- a/src/coreclr/src/jit/codegenarm64.cpp +++ b/src/coreclr/src/jit/codegenarm64.cpp @@ -3233,6 +3233,9 @@ void CodeGen::genCodeForStoreInd(GenTreeStoreInd* tree) } GetEmitter()->emitInsLoadStoreOp(ins, emitActualTypeSize(type), dataReg, tree); + + // If store was to a variable, update variable liveness after instruction was emitted. + genUpdateLife(tree); } } diff --git a/src/coreclr/src/jit/emitxarch.cpp b/src/coreclr/src/jit/emitxarch.cpp index f21b1170eb83cc..bf4eb04398e59a 100644 --- a/src/coreclr/src/jit/emitxarch.cpp +++ b/src/coreclr/src/jit/emitxarch.cpp @@ -3113,7 +3113,7 @@ void emitter::emitInsStoreInd(instruction ins, emitAttr attr, GenTreeStoreInd* m } // Updating variable liveness after instruction was emitted - codeGen->genUpdateLife(varNode); + codeGen->genUpdateLife(mem); return; } diff --git a/src/coreclr/src/jit/gentree.cpp b/src/coreclr/src/jit/gentree.cpp index 3c1c1446e9280a..1561d69a65d993 100644 --- a/src/coreclr/src/jit/gentree.cpp +++ b/src/coreclr/src/jit/gentree.cpp @@ -15512,6 +15512,13 @@ GenTree* Compiler::gtNewTempAssign( } #endif + // Added this noway_assert for runtime\issue 44895, to protect against silent bad codegen + // + if ((dstTyp == TYP_STRUCT) && (valTyp == TYP_REF)) + { + noway_assert(!"Incompatible types for gtNewTempAssign"); + } + // Floating Point assignments can be created during inlining // see "Zero init inlinee locals:" in fgInlinePrependStatements // thus we may need to set compFloatingPointUsed to true here. @@ -19110,7 +19117,7 @@ bool GenTreeHWIntrinsic::OperIsMemoryStore() const return false; } -// Returns true for the HW Intrinsic instructions that have MemoryLoad semantics, false otherwise +// Returns true for the HW Intrinsic instructions that have MemoryLoad or MemoryStore semantics, false otherwise bool GenTreeHWIntrinsic::OperIsMemoryLoadOrStore() const { #if defined(TARGET_XARCH) || defined(TARGET_ARM64) diff --git a/src/coreclr/src/jit/hwintrinsicarm64.cpp b/src/coreclr/src/jit/hwintrinsicarm64.cpp index c572f9bf0888a0..0d0021b0b8c65d 100644 --- a/src/coreclr/src/jit/hwintrinsicarm64.cpp +++ b/src/coreclr/src/jit/hwintrinsicarm64.cpp @@ -396,11 +396,10 @@ GenTree* Compiler::impSpecialIntrinsic(NamedIntrinsic intrinsic, for (unsigned i = 0; i < sig->numArgs; i++) { - tmp = gtNewArgList(impPopStack().val); - tmp->gtOp2 = op1; - op1 = tmp; + tmp = gtNewListNode(impPopStack().val, tmp); } + op1 = tmp; retNode = gtNewSimdHWIntrinsicNode(retType, op1, intrinsic, baseType, simdSize); } break; diff --git a/src/coreclr/src/jit/hwintrinsicxarch.cpp b/src/coreclr/src/jit/hwintrinsicxarch.cpp index e624f18e713f94..141daafa04c985 100644 --- a/src/coreclr/src/jit/hwintrinsicxarch.cpp +++ b/src/coreclr/src/jit/hwintrinsicxarch.cpp @@ -774,11 +774,10 @@ GenTree* Compiler::impBaseIntrinsic(NamedIntrinsic intrinsic, for (unsigned i = 0; i < sig->numArgs; i++) { - tmp = gtNewArgList(impPopStack().val); - tmp->gtOp2 = op1; - op1 = tmp; + tmp = gtNewListNode(impPopStack().val, tmp); } + op1 = tmp; retNode = gtNewSimdHWIntrinsicNode(retType, op1, intrinsic, baseType, simdSize); } break; diff --git a/src/coreclr/src/jit/liveness.cpp b/src/coreclr/src/jit/liveness.cpp index cbc4ebbd05af51..7b4ae8b1a9ac58 100644 --- a/src/coreclr/src/jit/liveness.cpp +++ b/src/coreclr/src/jit/liveness.cpp @@ -300,6 +300,19 @@ void Compiler::fgPerNodeLocalVarLiveness(GenTree* tree) fgCurMemoryDef |= memoryKindSet(GcHeap, ByrefExposed); break; +#ifdef FEATURE_SIMD + case GT_SIMD: + { + GenTreeSIMD* simdNode = tree->AsSIMD(); + if (simdNode->OperIsMemoryLoad()) + { + // This instruction loads from memory and we need to record this information + fgCurMemoryUse |= memoryKindSet(GcHeap, ByrefExposed); + } + break; + } +#endif // FEATURE_SIMD + #ifdef FEATURE_HW_INTRINSICS case GT_HWINTRINSIC: { @@ -319,7 +332,7 @@ void Compiler::fgPerNodeLocalVarLiveness(GenTree* tree) } break; } -#endif +#endif // FEATURE_HW_INTRINSICS // For now, all calls read/write GcHeap/ByrefExposed, writes in their entirety. Might tighten this case later. case GT_CALL: diff --git a/src/coreclr/src/jit/morph.cpp b/src/coreclr/src/jit/morph.cpp index b3547979766860..f109ba1eae60ed 100644 --- a/src/coreclr/src/jit/morph.cpp +++ b/src/coreclr/src/jit/morph.cpp @@ -7718,9 +7718,102 @@ GenTree* Compiler::fgMorphTailCallViaHelpers(GenTreeCall* call, CORINFO_TAILCALL call->fgArgInfo = nullptr; } + const bool stubNeedsTargetFnPtr = (help.flags & CORINFO_TAILCALL_STORE_TARGET) != 0; + + GenTree* doBeforeStoreArgsStub = nullptr; + GenTree* thisPtrStubArg = nullptr; + + // Put 'this' in normal param list + if (call->gtCallThisArg != nullptr) + { + JITDUMP("Moving this pointer into arg list\n"); + GenTree* objp = call->gtCallThisArg->GetNode(); + GenTree* thisPtr = nullptr; + call->gtCallThisArg = nullptr; + + // JIT will need one or two copies of "this" in the following cases: + // 1) the call needs null check; + // 2) StoreArgs stub needs the target function pointer address and if the call is virtual + // the stub also needs "this" in order to evalute the target. + + const bool callNeedsNullCheck = call->NeedsNullCheck(); + const bool stubNeedsThisPtr = stubNeedsTargetFnPtr && virtualCall; + + // TODO-Review: The following transformation is implemented under assumption that + // both conditions can be true. However, I could not construct such example + // where a virtual tail call would require null check. In case, if the conditions + // are mutually exclusive the following could be simplified. + + if (callNeedsNullCheck || stubNeedsThisPtr) + { + // Clone "this" if "this" has no side effects. + if ((objp->gtFlags & GTF_SIDE_EFFECT) == 0) + { + thisPtr = gtClone(objp, true); + } + + // Create a temp and spill "this" to the temp if "this" has side effects or "this" was too complex to clone. + if (thisPtr == nullptr) + { + const unsigned lclNum = lvaGrabTemp(true DEBUGARG("tail call thisptr")); + + // tmp = "this" + doBeforeStoreArgsStub = gtNewTempAssign(lclNum, objp); + + if (callNeedsNullCheck) + { + // COMMA(tmp = "this", deref(tmp)) + GenTree* tmp = gtNewLclvNode(lclNum, objp->TypeGet()); + GenTree* nullcheck = gtNewNullCheck(tmp, compCurBB); + doBeforeStoreArgsStub = gtNewOperNode(GT_COMMA, TYP_VOID, doBeforeStoreArgsStub, nullcheck); + } + + thisPtr = gtNewLclvNode(lclNum, objp->TypeGet()); + + if (stubNeedsThisPtr) + { + thisPtrStubArg = gtNewLclvNode(lclNum, objp->TypeGet()); + } + } + else + { + if (callNeedsNullCheck) + { + // deref("this") + doBeforeStoreArgsStub = gtNewNullCheck(objp, compCurBB); + + if (stubNeedsThisPtr) + { + thisPtrStubArg = gtClone(objp, true); + } + } + else + { + assert(stubNeedsThisPtr); + + thisPtrStubArg = objp; + } + } + + call->gtFlags &= ~GTF_CALL_NULLCHECK; + + assert((thisPtrStubArg != nullptr) == stubNeedsThisPtr); + } + else + { + thisPtr = objp; + } + + // During rationalization tmp="this" and null check will be materialized + // in the right execution order. + assert(thisPtr != nullptr); + call->gtCallArgs = gtPrependNewCallArg(thisPtr, call->gtCallArgs); + call->fgArgInfo = nullptr; + } + // We may need to pass the target, for instance for calli or generic methods // where we pass instantiating stub. - if ((help.flags & CORINFO_TAILCALL_STORE_TARGET) != 0) + if (stubNeedsTargetFnPtr) { JITDUMP("Adding target since VM requested it\n"); GenTree* target; @@ -7763,11 +7856,7 @@ GenTree* Compiler::fgMorphTailCallViaHelpers(GenTreeCall* call, CORINFO_TAILCALL } eeGetCallInfo(call->tailCallInfo->GetToken(), nullptr, (CORINFO_CALLINFO_FLAGS)flags, &callInfo); - - assert(call->gtCallThisArg != nullptr); - // TODO: Proper cloning of the this pointer. - target = getVirtMethodPointerTree(gtCloneExpr(call->gtCallThisArg->GetNode()), - call->tailCallInfo->GetToken(), &callInfo); + target = getVirtMethodPointerTree(thisPtrStubArg, call->tailCallInfo->GetToken(), &callInfo); } // Insert target as last arg @@ -7782,60 +7871,6 @@ GenTree* Compiler::fgMorphTailCallViaHelpers(GenTreeCall* call, CORINFO_TAILCALL call->fgArgInfo = nullptr; } - // Put 'this' in normal param list - if (call->gtCallThisArg != nullptr) - { - JITDUMP("Moving this pointer into arg list\n"); - GenTree* thisPtr = nullptr; - GenTree* objp = call->gtCallThisArg->GetNode(); - call->gtCallThisArg = nullptr; - - if (call->NeedsNullCheck()) - { - // clone "this" if "this" has no side effects. - if ((objp->gtFlags & GTF_SIDE_EFFECT) == 0) - { - thisPtr = gtClone(objp, true); - } - - var_types vt = objp->TypeGet(); - if (thisPtr == nullptr) - { - // create a temp if either "this" has side effects or "this" is too complex to clone. - - // tmp = "this" - unsigned lclNum = lvaGrabTemp(true DEBUGARG("tail call thisptr")); - GenTree* asg = gtNewTempAssign(lclNum, objp); - - // COMMA(tmp = "this", deref(tmp)) - GenTree* tmp = gtNewLclvNode(lclNum, vt); - GenTree* nullcheck = gtNewNullCheck(tmp, compCurBB); - asg = gtNewOperNode(GT_COMMA, TYP_VOID, asg, nullcheck); - - // COMMA(COMMA(tmp = "this", deref(tmp)), tmp) - thisPtr = gtNewOperNode(GT_COMMA, vt, asg, gtNewLclvNode(lclNum, vt)); - } - else - { - // thisPtr = COMMA(deref("this"), "this") - GenTree* nullcheck = gtNewNullCheck(thisPtr, compCurBB); - thisPtr = gtNewOperNode(GT_COMMA, vt, nullcheck, gtClone(objp, true)); - } - - call->gtFlags &= ~GTF_CALL_NULLCHECK; - } - else - { - thisPtr = objp; - } - - // During rationalization tmp="this" and null check will be materialized - // in the right execution order. - assert(thisPtr != nullptr); - call->gtCallArgs = gtPrependNewCallArg(thisPtr, call->gtCallArgs); - call->fgArgInfo = nullptr; - } - // This is now a direct call to the store args stub and not a tailcall. call->gtCallType = CT_USER_FUNC; call->gtCallMethHnd = help.hStoreArgs; @@ -7847,8 +7882,15 @@ GenTree* Compiler::fgMorphTailCallViaHelpers(GenTreeCall* call, CORINFO_TAILCALL call->gtType = TYP_VOID; call->gtReturnType = TYP_VOID; + GenTree* callStoreArgsStub = call; + + if (doBeforeStoreArgsStub != nullptr) + { + callStoreArgsStub = gtNewOperNode(GT_COMMA, TYP_VOID, doBeforeStoreArgsStub, callStoreArgsStub); + } + GenTree* finalTree = - gtNewOperNode(GT_COMMA, callDispatcherAndGetResult->TypeGet(), call, callDispatcherAndGetResult); + gtNewOperNode(GT_COMMA, callDispatcherAndGetResult->TypeGet(), callStoreArgsStub, callDispatcherAndGetResult); finalTree = fgMorphTree(finalTree); @@ -17619,16 +17661,38 @@ void Compiler::fgMorphStructField(GenTree* tree, GenTree* parent) } // Access the promoted field as a field of a non-promoted struct with the same class handle. } -#ifdef DEBUG - else if (tree->TypeGet() == TYP_STRUCT) + else { - // The field tree accesses it as a struct, but the promoted lcl var for the field - // says that it has another type. It can happen only if struct promotion faked - // field type for a struct of single field of scalar type aligned at their natural boundary. + // As we already checked this above, we must have a tree with a TYP_STRUCT type + // + assert(tree->TypeGet() == TYP_STRUCT); + + // The field tree accesses it as a struct, but the promoted LCL_VAR field + // says that it has another type. This happens when struct promotion unwraps + // a single field struct to get to its ultimate type. + // + // Note that currently, we cannot have a promoted LCL_VAR field with a struct type. + // + // This mismatch in types can lead to problems for some parent node type like GT_RETURN. + // So we check the parent node and only allow this optimization when we have + // a GT_ADDR or a GT_ASG. + // + // Note that for a GT_ASG we have to do some additional work, + // see below after the SetOper(GT_LCL_VAR) + // + if (!parent->OperIs(GT_ADDR, GT_ASG)) + { + // Don't transform other operations such as GT_RETURN + // + return; + } +#ifdef DEBUG + // This is an additional DEBUG-only sanity check + // assert(structPromotionHelper != nullptr); structPromotionHelper->CheckRetypedAsScalar(field->gtFldHnd, fieldType); - } #endif // DEBUG + } } tree->SetOper(GT_LCL_VAR); @@ -17638,6 +17702,9 @@ void Compiler::fgMorphStructField(GenTree* tree, GenTree* parent) if (parent->gtOper == GT_ASG) { + // If we are changing the left side of an assignment, we need to set + // these two flags: + // if (parent->AsOp()->gtOp1 == tree) { tree->gtFlags |= GTF_VAR_DEF; diff --git a/src/coreclr/src/jit/valuenum.cpp b/src/coreclr/src/jit/valuenum.cpp index fc93bebe885faf..7176737f425a65 100644 --- a/src/coreclr/src/jit/valuenum.cpp +++ b/src/coreclr/src/jit/valuenum.cpp @@ -8444,6 +8444,8 @@ void Compiler::fgValueNumberSimd(GenTree* tree) assert(tree->OperGet() == GT_SIMD); GenTreeSIMD* simdNode = tree->AsSIMD(); assert(simdNode != nullptr); + + VNFunc simdFunc = GetVNFuncForNode(tree); ValueNumPair excSetPair; ValueNumPair normalPair; @@ -8451,7 +8453,7 @@ void Compiler::fgValueNumberSimd(GenTree* tree) if (tree->AsOp()->gtOp1 == nullptr) { excSetPair = ValueNumStore::VNPForEmptyExcSet(); - normalPair = vnStore->VNPairForFunc(tree->TypeGet(), GetVNFuncForNode(tree)); + normalPair = vnStore->VNPairForFunc(tree->TypeGet(), simdFunc); } else if (tree->AsOp()->gtOp1->OperIs(GT_LIST)) { @@ -8471,9 +8473,18 @@ void Compiler::fgValueNumberSimd(GenTree* tree) ValueNumPair op1Xvnp; vnStore->VNPUnpackExc(tree->AsOp()->gtOp1->gtVNPair, &op1vnp, &op1Xvnp); - if (simdNode->gtSIMDIntrinsicID == SIMDIntrinsicInitArray) + ValueNum addrVN = ValueNumStore::NoVN; + bool isMemoryLoad = simdNode->OperIsMemoryLoad(); + + if (isMemoryLoad) { + // Currently the only SIMD operation with MemoryLoad sematics is SIMDIntrinsicInitArray + // and it has to be handled specially since it has an optional op2 + // + assert(simdNode->gtSIMDIntrinsicID == SIMDIntrinsicInitArray); + // rationalize rewrites this as an explicit load with op1 as the base address + assert(tree->OperIsImplicitIndir()); ValueNumPair op2vnp; if (tree->AsOp()->gtOp2 == nullptr) @@ -8491,17 +8502,19 @@ void Compiler::fgValueNumberSimd(GenTree* tree) excSetPair = vnStore->VNPExcSetUnion(op1Xvnp, op2Xvnp); } - ValueNum addrVN = - vnStore->VNForFunc(TYP_BYREF, GetVNFuncForNode(tree), op1vnp.GetLiberal(), op2vnp.GetLiberal()); + assert(vnStore->VNFuncArity(simdFunc) == 2); + addrVN = vnStore->VNForFunc(TYP_BYREF, simdFunc, op1vnp.GetLiberal(), op2vnp.GetLiberal()); + #ifdef DEBUG if (verbose) { - printf("Treating GT_SIMD InitArray as a ByrefExposed load , addrVN is "); + printf("Treating GT_SIMD %s as a ByrefExposed load , addrVN is ", + simdIntrinsicNames[simdNode->gtSIMDIntrinsicID]); vnPrint(addrVN, 0); } #endif // DEBUG - // The address points into the heap, so it is an ByrefExposed load. + // The address could point anywhere, so it is an ByrefExposed load. // ValueNum loadVN = fgValueNumberByrefExposedLoad(tree->TypeGet(), addrVN); tree->gtVNPair.SetLiberal(loadVN); @@ -8530,8 +8543,6 @@ void Compiler::fgValueNumberSimd(GenTree* tree) #endif } - VNFunc simdFunc = GetVNFuncForNode(tree); - if (tree->AsOp()->gtOp2 == nullptr) { // Unary SIMD nodes have a nullptr for op2. @@ -8585,9 +8596,50 @@ void Compiler::fgValueNumberHWIntrinsic(GenTree* tree) fgMutateGcHeap(tree DEBUGARG("HWIntrinsic - MemoryStore")); } - int lookupNumArgs = HWIntrinsicInfo::lookupNumArgs(hwIntrinsicNode->gtHWIntrinsicId); - bool encodeResultType = vnEncodesResultTypeForHWIntrinsic(hwIntrinsicNode->gtHWIntrinsicId); - VNFunc func = GetVNFuncForNode(tree); + // Check for any intrintics that have variable number of args or more than 2 args + // For now we will generate a unique value number for these cases. + // + if ((HWIntrinsicInfo::lookupNumArgs(hwIntrinsicNode->gtHWIntrinsicId) == -1) || + ((tree->AsOp()->gtOp1 != nullptr) && (tree->AsOp()->gtOp1->OperIs(GT_LIST)))) + { + // We have a HWINTRINSIC node in the GT_LIST form with 3 or more args + // Or the numArgs was specified as -1 in the numArgs column + + // Generate unique VN + tree->gtVNPair.SetBoth(vnStore->VNForExpr(compCurBB, tree->TypeGet())); + return; + } + + VNFunc func = GetVNFuncForNode(tree); + bool isMemoryLoad = hwIntrinsicNode->OperIsMemoryLoad(); + + // If we have a MemoryLoad operation we will use the fgValueNumberByrefExposedLoad + // method to assign a value number that depends upon fgCurMemoryVN[ByrefExposed] ValueNumber + // + if (isMemoryLoad) + { + ValueNumPair op1vnp; + ValueNumPair op1Xvnp; + vnStore->VNPUnpackExc(tree->AsOp()->gtOp1->gtVNPair, &op1vnp, &op1Xvnp); + + // The addrVN incorporates both op1's ValueNumber and the func operation + // The func is used because operations such as LoadLow and LoadHigh perform + // different operations, thus need to compute different ValueNumbers + // We don't need to encode the result type as it will be encoded by the opcode in 'func' + // + ValueNum addrVN = vnStore->VNForFunc(TYP_BYREF, func, op1vnp.GetLiberal()); + + // The address could point anywhere, so it is an ByrefExposed load. + // + ValueNum loadVN = fgValueNumberByrefExposedLoad(tree->TypeGet(), addrVN); + tree->gtVNPair.SetLiberal(loadVN); + tree->gtVNPair.SetConservative(vnStore->VNForExpr(compCurBB, tree->TypeGet())); + tree->gtVNPair = vnStore->VNPWithExc(tree->gtVNPair, op1Xvnp); + fgValueNumberAddExceptionSetForIndirection(tree, tree->AsOp()->gtOp1); + return; + } + + bool encodeResultType = vnEncodesResultTypeForHWIntrinsic(hwIntrinsicNode->gtHWIntrinsicId); ValueNumPair excSetPair = ValueNumStore::VNPForEmptyExcSet(); ValueNumPair normalPair; @@ -8625,16 +8677,6 @@ void Compiler::fgValueNumberHWIntrinsic(GenTree* tree) assert(vnStore->VNFuncArity(func) == 0); } } - else if (tree->AsOp()->gtOp1->OperIs(GT_LIST) || (lookupNumArgs == -1)) - { - // We have a HWINTRINSIC node in the GT_LIST form with 3 or more args - // Or the numArgs was specified as -1 in the numArgs column in "hwintrinsiclistxarch.h" - // For now we will generate a unique value number for this case. - - // Generate unique VN - tree->gtVNPair.SetBoth(vnStore->VNForExpr(compCurBB, tree->TypeGet())); - return; - } else // HWINTRINSIC unary or binary operator. { ValueNumPair op1vnp; diff --git a/src/coreclr/src/pal/prebuilt/idl/cordebug_i.cpp b/src/coreclr/src/pal/prebuilt/idl/cordebug_i.cpp index 5208843c10eb42..0499684f403d4b 100644 --- a/src/coreclr/src/pal/prebuilt/idl/cordebug_i.cpp +++ b/src/coreclr/src/pal/prebuilt/idl/cordebug_i.cpp @@ -6,13 +6,11 @@ /* File created by MIDL compiler version 8.01.0622 */ -/* at Mon Jan 18 19:14:07 2038 - */ -/* Compiler settings for runtime/src/coreclr/src/inc/cordebug.idl: - Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 +/* Compiler settings for cordebug.idl: + Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ @@ -23,7 +21,7 @@ #ifdef __cplusplus extern "C"{ -#endif +#endif #include @@ -367,6 +365,9 @@ MIDL_DEFINE_GUID(IID, IID_ICorDebugHeapValue2,0xE3AC4D6C,0x9CB7,0x43e6,0x96,0xCC MIDL_DEFINE_GUID(IID, IID_ICorDebugHeapValue3,0xA69ACAD8,0x2374,0x46e9,0x9F,0xF8,0xB1,0xF1,0x41,0x20,0xD2,0x96); +MIDL_DEFINE_GUID(IID, IID_ICorDebugHeapValue4,0xB35DD495,0xA555,0x463B,0x9B,0xE9,0xC5,0x53,0x38,0x48,0x6B,0xB8); + + MIDL_DEFINE_GUID(IID, IID_ICorDebugObjectValue,0x18AD3D6E,0xB7D2,0x11d2,0xBD,0x04,0x00,0x00,0xF8,0x08,0x49,0xBD); @@ -479,3 +480,6 @@ MIDL_DEFINE_GUID(CLSID, CLSID_EmbeddedCLRCorDebug,0x211f1254,0xbc7e,0x4af5,0xb9, #ifdef __cplusplus } #endif + + + diff --git a/src/coreclr/src/pal/prebuilt/inc/cordebug.h b/src/coreclr/src/pal/prebuilt/inc/cordebug.h index b497d141c48086..ed5c428df0e972 100644 --- a/src/coreclr/src/pal/prebuilt/inc/cordebug.h +++ b/src/coreclr/src/pal/prebuilt/inc/cordebug.h @@ -4,13 +4,11 @@ /* File created by MIDL compiler version 8.01.0622 */ -/* at Mon Jan 18 19:14:07 2038 - */ -/* Compiler settings for runtime/src/coreclr/src/inc/cordebug.idl: - Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 +/* Compiler settings for cordebug.idl: + Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ @@ -43,7 +41,7 @@ #pragma once #endif -/* Forward Declarations */ +/* Forward Declarations */ #ifndef __ICorDebugDataTarget_FWD_DEFINED__ #define __ICorDebugDataTarget_FWD_DEFINED__ @@ -745,6 +743,13 @@ typedef interface ICorDebugHeapValue3 ICorDebugHeapValue3; #endif /* __ICorDebugHeapValue3_FWD_DEFINED__ */ +#ifndef __ICorDebugHeapValue4_FWD_DEFINED__ +#define __ICorDebugHeapValue4_FWD_DEFINED__ +typedef interface ICorDebugHeapValue4 ICorDebugHeapValue4; + +#endif /* __ICorDebugHeapValue4_FWD_DEFINED__ */ + + #ifndef __ICorDebugObjectValue_FWD_DEFINED__ #define __ICorDebugObjectValue_FWD_DEFINED__ typedef interface ICorDebugObjectValue ICorDebugObjectValue; @@ -1237,11 +1242,11 @@ typedef interface ICorDebugModule3 ICorDebugModule3; #ifdef __cplusplus extern "C"{ -#endif +#endif /* interface __MIDL_itf_cordebug_0000_0000 */ -/* [local] */ +/* [local] */ #if 0 typedef UINT32 mdToken; @@ -1295,7 +1300,7 @@ typedef struct _COR_IL_MAP #endif //_COR_IL_MAP #ifndef _COR_DEBUG_IL_TO_NATIVE_MAP_ #define _COR_DEBUG_IL_TO_NATIVE_MAP_ -typedef +typedef enum CorDebugIlToNativeMappingTypes { NO_MAPPING = -1, @@ -1312,7 +1317,7 @@ typedef struct COR_DEBUG_IL_TO_NATIVE_MAP #endif // _COR_DEBUG_IL_TO_NATIVE_MAP_ #define REMOTE_DEBUGGING_DLL_ENTRY L"Software\\Microsoft\\.NETFramework\\Debugger\\ActivateRemoteDebugging" -typedef +typedef enum CorDebugJITCompilerFlags { CORDEBUG_JIT_DEFAULT = 0x1, @@ -1320,20 +1325,21 @@ enum CorDebugJITCompilerFlags CORDEBUG_JIT_ENABLE_ENC = 0x7 } CorDebugJITCompilerFlags; -typedef +typedef enum CorDebugJITCompilerFlagsDecprecated { CORDEBUG_JIT_TRACK_DEBUG_INFO = 0x1 } CorDebugJITCompilerFlagsDeprecated; -typedef +typedef enum CorDebugNGENPolicy { DISABLE_LOCAL_NIC = 1 } CorDebugNGENPolicy; #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) + @@ -1406,7 +1412,7 @@ typedef ULONG64 CORDB_REGISTER; typedef DWORD CORDB_CONTINUE_STATUS; -typedef +typedef enum CorDebugBlockingReason { BLOCKING_NONE = 0, @@ -1444,9 +1450,9 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0000_v0_0_s_ifspec; #define __ICorDebugDataTarget_INTERFACE_DEFINED__ /* interface ICorDebugDataTarget */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugPlatform { CORDB_PLATFORM_WINDOWS_X86 = 0, @@ -1460,72 +1466,72 @@ enum CorDebugPlatform CORDB_PLATFORM_POSIX_AMD64 = ( CORDB_PLATFORM_WINDOWS_ARM64 + 1 ) , CORDB_PLATFORM_POSIX_X86 = ( CORDB_PLATFORM_POSIX_AMD64 + 1 ) , CORDB_PLATFORM_POSIX_ARM = ( CORDB_PLATFORM_POSIX_X86 + 1 ) , - CORDB_PLATFORM_POSIX_ARM64 = ( CORDB_PLATFORM_POSIX_ARM + 1 ) + CORDB_PLATFORM_POSIX_ARM64 = ( CORDB_PLATFORM_POSIX_ARM + 1 ) } CorDebugPlatform; EXTERN_C const IID IID_ICorDebugDataTarget; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("FE06DC28-49FB-4636-A4A3-E80DB4AE116C") ICorDebugDataTarget : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetPlatform( + virtual HRESULT STDMETHODCALLTYPE GetPlatform( /* [out] */ CorDebugPlatform *pTargetPlatform) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReadVirtual( + + virtual HRESULT STDMETHODCALLTYPE ReadVirtual( /* [in] */ CORDB_ADDRESS address, /* [length_is][size_is][out] */ BYTE *pBuffer, /* [in] */ ULONG32 bytesRequested, /* [out] */ ULONG32 *pBytesRead) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE GetThreadContext( /* [in] */ DWORD dwThreadID, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 contextSize, /* [size_is][out] */ BYTE *pContext) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugDataTargetVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDataTarget * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDataTarget * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDataTarget * This); - - HRESULT ( STDMETHODCALLTYPE *GetPlatform )( + + HRESULT ( STDMETHODCALLTYPE *GetPlatform )( ICorDebugDataTarget * This, /* [out] */ CorDebugPlatform *pTargetPlatform); - - HRESULT ( STDMETHODCALLTYPE *ReadVirtual )( + + HRESULT ( STDMETHODCALLTYPE *ReadVirtual )( ICorDebugDataTarget * This, /* [in] */ CORDB_ADDRESS address, /* [length_is][size_is][out] */ BYTE *pBuffer, /* [in] */ ULONG32 bytesRequested, /* [out] */ ULONG32 *pBytesRead); - - HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( + + HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( ICorDebugDataTarget * This, /* [in] */ DWORD dwThreadID, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 contextSize, /* [size_is][out] */ BYTE *pContext); - + END_INTERFACE } ICorDebugDataTargetVtbl; @@ -1534,29 +1540,29 @@ EXTERN_C const IID IID_ICorDebugDataTarget; CONST_VTBL struct ICorDebugDataTargetVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugDataTarget_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugDataTarget_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugDataTarget_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugDataTarget_GetPlatform(This,pTargetPlatform) \ - ( (This)->lpVtbl -> GetPlatform(This,pTargetPlatform) ) + ( (This)->lpVtbl -> GetPlatform(This,pTargetPlatform) ) #define ICorDebugDataTarget_ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) \ - ( (This)->lpVtbl -> ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) ) + ( (This)->lpVtbl -> ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) ) #define ICorDebugDataTarget_GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) \ - ( (This)->lpVtbl -> GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) ) + ( (This)->lpVtbl -> GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) ) #endif /* COBJMACROS */ @@ -1573,63 +1579,63 @@ EXTERN_C const IID IID_ICorDebugDataTarget; #define __ICorDebugStaticFieldSymbol_INTERFACE_DEFINED__ /* interface ICorDebugStaticFieldSymbol */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugStaticFieldSymbol; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CBF9DA63-F68D-4BBB-A21C-15A45EAADF5B") ICorDebugStaticFieldSymbol : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetName( + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcbSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAddress( + + virtual HRESULT STDMETHODCALLTYPE GetAddress( /* [out] */ CORDB_ADDRESS *pRVA) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugStaticFieldSymbolVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStaticFieldSymbol * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStaticFieldSymbol * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStaticFieldSymbol * This); - - HRESULT ( STDMETHODCALLTYPE *GetName )( + + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugStaticFieldSymbol * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugStaticFieldSymbol * This, /* [out] */ ULONG32 *pcbSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugStaticFieldSymbol * This, /* [out] */ CORDB_ADDRESS *pRVA); - + END_INTERFACE } ICorDebugStaticFieldSymbolVtbl; @@ -1638,29 +1644,29 @@ EXTERN_C const IID IID_ICorDebugStaticFieldSymbol; CONST_VTBL struct ICorDebugStaticFieldSymbolVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugStaticFieldSymbol_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugStaticFieldSymbol_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugStaticFieldSymbol_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugStaticFieldSymbol_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) #define ICorDebugStaticFieldSymbol_GetSize(This,pcbSize) \ - ( (This)->lpVtbl -> GetSize(This,pcbSize) ) + ( (This)->lpVtbl -> GetSize(This,pcbSize) ) #define ICorDebugStaticFieldSymbol_GetAddress(This,pRVA) \ - ( (This)->lpVtbl -> GetAddress(This,pRVA) ) + ( (This)->lpVtbl -> GetAddress(This,pRVA) ) #endif /* COBJMACROS */ @@ -1677,63 +1683,63 @@ EXTERN_C const IID IID_ICorDebugStaticFieldSymbol; #define __ICorDebugInstanceFieldSymbol_INTERFACE_DEFINED__ /* interface ICorDebugInstanceFieldSymbol */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugInstanceFieldSymbol; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("A074096B-3ADC-4485-81DA-68C7A4EA52DB") ICorDebugInstanceFieldSymbol : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetName( + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcbSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetOffset( + + virtual HRESULT STDMETHODCALLTYPE GetOffset( /* [out] */ ULONG32 *pcbOffset) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugInstanceFieldSymbolVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugInstanceFieldSymbol * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugInstanceFieldSymbol * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugInstanceFieldSymbol * This); - - HRESULT ( STDMETHODCALLTYPE *GetName )( + + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugInstanceFieldSymbol * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugInstanceFieldSymbol * This, /* [out] */ ULONG32 *pcbSize); - - HRESULT ( STDMETHODCALLTYPE *GetOffset )( + + HRESULT ( STDMETHODCALLTYPE *GetOffset )( ICorDebugInstanceFieldSymbol * This, /* [out] */ ULONG32 *pcbOffset); - + END_INTERFACE } ICorDebugInstanceFieldSymbolVtbl; @@ -1742,29 +1748,29 @@ EXTERN_C const IID IID_ICorDebugInstanceFieldSymbol; CONST_VTBL struct ICorDebugInstanceFieldSymbolVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugInstanceFieldSymbol_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugInstanceFieldSymbol_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugInstanceFieldSymbol_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugInstanceFieldSymbol_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) #define ICorDebugInstanceFieldSymbol_GetSize(This,pcbSize) \ - ( (This)->lpVtbl -> GetSize(This,pcbSize) ) + ( (This)->lpVtbl -> GetSize(This,pcbSize) ) #define ICorDebugInstanceFieldSymbol_GetOffset(This,pcbOffset) \ - ( (This)->lpVtbl -> GetOffset(This,pcbOffset) ) + ( (This)->lpVtbl -> GetOffset(This,pcbOffset) ) #endif /* COBJMACROS */ @@ -1781,76 +1787,76 @@ EXTERN_C const IID IID_ICorDebugInstanceFieldSymbol; #define __ICorDebugVariableSymbol_INTERFACE_DEFINED__ /* interface ICorDebugVariableSymbol */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugVariableSymbol; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("707E8932-1163-48D9-8A93-F5B1F480FBB7") ICorDebugVariableSymbol : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetName( + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcbValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetValue( + + virtual HRESULT STDMETHODCALLTYPE GetValue( /* [in] */ ULONG32 offset, /* [in] */ ULONG32 cbContext, /* [size_is][in] */ BYTE context[ ], /* [in] */ ULONG32 cbValue, /* [out] */ ULONG32 *pcbValue, /* [length_is][size_is][out] */ BYTE pValue[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetValue( + + virtual HRESULT STDMETHODCALLTYPE SetValue( /* [in] */ ULONG32 offset, /* [in] */ DWORD threadID, /* [in] */ ULONG32 cbContext, /* [size_is][in] */ BYTE context[ ], /* [in] */ ULONG32 cbValue, /* [size_is][in] */ BYTE pValue[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSlotIndex( + + virtual HRESULT STDMETHODCALLTYPE GetSlotIndex( /* [out] */ ULONG32 *pSlotIndex) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugVariableSymbolVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugVariableSymbol * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugVariableSymbol * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugVariableSymbol * This); - - HRESULT ( STDMETHODCALLTYPE *GetName )( + + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugVariableSymbol * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugVariableSymbol * This, /* [out] */ ULONG32 *pcbValue); - - HRESULT ( STDMETHODCALLTYPE *GetValue )( + + HRESULT ( STDMETHODCALLTYPE *GetValue )( ICorDebugVariableSymbol * This, /* [in] */ ULONG32 offset, /* [in] */ ULONG32 cbContext, @@ -1858,8 +1864,8 @@ EXTERN_C const IID IID_ICorDebugVariableSymbol; /* [in] */ ULONG32 cbValue, /* [out] */ ULONG32 *pcbValue, /* [length_is][size_is][out] */ BYTE pValue[ ]); - - HRESULT ( STDMETHODCALLTYPE *SetValue )( + + HRESULT ( STDMETHODCALLTYPE *SetValue )( ICorDebugVariableSymbol * This, /* [in] */ ULONG32 offset, /* [in] */ DWORD threadID, @@ -1867,11 +1873,11 @@ EXTERN_C const IID IID_ICorDebugVariableSymbol; /* [size_is][in] */ BYTE context[ ], /* [in] */ ULONG32 cbValue, /* [size_is][in] */ BYTE pValue[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetSlotIndex )( + + HRESULT ( STDMETHODCALLTYPE *GetSlotIndex )( ICorDebugVariableSymbol * This, /* [out] */ ULONG32 *pSlotIndex); - + END_INTERFACE } ICorDebugVariableSymbolVtbl; @@ -1880,35 +1886,35 @@ EXTERN_C const IID IID_ICorDebugVariableSymbol; CONST_VTBL struct ICorDebugVariableSymbolVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugVariableSymbol_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugVariableSymbol_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugVariableSymbol_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugVariableSymbol_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) #define ICorDebugVariableSymbol_GetSize(This,pcbValue) \ - ( (This)->lpVtbl -> GetSize(This,pcbValue) ) + ( (This)->lpVtbl -> GetSize(This,pcbValue) ) #define ICorDebugVariableSymbol_GetValue(This,offset,cbContext,context,cbValue,pcbValue,pValue) \ - ( (This)->lpVtbl -> GetValue(This,offset,cbContext,context,cbValue,pcbValue,pValue) ) + ( (This)->lpVtbl -> GetValue(This,offset,cbContext,context,cbValue,pcbValue,pValue) ) #define ICorDebugVariableSymbol_SetValue(This,offset,threadID,cbContext,context,cbValue,pValue) \ - ( (This)->lpVtbl -> SetValue(This,offset,threadID,cbContext,context,cbValue,pValue) ) + ( (This)->lpVtbl -> SetValue(This,offset,threadID,cbContext,context,cbValue,pValue) ) #define ICorDebugVariableSymbol_GetSlotIndex(This,pSlotIndex) \ - ( (This)->lpVtbl -> GetSlotIndex(This,pSlotIndex) ) + ( (This)->lpVtbl -> GetSlotIndex(This,pSlotIndex) ) #endif /* COBJMACROS */ @@ -1925,52 +1931,52 @@ EXTERN_C const IID IID_ICorDebugVariableSymbol; #define __ICorDebugMemoryBuffer_INTERFACE_DEFINED__ /* interface ICorDebugMemoryBuffer */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugMemoryBuffer; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("677888B3-D160-4B8C-A73B-D79E6AAA1D13") ICorDebugMemoryBuffer : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetStartAddress( + virtual HRESULT STDMETHODCALLTYPE GetStartAddress( /* [out] */ LPCVOID *address) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcbBufferLength) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugMemoryBufferVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMemoryBuffer * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMemoryBuffer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMemoryBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *GetStartAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetStartAddress )( ICorDebugMemoryBuffer * This, /* [out] */ LPCVOID *address); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugMemoryBuffer * This, /* [out] */ ULONG32 *pcbBufferLength); - + END_INTERFACE } ICorDebugMemoryBufferVtbl; @@ -1979,26 +1985,26 @@ EXTERN_C const IID IID_ICorDebugMemoryBuffer; CONST_VTBL struct ICorDebugMemoryBufferVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugMemoryBuffer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugMemoryBuffer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugMemoryBuffer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugMemoryBuffer_GetStartAddress(This,address) \ - ( (This)->lpVtbl -> GetStartAddress(This,address) ) + ( (This)->lpVtbl -> GetStartAddress(This,address) ) #define ICorDebugMemoryBuffer_GetSize(This,pcbBufferLength) \ - ( (This)->lpVtbl -> GetSize(This,pcbBufferLength) ) + ( (This)->lpVtbl -> GetSize(This,pcbBufferLength) ) #endif /* COBJMACROS */ @@ -2015,102 +2021,102 @@ EXTERN_C const IID IID_ICorDebugMemoryBuffer; #define __ICorDebugMergedAssemblyRecord_INTERFACE_DEFINED__ /* interface ICorDebugMergedAssemblyRecord */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugMergedAssemblyRecord; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("FAA8637B-3BBE-4671-8E26-3B59875B922A") ICorDebugMergedAssemblyRecord : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetSimpleName( + virtual HRESULT STDMETHODCALLTYPE GetSimpleName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVersion( + + virtual HRESULT STDMETHODCALLTYPE GetVersion( /* [out] */ USHORT *pMajor, /* [out] */ USHORT *pMinor, /* [out] */ USHORT *pBuild, /* [out] */ USHORT *pRevision) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCulture( + + virtual HRESULT STDMETHODCALLTYPE GetCulture( /* [in] */ ULONG32 cchCulture, /* [out] */ ULONG32 *pcchCulture, /* [length_is][size_is][out] */ WCHAR szCulture[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPublicKey( + + virtual HRESULT STDMETHODCALLTYPE GetPublicKey( /* [in] */ ULONG32 cbPublicKey, /* [out] */ ULONG32 *pcbPublicKey, /* [length_is][size_is][out] */ BYTE pbPublicKey[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPublicKeyToken( + + virtual HRESULT STDMETHODCALLTYPE GetPublicKeyToken( /* [in] */ ULONG32 cbPublicKeyToken, /* [out] */ ULONG32 *pcbPublicKeyToken, /* [length_is][size_is][out] */ BYTE pbPublicKeyToken[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetIndex( + + virtual HRESULT STDMETHODCALLTYPE GetIndex( /* [out] */ ULONG32 *pIndex) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugMergedAssemblyRecordVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMergedAssemblyRecord * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMergedAssemblyRecord * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMergedAssemblyRecord * This); - - HRESULT ( STDMETHODCALLTYPE *GetSimpleName )( + + HRESULT ( STDMETHODCALLTYPE *GetSimpleName )( ICorDebugMergedAssemblyRecord * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetVersion )( + + HRESULT ( STDMETHODCALLTYPE *GetVersion )( ICorDebugMergedAssemblyRecord * This, /* [out] */ USHORT *pMajor, /* [out] */ USHORT *pMinor, /* [out] */ USHORT *pBuild, /* [out] */ USHORT *pRevision); - - HRESULT ( STDMETHODCALLTYPE *GetCulture )( + + HRESULT ( STDMETHODCALLTYPE *GetCulture )( ICorDebugMergedAssemblyRecord * This, /* [in] */ ULONG32 cchCulture, /* [out] */ ULONG32 *pcchCulture, /* [length_is][size_is][out] */ WCHAR szCulture[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetPublicKey )( + + HRESULT ( STDMETHODCALLTYPE *GetPublicKey )( ICorDebugMergedAssemblyRecord * This, /* [in] */ ULONG32 cbPublicKey, /* [out] */ ULONG32 *pcbPublicKey, /* [length_is][size_is][out] */ BYTE pbPublicKey[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetPublicKeyToken )( + + HRESULT ( STDMETHODCALLTYPE *GetPublicKeyToken )( ICorDebugMergedAssemblyRecord * This, /* [in] */ ULONG32 cbPublicKeyToken, /* [out] */ ULONG32 *pcbPublicKeyToken, /* [length_is][size_is][out] */ BYTE pbPublicKeyToken[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetIndex )( + + HRESULT ( STDMETHODCALLTYPE *GetIndex )( ICorDebugMergedAssemblyRecord * This, /* [out] */ ULONG32 *pIndex); - + END_INTERFACE } ICorDebugMergedAssemblyRecordVtbl; @@ -2119,38 +2125,38 @@ EXTERN_C const IID IID_ICorDebugMergedAssemblyRecord; CONST_VTBL struct ICorDebugMergedAssemblyRecordVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugMergedAssemblyRecord_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugMergedAssemblyRecord_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugMergedAssemblyRecord_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugMergedAssemblyRecord_GetSimpleName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetSimpleName(This,cchName,pcchName,szName) ) + ( (This)->lpVtbl -> GetSimpleName(This,cchName,pcchName,szName) ) #define ICorDebugMergedAssemblyRecord_GetVersion(This,pMajor,pMinor,pBuild,pRevision) \ - ( (This)->lpVtbl -> GetVersion(This,pMajor,pMinor,pBuild,pRevision) ) + ( (This)->lpVtbl -> GetVersion(This,pMajor,pMinor,pBuild,pRevision) ) #define ICorDebugMergedAssemblyRecord_GetCulture(This,cchCulture,pcchCulture,szCulture) \ - ( (This)->lpVtbl -> GetCulture(This,cchCulture,pcchCulture,szCulture) ) + ( (This)->lpVtbl -> GetCulture(This,cchCulture,pcchCulture,szCulture) ) #define ICorDebugMergedAssemblyRecord_GetPublicKey(This,cbPublicKey,pcbPublicKey,pbPublicKey) \ - ( (This)->lpVtbl -> GetPublicKey(This,cbPublicKey,pcbPublicKey,pbPublicKey) ) + ( (This)->lpVtbl -> GetPublicKey(This,cbPublicKey,pcbPublicKey,pbPublicKey) ) #define ICorDebugMergedAssemblyRecord_GetPublicKeyToken(This,cbPublicKeyToken,pcbPublicKeyToken,pbPublicKeyToken) \ - ( (This)->lpVtbl -> GetPublicKeyToken(This,cbPublicKeyToken,pcbPublicKeyToken,pbPublicKeyToken) ) + ( (This)->lpVtbl -> GetPublicKeyToken(This,cbPublicKeyToken,pcbPublicKeyToken,pbPublicKeyToken) ) #define ICorDebugMergedAssemblyRecord_GetIndex(This,pIndex) \ - ( (This)->lpVtbl -> GetIndex(This,pIndex) ) + ( (This)->lpVtbl -> GetIndex(This,pIndex) ) #endif /* COBJMACROS */ @@ -2167,138 +2173,138 @@ EXTERN_C const IID IID_ICorDebugMergedAssemblyRecord; #define __ICorDebugSymbolProvider_INTERFACE_DEFINED__ /* interface ICorDebugSymbolProvider */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugSymbolProvider; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3948A999-FD8A-4C38-A708-8A71E9B04DBB") ICorDebugSymbolProvider : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetStaticFieldSymbols( + virtual HRESULT STDMETHODCALLTYPE GetStaticFieldSymbols( /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugStaticFieldSymbol *pSymbols[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetInstanceFieldSymbols( + + virtual HRESULT STDMETHODCALLTYPE GetInstanceFieldSymbols( /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugInstanceFieldSymbol *pSymbols[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMethodLocalSymbols( + + virtual HRESULT STDMETHODCALLTYPE GetMethodLocalSymbols( /* [in] */ ULONG32 nativeRVA, /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugVariableSymbol *pSymbols[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMethodParameterSymbols( + + virtual HRESULT STDMETHODCALLTYPE GetMethodParameterSymbols( /* [in] */ ULONG32 nativeRVA, /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugVariableSymbol *pSymbols[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMergedAssemblyRecords( + + virtual HRESULT STDMETHODCALLTYPE GetMergedAssemblyRecords( /* [in] */ ULONG32 cRequestedRecords, /* [out] */ ULONG32 *pcFetchedRecords, /* [length_is][size_is][out] */ ICorDebugMergedAssemblyRecord *pRecords[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMethodProps( + + virtual HRESULT STDMETHODCALLTYPE GetMethodProps( /* [in] */ ULONG32 codeRva, /* [out] */ mdToken *pMethodToken, /* [out] */ ULONG32 *pcGenericParams, /* [in] */ ULONG32 cbSignature, /* [out] */ ULONG32 *pcbSignature, /* [length_is][size_is][out] */ BYTE signature[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeProps( + + virtual HRESULT STDMETHODCALLTYPE GetTypeProps( /* [in] */ ULONG32 vtableRva, /* [in] */ ULONG32 cbSignature, /* [out] */ ULONG32 *pcbSignature, /* [length_is][size_is][out] */ BYTE signature[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCodeRange( + + virtual HRESULT STDMETHODCALLTYPE GetCodeRange( /* [in] */ ULONG32 codeRva, /* [out] */ ULONG32 *pCodeStartAddress, ULONG32 *pCodeSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAssemblyImageBytes( + + virtual HRESULT STDMETHODCALLTYPE GetAssemblyImageBytes( /* [in] */ CORDB_ADDRESS rva, /* [in] */ ULONG32 length, /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObjectSize( + + virtual HRESULT STDMETHODCALLTYPE GetObjectSize( /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [out] */ ULONG32 *pObjectSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAssemblyImageMetadata( + + virtual HRESULT STDMETHODCALLTYPE GetAssemblyImageMetadata( /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugSymbolProviderVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugSymbolProvider * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugSymbolProvider * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugSymbolProvider * This); - - HRESULT ( STDMETHODCALLTYPE *GetStaticFieldSymbols )( + + HRESULT ( STDMETHODCALLTYPE *GetStaticFieldSymbols )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugStaticFieldSymbol *pSymbols[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetInstanceFieldSymbols )( + + HRESULT ( STDMETHODCALLTYPE *GetInstanceFieldSymbols )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugInstanceFieldSymbol *pSymbols[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetMethodLocalSymbols )( + + HRESULT ( STDMETHODCALLTYPE *GetMethodLocalSymbols )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 nativeRVA, /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugVariableSymbol *pSymbols[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetMethodParameterSymbols )( + + HRESULT ( STDMETHODCALLTYPE *GetMethodParameterSymbols )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 nativeRVA, /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugVariableSymbol *pSymbols[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetMergedAssemblyRecords )( + + HRESULT ( STDMETHODCALLTYPE *GetMergedAssemblyRecords )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 cRequestedRecords, /* [out] */ ULONG32 *pcFetchedRecords, /* [length_is][size_is][out] */ ICorDebugMergedAssemblyRecord *pRecords[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetMethodProps )( + + HRESULT ( STDMETHODCALLTYPE *GetMethodProps )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 codeRva, /* [out] */ mdToken *pMethodToken, @@ -2306,36 +2312,36 @@ EXTERN_C const IID IID_ICorDebugSymbolProvider; /* [in] */ ULONG32 cbSignature, /* [out] */ ULONG32 *pcbSignature, /* [length_is][size_is][out] */ BYTE signature[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetTypeProps )( + + HRESULT ( STDMETHODCALLTYPE *GetTypeProps )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 vtableRva, /* [in] */ ULONG32 cbSignature, /* [out] */ ULONG32 *pcbSignature, /* [length_is][size_is][out] */ BYTE signature[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetCodeRange )( + + HRESULT ( STDMETHODCALLTYPE *GetCodeRange )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 codeRva, /* [out] */ ULONG32 *pCodeStartAddress, ULONG32 *pCodeSize); - - HRESULT ( STDMETHODCALLTYPE *GetAssemblyImageBytes )( + + HRESULT ( STDMETHODCALLTYPE *GetAssemblyImageBytes )( ICorDebugSymbolProvider * This, /* [in] */ CORDB_ADDRESS rva, /* [in] */ ULONG32 length, /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer); - - HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( + + HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [out] */ ULONG32 *pObjectSize); - - HRESULT ( STDMETHODCALLTYPE *GetAssemblyImageMetadata )( + + HRESULT ( STDMETHODCALLTYPE *GetAssemblyImageMetadata )( ICorDebugSymbolProvider * This, /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer); - + END_INTERFACE } ICorDebugSymbolProviderVtbl; @@ -2344,53 +2350,53 @@ EXTERN_C const IID IID_ICorDebugSymbolProvider; CONST_VTBL struct ICorDebugSymbolProviderVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugSymbolProvider_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugSymbolProvider_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugSymbolProvider_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugSymbolProvider_GetStaticFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ - ( (This)->lpVtbl -> GetStaticFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) + ( (This)->lpVtbl -> GetStaticFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) #define ICorDebugSymbolProvider_GetInstanceFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ - ( (This)->lpVtbl -> GetInstanceFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) + ( (This)->lpVtbl -> GetInstanceFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) #define ICorDebugSymbolProvider_GetMethodLocalSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ - ( (This)->lpVtbl -> GetMethodLocalSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) + ( (This)->lpVtbl -> GetMethodLocalSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) #define ICorDebugSymbolProvider_GetMethodParameterSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ - ( (This)->lpVtbl -> GetMethodParameterSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) + ( (This)->lpVtbl -> GetMethodParameterSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) #define ICorDebugSymbolProvider_GetMergedAssemblyRecords(This,cRequestedRecords,pcFetchedRecords,pRecords) \ - ( (This)->lpVtbl -> GetMergedAssemblyRecords(This,cRequestedRecords,pcFetchedRecords,pRecords) ) + ( (This)->lpVtbl -> GetMergedAssemblyRecords(This,cRequestedRecords,pcFetchedRecords,pRecords) ) #define ICorDebugSymbolProvider_GetMethodProps(This,codeRva,pMethodToken,pcGenericParams,cbSignature,pcbSignature,signature) \ - ( (This)->lpVtbl -> GetMethodProps(This,codeRva,pMethodToken,pcGenericParams,cbSignature,pcbSignature,signature) ) + ( (This)->lpVtbl -> GetMethodProps(This,codeRva,pMethodToken,pcGenericParams,cbSignature,pcbSignature,signature) ) #define ICorDebugSymbolProvider_GetTypeProps(This,vtableRva,cbSignature,pcbSignature,signature) \ - ( (This)->lpVtbl -> GetTypeProps(This,vtableRva,cbSignature,pcbSignature,signature) ) + ( (This)->lpVtbl -> GetTypeProps(This,vtableRva,cbSignature,pcbSignature,signature) ) #define ICorDebugSymbolProvider_GetCodeRange(This,codeRva,pCodeStartAddress,pCodeSize) \ - ( (This)->lpVtbl -> GetCodeRange(This,codeRva,pCodeStartAddress,pCodeSize) ) + ( (This)->lpVtbl -> GetCodeRange(This,codeRva,pCodeStartAddress,pCodeSize) ) #define ICorDebugSymbolProvider_GetAssemblyImageBytes(This,rva,length,ppMemoryBuffer) \ - ( (This)->lpVtbl -> GetAssemblyImageBytes(This,rva,length,ppMemoryBuffer) ) + ( (This)->lpVtbl -> GetAssemblyImageBytes(This,rva,length,ppMemoryBuffer) ) #define ICorDebugSymbolProvider_GetObjectSize(This,cbSignature,typeSig,pObjectSize) \ - ( (This)->lpVtbl -> GetObjectSize(This,cbSignature,typeSig,pObjectSize) ) + ( (This)->lpVtbl -> GetObjectSize(This,cbSignature,typeSig,pObjectSize) ) #define ICorDebugSymbolProvider_GetAssemblyImageMetadata(This,ppMemoryBuffer) \ - ( (This)->lpVtbl -> GetAssemblyImageMetadata(This,ppMemoryBuffer) ) + ( (This)->lpVtbl -> GetAssemblyImageMetadata(This,ppMemoryBuffer) ) #endif /* COBJMACROS */ @@ -2407,56 +2413,56 @@ EXTERN_C const IID IID_ICorDebugSymbolProvider; #define __ICorDebugSymbolProvider2_INTERFACE_DEFINED__ /* interface ICorDebugSymbolProvider2 */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugSymbolProvider2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("F9801807-4764-4330-9E67-4F685094165E") ICorDebugSymbolProvider2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetGenericDictionaryInfo( + virtual HRESULT STDMETHODCALLTYPE GetGenericDictionaryInfo( /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFrameProps( + + virtual HRESULT STDMETHODCALLTYPE GetFrameProps( /* [in] */ ULONG32 codeRva, /* [out] */ ULONG32 *pCodeStartRva, /* [out] */ ULONG32 *pParentFrameStartRva) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugSymbolProvider2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugSymbolProvider2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugSymbolProvider2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugSymbolProvider2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetGenericDictionaryInfo )( + + HRESULT ( STDMETHODCALLTYPE *GetGenericDictionaryInfo )( ICorDebugSymbolProvider2 * This, /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer); - - HRESULT ( STDMETHODCALLTYPE *GetFrameProps )( + + HRESULT ( STDMETHODCALLTYPE *GetFrameProps )( ICorDebugSymbolProvider2 * This, /* [in] */ ULONG32 codeRva, /* [out] */ ULONG32 *pCodeStartRva, /* [out] */ ULONG32 *pParentFrameStartRva); - + END_INTERFACE } ICorDebugSymbolProvider2Vtbl; @@ -2465,26 +2471,26 @@ EXTERN_C const IID IID_ICorDebugSymbolProvider2; CONST_VTBL struct ICorDebugSymbolProvider2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugSymbolProvider2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugSymbolProvider2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugSymbolProvider2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugSymbolProvider2_GetGenericDictionaryInfo(This,ppMemoryBuffer) \ - ( (This)->lpVtbl -> GetGenericDictionaryInfo(This,ppMemoryBuffer) ) + ( (This)->lpVtbl -> GetGenericDictionaryInfo(This,ppMemoryBuffer) ) #define ICorDebugSymbolProvider2_GetFrameProps(This,codeRva,pCodeStartRva,pParentFrameStartRva) \ - ( (This)->lpVtbl -> GetFrameProps(This,codeRva,pCodeStartRva,pParentFrameStartRva) ) + ( (This)->lpVtbl -> GetFrameProps(This,codeRva,pCodeStartRva,pParentFrameStartRva) ) #endif /* COBJMACROS */ @@ -2501,56 +2507,56 @@ EXTERN_C const IID IID_ICorDebugSymbolProvider2; #define __ICorDebugVirtualUnwinder_INTERFACE_DEFINED__ /* interface ICorDebugVirtualUnwinder */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugVirtualUnwinder; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("F69126B7-C787-4F6B-AE96-A569786FC670") ICorDebugVirtualUnwinder : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetContext( + virtual HRESULT STDMETHODCALLTYPE GetContext( /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 cbContextBuf, /* [out] */ ULONG32 *contextSize, /* [size_is][out] */ BYTE contextBuf[ ]) = 0; - + virtual HRESULT STDMETHODCALLTYPE Next( void) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugVirtualUnwinderVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugVirtualUnwinder * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugVirtualUnwinder * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugVirtualUnwinder * This); - - HRESULT ( STDMETHODCALLTYPE *GetContext )( + + HRESULT ( STDMETHODCALLTYPE *GetContext )( ICorDebugVirtualUnwinder * This, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 cbContextBuf, /* [out] */ ULONG32 *contextSize, /* [size_is][out] */ BYTE contextBuf[ ]); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugVirtualUnwinder * This); - + END_INTERFACE } ICorDebugVirtualUnwinderVtbl; @@ -2559,26 +2565,26 @@ EXTERN_C const IID IID_ICorDebugVirtualUnwinder; CONST_VTBL struct ICorDebugVirtualUnwinderVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugVirtualUnwinder_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugVirtualUnwinder_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugVirtualUnwinder_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugVirtualUnwinder_GetContext(This,contextFlags,cbContextBuf,contextSize,contextBuf) \ - ( (This)->lpVtbl -> GetContext(This,contextFlags,cbContextBuf,contextSize,contextBuf) ) + ( (This)->lpVtbl -> GetContext(This,contextFlags,cbContextBuf,contextSize,contextBuf) ) #define ICorDebugVirtualUnwinder_Next(This) \ - ( (This)->lpVtbl -> Next(This) ) + ( (This)->lpVtbl -> Next(This) ) #endif /* COBJMACROS */ @@ -2595,97 +2601,97 @@ EXTERN_C const IID IID_ICorDebugVirtualUnwinder; #define __ICorDebugDataTarget2_INTERFACE_DEFINED__ /* interface ICorDebugDataTarget2 */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugDataTarget2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("2eb364da-605b-4e8d-b333-3394c4828d41") ICorDebugDataTarget2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetImageFromPointer( + virtual HRESULT STDMETHODCALLTYPE GetImageFromPointer( /* [in] */ CORDB_ADDRESS addr, /* [out] */ CORDB_ADDRESS *pImageBase, /* [out] */ ULONG32 *pSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetImageLocation( + + virtual HRESULT STDMETHODCALLTYPE GetImageLocation( /* [in] */ CORDB_ADDRESS baseAddress, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSymbolProviderForImage( + + virtual HRESULT STDMETHODCALLTYPE GetSymbolProviderForImage( /* [in] */ CORDB_ADDRESS imageBaseAddress, /* [out] */ ICorDebugSymbolProvider **ppSymProvider) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateThreadIDs( + + virtual HRESULT STDMETHODCALLTYPE EnumerateThreadIDs( /* [in] */ ULONG32 cThreadIds, /* [out] */ ULONG32 *pcThreadIds, /* [length_is][size_is][out] */ ULONG32 pThreadIds[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVirtualUnwinder( + + virtual HRESULT STDMETHODCALLTYPE CreateVirtualUnwinder( /* [in] */ DWORD nativeThreadID, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 cbContext, /* [size_is][in] */ BYTE initialContext[ ], /* [out] */ ICorDebugVirtualUnwinder **ppUnwinder) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugDataTarget2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDataTarget2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDataTarget2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDataTarget2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetImageFromPointer )( + + HRESULT ( STDMETHODCALLTYPE *GetImageFromPointer )( ICorDebugDataTarget2 * This, /* [in] */ CORDB_ADDRESS addr, /* [out] */ CORDB_ADDRESS *pImageBase, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetImageLocation )( + + HRESULT ( STDMETHODCALLTYPE *GetImageLocation )( ICorDebugDataTarget2 * This, /* [in] */ CORDB_ADDRESS baseAddress, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetSymbolProviderForImage )( + + HRESULT ( STDMETHODCALLTYPE *GetSymbolProviderForImage )( ICorDebugDataTarget2 * This, /* [in] */ CORDB_ADDRESS imageBaseAddress, /* [out] */ ICorDebugSymbolProvider **ppSymProvider); - - HRESULT ( STDMETHODCALLTYPE *EnumerateThreadIDs )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateThreadIDs )( ICorDebugDataTarget2 * This, /* [in] */ ULONG32 cThreadIds, /* [out] */ ULONG32 *pcThreadIds, /* [length_is][size_is][out] */ ULONG32 pThreadIds[ ]); - - HRESULT ( STDMETHODCALLTYPE *CreateVirtualUnwinder )( + + HRESULT ( STDMETHODCALLTYPE *CreateVirtualUnwinder )( ICorDebugDataTarget2 * This, /* [in] */ DWORD nativeThreadID, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 cbContext, /* [size_is][in] */ BYTE initialContext[ ], /* [out] */ ICorDebugVirtualUnwinder **ppUnwinder); - + END_INTERFACE } ICorDebugDataTarget2Vtbl; @@ -2694,35 +2700,35 @@ EXTERN_C const IID IID_ICorDebugDataTarget2; CONST_VTBL struct ICorDebugDataTarget2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugDataTarget2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugDataTarget2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugDataTarget2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugDataTarget2_GetImageFromPointer(This,addr,pImageBase,pSize) \ - ( (This)->lpVtbl -> GetImageFromPointer(This,addr,pImageBase,pSize) ) + ( (This)->lpVtbl -> GetImageFromPointer(This,addr,pImageBase,pSize) ) #define ICorDebugDataTarget2_GetImageLocation(This,baseAddress,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetImageLocation(This,baseAddress,cchName,pcchName,szName) ) + ( (This)->lpVtbl -> GetImageLocation(This,baseAddress,cchName,pcchName,szName) ) #define ICorDebugDataTarget2_GetSymbolProviderForImage(This,imageBaseAddress,ppSymProvider) \ - ( (This)->lpVtbl -> GetSymbolProviderForImage(This,imageBaseAddress,ppSymProvider) ) + ( (This)->lpVtbl -> GetSymbolProviderForImage(This,imageBaseAddress,ppSymProvider) ) #define ICorDebugDataTarget2_EnumerateThreadIDs(This,cThreadIds,pcThreadIds,pThreadIds) \ - ( (This)->lpVtbl -> EnumerateThreadIDs(This,cThreadIds,pcThreadIds,pThreadIds) ) + ( (This)->lpVtbl -> EnumerateThreadIDs(This,cThreadIds,pcThreadIds,pThreadIds) ) #define ICorDebugDataTarget2_CreateVirtualUnwinder(This,nativeThreadID,contextFlags,cbContext,initialContext,ppUnwinder) \ - ( (This)->lpVtbl -> CreateVirtualUnwinder(This,nativeThreadID,contextFlags,cbContext,initialContext,ppUnwinder) ) + ( (This)->lpVtbl -> CreateVirtualUnwinder(This,nativeThreadID,contextFlags,cbContext,initialContext,ppUnwinder) ) #endif /* COBJMACROS */ @@ -2739,63 +2745,63 @@ EXTERN_C const IID IID_ICorDebugDataTarget2; #define __ICorDebugLoadedModule_INTERFACE_DEFINED__ /* interface ICorDebugLoadedModule */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugLoadedModule; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("817F343A-6630-4578-96C5-D11BC0EC5EE2") ICorDebugLoadedModule : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetBaseAddress( + virtual HRESULT STDMETHODCALLTYPE GetBaseAddress( /* [out] */ CORDB_ADDRESS *pAddress) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetName( + + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcBytes) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugLoadedModuleVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugLoadedModule * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugLoadedModule * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugLoadedModule * This); - - HRESULT ( STDMETHODCALLTYPE *GetBaseAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetBaseAddress )( ICorDebugLoadedModule * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *GetName )( + + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugLoadedModule * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugLoadedModule * This, /* [out] */ ULONG32 *pcBytes); - + END_INTERFACE } ICorDebugLoadedModuleVtbl; @@ -2804,29 +2810,29 @@ EXTERN_C const IID IID_ICorDebugLoadedModule; CONST_VTBL struct ICorDebugLoadedModuleVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugLoadedModule_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugLoadedModule_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugLoadedModule_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugLoadedModule_GetBaseAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetBaseAddress(This,pAddress) ) + ( (This)->lpVtbl -> GetBaseAddress(This,pAddress) ) #define ICorDebugLoadedModule_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) #define ICorDebugLoadedModule_GetSize(This,pcBytes) \ - ( (This)->lpVtbl -> GetSize(This,pcBytes) ) + ( (This)->lpVtbl -> GetSize(This,pcBytes) ) #endif /* COBJMACROS */ @@ -2843,49 +2849,49 @@ EXTERN_C const IID IID_ICorDebugLoadedModule; #define __ICorDebugDataTarget3_INTERFACE_DEFINED__ /* interface ICorDebugDataTarget3 */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugDataTarget3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("D05E60C3-848C-4E7D-894E-623320FF6AFA") ICorDebugDataTarget3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetLoadedModules( + virtual HRESULT STDMETHODCALLTYPE GetLoadedModules( /* [in] */ ULONG32 cRequestedModules, /* [out] */ ULONG32 *pcFetchedModules, /* [length_is][size_is][out] */ ICorDebugLoadedModule *pLoadedModules[ ]) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugDataTarget3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDataTarget3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDataTarget3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDataTarget3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetLoadedModules )( + + HRESULT ( STDMETHODCALLTYPE *GetLoadedModules )( ICorDebugDataTarget3 * This, /* [in] */ ULONG32 cRequestedModules, /* [out] */ ULONG32 *pcFetchedModules, /* [length_is][size_is][out] */ ICorDebugLoadedModule *pLoadedModules[ ]); - + END_INTERFACE } ICorDebugDataTarget3Vtbl; @@ -2894,23 +2900,23 @@ EXTERN_C const IID IID_ICorDebugDataTarget3; CONST_VTBL struct ICorDebugDataTarget3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugDataTarget3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugDataTarget3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugDataTarget3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugDataTarget3_GetLoadedModules(This,cRequestedModules,pcFetchedModules,pLoadedModules) \ - ( (This)->lpVtbl -> GetLoadedModules(This,cRequestedModules,pcFetchedModules,pLoadedModules) ) + ( (This)->lpVtbl -> GetLoadedModules(This,cRequestedModules,pcFetchedModules,pLoadedModules) ) #endif /* COBJMACROS */ @@ -2927,49 +2933,49 @@ EXTERN_C const IID IID_ICorDebugDataTarget3; #define __ICorDebugDataTarget4_INTERFACE_DEFINED__ /* interface ICorDebugDataTarget4 */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugDataTarget4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("E799DC06-E099-4713-BDD9-906D3CC02CF2") ICorDebugDataTarget4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE VirtualUnwind( + virtual HRESULT STDMETHODCALLTYPE VirtualUnwind( /* [in] */ DWORD threadId, /* [in] */ ULONG32 contextSize, /* [size_is][out][in] */ BYTE *context) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugDataTarget4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDataTarget4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDataTarget4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDataTarget4 * This); - - HRESULT ( STDMETHODCALLTYPE *VirtualUnwind )( + + HRESULT ( STDMETHODCALLTYPE *VirtualUnwind )( ICorDebugDataTarget4 * This, /* [in] */ DWORD threadId, /* [in] */ ULONG32 contextSize, /* [size_is][out][in] */ BYTE *context); - + END_INTERFACE } ICorDebugDataTarget4Vtbl; @@ -2978,23 +2984,23 @@ EXTERN_C const IID IID_ICorDebugDataTarget4; CONST_VTBL struct ICorDebugDataTarget4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugDataTarget4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugDataTarget4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugDataTarget4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugDataTarget4_VirtualUnwind(This,threadId,contextSize,context) \ - ( (This)->lpVtbl -> VirtualUnwind(This,threadId,contextSize,context) ) + ( (This)->lpVtbl -> VirtualUnwind(This,threadId,contextSize,context) ) #endif /* COBJMACROS */ @@ -3011,87 +3017,87 @@ EXTERN_C const IID IID_ICorDebugDataTarget4; #define __ICorDebugMutableDataTarget_INTERFACE_DEFINED__ /* interface ICorDebugMutableDataTarget */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugMutableDataTarget; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("A1B8A756-3CB6-4CCB-979F-3DF999673A59") ICorDebugMutableDataTarget : public ICorDebugDataTarget { public: - virtual HRESULT STDMETHODCALLTYPE WriteVirtual( + virtual HRESULT STDMETHODCALLTYPE WriteVirtual( /* [in] */ CORDB_ADDRESS address, /* [size_is][in] */ const BYTE *pBuffer, /* [in] */ ULONG32 bytesRequested) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE SetThreadContext( /* [in] */ DWORD dwThreadID, /* [in] */ ULONG32 contextSize, /* [size_is][in] */ const BYTE *pContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE ContinueStatusChanged( + + virtual HRESULT STDMETHODCALLTYPE ContinueStatusChanged( /* [in] */ DWORD dwThreadId, /* [in] */ CORDB_CONTINUE_STATUS continueStatus) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugMutableDataTargetVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMutableDataTarget * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMutableDataTarget * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMutableDataTarget * This); - - HRESULT ( STDMETHODCALLTYPE *GetPlatform )( + + HRESULT ( STDMETHODCALLTYPE *GetPlatform )( ICorDebugMutableDataTarget * This, /* [out] */ CorDebugPlatform *pTargetPlatform); - - HRESULT ( STDMETHODCALLTYPE *ReadVirtual )( + + HRESULT ( STDMETHODCALLTYPE *ReadVirtual )( ICorDebugMutableDataTarget * This, /* [in] */ CORDB_ADDRESS address, /* [length_is][size_is][out] */ BYTE *pBuffer, /* [in] */ ULONG32 bytesRequested, /* [out] */ ULONG32 *pBytesRead); - - HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( + + HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( ICorDebugMutableDataTarget * This, /* [in] */ DWORD dwThreadID, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 contextSize, /* [size_is][out] */ BYTE *pContext); - - HRESULT ( STDMETHODCALLTYPE *WriteVirtual )( + + HRESULT ( STDMETHODCALLTYPE *WriteVirtual )( ICorDebugMutableDataTarget * This, /* [in] */ CORDB_ADDRESS address, /* [size_is][in] */ const BYTE *pBuffer, /* [in] */ ULONG32 bytesRequested); - - HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( + + HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( ICorDebugMutableDataTarget * This, /* [in] */ DWORD dwThreadID, /* [in] */ ULONG32 contextSize, /* [size_is][in] */ const BYTE *pContext); - - HRESULT ( STDMETHODCALLTYPE *ContinueStatusChanged )( + + HRESULT ( STDMETHODCALLTYPE *ContinueStatusChanged )( ICorDebugMutableDataTarget * This, /* [in] */ DWORD dwThreadId, /* [in] */ CORDB_CONTINUE_STATUS continueStatus); - + END_INTERFACE } ICorDebugMutableDataTargetVtbl; @@ -3100,39 +3106,39 @@ EXTERN_C const IID IID_ICorDebugMutableDataTarget; CONST_VTBL struct ICorDebugMutableDataTargetVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugMutableDataTarget_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugMutableDataTarget_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugMutableDataTarget_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugMutableDataTarget_GetPlatform(This,pTargetPlatform) \ - ( (This)->lpVtbl -> GetPlatform(This,pTargetPlatform) ) + ( (This)->lpVtbl -> GetPlatform(This,pTargetPlatform) ) #define ICorDebugMutableDataTarget_ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) \ - ( (This)->lpVtbl -> ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) ) + ( (This)->lpVtbl -> ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) ) #define ICorDebugMutableDataTarget_GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) \ - ( (This)->lpVtbl -> GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) ) + ( (This)->lpVtbl -> GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) ) #define ICorDebugMutableDataTarget_WriteVirtual(This,address,pBuffer,bytesRequested) \ - ( (This)->lpVtbl -> WriteVirtual(This,address,pBuffer,bytesRequested) ) + ( (This)->lpVtbl -> WriteVirtual(This,address,pBuffer,bytesRequested) ) #define ICorDebugMutableDataTarget_SetThreadContext(This,dwThreadID,contextSize,pContext) \ - ( (This)->lpVtbl -> SetThreadContext(This,dwThreadID,contextSize,pContext) ) + ( (This)->lpVtbl -> SetThreadContext(This,dwThreadID,contextSize,pContext) ) #define ICorDebugMutableDataTarget_ContinueStatusChanged(This,dwThreadId,continueStatus) \ - ( (This)->lpVtbl -> ContinueStatusChanged(This,dwThreadId,continueStatus) ) + ( (This)->lpVtbl -> ContinueStatusChanged(This,dwThreadId,continueStatus) ) #endif /* COBJMACROS */ @@ -3149,59 +3155,59 @@ EXTERN_C const IID IID_ICorDebugMutableDataTarget; #define __ICorDebugMetaDataLocator_INTERFACE_DEFINED__ /* interface ICorDebugMetaDataLocator */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugMetaDataLocator; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("7cef8ba9-2ef7-42bf-973f-4171474f87d9") ICorDebugMetaDataLocator : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetMetaData( + virtual HRESULT STDMETHODCALLTYPE GetMetaData( /* [in] */ LPCWSTR wszImagePath, /* [in] */ DWORD dwImageTimeStamp, /* [in] */ DWORD dwImageSize, /* [in] */ ULONG32 cchPathBuffer, - /* [annotation][out] */ + /* [annotation][out] */ _Out_ ULONG32 *pcchPathBuffer, - /* [annotation][length_is][size_is][out] */ + /* [annotation][length_is][size_is][out] */ _Out_writes_to_(cchPathBuffer, *pcchPathBuffer) WCHAR wszPathBuffer[ ]) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugMetaDataLocatorVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMetaDataLocator * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMetaDataLocator * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMetaDataLocator * This); - - HRESULT ( STDMETHODCALLTYPE *GetMetaData )( + + HRESULT ( STDMETHODCALLTYPE *GetMetaData )( ICorDebugMetaDataLocator * This, /* [in] */ LPCWSTR wszImagePath, /* [in] */ DWORD dwImageTimeStamp, /* [in] */ DWORD dwImageSize, /* [in] */ ULONG32 cchPathBuffer, - /* [annotation][out] */ + /* [annotation][out] */ _Out_ ULONG32 *pcchPathBuffer, - /* [annotation][length_is][size_is][out] */ + /* [annotation][length_is][size_is][out] */ _Out_writes_to_(cchPathBuffer, *pcchPathBuffer) WCHAR wszPathBuffer[ ]); - + END_INTERFACE } ICorDebugMetaDataLocatorVtbl; @@ -3210,23 +3216,23 @@ EXTERN_C const IID IID_ICorDebugMetaDataLocator; CONST_VTBL struct ICorDebugMetaDataLocatorVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugMetaDataLocator_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugMetaDataLocator_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugMetaDataLocator_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugMetaDataLocator_GetMetaData(This,wszImagePath,dwImageTimeStamp,dwImageSize,cchPathBuffer,pcchPathBuffer,wszPathBuffer) \ - ( (This)->lpVtbl -> GetMetaData(This,wszImagePath,dwImageTimeStamp,dwImageSize,cchPathBuffer,pcchPathBuffer,wszPathBuffer) ) + ( (This)->lpVtbl -> GetMetaData(This,wszImagePath,dwImageTimeStamp,dwImageSize,cchPathBuffer,pcchPathBuffer,wszPathBuffer) ) #endif /* COBJMACROS */ @@ -3240,10 +3246,10 @@ EXTERN_C const IID IID_ICorDebugMetaDataLocator; /* interface __MIDL_itf_cordebug_0000_0015 */ -/* [local] */ +/* [local] */ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0015_v0_0_c_ifspec; @@ -3253,9 +3259,9 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0015_v0_0_s_ifspec; #define __ICorDebugManagedCallback_INTERFACE_DEFINED__ /* interface ICorDebugManagedCallback */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugStepReason { STEP_NORMAL = 0, @@ -3264,10 +3270,10 @@ enum CorDebugStepReason STEP_EXCEPTION_FILTER = ( STEP_CALL + 1 ) , STEP_EXCEPTION_HANDLER = ( STEP_EXCEPTION_FILTER + 1 ) , STEP_INTERCEPT = ( STEP_EXCEPTION_HANDLER + 1 ) , - STEP_EXIT = ( STEP_INTERCEPT + 1 ) + STEP_EXIT = ( STEP_INTERCEPT + 1 ) } CorDebugStepReason; -typedef +typedef enum LoggingLevelEnum { LTraceLevel0 = 0, @@ -3285,253 +3291,253 @@ enum LoggingLevelEnum LPanicLevel = 100 } LoggingLevelEnum; -typedef +typedef enum LogSwitchCallReason { SWITCH_CREATE = 0, SWITCH_MODIFY = ( SWITCH_CREATE + 1 ) , - SWITCH_DELETE = ( SWITCH_MODIFY + 1 ) + SWITCH_DELETE = ( SWITCH_MODIFY + 1 ) } LogSwitchCallReason; EXTERN_C const IID IID_ICorDebugManagedCallback; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3d6f5f60-7538-11d3-8d5b-00104b35e7ef") ICorDebugManagedCallback : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE Breakpoint( + virtual HRESULT STDMETHODCALLTYPE Breakpoint( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugBreakpoint *pBreakpoint) = 0; - - virtual HRESULT STDMETHODCALLTYPE StepComplete( + + virtual HRESULT STDMETHODCALLTYPE StepComplete( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugStepper *pStepper, /* [in] */ CorDebugStepReason reason) = 0; - - virtual HRESULT STDMETHODCALLTYPE Break( + + virtual HRESULT STDMETHODCALLTYPE Break( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread) = 0; - - virtual HRESULT STDMETHODCALLTYPE Exception( + + virtual HRESULT STDMETHODCALLTYPE Exception( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ BOOL unhandled) = 0; - - virtual HRESULT STDMETHODCALLTYPE EvalComplete( + + virtual HRESULT STDMETHODCALLTYPE EvalComplete( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugEval *pEval) = 0; - - virtual HRESULT STDMETHODCALLTYPE EvalException( + + virtual HRESULT STDMETHODCALLTYPE EvalException( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugEval *pEval) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateProcess( + + virtual HRESULT STDMETHODCALLTYPE CreateProcess( /* [in] */ ICorDebugProcess *pProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExitProcess( + + virtual HRESULT STDMETHODCALLTYPE ExitProcess( /* [in] */ ICorDebugProcess *pProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateThread( + + virtual HRESULT STDMETHODCALLTYPE CreateThread( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExitThread( + + virtual HRESULT STDMETHODCALLTYPE ExitThread( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread) = 0; - - virtual HRESULT STDMETHODCALLTYPE LoadModule( + + virtual HRESULT STDMETHODCALLTYPE LoadModule( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnloadModule( + + virtual HRESULT STDMETHODCALLTYPE UnloadModule( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE LoadClass( + + virtual HRESULT STDMETHODCALLTYPE LoadClass( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugClass *c) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnloadClass( + + virtual HRESULT STDMETHODCALLTYPE UnloadClass( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugClass *c) = 0; - - virtual HRESULT STDMETHODCALLTYPE DebuggerError( + + virtual HRESULT STDMETHODCALLTYPE DebuggerError( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ HRESULT errorHR, /* [in] */ DWORD errorCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE LogMessage( + + virtual HRESULT STDMETHODCALLTYPE LogMessage( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ LONG lLevel, /* [in] */ WCHAR *pLogSwitchName, /* [in] */ WCHAR *pMessage) = 0; - - virtual HRESULT STDMETHODCALLTYPE LogSwitch( + + virtual HRESULT STDMETHODCALLTYPE LogSwitch( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ LONG lLevel, /* [in] */ ULONG ulReason, /* [in] */ WCHAR *pLogSwitchName, /* [in] */ WCHAR *pParentName) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateAppDomain( + + virtual HRESULT STDMETHODCALLTYPE CreateAppDomain( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugAppDomain *pAppDomain) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExitAppDomain( + + virtual HRESULT STDMETHODCALLTYPE ExitAppDomain( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugAppDomain *pAppDomain) = 0; - - virtual HRESULT STDMETHODCALLTYPE LoadAssembly( + + virtual HRESULT STDMETHODCALLTYPE LoadAssembly( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugAssembly *pAssembly) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnloadAssembly( + + virtual HRESULT STDMETHODCALLTYPE UnloadAssembly( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugAssembly *pAssembly) = 0; - - virtual HRESULT STDMETHODCALLTYPE ControlCTrap( + + virtual HRESULT STDMETHODCALLTYPE ControlCTrap( /* [in] */ ICorDebugProcess *pProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE NameChange( + + virtual HRESULT STDMETHODCALLTYPE NameChange( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE UpdateModuleSymbols( + + virtual HRESULT STDMETHODCALLTYPE UpdateModuleSymbols( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule, /* [in] */ IStream *pSymbolStream) = 0; - - virtual HRESULT STDMETHODCALLTYPE EditAndContinueRemap( + + virtual HRESULT STDMETHODCALLTYPE EditAndContinueRemap( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pFunction, /* [in] */ BOOL fAccurate) = 0; - - virtual HRESULT STDMETHODCALLTYPE BreakpointSetError( + + virtual HRESULT STDMETHODCALLTYPE BreakpointSetError( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugBreakpoint *pBreakpoint, /* [in] */ DWORD dwError) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugManagedCallbackVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugManagedCallback * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugManagedCallback * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugManagedCallback * This); - - HRESULT ( STDMETHODCALLTYPE *Breakpoint )( + + HRESULT ( STDMETHODCALLTYPE *Breakpoint )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugBreakpoint *pBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *StepComplete )( + + HRESULT ( STDMETHODCALLTYPE *StepComplete )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugStepper *pStepper, /* [in] */ CorDebugStepReason reason); - - HRESULT ( STDMETHODCALLTYPE *Break )( + + HRESULT ( STDMETHODCALLTYPE *Break )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread); - - HRESULT ( STDMETHODCALLTYPE *Exception )( + + HRESULT ( STDMETHODCALLTYPE *Exception )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ BOOL unhandled); - - HRESULT ( STDMETHODCALLTYPE *EvalComplete )( + + HRESULT ( STDMETHODCALLTYPE *EvalComplete )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugEval *pEval); - - HRESULT ( STDMETHODCALLTYPE *EvalException )( + + HRESULT ( STDMETHODCALLTYPE *EvalException )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugEval *pEval); - - HRESULT ( STDMETHODCALLTYPE *CreateProcess )( + + HRESULT ( STDMETHODCALLTYPE *CreateProcess )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess); - - HRESULT ( STDMETHODCALLTYPE *ExitProcess )( + + HRESULT ( STDMETHODCALLTYPE *ExitProcess )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess); - - HRESULT ( STDMETHODCALLTYPE *CreateThread )( + + HRESULT ( STDMETHODCALLTYPE *CreateThread )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread); - - HRESULT ( STDMETHODCALLTYPE *ExitThread )( + + HRESULT ( STDMETHODCALLTYPE *ExitThread )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread); - - HRESULT ( STDMETHODCALLTYPE *LoadModule )( + + HRESULT ( STDMETHODCALLTYPE *LoadModule )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule); - - HRESULT ( STDMETHODCALLTYPE *UnloadModule )( + + HRESULT ( STDMETHODCALLTYPE *UnloadModule )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule); - - HRESULT ( STDMETHODCALLTYPE *LoadClass )( + + HRESULT ( STDMETHODCALLTYPE *LoadClass )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugClass *c); - - HRESULT ( STDMETHODCALLTYPE *UnloadClass )( + + HRESULT ( STDMETHODCALLTYPE *UnloadClass )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugClass *c); - - HRESULT ( STDMETHODCALLTYPE *DebuggerError )( + + HRESULT ( STDMETHODCALLTYPE *DebuggerError )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ HRESULT errorHR, /* [in] */ DWORD errorCode); - - HRESULT ( STDMETHODCALLTYPE *LogMessage )( + + HRESULT ( STDMETHODCALLTYPE *LogMessage )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ LONG lLevel, /* [in] */ WCHAR *pLogSwitchName, /* [in] */ WCHAR *pMessage); - - HRESULT ( STDMETHODCALLTYPE *LogSwitch )( + + HRESULT ( STDMETHODCALLTYPE *LogSwitch )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, @@ -3539,56 +3545,56 @@ EXTERN_C const IID IID_ICorDebugManagedCallback; /* [in] */ ULONG ulReason, /* [in] */ WCHAR *pLogSwitchName, /* [in] */ WCHAR *pParentName); - - HRESULT ( STDMETHODCALLTYPE *CreateAppDomain )( + + HRESULT ( STDMETHODCALLTYPE *CreateAppDomain )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugAppDomain *pAppDomain); - - HRESULT ( STDMETHODCALLTYPE *ExitAppDomain )( + + HRESULT ( STDMETHODCALLTYPE *ExitAppDomain )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugAppDomain *pAppDomain); - - HRESULT ( STDMETHODCALLTYPE *LoadAssembly )( + + HRESULT ( STDMETHODCALLTYPE *LoadAssembly )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugAssembly *pAssembly); - - HRESULT ( STDMETHODCALLTYPE *UnloadAssembly )( + + HRESULT ( STDMETHODCALLTYPE *UnloadAssembly )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugAssembly *pAssembly); - - HRESULT ( STDMETHODCALLTYPE *ControlCTrap )( + + HRESULT ( STDMETHODCALLTYPE *ControlCTrap )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess); - - HRESULT ( STDMETHODCALLTYPE *NameChange )( + + HRESULT ( STDMETHODCALLTYPE *NameChange )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread); - - HRESULT ( STDMETHODCALLTYPE *UpdateModuleSymbols )( + + HRESULT ( STDMETHODCALLTYPE *UpdateModuleSymbols )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule, /* [in] */ IStream *pSymbolStream); - - HRESULT ( STDMETHODCALLTYPE *EditAndContinueRemap )( + + HRESULT ( STDMETHODCALLTYPE *EditAndContinueRemap )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pFunction, /* [in] */ BOOL fAccurate); - - HRESULT ( STDMETHODCALLTYPE *BreakpointSetError )( + + HRESULT ( STDMETHODCALLTYPE *BreakpointSetError )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugBreakpoint *pBreakpoint, /* [in] */ DWORD dwError); - + END_INTERFACE } ICorDebugManagedCallbackVtbl; @@ -3597,98 +3603,98 @@ EXTERN_C const IID IID_ICorDebugManagedCallback; CONST_VTBL struct ICorDebugManagedCallbackVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugManagedCallback_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugManagedCallback_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugManagedCallback_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugManagedCallback_Breakpoint(This,pAppDomain,pThread,pBreakpoint) \ - ( (This)->lpVtbl -> Breakpoint(This,pAppDomain,pThread,pBreakpoint) ) + ( (This)->lpVtbl -> Breakpoint(This,pAppDomain,pThread,pBreakpoint) ) #define ICorDebugManagedCallback_StepComplete(This,pAppDomain,pThread,pStepper,reason) \ - ( (This)->lpVtbl -> StepComplete(This,pAppDomain,pThread,pStepper,reason) ) + ( (This)->lpVtbl -> StepComplete(This,pAppDomain,pThread,pStepper,reason) ) #define ICorDebugManagedCallback_Break(This,pAppDomain,thread) \ - ( (This)->lpVtbl -> Break(This,pAppDomain,thread) ) + ( (This)->lpVtbl -> Break(This,pAppDomain,thread) ) #define ICorDebugManagedCallback_Exception(This,pAppDomain,pThread,unhandled) \ - ( (This)->lpVtbl -> Exception(This,pAppDomain,pThread,unhandled) ) + ( (This)->lpVtbl -> Exception(This,pAppDomain,pThread,unhandled) ) #define ICorDebugManagedCallback_EvalComplete(This,pAppDomain,pThread,pEval) \ - ( (This)->lpVtbl -> EvalComplete(This,pAppDomain,pThread,pEval) ) + ( (This)->lpVtbl -> EvalComplete(This,pAppDomain,pThread,pEval) ) #define ICorDebugManagedCallback_EvalException(This,pAppDomain,pThread,pEval) \ - ( (This)->lpVtbl -> EvalException(This,pAppDomain,pThread,pEval) ) + ( (This)->lpVtbl -> EvalException(This,pAppDomain,pThread,pEval) ) #define ICorDebugManagedCallback_CreateProcess(This,pProcess) \ - ( (This)->lpVtbl -> CreateProcess(This,pProcess) ) + ( (This)->lpVtbl -> CreateProcess(This,pProcess) ) #define ICorDebugManagedCallback_ExitProcess(This,pProcess) \ - ( (This)->lpVtbl -> ExitProcess(This,pProcess) ) + ( (This)->lpVtbl -> ExitProcess(This,pProcess) ) #define ICorDebugManagedCallback_CreateThread(This,pAppDomain,thread) \ - ( (This)->lpVtbl -> CreateThread(This,pAppDomain,thread) ) + ( (This)->lpVtbl -> CreateThread(This,pAppDomain,thread) ) #define ICorDebugManagedCallback_ExitThread(This,pAppDomain,thread) \ - ( (This)->lpVtbl -> ExitThread(This,pAppDomain,thread) ) + ( (This)->lpVtbl -> ExitThread(This,pAppDomain,thread) ) #define ICorDebugManagedCallback_LoadModule(This,pAppDomain,pModule) \ - ( (This)->lpVtbl -> LoadModule(This,pAppDomain,pModule) ) + ( (This)->lpVtbl -> LoadModule(This,pAppDomain,pModule) ) #define ICorDebugManagedCallback_UnloadModule(This,pAppDomain,pModule) \ - ( (This)->lpVtbl -> UnloadModule(This,pAppDomain,pModule) ) + ( (This)->lpVtbl -> UnloadModule(This,pAppDomain,pModule) ) #define ICorDebugManagedCallback_LoadClass(This,pAppDomain,c) \ - ( (This)->lpVtbl -> LoadClass(This,pAppDomain,c) ) + ( (This)->lpVtbl -> LoadClass(This,pAppDomain,c) ) #define ICorDebugManagedCallback_UnloadClass(This,pAppDomain,c) \ - ( (This)->lpVtbl -> UnloadClass(This,pAppDomain,c) ) + ( (This)->lpVtbl -> UnloadClass(This,pAppDomain,c) ) #define ICorDebugManagedCallback_DebuggerError(This,pProcess,errorHR,errorCode) \ - ( (This)->lpVtbl -> DebuggerError(This,pProcess,errorHR,errorCode) ) + ( (This)->lpVtbl -> DebuggerError(This,pProcess,errorHR,errorCode) ) #define ICorDebugManagedCallback_LogMessage(This,pAppDomain,pThread,lLevel,pLogSwitchName,pMessage) \ - ( (This)->lpVtbl -> LogMessage(This,pAppDomain,pThread,lLevel,pLogSwitchName,pMessage) ) + ( (This)->lpVtbl -> LogMessage(This,pAppDomain,pThread,lLevel,pLogSwitchName,pMessage) ) #define ICorDebugManagedCallback_LogSwitch(This,pAppDomain,pThread,lLevel,ulReason,pLogSwitchName,pParentName) \ - ( (This)->lpVtbl -> LogSwitch(This,pAppDomain,pThread,lLevel,ulReason,pLogSwitchName,pParentName) ) + ( (This)->lpVtbl -> LogSwitch(This,pAppDomain,pThread,lLevel,ulReason,pLogSwitchName,pParentName) ) #define ICorDebugManagedCallback_CreateAppDomain(This,pProcess,pAppDomain) \ - ( (This)->lpVtbl -> CreateAppDomain(This,pProcess,pAppDomain) ) + ( (This)->lpVtbl -> CreateAppDomain(This,pProcess,pAppDomain) ) #define ICorDebugManagedCallback_ExitAppDomain(This,pProcess,pAppDomain) \ - ( (This)->lpVtbl -> ExitAppDomain(This,pProcess,pAppDomain) ) + ( (This)->lpVtbl -> ExitAppDomain(This,pProcess,pAppDomain) ) #define ICorDebugManagedCallback_LoadAssembly(This,pAppDomain,pAssembly) \ - ( (This)->lpVtbl -> LoadAssembly(This,pAppDomain,pAssembly) ) + ( (This)->lpVtbl -> LoadAssembly(This,pAppDomain,pAssembly) ) #define ICorDebugManagedCallback_UnloadAssembly(This,pAppDomain,pAssembly) \ - ( (This)->lpVtbl -> UnloadAssembly(This,pAppDomain,pAssembly) ) + ( (This)->lpVtbl -> UnloadAssembly(This,pAppDomain,pAssembly) ) #define ICorDebugManagedCallback_ControlCTrap(This,pProcess) \ - ( (This)->lpVtbl -> ControlCTrap(This,pProcess) ) + ( (This)->lpVtbl -> ControlCTrap(This,pProcess) ) #define ICorDebugManagedCallback_NameChange(This,pAppDomain,pThread) \ - ( (This)->lpVtbl -> NameChange(This,pAppDomain,pThread) ) + ( (This)->lpVtbl -> NameChange(This,pAppDomain,pThread) ) #define ICorDebugManagedCallback_UpdateModuleSymbols(This,pAppDomain,pModule,pSymbolStream) \ - ( (This)->lpVtbl -> UpdateModuleSymbols(This,pAppDomain,pModule,pSymbolStream) ) + ( (This)->lpVtbl -> UpdateModuleSymbols(This,pAppDomain,pModule,pSymbolStream) ) #define ICorDebugManagedCallback_EditAndContinueRemap(This,pAppDomain,pThread,pFunction,fAccurate) \ - ( (This)->lpVtbl -> EditAndContinueRemap(This,pAppDomain,pThread,pFunction,fAccurate) ) + ( (This)->lpVtbl -> EditAndContinueRemap(This,pAppDomain,pThread,pFunction,fAccurate) ) #define ICorDebugManagedCallback_BreakpointSetError(This,pAppDomain,pThread,pBreakpoint,dwError) \ - ( (This)->lpVtbl -> BreakpointSetError(This,pAppDomain,pThread,pBreakpoint,dwError) ) + ( (This)->lpVtbl -> BreakpointSetError(This,pAppDomain,pThread,pBreakpoint,dwError) ) #endif /* COBJMACROS */ @@ -3702,7 +3708,7 @@ EXTERN_C const IID IID_ICorDebugManagedCallback; /* interface __MIDL_itf_cordebug_0000_0016 */ -/* [local] */ +/* [local] */ #pragma warning(pop) #pragma warning(push) @@ -3715,47 +3721,47 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0016_v0_0_s_ifspec; #define __ICorDebugManagedCallback3_INTERFACE_DEFINED__ /* interface ICorDebugManagedCallback3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugManagedCallback3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("264EA0FC-2591-49AA-868E-835E6515323F") ICorDebugManagedCallback3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CustomNotification( + virtual HRESULT STDMETHODCALLTYPE CustomNotification( /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugAppDomain *pAppDomain) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugManagedCallback3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugManagedCallback3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugManagedCallback3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugManagedCallback3 * This); - - HRESULT ( STDMETHODCALLTYPE *CustomNotification )( + + HRESULT ( STDMETHODCALLTYPE *CustomNotification )( ICorDebugManagedCallback3 * This, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugAppDomain *pAppDomain); - + END_INTERFACE } ICorDebugManagedCallback3Vtbl; @@ -3764,23 +3770,23 @@ EXTERN_C const IID IID_ICorDebugManagedCallback3; CONST_VTBL struct ICorDebugManagedCallback3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugManagedCallback3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugManagedCallback3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugManagedCallback3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugManagedCallback3_CustomNotification(This,pThread,pAppDomain) \ - ( (This)->lpVtbl -> CustomNotification(This,pThread,pAppDomain) ) + ( (This)->lpVtbl -> CustomNotification(This,pThread,pAppDomain) ) #endif /* COBJMACROS */ @@ -3797,65 +3803,65 @@ EXTERN_C const IID IID_ICorDebugManagedCallback3; #define __ICorDebugManagedCallback4_INTERFACE_DEFINED__ /* interface ICorDebugManagedCallback4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugManagedCallback4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("322911AE-16A5-49BA-84A3-ED69678138A3") ICorDebugManagedCallback4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE BeforeGarbageCollection( + virtual HRESULT STDMETHODCALLTYPE BeforeGarbageCollection( /* [in] */ ICorDebugProcess *pProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE AfterGarbageCollection( + + virtual HRESULT STDMETHODCALLTYPE AfterGarbageCollection( /* [in] */ ICorDebugProcess *pProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE DataBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE DataBreakpoint( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugThread *pThread, /* [in] */ BYTE *pContext, /* [in] */ ULONG32 contextSize) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugManagedCallback4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugManagedCallback4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugManagedCallback4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugManagedCallback4 * This); - - HRESULT ( STDMETHODCALLTYPE *BeforeGarbageCollection )( + + HRESULT ( STDMETHODCALLTYPE *BeforeGarbageCollection )( ICorDebugManagedCallback4 * This, /* [in] */ ICorDebugProcess *pProcess); - - HRESULT ( STDMETHODCALLTYPE *AfterGarbageCollection )( + + HRESULT ( STDMETHODCALLTYPE *AfterGarbageCollection )( ICorDebugManagedCallback4 * This, /* [in] */ ICorDebugProcess *pProcess); - - HRESULT ( STDMETHODCALLTYPE *DataBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *DataBreakpoint )( ICorDebugManagedCallback4 * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugThread *pThread, /* [in] */ BYTE *pContext, /* [in] */ ULONG32 contextSize); - + END_INTERFACE } ICorDebugManagedCallback4Vtbl; @@ -3864,29 +3870,29 @@ EXTERN_C const IID IID_ICorDebugManagedCallback4; CONST_VTBL struct ICorDebugManagedCallback4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugManagedCallback4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugManagedCallback4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugManagedCallback4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugManagedCallback4_BeforeGarbageCollection(This,pProcess) \ - ( (This)->lpVtbl -> BeforeGarbageCollection(This,pProcess) ) + ( (This)->lpVtbl -> BeforeGarbageCollection(This,pProcess) ) #define ICorDebugManagedCallback4_AfterGarbageCollection(This,pProcess) \ - ( (This)->lpVtbl -> AfterGarbageCollection(This,pProcess) ) + ( (This)->lpVtbl -> AfterGarbageCollection(This,pProcess) ) #define ICorDebugManagedCallback4_DataBreakpoint(This,pProcess,pThread,pContext,contextSize) \ - ( (This)->lpVtbl -> DataBreakpoint(This,pProcess,pThread,pContext,contextSize) ) + ( (This)->lpVtbl -> DataBreakpoint(This,pProcess,pThread,pContext,contextSize) ) #endif /* COBJMACROS */ @@ -3900,9 +3906,9 @@ EXTERN_C const IID IID_ICorDebugManagedCallback4; /* interface __MIDL_itf_cordebug_0000_0018 */ -/* [local] */ +/* [local] */ -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0018_v0_0_c_ifspec; @@ -3912,9 +3918,9 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0018_v0_0_s_ifspec; #define __ICorDebugManagedCallback2_INTERFACE_DEFINED__ /* interface ICorDebugManagedCallback2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugExceptionCallbackType { DEBUG_EXCEPTION_FIRST_CHANCE = 1, @@ -3923,14 +3929,14 @@ enum CorDebugExceptionCallbackType DEBUG_EXCEPTION_UNHANDLED = 4 } CorDebugExceptionCallbackType; -typedef +typedef enum CorDebugExceptionFlags { DEBUG_EXCEPTION_NONE = 0, DEBUG_EXCEPTION_CAN_BE_INTERCEPTED = 0x1 } CorDebugExceptionFlags; -typedef +typedef enum CorDebugExceptionUnwindCallbackType { DEBUG_EXCEPTION_UNWIND_BEGIN = 1, @@ -3941,101 +3947,101 @@ enum CorDebugExceptionUnwindCallbackType EXTERN_C const IID IID_ICorDebugManagedCallback2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("250E5EEA-DB5C-4C76-B6F3-8C46F12E3203") ICorDebugManagedCallback2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE FunctionRemapOpportunity( + virtual HRESULT STDMETHODCALLTYPE FunctionRemapOpportunity( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pOldFunction, /* [in] */ ICorDebugFunction *pNewFunction, /* [in] */ ULONG32 oldILOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateConnection( + + virtual HRESULT STDMETHODCALLTYPE CreateConnection( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId, /* [in] */ WCHAR *pConnName) = 0; - - virtual HRESULT STDMETHODCALLTYPE ChangeConnection( + + virtual HRESULT STDMETHODCALLTYPE ChangeConnection( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId) = 0; - - virtual HRESULT STDMETHODCALLTYPE DestroyConnection( + + virtual HRESULT STDMETHODCALLTYPE DestroyConnection( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId) = 0; - - virtual HRESULT STDMETHODCALLTYPE Exception( + + virtual HRESULT STDMETHODCALLTYPE Exception( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFrame *pFrame, /* [in] */ ULONG32 nOffset, /* [in] */ CorDebugExceptionCallbackType dwEventType, /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExceptionUnwind( + + virtual HRESULT STDMETHODCALLTYPE ExceptionUnwind( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ CorDebugExceptionUnwindCallbackType dwEventType, /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE FunctionRemapComplete( + + virtual HRESULT STDMETHODCALLTYPE FunctionRemapComplete( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE MDANotification( + + virtual HRESULT STDMETHODCALLTYPE MDANotification( /* [in] */ ICorDebugController *pController, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugMDA *pMDA) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugManagedCallback2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugManagedCallback2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugManagedCallback2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugManagedCallback2 * This); - - HRESULT ( STDMETHODCALLTYPE *FunctionRemapOpportunity )( + + HRESULT ( STDMETHODCALLTYPE *FunctionRemapOpportunity )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pOldFunction, /* [in] */ ICorDebugFunction *pNewFunction, /* [in] */ ULONG32 oldILOffset); - - HRESULT ( STDMETHODCALLTYPE *CreateConnection )( + + HRESULT ( STDMETHODCALLTYPE *CreateConnection )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId, /* [in] */ WCHAR *pConnName); - - HRESULT ( STDMETHODCALLTYPE *ChangeConnection )( + + HRESULT ( STDMETHODCALLTYPE *ChangeConnection )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId); - - HRESULT ( STDMETHODCALLTYPE *DestroyConnection )( + + HRESULT ( STDMETHODCALLTYPE *DestroyConnection )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId); - - HRESULT ( STDMETHODCALLTYPE *Exception )( + + HRESULT ( STDMETHODCALLTYPE *Exception )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, @@ -4043,26 +4049,26 @@ EXTERN_C const IID IID_ICorDebugManagedCallback2; /* [in] */ ULONG32 nOffset, /* [in] */ CorDebugExceptionCallbackType dwEventType, /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *ExceptionUnwind )( + + HRESULT ( STDMETHODCALLTYPE *ExceptionUnwind )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ CorDebugExceptionUnwindCallbackType dwEventType, /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *FunctionRemapComplete )( + + HRESULT ( STDMETHODCALLTYPE *FunctionRemapComplete )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pFunction); - - HRESULT ( STDMETHODCALLTYPE *MDANotification )( + + HRESULT ( STDMETHODCALLTYPE *MDANotification )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugController *pController, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugMDA *pMDA); - + END_INTERFACE } ICorDebugManagedCallback2Vtbl; @@ -4071,44 +4077,44 @@ EXTERN_C const IID IID_ICorDebugManagedCallback2; CONST_VTBL struct ICorDebugManagedCallback2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugManagedCallback2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugManagedCallback2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugManagedCallback2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugManagedCallback2_FunctionRemapOpportunity(This,pAppDomain,pThread,pOldFunction,pNewFunction,oldILOffset) \ - ( (This)->lpVtbl -> FunctionRemapOpportunity(This,pAppDomain,pThread,pOldFunction,pNewFunction,oldILOffset) ) + ( (This)->lpVtbl -> FunctionRemapOpportunity(This,pAppDomain,pThread,pOldFunction,pNewFunction,oldILOffset) ) #define ICorDebugManagedCallback2_CreateConnection(This,pProcess,dwConnectionId,pConnName) \ - ( (This)->lpVtbl -> CreateConnection(This,pProcess,dwConnectionId,pConnName) ) + ( (This)->lpVtbl -> CreateConnection(This,pProcess,dwConnectionId,pConnName) ) #define ICorDebugManagedCallback2_ChangeConnection(This,pProcess,dwConnectionId) \ - ( (This)->lpVtbl -> ChangeConnection(This,pProcess,dwConnectionId) ) + ( (This)->lpVtbl -> ChangeConnection(This,pProcess,dwConnectionId) ) #define ICorDebugManagedCallback2_DestroyConnection(This,pProcess,dwConnectionId) \ - ( (This)->lpVtbl -> DestroyConnection(This,pProcess,dwConnectionId) ) + ( (This)->lpVtbl -> DestroyConnection(This,pProcess,dwConnectionId) ) #define ICorDebugManagedCallback2_Exception(This,pAppDomain,pThread,pFrame,nOffset,dwEventType,dwFlags) \ - ( (This)->lpVtbl -> Exception(This,pAppDomain,pThread,pFrame,nOffset,dwEventType,dwFlags) ) + ( (This)->lpVtbl -> Exception(This,pAppDomain,pThread,pFrame,nOffset,dwEventType,dwFlags) ) #define ICorDebugManagedCallback2_ExceptionUnwind(This,pAppDomain,pThread,dwEventType,dwFlags) \ - ( (This)->lpVtbl -> ExceptionUnwind(This,pAppDomain,pThread,dwEventType,dwFlags) ) + ( (This)->lpVtbl -> ExceptionUnwind(This,pAppDomain,pThread,dwEventType,dwFlags) ) #define ICorDebugManagedCallback2_FunctionRemapComplete(This,pAppDomain,pThread,pFunction) \ - ( (This)->lpVtbl -> FunctionRemapComplete(This,pAppDomain,pThread,pFunction) ) + ( (This)->lpVtbl -> FunctionRemapComplete(This,pAppDomain,pThread,pFunction) ) #define ICorDebugManagedCallback2_MDANotification(This,pController,pThread,pMDA) \ - ( (This)->lpVtbl -> MDANotification(This,pController,pThread,pMDA) ) + ( (This)->lpVtbl -> MDANotification(This,pController,pThread,pMDA) ) #endif /* COBJMACROS */ @@ -4122,7 +4128,7 @@ EXTERN_C const IID IID_ICorDebugManagedCallback2; /* interface __MIDL_itf_cordebug_0000_0019 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -4134,47 +4140,47 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0019_v0_0_s_ifspec; #define __ICorDebugUnmanagedCallback_INTERFACE_DEFINED__ /* interface ICorDebugUnmanagedCallback */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugUnmanagedCallback; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("5263E909-8CB5-11d3-BD2F-0000F80849BD") ICorDebugUnmanagedCallback : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE DebugEvent( + virtual HRESULT STDMETHODCALLTYPE DebugEvent( /* [in] */ LPDEBUG_EVENT pDebugEvent, /* [in] */ BOOL fOutOfBand) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugUnmanagedCallbackVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugUnmanagedCallback * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugUnmanagedCallback * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugUnmanagedCallback * This); - - HRESULT ( STDMETHODCALLTYPE *DebugEvent )( + + HRESULT ( STDMETHODCALLTYPE *DebugEvent )( ICorDebugUnmanagedCallback * This, /* [in] */ LPDEBUG_EVENT pDebugEvent, /* [in] */ BOOL fOutOfBand); - + END_INTERFACE } ICorDebugUnmanagedCallbackVtbl; @@ -4183,23 +4189,23 @@ EXTERN_C const IID IID_ICorDebugUnmanagedCallback; CONST_VTBL struct ICorDebugUnmanagedCallbackVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugUnmanagedCallback_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugUnmanagedCallback_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugUnmanagedCallback_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugUnmanagedCallback_DebugEvent(This,pDebugEvent,fOutOfBand) \ - ( (This)->lpVtbl -> DebugEvent(This,pDebugEvent,fOutOfBand) ) + ( (This)->lpVtbl -> DebugEvent(This,pDebugEvent,fOutOfBand) ) #endif /* COBJMACROS */ @@ -4213,23 +4219,24 @@ EXTERN_C const IID IID_ICorDebugUnmanagedCallback; /* interface __MIDL_itf_cordebug_0000_0020 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorDebugCreateProcessFlags { DEBUG_NO_SPECIAL_OPTIONS = 0 } CorDebugCreateProcessFlags; -typedef +typedef enum CorDebugHandleType { HANDLE_STRONG = 1, - HANDLE_WEAK_TRACK_RESURRECTION = 2 + HANDLE_WEAK_TRACK_RESURRECTION = 2, + HANDLE_PINNED = 3 } CorDebugHandleType; #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0020_v0_0_c_ifspec; @@ -4239,28 +4246,28 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0020_v0_0_s_ifspec; #define __ICorDebug_INTERFACE_DEFINED__ /* interface ICorDebug */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebug; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3d6f5f61-7538-11d3-8d5b-00104b35e7ef") ICorDebug : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE Initialize( void) = 0; - + virtual HRESULT STDMETHODCALLTYPE Terminate( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetManagedHandler( + + virtual HRESULT STDMETHODCALLTYPE SetManagedHandler( /* [in] */ ICorDebugManagedCallback *pCallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetUnmanagedHandler( + + virtual HRESULT STDMETHODCALLTYPE SetUnmanagedHandler( /* [in] */ ICorDebugUnmanagedCallback *pCallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateProcess( + + virtual HRESULT STDMETHODCALLTYPE CreateProcess( /* [in] */ LPCWSTR lpApplicationName, /* [in] */ LPWSTR lpCommandLine, /* [in] */ LPSECURITY_ATTRIBUTES lpProcessAttributes, @@ -4273,59 +4280,59 @@ EXTERN_C const IID IID_ICorDebug; /* [in] */ LPPROCESS_INFORMATION lpProcessInformation, /* [in] */ CorDebugCreateProcessFlags debuggingFlags, /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE DebugActiveProcess( + + virtual HRESULT STDMETHODCALLTYPE DebugActiveProcess( /* [in] */ DWORD id, /* [in] */ BOOL win32Attach, /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateProcesses( + + virtual HRESULT STDMETHODCALLTYPE EnumerateProcesses( /* [out] */ ICorDebugProcessEnum **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetProcess( + + virtual HRESULT STDMETHODCALLTYPE GetProcess( /* [in] */ DWORD dwProcessId, /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE CanLaunchOrAttach( + + virtual HRESULT STDMETHODCALLTYPE CanLaunchOrAttach( /* [in] */ DWORD dwProcessId, /* [in] */ BOOL win32DebuggingEnabled) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebug * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebug * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebug * This); - - HRESULT ( STDMETHODCALLTYPE *Initialize )( + + HRESULT ( STDMETHODCALLTYPE *Initialize )( ICorDebug * This); - - HRESULT ( STDMETHODCALLTYPE *Terminate )( + + HRESULT ( STDMETHODCALLTYPE *Terminate )( ICorDebug * This); - - HRESULT ( STDMETHODCALLTYPE *SetManagedHandler )( + + HRESULT ( STDMETHODCALLTYPE *SetManagedHandler )( ICorDebug * This, /* [in] */ ICorDebugManagedCallback *pCallback); - - HRESULT ( STDMETHODCALLTYPE *SetUnmanagedHandler )( + + HRESULT ( STDMETHODCALLTYPE *SetUnmanagedHandler )( ICorDebug * This, /* [in] */ ICorDebugUnmanagedCallback *pCallback); - - HRESULT ( STDMETHODCALLTYPE *CreateProcess )( + + HRESULT ( STDMETHODCALLTYPE *CreateProcess )( ICorDebug * This, /* [in] */ LPCWSTR lpApplicationName, /* [in] */ LPWSTR lpCommandLine, @@ -4339,27 +4346,27 @@ EXTERN_C const IID IID_ICorDebug; /* [in] */ LPPROCESS_INFORMATION lpProcessInformation, /* [in] */ CorDebugCreateProcessFlags debuggingFlags, /* [out] */ ICorDebugProcess **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *DebugActiveProcess )( + + HRESULT ( STDMETHODCALLTYPE *DebugActiveProcess )( ICorDebug * This, /* [in] */ DWORD id, /* [in] */ BOOL win32Attach, /* [out] */ ICorDebugProcess **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *EnumerateProcesses )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateProcesses )( ICorDebug * This, /* [out] */ ICorDebugProcessEnum **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *GetProcess )( + + HRESULT ( STDMETHODCALLTYPE *GetProcess )( ICorDebug * This, /* [in] */ DWORD dwProcessId, /* [out] */ ICorDebugProcess **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *CanLaunchOrAttach )( + + HRESULT ( STDMETHODCALLTYPE *CanLaunchOrAttach )( ICorDebug * This, /* [in] */ DWORD dwProcessId, /* [in] */ BOOL win32DebuggingEnabled); - + END_INTERFACE } ICorDebugVtbl; @@ -4368,47 +4375,47 @@ EXTERN_C const IID IID_ICorDebug; CONST_VTBL struct ICorDebugVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebug_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebug_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebug_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebug_Initialize(This) \ - ( (This)->lpVtbl -> Initialize(This) ) + ( (This)->lpVtbl -> Initialize(This) ) #define ICorDebug_Terminate(This) \ - ( (This)->lpVtbl -> Terminate(This) ) + ( (This)->lpVtbl -> Terminate(This) ) #define ICorDebug_SetManagedHandler(This,pCallback) \ - ( (This)->lpVtbl -> SetManagedHandler(This,pCallback) ) + ( (This)->lpVtbl -> SetManagedHandler(This,pCallback) ) #define ICorDebug_SetUnmanagedHandler(This,pCallback) \ - ( (This)->lpVtbl -> SetUnmanagedHandler(This,pCallback) ) + ( (This)->lpVtbl -> SetUnmanagedHandler(This,pCallback) ) #define ICorDebug_CreateProcess(This,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) \ - ( (This)->lpVtbl -> CreateProcess(This,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) ) + ( (This)->lpVtbl -> CreateProcess(This,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) ) #define ICorDebug_DebugActiveProcess(This,id,win32Attach,ppProcess) \ - ( (This)->lpVtbl -> DebugActiveProcess(This,id,win32Attach,ppProcess) ) + ( (This)->lpVtbl -> DebugActiveProcess(This,id,win32Attach,ppProcess) ) #define ICorDebug_EnumerateProcesses(This,ppProcess) \ - ( (This)->lpVtbl -> EnumerateProcesses(This,ppProcess) ) + ( (This)->lpVtbl -> EnumerateProcesses(This,ppProcess) ) #define ICorDebug_GetProcess(This,dwProcessId,ppProcess) \ - ( (This)->lpVtbl -> GetProcess(This,dwProcessId,ppProcess) ) + ( (This)->lpVtbl -> GetProcess(This,dwProcessId,ppProcess) ) #define ICorDebug_CanLaunchOrAttach(This,dwProcessId,win32DebuggingEnabled) \ - ( (This)->lpVtbl -> CanLaunchOrAttach(This,dwProcessId,win32DebuggingEnabled) ) + ( (This)->lpVtbl -> CanLaunchOrAttach(This,dwProcessId,win32DebuggingEnabled) ) #endif /* COBJMACROS */ @@ -4422,7 +4429,7 @@ EXTERN_C const IID IID_ICorDebug; /* interface __MIDL_itf_cordebug_0000_0021 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -4434,53 +4441,53 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0021_v0_0_s_ifspec; #define __ICorDebugRemoteTarget_INTERFACE_DEFINED__ /* interface ICorDebugRemoteTarget */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugRemoteTarget; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("C3ED8383-5A49-4cf5-B4B7-01864D9E582D") ICorDebugRemoteTarget : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetHostName( + virtual HRESULT STDMETHODCALLTYPE GetHostName( /* [in] */ ULONG32 cchHostName, - /* [annotation][out] */ + /* [annotation][out] */ _Out_ ULONG32 *pcchHostName, - /* [annotation][length_is][size_is][out] */ + /* [annotation][length_is][size_is][out] */ _Out_writes_to_opt_(cchHostName, *pcchHostName) WCHAR szHostName[ ]) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugRemoteTargetVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugRemoteTarget * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugRemoteTarget * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugRemoteTarget * This); - - HRESULT ( STDMETHODCALLTYPE *GetHostName )( + + HRESULT ( STDMETHODCALLTYPE *GetHostName )( ICorDebugRemoteTarget * This, /* [in] */ ULONG32 cchHostName, - /* [annotation][out] */ + /* [annotation][out] */ _Out_ ULONG32 *pcchHostName, - /* [annotation][length_is][size_is][out] */ + /* [annotation][length_is][size_is][out] */ _Out_writes_to_opt_(cchHostName, *pcchHostName) WCHAR szHostName[ ]); - + END_INTERFACE } ICorDebugRemoteTargetVtbl; @@ -4489,23 +4496,23 @@ EXTERN_C const IID IID_ICorDebugRemoteTarget; CONST_VTBL struct ICorDebugRemoteTargetVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugRemoteTarget_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugRemoteTarget_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugRemoteTarget_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugRemoteTarget_GetHostName(This,cchHostName,pcchHostName,szHostName) \ - ( (This)->lpVtbl -> GetHostName(This,cchHostName,pcchHostName,szHostName) ) + ( (This)->lpVtbl -> GetHostName(This,cchHostName,pcchHostName,szHostName) ) #endif /* COBJMACROS */ @@ -4522,21 +4529,21 @@ EXTERN_C const IID IID_ICorDebugRemoteTarget; #define __ICorDebugRemote_INTERFACE_DEFINED__ /* interface ICorDebugRemote */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugRemote; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("D5EBB8E2-7BBE-4c1d-98A6-A3C04CBDEF64") ICorDebugRemote : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreateProcessEx( + virtual HRESULT STDMETHODCALLTYPE CreateProcessEx( /* [in] */ ICorDebugRemoteTarget *pRemoteTarget, /* [in] */ LPCWSTR lpApplicationName, - /* [annotation][in] */ + /* [annotation][in] */ _In_ LPWSTR lpCommandLine, /* [in] */ LPSECURITY_ATTRIBUTES lpProcessAttributes, /* [in] */ LPSECURITY_ATTRIBUTES lpThreadAttributes, @@ -4548,39 +4555,39 @@ EXTERN_C const IID IID_ICorDebugRemote; /* [in] */ LPPROCESS_INFORMATION lpProcessInformation, /* [in] */ CorDebugCreateProcessFlags debuggingFlags, /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE DebugActiveProcessEx( + + virtual HRESULT STDMETHODCALLTYPE DebugActiveProcessEx( /* [in] */ ICorDebugRemoteTarget *pRemoteTarget, /* [in] */ DWORD dwProcessId, /* [in] */ BOOL fWin32Attach, /* [out] */ ICorDebugProcess **ppProcess) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugRemoteVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugRemote * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugRemote * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugRemote * This); - - HRESULT ( STDMETHODCALLTYPE *CreateProcessEx )( + + HRESULT ( STDMETHODCALLTYPE *CreateProcessEx )( ICorDebugRemote * This, /* [in] */ ICorDebugRemoteTarget *pRemoteTarget, /* [in] */ LPCWSTR lpApplicationName, - /* [annotation][in] */ + /* [annotation][in] */ _In_ LPWSTR lpCommandLine, /* [in] */ LPSECURITY_ATTRIBUTES lpProcessAttributes, /* [in] */ LPSECURITY_ATTRIBUTES lpThreadAttributes, @@ -4592,14 +4599,14 @@ EXTERN_C const IID IID_ICorDebugRemote; /* [in] */ LPPROCESS_INFORMATION lpProcessInformation, /* [in] */ CorDebugCreateProcessFlags debuggingFlags, /* [out] */ ICorDebugProcess **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *DebugActiveProcessEx )( + + HRESULT ( STDMETHODCALLTYPE *DebugActiveProcessEx )( ICorDebugRemote * This, /* [in] */ ICorDebugRemoteTarget *pRemoteTarget, /* [in] */ DWORD dwProcessId, /* [in] */ BOOL fWin32Attach, /* [out] */ ICorDebugProcess **ppProcess); - + END_INTERFACE } ICorDebugRemoteVtbl; @@ -4608,26 +4615,26 @@ EXTERN_C const IID IID_ICorDebugRemote; CONST_VTBL struct ICorDebugRemoteVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugRemote_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugRemote_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugRemote_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugRemote_CreateProcessEx(This,pRemoteTarget,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) \ - ( (This)->lpVtbl -> CreateProcessEx(This,pRemoteTarget,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) ) + ( (This)->lpVtbl -> CreateProcessEx(This,pRemoteTarget,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) ) #define ICorDebugRemote_DebugActiveProcessEx(This,pRemoteTarget,dwProcessId,fWin32Attach,ppProcess) \ - ( (This)->lpVtbl -> DebugActiveProcessEx(This,pRemoteTarget,dwProcessId,fWin32Attach,ppProcess) ) + ( (This)->lpVtbl -> DebugActiveProcessEx(This,pRemoteTarget,dwProcessId,fWin32Attach,ppProcess) ) #endif /* COBJMACROS */ @@ -4641,7 +4648,7 @@ EXTERN_C const IID IID_ICorDebugRemote; /* interface __MIDL_itf_cordebug_0000_0023 */ -/* [local] */ +/* [local] */ typedef struct _COR_VERSION { @@ -4660,9 +4667,9 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0023_v0_0_s_ifspec; #define __ICorDebug2_INTERFACE_DEFINED__ /* interface ICorDebug2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugInterfaceVersion { CorDebugInvalidVersion = 0, @@ -4756,32 +4763,32 @@ enum CorDebugInterfaceVersion EXTERN_C const IID IID_ICorDebug2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("ECCCCF2E-B286-4b3e-A983-860A8793D105") ICorDebug2 : public IUnknown { public: }; - - + + #else /* C style interface */ typedef struct ICorDebug2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebug2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebug2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebug2 * This); - + END_INTERFACE } ICorDebug2Vtbl; @@ -4790,19 +4797,19 @@ EXTERN_C const IID IID_ICorDebug2; CONST_VTBL struct ICorDebug2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebug2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebug2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebug2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #endif /* COBJMACROS */ @@ -4817,13 +4824,13 @@ EXTERN_C const IID IID_ICorDebug2; /* interface __MIDL_itf_cordebug_0000_0024 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorDebugThreadState { THREAD_RUN = 0, - THREAD_SUSPEND = ( THREAD_RUN + 1 ) + THREAD_SUSPEND = ( THREAD_RUN + 1 ) } CorDebugThreadState; @@ -4835,118 +4842,118 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0024_v0_0_s_ifspec; #define __ICorDebugController_INTERFACE_DEFINED__ /* interface ICorDebugController */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugController; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3d6f5f62-7538-11d3-8d5b-00104b35e7ef") ICorDebugController : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE Stop( + virtual HRESULT STDMETHODCALLTYPE Stop( /* [in] */ DWORD dwTimeoutIgnored) = 0; - - virtual HRESULT STDMETHODCALLTYPE Continue( + + virtual HRESULT STDMETHODCALLTYPE Continue( /* [in] */ BOOL fIsOutOfBand) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsRunning( + + virtual HRESULT STDMETHODCALLTYPE IsRunning( /* [out] */ BOOL *pbRunning) = 0; - - virtual HRESULT STDMETHODCALLTYPE HasQueuedCallbacks( + + virtual HRESULT STDMETHODCALLTYPE HasQueuedCallbacks( /* [in] */ ICorDebugThread *pThread, /* [out] */ BOOL *pbQueued) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateThreads( + + virtual HRESULT STDMETHODCALLTYPE EnumerateThreads( /* [out] */ ICorDebugThreadEnum **ppThreads) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetAllThreadsDebugState( + + virtual HRESULT STDMETHODCALLTYPE SetAllThreadsDebugState( /* [in] */ CorDebugThreadState state, /* [in] */ ICorDebugThread *pExceptThisThread) = 0; - + virtual HRESULT STDMETHODCALLTYPE Detach( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Terminate( + + virtual HRESULT STDMETHODCALLTYPE Terminate( /* [in] */ UINT exitCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE CanCommitChanges( + + virtual HRESULT STDMETHODCALLTYPE CanCommitChanges( /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError) = 0; - - virtual HRESULT STDMETHODCALLTYPE CommitChanges( + + virtual HRESULT STDMETHODCALLTYPE CommitChanges( /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugControllerVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugController * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugController * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugController * This); - - HRESULT ( STDMETHODCALLTYPE *Stop )( + + HRESULT ( STDMETHODCALLTYPE *Stop )( ICorDebugController * This, /* [in] */ DWORD dwTimeoutIgnored); - - HRESULT ( STDMETHODCALLTYPE *Continue )( + + HRESULT ( STDMETHODCALLTYPE *Continue )( ICorDebugController * This, /* [in] */ BOOL fIsOutOfBand); - - HRESULT ( STDMETHODCALLTYPE *IsRunning )( + + HRESULT ( STDMETHODCALLTYPE *IsRunning )( ICorDebugController * This, /* [out] */ BOOL *pbRunning); - - HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( + + HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( ICorDebugController * This, /* [in] */ ICorDebugThread *pThread, /* [out] */ BOOL *pbQueued); - - HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( ICorDebugController * This, /* [out] */ ICorDebugThreadEnum **ppThreads); - - HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( + + HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( ICorDebugController * This, /* [in] */ CorDebugThreadState state, /* [in] */ ICorDebugThread *pExceptThisThread); - - HRESULT ( STDMETHODCALLTYPE *Detach )( + + HRESULT ( STDMETHODCALLTYPE *Detach )( ICorDebugController * This); - - HRESULT ( STDMETHODCALLTYPE *Terminate )( + + HRESULT ( STDMETHODCALLTYPE *Terminate )( ICorDebugController * This, /* [in] */ UINT exitCode); - - HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( + + HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( ICorDebugController * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - - HRESULT ( STDMETHODCALLTYPE *CommitChanges )( + + HRESULT ( STDMETHODCALLTYPE *CommitChanges )( ICorDebugController * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - + END_INTERFACE } ICorDebugControllerVtbl; @@ -4955,50 +4962,50 @@ EXTERN_C const IID IID_ICorDebugController; CONST_VTBL struct ICorDebugControllerVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugController_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugController_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugController_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugController_Stop(This,dwTimeoutIgnored) \ - ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) + ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) #define ICorDebugController_Continue(This,fIsOutOfBand) \ - ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) + ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) #define ICorDebugController_IsRunning(This,pbRunning) \ - ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) + ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) #define ICorDebugController_HasQueuedCallbacks(This,pThread,pbQueued) \ - ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) + ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) #define ICorDebugController_EnumerateThreads(This,ppThreads) \ - ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) + ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) #define ICorDebugController_SetAllThreadsDebugState(This,state,pExceptThisThread) \ - ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) + ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) #define ICorDebugController_Detach(This) \ - ( (This)->lpVtbl -> Detach(This) ) + ( (This)->lpVtbl -> Detach(This) ) #define ICorDebugController_Terminate(This,exitCode) \ - ( (This)->lpVtbl -> Terminate(This,exitCode) ) + ( (This)->lpVtbl -> Terminate(This,exitCode) ) #define ICorDebugController_CanCommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) + ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) #define ICorDebugController_CommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) + ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) #endif /* COBJMACROS */ @@ -5012,10 +5019,10 @@ EXTERN_C const IID IID_ICorDebugController; /* interface __MIDL_itf_cordebug_0000_0025 */ -/* [local] */ +/* [local] */ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0025_v0_0_c_ifspec; @@ -5025,157 +5032,157 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0025_v0_0_s_ifspec; #define __ICorDebugAppDomain_INTERFACE_DEFINED__ /* interface ICorDebugAppDomain */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAppDomain; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3d6f5f63-7538-11d3-8d5b-00104b35e7ef") ICorDebugAppDomain : public ICorDebugController { public: - virtual HRESULT STDMETHODCALLTYPE GetProcess( + virtual HRESULT STDMETHODCALLTYPE GetProcess( /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateAssemblies( + + virtual HRESULT STDMETHODCALLTYPE EnumerateAssemblies( /* [out] */ ICorDebugAssemblyEnum **ppAssemblies) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetModuleFromMetaDataInterface( + + virtual HRESULT STDMETHODCALLTYPE GetModuleFromMetaDataInterface( /* [in] */ IUnknown *pIMetaData, /* [out] */ ICorDebugModule **ppModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateBreakpoints( + + virtual HRESULT STDMETHODCALLTYPE EnumerateBreakpoints( /* [out] */ ICorDebugBreakpointEnum **ppBreakpoints) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateSteppers( + + virtual HRESULT STDMETHODCALLTYPE EnumerateSteppers( /* [out] */ ICorDebugStepperEnum **ppSteppers) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsAttached( + + virtual HRESULT STDMETHODCALLTYPE IsAttached( /* [out] */ BOOL *pbAttached) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetName( + + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObject( + + virtual HRESULT STDMETHODCALLTYPE GetObject( /* [out] */ ICorDebugValue **ppObject) = 0; - + virtual HRESULT STDMETHODCALLTYPE Attach( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetID( + + virtual HRESULT STDMETHODCALLTYPE GetID( /* [out] */ ULONG32 *pId) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugAppDomainVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAppDomain * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAppDomain * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAppDomain * This); - - HRESULT ( STDMETHODCALLTYPE *Stop )( + + HRESULT ( STDMETHODCALLTYPE *Stop )( ICorDebugAppDomain * This, /* [in] */ DWORD dwTimeoutIgnored); - - HRESULT ( STDMETHODCALLTYPE *Continue )( + + HRESULT ( STDMETHODCALLTYPE *Continue )( ICorDebugAppDomain * This, /* [in] */ BOOL fIsOutOfBand); - - HRESULT ( STDMETHODCALLTYPE *IsRunning )( + + HRESULT ( STDMETHODCALLTYPE *IsRunning )( ICorDebugAppDomain * This, /* [out] */ BOOL *pbRunning); - - HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( + + HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( ICorDebugAppDomain * This, /* [in] */ ICorDebugThread *pThread, /* [out] */ BOOL *pbQueued); - - HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( ICorDebugAppDomain * This, /* [out] */ ICorDebugThreadEnum **ppThreads); - - HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( + + HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( ICorDebugAppDomain * This, /* [in] */ CorDebugThreadState state, /* [in] */ ICorDebugThread *pExceptThisThread); - - HRESULT ( STDMETHODCALLTYPE *Detach )( + + HRESULT ( STDMETHODCALLTYPE *Detach )( ICorDebugAppDomain * This); - - HRESULT ( STDMETHODCALLTYPE *Terminate )( + + HRESULT ( STDMETHODCALLTYPE *Terminate )( ICorDebugAppDomain * This, /* [in] */ UINT exitCode); - - HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( + + HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( ICorDebugAppDomain * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - - HRESULT ( STDMETHODCALLTYPE *CommitChanges )( + + HRESULT ( STDMETHODCALLTYPE *CommitChanges )( ICorDebugAppDomain * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - - HRESULT ( STDMETHODCALLTYPE *GetProcess )( + + HRESULT ( STDMETHODCALLTYPE *GetProcess )( ICorDebugAppDomain * This, /* [out] */ ICorDebugProcess **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *EnumerateAssemblies )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateAssemblies )( ICorDebugAppDomain * This, /* [out] */ ICorDebugAssemblyEnum **ppAssemblies); - - HRESULT ( STDMETHODCALLTYPE *GetModuleFromMetaDataInterface )( + + HRESULT ( STDMETHODCALLTYPE *GetModuleFromMetaDataInterface )( ICorDebugAppDomain * This, /* [in] */ IUnknown *pIMetaData, /* [out] */ ICorDebugModule **ppModule); - - HRESULT ( STDMETHODCALLTYPE *EnumerateBreakpoints )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateBreakpoints )( ICorDebugAppDomain * This, /* [out] */ ICorDebugBreakpointEnum **ppBreakpoints); - - HRESULT ( STDMETHODCALLTYPE *EnumerateSteppers )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateSteppers )( ICorDebugAppDomain * This, /* [out] */ ICorDebugStepperEnum **ppSteppers); - - HRESULT ( STDMETHODCALLTYPE *IsAttached )( + + HRESULT ( STDMETHODCALLTYPE *IsAttached )( ICorDebugAppDomain * This, /* [out] */ BOOL *pbAttached); - - HRESULT ( STDMETHODCALLTYPE *GetName )( + + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugAppDomain * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetObject )( + + HRESULT ( STDMETHODCALLTYPE *GetObject )( ICorDebugAppDomain * This, /* [out] */ ICorDebugValue **ppObject); - - HRESULT ( STDMETHODCALLTYPE *Attach )( + + HRESULT ( STDMETHODCALLTYPE *Attach )( ICorDebugAppDomain * This); - - HRESULT ( STDMETHODCALLTYPE *GetID )( + + HRESULT ( STDMETHODCALLTYPE *GetID )( ICorDebugAppDomain * This, /* [out] */ ULONG32 *pId); - + END_INTERFACE } ICorDebugAppDomainVtbl; @@ -5184,81 +5191,81 @@ EXTERN_C const IID IID_ICorDebugAppDomain; CONST_VTBL struct ICorDebugAppDomainVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugAppDomain_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugAppDomain_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugAppDomain_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugAppDomain_Stop(This,dwTimeoutIgnored) \ - ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) + ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) #define ICorDebugAppDomain_Continue(This,fIsOutOfBand) \ - ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) + ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) #define ICorDebugAppDomain_IsRunning(This,pbRunning) \ - ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) + ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) #define ICorDebugAppDomain_HasQueuedCallbacks(This,pThread,pbQueued) \ - ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) + ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) #define ICorDebugAppDomain_EnumerateThreads(This,ppThreads) \ - ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) + ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) #define ICorDebugAppDomain_SetAllThreadsDebugState(This,state,pExceptThisThread) \ - ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) + ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) #define ICorDebugAppDomain_Detach(This) \ - ( (This)->lpVtbl -> Detach(This) ) + ( (This)->lpVtbl -> Detach(This) ) #define ICorDebugAppDomain_Terminate(This,exitCode) \ - ( (This)->lpVtbl -> Terminate(This,exitCode) ) + ( (This)->lpVtbl -> Terminate(This,exitCode) ) #define ICorDebugAppDomain_CanCommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) + ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) #define ICorDebugAppDomain_CommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) + ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) #define ICorDebugAppDomain_GetProcess(This,ppProcess) \ - ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) + ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) #define ICorDebugAppDomain_EnumerateAssemblies(This,ppAssemblies) \ - ( (This)->lpVtbl -> EnumerateAssemblies(This,ppAssemblies) ) + ( (This)->lpVtbl -> EnumerateAssemblies(This,ppAssemblies) ) #define ICorDebugAppDomain_GetModuleFromMetaDataInterface(This,pIMetaData,ppModule) \ - ( (This)->lpVtbl -> GetModuleFromMetaDataInterface(This,pIMetaData,ppModule) ) + ( (This)->lpVtbl -> GetModuleFromMetaDataInterface(This,pIMetaData,ppModule) ) #define ICorDebugAppDomain_EnumerateBreakpoints(This,ppBreakpoints) \ - ( (This)->lpVtbl -> EnumerateBreakpoints(This,ppBreakpoints) ) + ( (This)->lpVtbl -> EnumerateBreakpoints(This,ppBreakpoints) ) #define ICorDebugAppDomain_EnumerateSteppers(This,ppSteppers) \ - ( (This)->lpVtbl -> EnumerateSteppers(This,ppSteppers) ) + ( (This)->lpVtbl -> EnumerateSteppers(This,ppSteppers) ) #define ICorDebugAppDomain_IsAttached(This,pbAttached) \ - ( (This)->lpVtbl -> IsAttached(This,pbAttached) ) + ( (This)->lpVtbl -> IsAttached(This,pbAttached) ) #define ICorDebugAppDomain_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) #define ICorDebugAppDomain_GetObject(This,ppObject) \ - ( (This)->lpVtbl -> GetObject(This,ppObject) ) + ( (This)->lpVtbl -> GetObject(This,ppObject) ) #define ICorDebugAppDomain_Attach(This) \ - ( (This)->lpVtbl -> Attach(This) ) + ( (This)->lpVtbl -> Attach(This) ) #define ICorDebugAppDomain_GetID(This,pId) \ - ( (This)->lpVtbl -> GetID(This,pId) ) + ( (This)->lpVtbl -> GetID(This,pId) ) #endif /* COBJMACROS */ @@ -5272,7 +5279,7 @@ EXTERN_C const IID IID_ICorDebugAppDomain; /* interface __MIDL_itf_cordebug_0000_0026 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -5284,62 +5291,62 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0026_v0_0_s_ifspec; #define __ICorDebugAppDomain2_INTERFACE_DEFINED__ /* interface ICorDebugAppDomain2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAppDomain2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("096E81D5-ECDA-4202-83F5-C65980A9EF75") ICorDebugAppDomain2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetArrayOrPointerType( + virtual HRESULT STDMETHODCALLTYPE GetArrayOrPointerType( /* [in] */ CorElementType elementType, /* [in] */ ULONG32 nRank, /* [in] */ ICorDebugType *pTypeArg, /* [out] */ ICorDebugType **ppType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunctionPointerType( + + virtual HRESULT STDMETHODCALLTYPE GetFunctionPointerType( /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [out] */ ICorDebugType **ppType) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugAppDomain2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAppDomain2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAppDomain2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAppDomain2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetArrayOrPointerType )( + + HRESULT ( STDMETHODCALLTYPE *GetArrayOrPointerType )( ICorDebugAppDomain2 * This, /* [in] */ CorElementType elementType, /* [in] */ ULONG32 nRank, /* [in] */ ICorDebugType *pTypeArg, /* [out] */ ICorDebugType **ppType); - - HRESULT ( STDMETHODCALLTYPE *GetFunctionPointerType )( + + HRESULT ( STDMETHODCALLTYPE *GetFunctionPointerType )( ICorDebugAppDomain2 * This, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [out] */ ICorDebugType **ppType); - + END_INTERFACE } ICorDebugAppDomain2Vtbl; @@ -5348,26 +5355,26 @@ EXTERN_C const IID IID_ICorDebugAppDomain2; CONST_VTBL struct ICorDebugAppDomain2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugAppDomain2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugAppDomain2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugAppDomain2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugAppDomain2_GetArrayOrPointerType(This,elementType,nRank,pTypeArg,ppType) \ - ( (This)->lpVtbl -> GetArrayOrPointerType(This,elementType,nRank,pTypeArg,ppType) ) + ( (This)->lpVtbl -> GetArrayOrPointerType(This,elementType,nRank,pTypeArg,ppType) ) #define ICorDebugAppDomain2_GetFunctionPointerType(This,nTypeArgs,ppTypeArgs,ppType) \ - ( (This)->lpVtbl -> GetFunctionPointerType(This,nTypeArgs,ppTypeArgs,ppType) ) + ( (This)->lpVtbl -> GetFunctionPointerType(This,nTypeArgs,ppTypeArgs,ppType) ) #endif /* COBJMACROS */ @@ -5384,64 +5391,64 @@ EXTERN_C const IID IID_ICorDebugAppDomain2; #define __ICorDebugEnum_INTERFACE_DEFINED__ /* interface ICorDebugEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB01-8A68-11d2-983C-0000F808342D") ICorDebugEnum : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE Skip( + virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; - + virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( + + virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ ICorDebugEnum **ppEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCount( + + virtual HRESULT STDMETHODCALLTYPE GetCount( /* [out] */ ULONG *pcelt) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugEnum * This, /* [out] */ ULONG *pcelt); - + END_INTERFACE } ICorDebugEnumVtbl; @@ -5450,32 +5457,32 @@ EXTERN_C const IID IID_ICorDebugEnum; CONST_VTBL struct ICorDebugEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #endif /* COBJMACROS */ @@ -5492,64 +5499,64 @@ EXTERN_C const IID IID_ICorDebugEnum; #define __ICorDebugGuidToTypeEnum_INTERFACE_DEFINED__ /* interface ICorDebugGuidToTypeEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugGuidToTypeEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("6164D242-1015-4BD6-8CBE-D0DBD4B8275A") ICorDebugGuidToTypeEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugGuidToTypeMapping values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugGuidToTypeEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugGuidToTypeEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugGuidToTypeEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugGuidToTypeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugGuidToTypeEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugGuidToTypeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugGuidToTypeEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugGuidToTypeEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugGuidToTypeEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugGuidToTypeMapping values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugGuidToTypeEnumVtbl; @@ -5558,36 +5565,36 @@ EXTERN_C const IID IID_ICorDebugGuidToTypeEnum; CONST_VTBL struct ICorDebugGuidToTypeEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugGuidToTypeEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugGuidToTypeEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugGuidToTypeEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugGuidToTypeEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugGuidToTypeEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugGuidToTypeEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugGuidToTypeEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugGuidToTypeEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ @@ -5604,56 +5611,56 @@ EXTERN_C const IID IID_ICorDebugGuidToTypeEnum; #define __ICorDebugAppDomain3_INTERFACE_DEFINED__ /* interface ICorDebugAppDomain3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAppDomain3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("8CB96A16-B588-42E2-B71C-DD849FC2ECCC") ICorDebugAppDomain3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetCachedWinRTTypesForIIDs( + virtual HRESULT STDMETHODCALLTYPE GetCachedWinRTTypesForIIDs( /* [in] */ ULONG32 cReqTypes, /* [size_is][in] */ GUID *iidsToResolve, /* [out] */ ICorDebugTypeEnum **ppTypesEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCachedWinRTTypes( + + virtual HRESULT STDMETHODCALLTYPE GetCachedWinRTTypes( /* [out] */ ICorDebugGuidToTypeEnum **ppGuidToTypeEnum) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugAppDomain3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAppDomain3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAppDomain3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAppDomain3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetCachedWinRTTypesForIIDs )( + + HRESULT ( STDMETHODCALLTYPE *GetCachedWinRTTypesForIIDs )( ICorDebugAppDomain3 * This, /* [in] */ ULONG32 cReqTypes, /* [size_is][in] */ GUID *iidsToResolve, /* [out] */ ICorDebugTypeEnum **ppTypesEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCachedWinRTTypes )( + + HRESULT ( STDMETHODCALLTYPE *GetCachedWinRTTypes )( ICorDebugAppDomain3 * This, /* [out] */ ICorDebugGuidToTypeEnum **ppGuidToTypeEnum); - + END_INTERFACE } ICorDebugAppDomain3Vtbl; @@ -5662,26 +5669,26 @@ EXTERN_C const IID IID_ICorDebugAppDomain3; CONST_VTBL struct ICorDebugAppDomain3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugAppDomain3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugAppDomain3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugAppDomain3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugAppDomain3_GetCachedWinRTTypesForIIDs(This,cReqTypes,iidsToResolve,ppTypesEnum) \ - ( (This)->lpVtbl -> GetCachedWinRTTypesForIIDs(This,cReqTypes,iidsToResolve,ppTypesEnum) ) + ( (This)->lpVtbl -> GetCachedWinRTTypesForIIDs(This,cReqTypes,iidsToResolve,ppTypesEnum) ) #define ICorDebugAppDomain3_GetCachedWinRTTypes(This,ppGuidToTypeEnum) \ - ( (This)->lpVtbl -> GetCachedWinRTTypes(This,ppGuidToTypeEnum) ) + ( (This)->lpVtbl -> GetCachedWinRTTypes(This,ppGuidToTypeEnum) ) #endif /* COBJMACROS */ @@ -5698,47 +5705,47 @@ EXTERN_C const IID IID_ICorDebugAppDomain3; #define __ICorDebugAppDomain4_INTERFACE_DEFINED__ /* interface ICorDebugAppDomain4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAppDomain4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("FB99CC40-83BE-4724-AB3B-768E796EBAC2") ICorDebugAppDomain4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetObjectForCCW( + virtual HRESULT STDMETHODCALLTYPE GetObjectForCCW( /* [in] */ CORDB_ADDRESS ccwPointer, /* [out] */ ICorDebugValue **ppManagedObject) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugAppDomain4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAppDomain4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAppDomain4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAppDomain4 * This); - - HRESULT ( STDMETHODCALLTYPE *GetObjectForCCW )( + + HRESULT ( STDMETHODCALLTYPE *GetObjectForCCW )( ICorDebugAppDomain4 * This, /* [in] */ CORDB_ADDRESS ccwPointer, /* [out] */ ICorDebugValue **ppManagedObject); - + END_INTERFACE } ICorDebugAppDomain4Vtbl; @@ -5747,23 +5754,23 @@ EXTERN_C const IID IID_ICorDebugAppDomain4; CONST_VTBL struct ICorDebugAppDomain4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugAppDomain4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugAppDomain4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugAppDomain4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugAppDomain4_GetObjectForCCW(This,ccwPointer,ppManagedObject) \ - ( (This)->lpVtbl -> GetObjectForCCW(This,ccwPointer,ppManagedObject) ) + ( (This)->lpVtbl -> GetObjectForCCW(This,ccwPointer,ppManagedObject) ) #endif /* COBJMACROS */ @@ -5777,10 +5784,10 @@ EXTERN_C const IID IID_ICorDebugAppDomain4; /* interface __MIDL_itf_cordebug_0000_0030 */ -/* [local] */ +/* [local] */ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0030_v0_0_c_ifspec; @@ -5790,81 +5797,81 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0030_v0_0_s_ifspec; #define __ICorDebugAssembly_INTERFACE_DEFINED__ /* interface ICorDebugAssembly */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAssembly; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("df59507c-d47a-459e-bce2-6427eac8fd06") ICorDebugAssembly : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetProcess( + virtual HRESULT STDMETHODCALLTYPE GetProcess( /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAppDomain( + + virtual HRESULT STDMETHODCALLTYPE GetAppDomain( /* [out] */ ICorDebugAppDomain **ppAppDomain) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateModules( + + virtual HRESULT STDMETHODCALLTYPE EnumerateModules( /* [out] */ ICorDebugModuleEnum **ppModules) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCodeBase( + + virtual HRESULT STDMETHODCALLTYPE GetCodeBase( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetName( + + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugAssemblyVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAssembly * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAssembly * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAssembly * This); - - HRESULT ( STDMETHODCALLTYPE *GetProcess )( + + HRESULT ( STDMETHODCALLTYPE *GetProcess )( ICorDebugAssembly * This, /* [out] */ ICorDebugProcess **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *GetAppDomain )( + + HRESULT ( STDMETHODCALLTYPE *GetAppDomain )( ICorDebugAssembly * This, /* [out] */ ICorDebugAppDomain **ppAppDomain); - - HRESULT ( STDMETHODCALLTYPE *EnumerateModules )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateModules )( ICorDebugAssembly * This, /* [out] */ ICorDebugModuleEnum **ppModules); - - HRESULT ( STDMETHODCALLTYPE *GetCodeBase )( + + HRESULT ( STDMETHODCALLTYPE *GetCodeBase )( ICorDebugAssembly * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetName )( + + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugAssembly * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - + END_INTERFACE } ICorDebugAssemblyVtbl; @@ -5873,35 +5880,35 @@ EXTERN_C const IID IID_ICorDebugAssembly; CONST_VTBL struct ICorDebugAssemblyVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugAssembly_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugAssembly_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugAssembly_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugAssembly_GetProcess(This,ppProcess) \ - ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) + ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) #define ICorDebugAssembly_GetAppDomain(This,ppAppDomain) \ - ( (This)->lpVtbl -> GetAppDomain(This,ppAppDomain) ) + ( (This)->lpVtbl -> GetAppDomain(This,ppAppDomain) ) #define ICorDebugAssembly_EnumerateModules(This,ppModules) \ - ( (This)->lpVtbl -> EnumerateModules(This,ppModules) ) + ( (This)->lpVtbl -> EnumerateModules(This,ppModules) ) #define ICorDebugAssembly_GetCodeBase(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetCodeBase(This,cchName,pcchName,szName) ) + ( (This)->lpVtbl -> GetCodeBase(This,cchName,pcchName,szName) ) #define ICorDebugAssembly_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) #endif /* COBJMACROS */ @@ -5915,7 +5922,7 @@ EXTERN_C const IID IID_ICorDebugAssembly; /* interface __MIDL_itf_cordebug_0000_0031 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -5927,45 +5934,45 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0031_v0_0_s_ifspec; #define __ICorDebugAssembly2_INTERFACE_DEFINED__ /* interface ICorDebugAssembly2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAssembly2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("426d1f9e-6dd4-44c8-aec7-26cdbaf4e398") ICorDebugAssembly2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE IsFullyTrusted( + virtual HRESULT STDMETHODCALLTYPE IsFullyTrusted( /* [out] */ BOOL *pbFullyTrusted) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugAssembly2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAssembly2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAssembly2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAssembly2 * This); - - HRESULT ( STDMETHODCALLTYPE *IsFullyTrusted )( + + HRESULT ( STDMETHODCALLTYPE *IsFullyTrusted )( ICorDebugAssembly2 * This, /* [out] */ BOOL *pbFullyTrusted); - + END_INTERFACE } ICorDebugAssembly2Vtbl; @@ -5974,23 +5981,23 @@ EXTERN_C const IID IID_ICorDebugAssembly2; CONST_VTBL struct ICorDebugAssembly2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugAssembly2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugAssembly2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugAssembly2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugAssembly2_IsFullyTrusted(This,pbFullyTrusted) \ - ( (This)->lpVtbl -> IsFullyTrusted(This,pbFullyTrusted) ) + ( (This)->lpVtbl -> IsFullyTrusted(This,pbFullyTrusted) ) #endif /* COBJMACROS */ @@ -6007,52 +6014,52 @@ EXTERN_C const IID IID_ICorDebugAssembly2; #define __ICorDebugAssembly3_INTERFACE_DEFINED__ /* interface ICorDebugAssembly3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAssembly3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("76361AB2-8C86-4FE9-96F2-F73D8843570A") ICorDebugAssembly3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetContainerAssembly( + virtual HRESULT STDMETHODCALLTYPE GetContainerAssembly( ICorDebugAssembly **ppAssembly) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateContainedAssemblies( + + virtual HRESULT STDMETHODCALLTYPE EnumerateContainedAssemblies( ICorDebugAssemblyEnum **ppAssemblies) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugAssembly3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAssembly3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAssembly3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAssembly3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetContainerAssembly )( + + HRESULT ( STDMETHODCALLTYPE *GetContainerAssembly )( ICorDebugAssembly3 * This, ICorDebugAssembly **ppAssembly); - - HRESULT ( STDMETHODCALLTYPE *EnumerateContainedAssemblies )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateContainedAssemblies )( ICorDebugAssembly3 * This, ICorDebugAssemblyEnum **ppAssemblies); - + END_INTERFACE } ICorDebugAssembly3Vtbl; @@ -6061,26 +6068,26 @@ EXTERN_C const IID IID_ICorDebugAssembly3; CONST_VTBL struct ICorDebugAssembly3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugAssembly3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugAssembly3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugAssembly3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugAssembly3_GetContainerAssembly(This,ppAssembly) \ - ( (This)->lpVtbl -> GetContainerAssembly(This,ppAssembly) ) + ( (This)->lpVtbl -> GetContainerAssembly(This,ppAssembly) ) #define ICorDebugAssembly3_EnumerateContainedAssemblies(This,ppAssemblies) \ - ( (This)->lpVtbl -> EnumerateContainedAssemblies(This,ppAssemblies) ) + ( (This)->lpVtbl -> EnumerateContainedAssemblies(This,ppAssemblies) ) #endif /* COBJMACROS */ @@ -6094,7 +6101,7 @@ EXTERN_C const IID IID_ICorDebugAssembly3; /* interface __MIDL_itf_cordebug_0000_0033 */ -/* [local] */ +/* [local] */ #ifndef _DEF_COR_TYPEID_ #define _DEF_COR_TYPEID_ @@ -6121,64 +6128,64 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0033_v0_0_s_ifspec; #define __ICorDebugHeapEnum_INTERFACE_DEFINED__ /* interface ICorDebugHeapEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("76D7DAB8-D044-11DF-9A15-7E29DFD72085") ICorDebugHeapEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_HEAPOBJECT objects[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugHeapEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugHeapEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugHeapEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugHeapEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugHeapEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugHeapEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_HEAPOBJECT objects[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugHeapEnumVtbl; @@ -6187,36 +6194,36 @@ EXTERN_C const IID IID_ICorDebugHeapEnum; CONST_VTBL struct ICorDebugHeapEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugHeapEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugHeapEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugHeapEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugHeapEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugHeapEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugHeapEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugHeapEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugHeapEnum_Next(This,celt,objects,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) #endif /* COBJMACROS */ @@ -6230,9 +6237,9 @@ EXTERN_C const IID IID_ICorDebugHeapEnum; /* interface __MIDL_itf_cordebug_0000_0034 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorDebugGenerationTypes { CorDebug_Gen0 = 0, @@ -6250,11 +6257,11 @@ typedef struct _COR_SEGMENT ULONG heap; } COR_SEGMENT; -typedef +typedef enum CorDebugGCType { CorDebugWorkstationGC = 0, - CorDebugServerGC = ( CorDebugWorkstationGC + 1 ) + CorDebugServerGC = ( CorDebugWorkstationGC + 1 ) } CorDebugGCType; typedef struct _COR_HEAPINFO @@ -6275,64 +6282,64 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0034_v0_0_s_ifspec; #define __ICorDebugHeapSegmentEnum_INTERFACE_DEFINED__ /* interface ICorDebugHeapSegmentEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapSegmentEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("A2FA0F8E-D045-11DF-AC8E-CE2ADFD72085") ICorDebugHeapSegmentEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_SEGMENT segments[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugHeapSegmentEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapSegmentEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapSegmentEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapSegmentEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugHeapSegmentEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugHeapSegmentEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugHeapSegmentEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugHeapSegmentEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugHeapSegmentEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_SEGMENT segments[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugHeapSegmentEnumVtbl; @@ -6341,36 +6348,36 @@ EXTERN_C const IID IID_ICorDebugHeapSegmentEnum; CONST_VTBL struct ICorDebugHeapSegmentEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugHeapSegmentEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugHeapSegmentEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugHeapSegmentEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugHeapSegmentEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugHeapSegmentEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugHeapSegmentEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugHeapSegmentEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugHeapSegmentEnum_Next(This,celt,segments,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,segments,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,segments,pceltFetched) ) #endif /* COBJMACROS */ @@ -6384,9 +6391,9 @@ EXTERN_C const IID IID_ICorDebugHeapSegmentEnum; /* interface __MIDL_itf_cordebug_0000_0035 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorGCReferenceType { CorHandleStrong = ( 1 << 0 ) , @@ -6427,64 +6434,64 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0035_v0_0_s_ifspec; #define __ICorDebugGCReferenceEnum_INTERFACE_DEFINED__ /* interface ICorDebugGCReferenceEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugGCReferenceEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("7F3C24D3-7E1D-4245-AC3A-F72F8859C80C") ICorDebugGCReferenceEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_GC_REFERENCE roots[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugGCReferenceEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugGCReferenceEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugGCReferenceEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugGCReferenceEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugGCReferenceEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugGCReferenceEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugGCReferenceEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugGCReferenceEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugGCReferenceEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_GC_REFERENCE roots[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugGCReferenceEnumVtbl; @@ -6493,36 +6500,36 @@ EXTERN_C const IID IID_ICorDebugGCReferenceEnum; CONST_VTBL struct ICorDebugGCReferenceEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugGCReferenceEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugGCReferenceEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugGCReferenceEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugGCReferenceEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugGCReferenceEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugGCReferenceEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugGCReferenceEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugGCReferenceEnum_Next(This,celt,roots,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,roots,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,roots,pceltFetched) ) #endif /* COBJMACROS */ @@ -6536,7 +6543,7 @@ EXTERN_C const IID IID_ICorDebugGCReferenceEnum; /* interface __MIDL_itf_cordebug_0000_0036 */ -/* [local] */ +/* [local] */ #ifndef _DEF_COR_ARRAY_LAYOUT_ #define _DEF_COR_ARRAY_LAYOUT_ @@ -6577,7 +6584,7 @@ typedef struct COR_FIELD #endif // _DEF_COR_FIELD_ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0036_v0_0_c_ifspec; @@ -6587,234 +6594,234 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0036_v0_0_s_ifspec; #define __ICorDebugProcess_INTERFACE_DEFINED__ /* interface ICorDebugProcess */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3d6f5f64-7538-11d3-8d5b-00104b35e7ef") ICorDebugProcess : public ICorDebugController { public: - virtual HRESULT STDMETHODCALLTYPE GetID( + virtual HRESULT STDMETHODCALLTYPE GetID( /* [out] */ DWORD *pdwProcessId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHandle( + + virtual HRESULT STDMETHODCALLTYPE GetHandle( /* [out] */ HPROCESS *phProcessHandle) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThread( + + virtual HRESULT STDMETHODCALLTYPE GetThread( /* [in] */ DWORD dwThreadId, /* [out] */ ICorDebugThread **ppThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateObjects( + + virtual HRESULT STDMETHODCALLTYPE EnumerateObjects( /* [out] */ ICorDebugObjectEnum **ppObjects) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsTransitionStub( + + virtual HRESULT STDMETHODCALLTYPE IsTransitionStub( /* [in] */ CORDB_ADDRESS address, /* [out] */ BOOL *pbTransitionStub) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsOSSuspended( + + virtual HRESULT STDMETHODCALLTYPE IsOSSuspended( /* [in] */ DWORD threadID, /* [out] */ BOOL *pbSuspended) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE GetThreadContext( /* [in] */ DWORD threadID, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][out][in] */ BYTE context[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE SetThreadContext( /* [in] */ DWORD threadID, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][in] */ BYTE context[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReadMemory( + + virtual HRESULT STDMETHODCALLTYPE ReadMemory( /* [in] */ CORDB_ADDRESS address, /* [in] */ DWORD size, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ SIZE_T *read) = 0; - - virtual HRESULT STDMETHODCALLTYPE WriteMemory( + + virtual HRESULT STDMETHODCALLTYPE WriteMemory( /* [in] */ CORDB_ADDRESS address, /* [in] */ DWORD size, /* [size_is][in] */ BYTE buffer[ ], /* [out] */ SIZE_T *written) = 0; - - virtual HRESULT STDMETHODCALLTYPE ClearCurrentException( + + virtual HRESULT STDMETHODCALLTYPE ClearCurrentException( /* [in] */ DWORD threadID) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableLogMessages( + + virtual HRESULT STDMETHODCALLTYPE EnableLogMessages( /* [in] */ BOOL fOnOff) = 0; - - virtual HRESULT STDMETHODCALLTYPE ModifyLogSwitch( - /* [annotation][in] */ + + virtual HRESULT STDMETHODCALLTYPE ModifyLogSwitch( + /* [annotation][in] */ _In_ WCHAR *pLogSwitchName, /* [in] */ LONG lLevel) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateAppDomains( + + virtual HRESULT STDMETHODCALLTYPE EnumerateAppDomains( /* [out] */ ICorDebugAppDomainEnum **ppAppDomains) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObject( + + virtual HRESULT STDMETHODCALLTYPE GetObject( /* [out] */ ICorDebugValue **ppObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE ThreadForFiberCookie( + + virtual HRESULT STDMETHODCALLTYPE ThreadForFiberCookie( /* [in] */ DWORD fiberCookie, /* [out] */ ICorDebugThread **ppThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHelperThreadID( + + virtual HRESULT STDMETHODCALLTYPE GetHelperThreadID( /* [out] */ DWORD *pThreadID) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugProcessVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess * This); - - HRESULT ( STDMETHODCALLTYPE *Stop )( + + HRESULT ( STDMETHODCALLTYPE *Stop )( ICorDebugProcess * This, /* [in] */ DWORD dwTimeoutIgnored); - - HRESULT ( STDMETHODCALLTYPE *Continue )( + + HRESULT ( STDMETHODCALLTYPE *Continue )( ICorDebugProcess * This, /* [in] */ BOOL fIsOutOfBand); - - HRESULT ( STDMETHODCALLTYPE *IsRunning )( + + HRESULT ( STDMETHODCALLTYPE *IsRunning )( ICorDebugProcess * This, /* [out] */ BOOL *pbRunning); - - HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( + + HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( ICorDebugProcess * This, /* [in] */ ICorDebugThread *pThread, /* [out] */ BOOL *pbQueued); - - HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( ICorDebugProcess * This, /* [out] */ ICorDebugThreadEnum **ppThreads); - - HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( + + HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( ICorDebugProcess * This, /* [in] */ CorDebugThreadState state, /* [in] */ ICorDebugThread *pExceptThisThread); - - HRESULT ( STDMETHODCALLTYPE *Detach )( + + HRESULT ( STDMETHODCALLTYPE *Detach )( ICorDebugProcess * This); - - HRESULT ( STDMETHODCALLTYPE *Terminate )( + + HRESULT ( STDMETHODCALLTYPE *Terminate )( ICorDebugProcess * This, /* [in] */ UINT exitCode); - - HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( + + HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( ICorDebugProcess * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - - HRESULT ( STDMETHODCALLTYPE *CommitChanges )( + + HRESULT ( STDMETHODCALLTYPE *CommitChanges )( ICorDebugProcess * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - - HRESULT ( STDMETHODCALLTYPE *GetID )( + + HRESULT ( STDMETHODCALLTYPE *GetID )( ICorDebugProcess * This, /* [out] */ DWORD *pdwProcessId); - - HRESULT ( STDMETHODCALLTYPE *GetHandle )( + + HRESULT ( STDMETHODCALLTYPE *GetHandle )( ICorDebugProcess * This, /* [out] */ HPROCESS *phProcessHandle); - - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugProcess * This, /* [in] */ DWORD dwThreadId, /* [out] */ ICorDebugThread **ppThread); - - HRESULT ( STDMETHODCALLTYPE *EnumerateObjects )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateObjects )( ICorDebugProcess * This, /* [out] */ ICorDebugObjectEnum **ppObjects); - - HRESULT ( STDMETHODCALLTYPE *IsTransitionStub )( + + HRESULT ( STDMETHODCALLTYPE *IsTransitionStub )( ICorDebugProcess * This, /* [in] */ CORDB_ADDRESS address, /* [out] */ BOOL *pbTransitionStub); - - HRESULT ( STDMETHODCALLTYPE *IsOSSuspended )( + + HRESULT ( STDMETHODCALLTYPE *IsOSSuspended )( ICorDebugProcess * This, /* [in] */ DWORD threadID, /* [out] */ BOOL *pbSuspended); - - HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( + + HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( ICorDebugProcess * This, /* [in] */ DWORD threadID, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][out][in] */ BYTE context[ ]); - - HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( + + HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( ICorDebugProcess * This, /* [in] */ DWORD threadID, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][in] */ BYTE context[ ]); - - HRESULT ( STDMETHODCALLTYPE *ReadMemory )( + + HRESULT ( STDMETHODCALLTYPE *ReadMemory )( ICorDebugProcess * This, /* [in] */ CORDB_ADDRESS address, /* [in] */ DWORD size, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ SIZE_T *read); - - HRESULT ( STDMETHODCALLTYPE *WriteMemory )( + + HRESULT ( STDMETHODCALLTYPE *WriteMemory )( ICorDebugProcess * This, /* [in] */ CORDB_ADDRESS address, /* [in] */ DWORD size, /* [size_is][in] */ BYTE buffer[ ], /* [out] */ SIZE_T *written); - - HRESULT ( STDMETHODCALLTYPE *ClearCurrentException )( + + HRESULT ( STDMETHODCALLTYPE *ClearCurrentException )( ICorDebugProcess * This, /* [in] */ DWORD threadID); - - HRESULT ( STDMETHODCALLTYPE *EnableLogMessages )( + + HRESULT ( STDMETHODCALLTYPE *EnableLogMessages )( ICorDebugProcess * This, /* [in] */ BOOL fOnOff); - - HRESULT ( STDMETHODCALLTYPE *ModifyLogSwitch )( + + HRESULT ( STDMETHODCALLTYPE *ModifyLogSwitch )( ICorDebugProcess * This, - /* [annotation][in] */ + /* [annotation][in] */ _In_ WCHAR *pLogSwitchName, /* [in] */ LONG lLevel); - - HRESULT ( STDMETHODCALLTYPE *EnumerateAppDomains )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateAppDomains )( ICorDebugProcess * This, /* [out] */ ICorDebugAppDomainEnum **ppAppDomains); - - HRESULT ( STDMETHODCALLTYPE *GetObject )( + + HRESULT ( STDMETHODCALLTYPE *GetObject )( ICorDebugProcess * This, /* [out] */ ICorDebugValue **ppObject); - - HRESULT ( STDMETHODCALLTYPE *ThreadForFiberCookie )( + + HRESULT ( STDMETHODCALLTYPE *ThreadForFiberCookie )( ICorDebugProcess * This, /* [in] */ DWORD fiberCookie, /* [out] */ ICorDebugThread **ppThread); - - HRESULT ( STDMETHODCALLTYPE *GetHelperThreadID )( + + HRESULT ( STDMETHODCALLTYPE *GetHelperThreadID )( ICorDebugProcess * This, /* [out] */ DWORD *pThreadID); - + END_INTERFACE } ICorDebugProcessVtbl; @@ -6823,102 +6830,102 @@ EXTERN_C const IID IID_ICorDebugProcess; CONST_VTBL struct ICorDebugProcessVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugProcess_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugProcess_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugProcess_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugProcess_Stop(This,dwTimeoutIgnored) \ - ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) + ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) #define ICorDebugProcess_Continue(This,fIsOutOfBand) \ - ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) + ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) #define ICorDebugProcess_IsRunning(This,pbRunning) \ - ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) + ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) #define ICorDebugProcess_HasQueuedCallbacks(This,pThread,pbQueued) \ - ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) + ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) #define ICorDebugProcess_EnumerateThreads(This,ppThreads) \ - ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) + ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) #define ICorDebugProcess_SetAllThreadsDebugState(This,state,pExceptThisThread) \ - ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) + ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) #define ICorDebugProcess_Detach(This) \ - ( (This)->lpVtbl -> Detach(This) ) + ( (This)->lpVtbl -> Detach(This) ) #define ICorDebugProcess_Terminate(This,exitCode) \ - ( (This)->lpVtbl -> Terminate(This,exitCode) ) + ( (This)->lpVtbl -> Terminate(This,exitCode) ) #define ICorDebugProcess_CanCommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) + ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) #define ICorDebugProcess_CommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) + ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) #define ICorDebugProcess_GetID(This,pdwProcessId) \ - ( (This)->lpVtbl -> GetID(This,pdwProcessId) ) + ( (This)->lpVtbl -> GetID(This,pdwProcessId) ) #define ICorDebugProcess_GetHandle(This,phProcessHandle) \ - ( (This)->lpVtbl -> GetHandle(This,phProcessHandle) ) + ( (This)->lpVtbl -> GetHandle(This,phProcessHandle) ) #define ICorDebugProcess_GetThread(This,dwThreadId,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,dwThreadId,ppThread) ) + ( (This)->lpVtbl -> GetThread(This,dwThreadId,ppThread) ) #define ICorDebugProcess_EnumerateObjects(This,ppObjects) \ - ( (This)->lpVtbl -> EnumerateObjects(This,ppObjects) ) + ( (This)->lpVtbl -> EnumerateObjects(This,ppObjects) ) #define ICorDebugProcess_IsTransitionStub(This,address,pbTransitionStub) \ - ( (This)->lpVtbl -> IsTransitionStub(This,address,pbTransitionStub) ) + ( (This)->lpVtbl -> IsTransitionStub(This,address,pbTransitionStub) ) #define ICorDebugProcess_IsOSSuspended(This,threadID,pbSuspended) \ - ( (This)->lpVtbl -> IsOSSuspended(This,threadID,pbSuspended) ) + ( (This)->lpVtbl -> IsOSSuspended(This,threadID,pbSuspended) ) #define ICorDebugProcess_GetThreadContext(This,threadID,contextSize,context) \ - ( (This)->lpVtbl -> GetThreadContext(This,threadID,contextSize,context) ) + ( (This)->lpVtbl -> GetThreadContext(This,threadID,contextSize,context) ) #define ICorDebugProcess_SetThreadContext(This,threadID,contextSize,context) \ - ( (This)->lpVtbl -> SetThreadContext(This,threadID,contextSize,context) ) + ( (This)->lpVtbl -> SetThreadContext(This,threadID,contextSize,context) ) #define ICorDebugProcess_ReadMemory(This,address,size,buffer,read) \ - ( (This)->lpVtbl -> ReadMemory(This,address,size,buffer,read) ) + ( (This)->lpVtbl -> ReadMemory(This,address,size,buffer,read) ) #define ICorDebugProcess_WriteMemory(This,address,size,buffer,written) \ - ( (This)->lpVtbl -> WriteMemory(This,address,size,buffer,written) ) + ( (This)->lpVtbl -> WriteMemory(This,address,size,buffer,written) ) #define ICorDebugProcess_ClearCurrentException(This,threadID) \ - ( (This)->lpVtbl -> ClearCurrentException(This,threadID) ) + ( (This)->lpVtbl -> ClearCurrentException(This,threadID) ) #define ICorDebugProcess_EnableLogMessages(This,fOnOff) \ - ( (This)->lpVtbl -> EnableLogMessages(This,fOnOff) ) + ( (This)->lpVtbl -> EnableLogMessages(This,fOnOff) ) #define ICorDebugProcess_ModifyLogSwitch(This,pLogSwitchName,lLevel) \ - ( (This)->lpVtbl -> ModifyLogSwitch(This,pLogSwitchName,lLevel) ) + ( (This)->lpVtbl -> ModifyLogSwitch(This,pLogSwitchName,lLevel) ) #define ICorDebugProcess_EnumerateAppDomains(This,ppAppDomains) \ - ( (This)->lpVtbl -> EnumerateAppDomains(This,ppAppDomains) ) + ( (This)->lpVtbl -> EnumerateAppDomains(This,ppAppDomains) ) #define ICorDebugProcess_GetObject(This,ppObject) \ - ( (This)->lpVtbl -> GetObject(This,ppObject) ) + ( (This)->lpVtbl -> GetObject(This,ppObject) ) #define ICorDebugProcess_ThreadForFiberCookie(This,fiberCookie,ppThread) \ - ( (This)->lpVtbl -> ThreadForFiberCookie(This,fiberCookie,ppThread) ) + ( (This)->lpVtbl -> ThreadForFiberCookie(This,fiberCookie,ppThread) ) #define ICorDebugProcess_GetHelperThreadID(This,pThreadID) \ - ( (This)->lpVtbl -> GetHelperThreadID(This,pThreadID) ) + ( (This)->lpVtbl -> GetHelperThreadID(This,pThreadID) ) #endif /* COBJMACROS */ @@ -6932,7 +6939,7 @@ EXTERN_C const IID IID_ICorDebugProcess; /* interface __MIDL_itf_cordebug_0000_0037 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -6944,97 +6951,97 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0037_v0_0_s_ifspec; #define __ICorDebugProcess2_INTERFACE_DEFINED__ /* interface ICorDebugProcess2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("AD1B3588-0EF0-4744-A496-AA09A9F80371") ICorDebugProcess2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetThreadForTaskID( + virtual HRESULT STDMETHODCALLTYPE GetThreadForTaskID( /* [in] */ TASKID taskid, /* [out] */ ICorDebugThread2 **ppThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVersion( + + virtual HRESULT STDMETHODCALLTYPE GetVersion( /* [out] */ COR_VERSION *version) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetUnmanagedBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE SetUnmanagedBreakpoint( /* [in] */ CORDB_ADDRESS address, /* [in] */ ULONG32 bufsize, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ ULONG32 *bufLen) = 0; - - virtual HRESULT STDMETHODCALLTYPE ClearUnmanagedBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE ClearUnmanagedBreakpoint( /* [in] */ CORDB_ADDRESS address) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetDesiredNGENCompilerFlags( + + virtual HRESULT STDMETHODCALLTYPE SetDesiredNGENCompilerFlags( /* [in] */ DWORD pdwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDesiredNGENCompilerFlags( + + virtual HRESULT STDMETHODCALLTYPE GetDesiredNGENCompilerFlags( /* [out] */ DWORD *pdwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetReferenceValueFromGCHandle( + + virtual HRESULT STDMETHODCALLTYPE GetReferenceValueFromGCHandle( /* [in] */ UINT_PTR handle, /* [out] */ ICorDebugReferenceValue **pOutValue) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugProcess2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetThreadForTaskID )( + + HRESULT ( STDMETHODCALLTYPE *GetThreadForTaskID )( ICorDebugProcess2 * This, /* [in] */ TASKID taskid, /* [out] */ ICorDebugThread2 **ppThread); - - HRESULT ( STDMETHODCALLTYPE *GetVersion )( + + HRESULT ( STDMETHODCALLTYPE *GetVersion )( ICorDebugProcess2 * This, /* [out] */ COR_VERSION *version); - - HRESULT ( STDMETHODCALLTYPE *SetUnmanagedBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *SetUnmanagedBreakpoint )( ICorDebugProcess2 * This, /* [in] */ CORDB_ADDRESS address, /* [in] */ ULONG32 bufsize, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ ULONG32 *bufLen); - - HRESULT ( STDMETHODCALLTYPE *ClearUnmanagedBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *ClearUnmanagedBreakpoint )( ICorDebugProcess2 * This, /* [in] */ CORDB_ADDRESS address); - - HRESULT ( STDMETHODCALLTYPE *SetDesiredNGENCompilerFlags )( + + HRESULT ( STDMETHODCALLTYPE *SetDesiredNGENCompilerFlags )( ICorDebugProcess2 * This, /* [in] */ DWORD pdwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetDesiredNGENCompilerFlags )( + + HRESULT ( STDMETHODCALLTYPE *GetDesiredNGENCompilerFlags )( ICorDebugProcess2 * This, /* [out] */ DWORD *pdwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetReferenceValueFromGCHandle )( + + HRESULT ( STDMETHODCALLTYPE *GetReferenceValueFromGCHandle )( ICorDebugProcess2 * This, /* [in] */ UINT_PTR handle, /* [out] */ ICorDebugReferenceValue **pOutValue); - + END_INTERFACE } ICorDebugProcess2Vtbl; @@ -7043,41 +7050,41 @@ EXTERN_C const IID IID_ICorDebugProcess2; CONST_VTBL struct ICorDebugProcess2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugProcess2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugProcess2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugProcess2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugProcess2_GetThreadForTaskID(This,taskid,ppThread) \ - ( (This)->lpVtbl -> GetThreadForTaskID(This,taskid,ppThread) ) + ( (This)->lpVtbl -> GetThreadForTaskID(This,taskid,ppThread) ) #define ICorDebugProcess2_GetVersion(This,version) \ - ( (This)->lpVtbl -> GetVersion(This,version) ) + ( (This)->lpVtbl -> GetVersion(This,version) ) #define ICorDebugProcess2_SetUnmanagedBreakpoint(This,address,bufsize,buffer,bufLen) \ - ( (This)->lpVtbl -> SetUnmanagedBreakpoint(This,address,bufsize,buffer,bufLen) ) + ( (This)->lpVtbl -> SetUnmanagedBreakpoint(This,address,bufsize,buffer,bufLen) ) #define ICorDebugProcess2_ClearUnmanagedBreakpoint(This,address) \ - ( (This)->lpVtbl -> ClearUnmanagedBreakpoint(This,address) ) + ( (This)->lpVtbl -> ClearUnmanagedBreakpoint(This,address) ) #define ICorDebugProcess2_SetDesiredNGENCompilerFlags(This,pdwFlags) \ - ( (This)->lpVtbl -> SetDesiredNGENCompilerFlags(This,pdwFlags) ) + ( (This)->lpVtbl -> SetDesiredNGENCompilerFlags(This,pdwFlags) ) #define ICorDebugProcess2_GetDesiredNGENCompilerFlags(This,pdwFlags) \ - ( (This)->lpVtbl -> GetDesiredNGENCompilerFlags(This,pdwFlags) ) + ( (This)->lpVtbl -> GetDesiredNGENCompilerFlags(This,pdwFlags) ) #define ICorDebugProcess2_GetReferenceValueFromGCHandle(This,handle,pOutValue) \ - ( (This)->lpVtbl -> GetReferenceValueFromGCHandle(This,handle,pOutValue) ) + ( (This)->lpVtbl -> GetReferenceValueFromGCHandle(This,handle,pOutValue) ) #endif /* COBJMACROS */ @@ -7094,47 +7101,47 @@ EXTERN_C const IID IID_ICorDebugProcess2; #define __ICorDebugProcess3_INTERFACE_DEFINED__ /* interface ICorDebugProcess3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("2EE06488-C0D4-42B1-B26D-F3795EF606FB") ICorDebugProcess3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE SetEnableCustomNotification( + virtual HRESULT STDMETHODCALLTYPE SetEnableCustomNotification( ICorDebugClass *pClass, BOOL fEnable) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugProcess3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess3 * This); - - HRESULT ( STDMETHODCALLTYPE *SetEnableCustomNotification )( + + HRESULT ( STDMETHODCALLTYPE *SetEnableCustomNotification )( ICorDebugProcess3 * This, ICorDebugClass *pClass, BOOL fEnable); - + END_INTERFACE } ICorDebugProcess3Vtbl; @@ -7143,23 +7150,23 @@ EXTERN_C const IID IID_ICorDebugProcess3; CONST_VTBL struct ICorDebugProcess3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugProcess3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugProcess3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugProcess3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugProcess3_SetEnableCustomNotification(This,pClass,fEnable) \ - ( (This)->lpVtbl -> SetEnableCustomNotification(This,pClass,fEnable) ) + ( (This)->lpVtbl -> SetEnableCustomNotification(This,pClass,fEnable) ) #endif /* COBJMACROS */ @@ -7176,142 +7183,142 @@ EXTERN_C const IID IID_ICorDebugProcess3; #define __ICorDebugProcess5_INTERFACE_DEFINED__ /* interface ICorDebugProcess5 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess5; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("21e9d9c0-fcb8-11df-8cff-0800200c9a66") ICorDebugProcess5 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetGCHeapInformation( + virtual HRESULT STDMETHODCALLTYPE GetGCHeapInformation( /* [out] */ COR_HEAPINFO *pHeapInfo) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateHeap( + + virtual HRESULT STDMETHODCALLTYPE EnumerateHeap( /* [out] */ ICorDebugHeapEnum **ppObjects) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateHeapRegions( + + virtual HRESULT STDMETHODCALLTYPE EnumerateHeapRegions( /* [out] */ ICorDebugHeapSegmentEnum **ppRegions) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObject( + + virtual HRESULT STDMETHODCALLTYPE GetObject( /* [in] */ CORDB_ADDRESS addr, /* [out] */ ICorDebugObjectValue **pObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateGCReferences( + + virtual HRESULT STDMETHODCALLTYPE EnumerateGCReferences( /* [in] */ BOOL enumerateWeakReferences, /* [out] */ ICorDebugGCReferenceEnum **ppEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateHandles( + + virtual HRESULT STDMETHODCALLTYPE EnumerateHandles( /* [in] */ CorGCReferenceType types, /* [out] */ ICorDebugGCReferenceEnum **ppEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeID( + + virtual HRESULT STDMETHODCALLTYPE GetTypeID( /* [in] */ CORDB_ADDRESS obj, /* [out] */ COR_TYPEID *pId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeForTypeID( + + virtual HRESULT STDMETHODCALLTYPE GetTypeForTypeID( /* [in] */ COR_TYPEID id, /* [out] */ ICorDebugType **ppType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetArrayLayout( + + virtual HRESULT STDMETHODCALLTYPE GetArrayLayout( /* [in] */ COR_TYPEID id, /* [out] */ COR_ARRAY_LAYOUT *pLayout) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeLayout( + + virtual HRESULT STDMETHODCALLTYPE GetTypeLayout( /* [in] */ COR_TYPEID id, /* [out] */ COR_TYPE_LAYOUT *pLayout) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeFields( + + virtual HRESULT STDMETHODCALLTYPE GetTypeFields( /* [in] */ COR_TYPEID id, ULONG32 celt, COR_FIELD fields[ ], ULONG32 *pceltNeeded) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableNGENPolicy( + + virtual HRESULT STDMETHODCALLTYPE EnableNGENPolicy( /* [in] */ CorDebugNGENPolicy ePolicy) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugProcess5Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess5 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess5 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess5 * This); - - HRESULT ( STDMETHODCALLTYPE *GetGCHeapInformation )( + + HRESULT ( STDMETHODCALLTYPE *GetGCHeapInformation )( ICorDebugProcess5 * This, /* [out] */ COR_HEAPINFO *pHeapInfo); - - HRESULT ( STDMETHODCALLTYPE *EnumerateHeap )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateHeap )( ICorDebugProcess5 * This, /* [out] */ ICorDebugHeapEnum **ppObjects); - - HRESULT ( STDMETHODCALLTYPE *EnumerateHeapRegions )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateHeapRegions )( ICorDebugProcess5 * This, /* [out] */ ICorDebugHeapSegmentEnum **ppRegions); - - HRESULT ( STDMETHODCALLTYPE *GetObject )( + + HRESULT ( STDMETHODCALLTYPE *GetObject )( ICorDebugProcess5 * This, /* [in] */ CORDB_ADDRESS addr, /* [out] */ ICorDebugObjectValue **pObject); - - HRESULT ( STDMETHODCALLTYPE *EnumerateGCReferences )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateGCReferences )( ICorDebugProcess5 * This, /* [in] */ BOOL enumerateWeakReferences, /* [out] */ ICorDebugGCReferenceEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *EnumerateHandles )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateHandles )( ICorDebugProcess5 * This, /* [in] */ CorGCReferenceType types, /* [out] */ ICorDebugGCReferenceEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetTypeID )( + + HRESULT ( STDMETHODCALLTYPE *GetTypeID )( ICorDebugProcess5 * This, /* [in] */ CORDB_ADDRESS obj, /* [out] */ COR_TYPEID *pId); - - HRESULT ( STDMETHODCALLTYPE *GetTypeForTypeID )( + + HRESULT ( STDMETHODCALLTYPE *GetTypeForTypeID )( ICorDebugProcess5 * This, /* [in] */ COR_TYPEID id, /* [out] */ ICorDebugType **ppType); - - HRESULT ( STDMETHODCALLTYPE *GetArrayLayout )( + + HRESULT ( STDMETHODCALLTYPE *GetArrayLayout )( ICorDebugProcess5 * This, /* [in] */ COR_TYPEID id, /* [out] */ COR_ARRAY_LAYOUT *pLayout); - - HRESULT ( STDMETHODCALLTYPE *GetTypeLayout )( + + HRESULT ( STDMETHODCALLTYPE *GetTypeLayout )( ICorDebugProcess5 * This, /* [in] */ COR_TYPEID id, /* [out] */ COR_TYPE_LAYOUT *pLayout); - - HRESULT ( STDMETHODCALLTYPE *GetTypeFields )( + + HRESULT ( STDMETHODCALLTYPE *GetTypeFields )( ICorDebugProcess5 * This, /* [in] */ COR_TYPEID id, ULONG32 celt, COR_FIELD fields[ ], ULONG32 *pceltNeeded); - - HRESULT ( STDMETHODCALLTYPE *EnableNGENPolicy )( + + HRESULT ( STDMETHODCALLTYPE *EnableNGENPolicy )( ICorDebugProcess5 * This, /* [in] */ CorDebugNGENPolicy ePolicy); - + END_INTERFACE } ICorDebugProcess5Vtbl; @@ -7320,56 +7327,56 @@ EXTERN_C const IID IID_ICorDebugProcess5; CONST_VTBL struct ICorDebugProcess5Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugProcess5_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugProcess5_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugProcess5_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugProcess5_GetGCHeapInformation(This,pHeapInfo) \ - ( (This)->lpVtbl -> GetGCHeapInformation(This,pHeapInfo) ) + ( (This)->lpVtbl -> GetGCHeapInformation(This,pHeapInfo) ) #define ICorDebugProcess5_EnumerateHeap(This,ppObjects) \ - ( (This)->lpVtbl -> EnumerateHeap(This,ppObjects) ) + ( (This)->lpVtbl -> EnumerateHeap(This,ppObjects) ) #define ICorDebugProcess5_EnumerateHeapRegions(This,ppRegions) \ - ( (This)->lpVtbl -> EnumerateHeapRegions(This,ppRegions) ) + ( (This)->lpVtbl -> EnumerateHeapRegions(This,ppRegions) ) #define ICorDebugProcess5_GetObject(This,addr,pObject) \ - ( (This)->lpVtbl -> GetObject(This,addr,pObject) ) + ( (This)->lpVtbl -> GetObject(This,addr,pObject) ) #define ICorDebugProcess5_EnumerateGCReferences(This,enumerateWeakReferences,ppEnum) \ - ( (This)->lpVtbl -> EnumerateGCReferences(This,enumerateWeakReferences,ppEnum) ) + ( (This)->lpVtbl -> EnumerateGCReferences(This,enumerateWeakReferences,ppEnum) ) #define ICorDebugProcess5_EnumerateHandles(This,types,ppEnum) \ - ( (This)->lpVtbl -> EnumerateHandles(This,types,ppEnum) ) + ( (This)->lpVtbl -> EnumerateHandles(This,types,ppEnum) ) #define ICorDebugProcess5_GetTypeID(This,obj,pId) \ - ( (This)->lpVtbl -> GetTypeID(This,obj,pId) ) + ( (This)->lpVtbl -> GetTypeID(This,obj,pId) ) #define ICorDebugProcess5_GetTypeForTypeID(This,id,ppType) \ - ( (This)->lpVtbl -> GetTypeForTypeID(This,id,ppType) ) + ( (This)->lpVtbl -> GetTypeForTypeID(This,id,ppType) ) #define ICorDebugProcess5_GetArrayLayout(This,id,pLayout) \ - ( (This)->lpVtbl -> GetArrayLayout(This,id,pLayout) ) + ( (This)->lpVtbl -> GetArrayLayout(This,id,pLayout) ) #define ICorDebugProcess5_GetTypeLayout(This,id,pLayout) \ - ( (This)->lpVtbl -> GetTypeLayout(This,id,pLayout) ) + ( (This)->lpVtbl -> GetTypeLayout(This,id,pLayout) ) #define ICorDebugProcess5_GetTypeFields(This,id,celt,fields,pceltNeeded) \ - ( (This)->lpVtbl -> GetTypeFields(This,id,celt,fields,pceltNeeded) ) + ( (This)->lpVtbl -> GetTypeFields(This,id,celt,fields,pceltNeeded) ) #define ICorDebugProcess5_EnableNGENPolicy(This,ePolicy) \ - ( (This)->lpVtbl -> EnableNGENPolicy(This,ePolicy) ) + ( (This)->lpVtbl -> EnableNGENPolicy(This,ePolicy) ) #endif /* COBJMACROS */ @@ -7383,22 +7390,22 @@ EXTERN_C const IID IID_ICorDebugProcess5; /* interface __MIDL_itf_cordebug_0000_0040 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorDebugRecordFormat { FORMAT_WINDOWS_EXCEPTIONRECORD32 = 1, FORMAT_WINDOWS_EXCEPTIONRECORD64 = 2 } CorDebugRecordFormat; -typedef +typedef enum CorDebugDecodeEventFlagsWindows { IS_FIRST_CHANCE = 1 } CorDebugDecodeEventFlagsWindows; -typedef +typedef enum CorDebugDebugEventKind { DEBUG_EVENT_KIND_MODULE_LOADED = 1, @@ -7409,7 +7416,7 @@ enum CorDebugDebugEventKind DEBUG_EVENT_KIND_MANAGED_EXCEPTION_UNHANDLED = 6 } CorDebugDebugEventKind; -typedef +typedef enum CorDebugStateChange { PROCESS_RUNNING = 0x1, @@ -7425,52 +7432,52 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0040_v0_0_s_ifspec; #define __ICorDebugDebugEvent_INTERFACE_DEFINED__ /* interface ICorDebugDebugEvent */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugDebugEvent; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("41BD395D-DE99-48F1-BF7A-CC0F44A6D281") ICorDebugDebugEvent : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetEventKind( + virtual HRESULT STDMETHODCALLTYPE GetEventKind( /* [out] */ CorDebugDebugEventKind *pDebugEventKind) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThread( + + virtual HRESULT STDMETHODCALLTYPE GetThread( /* [out] */ ICorDebugThread **ppThread) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugDebugEventVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDebugEvent * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDebugEvent * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDebugEvent * This); - - HRESULT ( STDMETHODCALLTYPE *GetEventKind )( + + HRESULT ( STDMETHODCALLTYPE *GetEventKind )( ICorDebugDebugEvent * This, /* [out] */ CorDebugDebugEventKind *pDebugEventKind); - - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugDebugEvent * This, /* [out] */ ICorDebugThread **ppThread); - + END_INTERFACE } ICorDebugDebugEventVtbl; @@ -7479,26 +7486,26 @@ EXTERN_C const IID IID_ICorDebugDebugEvent; CONST_VTBL struct ICorDebugDebugEventVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugDebugEvent_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugDebugEvent_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugDebugEvent_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugDebugEvent_GetEventKind(This,pDebugEventKind) \ - ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) + ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) #define ICorDebugDebugEvent_GetThread(This,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,ppThread) ) + ( (This)->lpVtbl -> GetThread(This,ppThread) ) #endif /* COBJMACROS */ @@ -7512,23 +7519,23 @@ EXTERN_C const IID IID_ICorDebugDebugEvent; /* interface __MIDL_itf_cordebug_0000_0041 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorDebugCodeInvokeKind { CODE_INVOKE_KIND_NONE = 0, CODE_INVOKE_KIND_RETURN = ( CODE_INVOKE_KIND_NONE + 1 ) , - CODE_INVOKE_KIND_TAILCALL = ( CODE_INVOKE_KIND_RETURN + 1 ) + CODE_INVOKE_KIND_TAILCALL = ( CODE_INVOKE_KIND_RETURN + 1 ) } CorDebugCodeInvokeKind; -typedef +typedef enum CorDebugCodeInvokePurpose { CODE_INVOKE_PURPOSE_NONE = 0, CODE_INVOKE_PURPOSE_NATIVE_TO_MANAGED_TRANSITION = ( CODE_INVOKE_PURPOSE_NONE + 1 ) , CODE_INVOKE_PURPOSE_CLASS_INIT = ( CODE_INVOKE_PURPOSE_NATIVE_TO_MANAGED_TRANSITION + 1 ) , - CODE_INVOKE_PURPOSE_INTERFACE_DISPATCH = ( CODE_INVOKE_PURPOSE_CLASS_INIT + 1 ) + CODE_INVOKE_PURPOSE_INTERFACE_DISPATCH = ( CODE_INVOKE_PURPOSE_CLASS_INIT + 1 ) } CorDebugCodeInvokePurpose; @@ -7540,65 +7547,65 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0041_v0_0_s_ifspec; #define __ICorDebugProcess6_INTERFACE_DEFINED__ /* interface ICorDebugProcess6 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess6; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("11588775-7205-4CEB-A41A-93753C3153E9") ICorDebugProcess6 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE DecodeEvent( + virtual HRESULT STDMETHODCALLTYPE DecodeEvent( /* [size_is][length_is][in] */ const BYTE pRecord[ ], /* [in] */ DWORD countBytes, /* [in] */ CorDebugRecordFormat format, /* [in] */ DWORD dwFlags, /* [in] */ DWORD dwThreadId, /* [out] */ ICorDebugDebugEvent **ppEvent) = 0; - - virtual HRESULT STDMETHODCALLTYPE ProcessStateChanged( + + virtual HRESULT STDMETHODCALLTYPE ProcessStateChanged( /* [in] */ CorDebugStateChange change) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCode( + + virtual HRESULT STDMETHODCALLTYPE GetCode( /* [in] */ CORDB_ADDRESS codeAddress, /* [out] */ ICorDebugCode **ppCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableVirtualModuleSplitting( + + virtual HRESULT STDMETHODCALLTYPE EnableVirtualModuleSplitting( BOOL enableSplitting) = 0; - - virtual HRESULT STDMETHODCALLTYPE MarkDebuggerAttached( + + virtual HRESULT STDMETHODCALLTYPE MarkDebuggerAttached( BOOL fIsAttached) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetExportStepInfo( + + virtual HRESULT STDMETHODCALLTYPE GetExportStepInfo( /* [in] */ LPCWSTR pszExportName, /* [out] */ CorDebugCodeInvokeKind *pInvokeKind, /* [out] */ CorDebugCodeInvokePurpose *pInvokePurpose) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugProcess6Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess6 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess6 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess6 * This); - - HRESULT ( STDMETHODCALLTYPE *DecodeEvent )( + + HRESULT ( STDMETHODCALLTYPE *DecodeEvent )( ICorDebugProcess6 * This, /* [size_is][length_is][in] */ const BYTE pRecord[ ], /* [in] */ DWORD countBytes, @@ -7606,30 +7613,30 @@ EXTERN_C const IID IID_ICorDebugProcess6; /* [in] */ DWORD dwFlags, /* [in] */ DWORD dwThreadId, /* [out] */ ICorDebugDebugEvent **ppEvent); - - HRESULT ( STDMETHODCALLTYPE *ProcessStateChanged )( + + HRESULT ( STDMETHODCALLTYPE *ProcessStateChanged )( ICorDebugProcess6 * This, /* [in] */ CorDebugStateChange change); - - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugProcess6 * This, /* [in] */ CORDB_ADDRESS codeAddress, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *EnableVirtualModuleSplitting )( + + HRESULT ( STDMETHODCALLTYPE *EnableVirtualModuleSplitting )( ICorDebugProcess6 * This, BOOL enableSplitting); - - HRESULT ( STDMETHODCALLTYPE *MarkDebuggerAttached )( + + HRESULT ( STDMETHODCALLTYPE *MarkDebuggerAttached )( ICorDebugProcess6 * This, BOOL fIsAttached); - - HRESULT ( STDMETHODCALLTYPE *GetExportStepInfo )( + + HRESULT ( STDMETHODCALLTYPE *GetExportStepInfo )( ICorDebugProcess6 * This, /* [in] */ LPCWSTR pszExportName, /* [out] */ CorDebugCodeInvokeKind *pInvokeKind, /* [out] */ CorDebugCodeInvokePurpose *pInvokePurpose); - + END_INTERFACE } ICorDebugProcess6Vtbl; @@ -7638,38 +7645,38 @@ EXTERN_C const IID IID_ICorDebugProcess6; CONST_VTBL struct ICorDebugProcess6Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugProcess6_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugProcess6_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugProcess6_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugProcess6_DecodeEvent(This,pRecord,countBytes,format,dwFlags,dwThreadId,ppEvent) \ - ( (This)->lpVtbl -> DecodeEvent(This,pRecord,countBytes,format,dwFlags,dwThreadId,ppEvent) ) + ( (This)->lpVtbl -> DecodeEvent(This,pRecord,countBytes,format,dwFlags,dwThreadId,ppEvent) ) #define ICorDebugProcess6_ProcessStateChanged(This,change) \ - ( (This)->lpVtbl -> ProcessStateChanged(This,change) ) + ( (This)->lpVtbl -> ProcessStateChanged(This,change) ) #define ICorDebugProcess6_GetCode(This,codeAddress,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,codeAddress,ppCode) ) + ( (This)->lpVtbl -> GetCode(This,codeAddress,ppCode) ) #define ICorDebugProcess6_EnableVirtualModuleSplitting(This,enableSplitting) \ - ( (This)->lpVtbl -> EnableVirtualModuleSplitting(This,enableSplitting) ) + ( (This)->lpVtbl -> EnableVirtualModuleSplitting(This,enableSplitting) ) #define ICorDebugProcess6_MarkDebuggerAttached(This,fIsAttached) \ - ( (This)->lpVtbl -> MarkDebuggerAttached(This,fIsAttached) ) + ( (This)->lpVtbl -> MarkDebuggerAttached(This,fIsAttached) ) #define ICorDebugProcess6_GetExportStepInfo(This,pszExportName,pInvokeKind,pInvokePurpose) \ - ( (This)->lpVtbl -> GetExportStepInfo(This,pszExportName,pInvokeKind,pInvokePurpose) ) + ( (This)->lpVtbl -> GetExportStepInfo(This,pszExportName,pInvokeKind,pInvokePurpose) ) #endif /* COBJMACROS */ @@ -7683,13 +7690,13 @@ EXTERN_C const IID IID_ICorDebugProcess6; /* interface __MIDL_itf_cordebug_0000_0042 */ -/* [local] */ +/* [local] */ -typedef +typedef enum WriteableMetadataUpdateMode { LegacyCompatPolicy = 0, - AlwaysShowUpdates = ( LegacyCompatPolicy + 1 ) + AlwaysShowUpdates = ( LegacyCompatPolicy + 1 ) } WriteableMetadataUpdateMode; @@ -7701,45 +7708,45 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0042_v0_0_s_ifspec; #define __ICorDebugProcess7_INTERFACE_DEFINED__ /* interface ICorDebugProcess7 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess7; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("9B2C54E4-119F-4D6F-B402-527603266D69") ICorDebugProcess7 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE SetWriteableMetadataUpdateMode( + virtual HRESULT STDMETHODCALLTYPE SetWriteableMetadataUpdateMode( WriteableMetadataUpdateMode flags) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugProcess7Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess7 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess7 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess7 * This); - - HRESULT ( STDMETHODCALLTYPE *SetWriteableMetadataUpdateMode )( + + HRESULT ( STDMETHODCALLTYPE *SetWriteableMetadataUpdateMode )( ICorDebugProcess7 * This, WriteableMetadataUpdateMode flags); - + END_INTERFACE } ICorDebugProcess7Vtbl; @@ -7748,23 +7755,23 @@ EXTERN_C const IID IID_ICorDebugProcess7; CONST_VTBL struct ICorDebugProcess7Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugProcess7_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugProcess7_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugProcess7_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugProcess7_SetWriteableMetadataUpdateMode(This,flags) \ - ( (This)->lpVtbl -> SetWriteableMetadataUpdateMode(This,flags) ) + ( (This)->lpVtbl -> SetWriteableMetadataUpdateMode(This,flags) ) #endif /* COBJMACROS */ @@ -7781,45 +7788,45 @@ EXTERN_C const IID IID_ICorDebugProcess7; #define __ICorDebugProcess8_INTERFACE_DEFINED__ /* interface ICorDebugProcess8 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess8; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("2E6F28C1-85EB-4141-80AD-0A90944B9639") ICorDebugProcess8 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnableExceptionCallbacksOutsideOfMyCode( + virtual HRESULT STDMETHODCALLTYPE EnableExceptionCallbacksOutsideOfMyCode( /* [in] */ BOOL enableExceptionsOutsideOfJMC) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugProcess8Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess8 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess8 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess8 * This); - - HRESULT ( STDMETHODCALLTYPE *EnableExceptionCallbacksOutsideOfMyCode )( + + HRESULT ( STDMETHODCALLTYPE *EnableExceptionCallbacksOutsideOfMyCode )( ICorDebugProcess8 * This, /* [in] */ BOOL enableExceptionsOutsideOfJMC); - + END_INTERFACE } ICorDebugProcess8Vtbl; @@ -7828,23 +7835,23 @@ EXTERN_C const IID IID_ICorDebugProcess8; CONST_VTBL struct ICorDebugProcess8Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugProcess8_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugProcess8_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugProcess8_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugProcess8_EnableExceptionCallbacksOutsideOfMyCode(This,enableExceptionsOutsideOfJMC) \ - ( (This)->lpVtbl -> EnableExceptionCallbacksOutsideOfMyCode(This,enableExceptionsOutsideOfJMC) ) + ( (This)->lpVtbl -> EnableExceptionCallbacksOutsideOfMyCode(This,enableExceptionsOutsideOfJMC) ) #endif /* COBJMACROS */ @@ -7861,45 +7868,45 @@ EXTERN_C const IID IID_ICorDebugProcess8; #define __ICorDebugProcess10_INTERFACE_DEFINED__ /* interface ICorDebugProcess10 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess10; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("8F378F6F-1017-4461-9890-ECF64C54079F") ICorDebugProcess10 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnableGCNotificationEvents( + virtual HRESULT STDMETHODCALLTYPE EnableGCNotificationEvents( BOOL fEnable) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugProcess10Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess10 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess10 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess10 * This); - - HRESULT ( STDMETHODCALLTYPE *EnableGCNotificationEvents )( + + HRESULT ( STDMETHODCALLTYPE *EnableGCNotificationEvents )( ICorDebugProcess10 * This, BOOL fEnable); - + END_INTERFACE } ICorDebugProcess10Vtbl; @@ -7908,23 +7915,23 @@ EXTERN_C const IID IID_ICorDebugProcess10; CONST_VTBL struct ICorDebugProcess10Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugProcess10_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugProcess10_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugProcess10_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugProcess10_EnableGCNotificationEvents(This,fEnable) \ - ( (This)->lpVtbl -> EnableGCNotificationEvents(This,fEnable) ) + ( (This)->lpVtbl -> EnableGCNotificationEvents(This,fEnable) ) #endif /* COBJMACROS */ @@ -7938,7 +7945,7 @@ EXTERN_C const IID IID_ICorDebugProcess10; /* interface __MIDL_itf_cordebug_0000_0045 */ -/* [local] */ +/* [local] */ typedef struct _COR_MEMORY_RANGE { @@ -7955,64 +7962,64 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0045_v0_0_s_ifspec; #define __ICorDebugMemoryRangeEnum_INTERFACE_DEFINED__ /* interface ICorDebugMemoryRangeEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugMemoryRangeEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("D1A0BCFC-5865-4437-BE3F-36F022951F8A") ICorDebugMemoryRangeEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_MEMORY_RANGE objects[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugMemoryRangeEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMemoryRangeEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMemoryRangeEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMemoryRangeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugMemoryRangeEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugMemoryRangeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugMemoryRangeEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugMemoryRangeEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugMemoryRangeEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_MEMORY_RANGE objects[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugMemoryRangeEnumVtbl; @@ -8021,36 +8028,36 @@ EXTERN_C const IID IID_ICorDebugMemoryRangeEnum; CONST_VTBL struct ICorDebugMemoryRangeEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugMemoryRangeEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugMemoryRangeEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugMemoryRangeEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugMemoryRangeEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugMemoryRangeEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugMemoryRangeEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugMemoryRangeEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugMemoryRangeEnum_Next(This,celt,objects,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) #endif /* COBJMACROS */ @@ -8067,45 +8074,45 @@ EXTERN_C const IID IID_ICorDebugMemoryRangeEnum; #define __ICorDebugProcess11_INTERFACE_DEFINED__ /* interface ICorDebugProcess11 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess11; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("344B37AA-F2C0-4D3B-9909-91CCF787DA8C") ICorDebugProcess11 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnumerateLoaderHeapMemoryRegions( + virtual HRESULT STDMETHODCALLTYPE EnumerateLoaderHeapMemoryRegions( /* [out] */ ICorDebugMemoryRangeEnum **ppRanges) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugProcess11Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess11 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess11 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess11 * This); - - HRESULT ( STDMETHODCALLTYPE *EnumerateLoaderHeapMemoryRegions )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateLoaderHeapMemoryRegions )( ICorDebugProcess11 * This, /* [out] */ ICorDebugMemoryRangeEnum **ppRanges); - + END_INTERFACE } ICorDebugProcess11Vtbl; @@ -8114,23 +8121,23 @@ EXTERN_C const IID IID_ICorDebugProcess11; CONST_VTBL struct ICorDebugProcess11Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugProcess11_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugProcess11_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugProcess11_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugProcess11_EnumerateLoaderHeapMemoryRegions(This,ppRanges) \ - ( (This)->lpVtbl -> EnumerateLoaderHeapMemoryRegions(This,ppRanges) ) + ( (This)->lpVtbl -> EnumerateLoaderHeapMemoryRegions(This,ppRanges) ) #endif /* COBJMACROS */ @@ -8147,53 +8154,53 @@ EXTERN_C const IID IID_ICorDebugProcess11; #define __ICorDebugModuleDebugEvent_INTERFACE_DEFINED__ /* interface ICorDebugModuleDebugEvent */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModuleDebugEvent; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("51A15E8D-9FFF-4864-9B87-F4FBDEA747A2") ICorDebugModuleDebugEvent : public ICorDebugDebugEvent { public: - virtual HRESULT STDMETHODCALLTYPE GetModule( + virtual HRESULT STDMETHODCALLTYPE GetModule( /* [out] */ ICorDebugModule **ppModule) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugModuleDebugEventVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModuleDebugEvent * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModuleDebugEvent * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModuleDebugEvent * This); - - HRESULT ( STDMETHODCALLTYPE *GetEventKind )( + + HRESULT ( STDMETHODCALLTYPE *GetEventKind )( ICorDebugModuleDebugEvent * This, /* [out] */ CorDebugDebugEventKind *pDebugEventKind); - - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugModuleDebugEvent * This, /* [out] */ ICorDebugThread **ppThread); - - HRESULT ( STDMETHODCALLTYPE *GetModule )( + + HRESULT ( STDMETHODCALLTYPE *GetModule )( ICorDebugModuleDebugEvent * This, /* [out] */ ICorDebugModule **ppModule); - + END_INTERFACE } ICorDebugModuleDebugEventVtbl; @@ -8202,30 +8209,30 @@ EXTERN_C const IID IID_ICorDebugModuleDebugEvent; CONST_VTBL struct ICorDebugModuleDebugEventVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugModuleDebugEvent_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugModuleDebugEvent_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugModuleDebugEvent_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugModuleDebugEvent_GetEventKind(This,pDebugEventKind) \ - ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) + ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) #define ICorDebugModuleDebugEvent_GetThread(This,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,ppThread) ) + ( (This)->lpVtbl -> GetThread(This,ppThread) ) #define ICorDebugModuleDebugEvent_GetModule(This,ppModule) \ - ( (This)->lpVtbl -> GetModule(This,ppModule) ) + ( (This)->lpVtbl -> GetModule(This,ppModule) ) #endif /* COBJMACROS */ @@ -8242,67 +8249,67 @@ EXTERN_C const IID IID_ICorDebugModuleDebugEvent; #define __ICorDebugExceptionDebugEvent_INTERFACE_DEFINED__ /* interface ICorDebugExceptionDebugEvent */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugExceptionDebugEvent; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("AF79EC94-4752-419C-A626-5FB1CC1A5AB7") ICorDebugExceptionDebugEvent : public ICorDebugDebugEvent { public: - virtual HRESULT STDMETHODCALLTYPE GetStackPointer( + virtual HRESULT STDMETHODCALLTYPE GetStackPointer( /* [out] */ CORDB_ADDRESS *pStackPointer) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetNativeIP( + + virtual HRESULT STDMETHODCALLTYPE GetNativeIP( /* [out] */ CORDB_ADDRESS *pIP) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFlags( + + virtual HRESULT STDMETHODCALLTYPE GetFlags( /* [out] */ CorDebugExceptionFlags *pdwFlags) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugExceptionDebugEventVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugExceptionDebugEvent * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugExceptionDebugEvent * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugExceptionDebugEvent * This); - - HRESULT ( STDMETHODCALLTYPE *GetEventKind )( + + HRESULT ( STDMETHODCALLTYPE *GetEventKind )( ICorDebugExceptionDebugEvent * This, /* [out] */ CorDebugDebugEventKind *pDebugEventKind); - - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugExceptionDebugEvent * This, /* [out] */ ICorDebugThread **ppThread); - - HRESULT ( STDMETHODCALLTYPE *GetStackPointer )( + + HRESULT ( STDMETHODCALLTYPE *GetStackPointer )( ICorDebugExceptionDebugEvent * This, /* [out] */ CORDB_ADDRESS *pStackPointer); - - HRESULT ( STDMETHODCALLTYPE *GetNativeIP )( + + HRESULT ( STDMETHODCALLTYPE *GetNativeIP )( ICorDebugExceptionDebugEvent * This, /* [out] */ CORDB_ADDRESS *pIP); - - HRESULT ( STDMETHODCALLTYPE *GetFlags )( + + HRESULT ( STDMETHODCALLTYPE *GetFlags )( ICorDebugExceptionDebugEvent * This, /* [out] */ CorDebugExceptionFlags *pdwFlags); - + END_INTERFACE } ICorDebugExceptionDebugEventVtbl; @@ -8311,36 +8318,36 @@ EXTERN_C const IID IID_ICorDebugExceptionDebugEvent; CONST_VTBL struct ICorDebugExceptionDebugEventVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugExceptionDebugEvent_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugExceptionDebugEvent_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugExceptionDebugEvent_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugExceptionDebugEvent_GetEventKind(This,pDebugEventKind) \ - ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) + ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) #define ICorDebugExceptionDebugEvent_GetThread(This,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,ppThread) ) + ( (This)->lpVtbl -> GetThread(This,ppThread) ) #define ICorDebugExceptionDebugEvent_GetStackPointer(This,pStackPointer) \ - ( (This)->lpVtbl -> GetStackPointer(This,pStackPointer) ) + ( (This)->lpVtbl -> GetStackPointer(This,pStackPointer) ) #define ICorDebugExceptionDebugEvent_GetNativeIP(This,pIP) \ - ( (This)->lpVtbl -> GetNativeIP(This,pIP) ) + ( (This)->lpVtbl -> GetNativeIP(This,pIP) ) #define ICorDebugExceptionDebugEvent_GetFlags(This,pdwFlags) \ - ( (This)->lpVtbl -> GetFlags(This,pdwFlags) ) + ( (This)->lpVtbl -> GetFlags(This,pdwFlags) ) #endif /* COBJMACROS */ @@ -8357,52 +8364,52 @@ EXTERN_C const IID IID_ICorDebugExceptionDebugEvent; #define __ICorDebugBreakpoint_INTERFACE_DEFINED__ /* interface ICorDebugBreakpoint */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugBreakpoint; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAE8-8A68-11d2-983C-0000F808342D") ICorDebugBreakpoint : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE Activate( + virtual HRESULT STDMETHODCALLTYPE Activate( /* [in] */ BOOL bActive) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsActive( + + virtual HRESULT STDMETHODCALLTYPE IsActive( /* [out] */ BOOL *pbActive) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugBreakpointVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugBreakpoint * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugBreakpoint * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugBreakpoint * This); - - HRESULT ( STDMETHODCALLTYPE *Activate )( + + HRESULT ( STDMETHODCALLTYPE *Activate )( ICorDebugBreakpoint * This, /* [in] */ BOOL bActive); - - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugBreakpoint * This, /* [out] */ BOOL *pbActive); - + END_INTERFACE } ICorDebugBreakpointVtbl; @@ -8411,26 +8418,26 @@ EXTERN_C const IID IID_ICorDebugBreakpoint; CONST_VTBL struct ICorDebugBreakpointVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugBreakpoint_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugBreakpoint_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugBreakpoint_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugBreakpoint_Activate(This,bActive) \ - ( (This)->lpVtbl -> Activate(This,bActive) ) + ( (This)->lpVtbl -> Activate(This,bActive) ) #define ICorDebugBreakpoint_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) + ( (This)->lpVtbl -> IsActive(This,pbActive) ) #endif /* COBJMACROS */ @@ -8447,60 +8454,60 @@ EXTERN_C const IID IID_ICorDebugBreakpoint; #define __ICorDebugFunctionBreakpoint_INTERFACE_DEFINED__ /* interface ICorDebugFunctionBreakpoint */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFunctionBreakpoint; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAE9-8A68-11d2-983C-0000F808342D") ICorDebugFunctionBreakpoint : public ICorDebugBreakpoint { public: - virtual HRESULT STDMETHODCALLTYPE GetFunction( + virtual HRESULT STDMETHODCALLTYPE GetFunction( /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetOffset( + + virtual HRESULT STDMETHODCALLTYPE GetOffset( /* [out] */ ULONG32 *pnOffset) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugFunctionBreakpointVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFunctionBreakpoint * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFunctionBreakpoint * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFunctionBreakpoint * This); - - HRESULT ( STDMETHODCALLTYPE *Activate )( + + HRESULT ( STDMETHODCALLTYPE *Activate )( ICorDebugFunctionBreakpoint * This, /* [in] */ BOOL bActive); - - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugFunctionBreakpoint * This, /* [out] */ BOOL *pbActive); - - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugFunctionBreakpoint * This, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetOffset )( + + HRESULT ( STDMETHODCALLTYPE *GetOffset )( ICorDebugFunctionBreakpoint * This, /* [out] */ ULONG32 *pnOffset); - + END_INTERFACE } ICorDebugFunctionBreakpointVtbl; @@ -8509,33 +8516,33 @@ EXTERN_C const IID IID_ICorDebugFunctionBreakpoint; CONST_VTBL struct ICorDebugFunctionBreakpointVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugFunctionBreakpoint_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugFunctionBreakpoint_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugFunctionBreakpoint_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugFunctionBreakpoint_Activate(This,bActive) \ - ( (This)->lpVtbl -> Activate(This,bActive) ) + ( (This)->lpVtbl -> Activate(This,bActive) ) #define ICorDebugFunctionBreakpoint_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) + ( (This)->lpVtbl -> IsActive(This,pbActive) ) #define ICorDebugFunctionBreakpoint_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) #define ICorDebugFunctionBreakpoint_GetOffset(This,pnOffset) \ - ( (This)->lpVtbl -> GetOffset(This,pnOffset) ) + ( (This)->lpVtbl -> GetOffset(This,pnOffset) ) #endif /* COBJMACROS */ @@ -8552,53 +8559,53 @@ EXTERN_C const IID IID_ICorDebugFunctionBreakpoint; #define __ICorDebugModuleBreakpoint_INTERFACE_DEFINED__ /* interface ICorDebugModuleBreakpoint */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModuleBreakpoint; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAEA-8A68-11d2-983C-0000F808342D") ICorDebugModuleBreakpoint : public ICorDebugBreakpoint { public: - virtual HRESULT STDMETHODCALLTYPE GetModule( + virtual HRESULT STDMETHODCALLTYPE GetModule( /* [out] */ ICorDebugModule **ppModule) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugModuleBreakpointVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModuleBreakpoint * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModuleBreakpoint * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModuleBreakpoint * This); - - HRESULT ( STDMETHODCALLTYPE *Activate )( + + HRESULT ( STDMETHODCALLTYPE *Activate )( ICorDebugModuleBreakpoint * This, /* [in] */ BOOL bActive); - - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugModuleBreakpoint * This, /* [out] */ BOOL *pbActive); - - HRESULT ( STDMETHODCALLTYPE *GetModule )( + + HRESULT ( STDMETHODCALLTYPE *GetModule )( ICorDebugModuleBreakpoint * This, /* [out] */ ICorDebugModule **ppModule); - + END_INTERFACE } ICorDebugModuleBreakpointVtbl; @@ -8607,30 +8614,30 @@ EXTERN_C const IID IID_ICorDebugModuleBreakpoint; CONST_VTBL struct ICorDebugModuleBreakpointVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugModuleBreakpoint_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugModuleBreakpoint_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugModuleBreakpoint_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugModuleBreakpoint_Activate(This,bActive) \ - ( (This)->lpVtbl -> Activate(This,bActive) ) + ( (This)->lpVtbl -> Activate(This,bActive) ) #define ICorDebugModuleBreakpoint_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) + ( (This)->lpVtbl -> IsActive(This,pbActive) ) #define ICorDebugModuleBreakpoint_GetModule(This,ppModule) \ - ( (This)->lpVtbl -> GetModule(This,ppModule) ) + ( (This)->lpVtbl -> GetModule(This,ppModule) ) #endif /* COBJMACROS */ @@ -8647,53 +8654,53 @@ EXTERN_C const IID IID_ICorDebugModuleBreakpoint; #define __ICorDebugValueBreakpoint_INTERFACE_DEFINED__ /* interface ICorDebugValueBreakpoint */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugValueBreakpoint; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAEB-8A68-11d2-983C-0000F808342D") ICorDebugValueBreakpoint : public ICorDebugBreakpoint { public: - virtual HRESULT STDMETHODCALLTYPE GetValue( + virtual HRESULT STDMETHODCALLTYPE GetValue( /* [out] */ ICorDebugValue **ppValue) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugValueBreakpointVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugValueBreakpoint * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugValueBreakpoint * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugValueBreakpoint * This); - - HRESULT ( STDMETHODCALLTYPE *Activate )( + + HRESULT ( STDMETHODCALLTYPE *Activate )( ICorDebugValueBreakpoint * This, /* [in] */ BOOL bActive); - - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugValueBreakpoint * This, /* [out] */ BOOL *pbActive); - - HRESULT ( STDMETHODCALLTYPE *GetValue )( + + HRESULT ( STDMETHODCALLTYPE *GetValue )( ICorDebugValueBreakpoint * This, /* [out] */ ICorDebugValue **ppValue); - + END_INTERFACE } ICorDebugValueBreakpointVtbl; @@ -8702,30 +8709,30 @@ EXTERN_C const IID IID_ICorDebugValueBreakpoint; CONST_VTBL struct ICorDebugValueBreakpointVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugValueBreakpoint_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugValueBreakpoint_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugValueBreakpoint_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugValueBreakpoint_Activate(This,bActive) \ - ( (This)->lpVtbl -> Activate(This,bActive) ) + ( (This)->lpVtbl -> Activate(This,bActive) ) #define ICorDebugValueBreakpoint_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) + ( (This)->lpVtbl -> IsActive(This,pbActive) ) #define ICorDebugValueBreakpoint_GetValue(This,ppValue) \ - ( (This)->lpVtbl -> GetValue(This,ppValue) ) + ( (This)->lpVtbl -> GetValue(This,ppValue) ) #endif /* COBJMACROS */ @@ -8742,9 +8749,9 @@ EXTERN_C const IID IID_ICorDebugValueBreakpoint; #define __ICorDebugStepper_INTERFACE_DEFINED__ /* interface ICorDebugStepper */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugIntercept { INTERCEPT_NONE = 0, @@ -8756,7 +8763,7 @@ enum CorDebugIntercept INTERCEPT_ALL = 0xffff } CorDebugIntercept; -typedef +typedef enum CorDebugUnmappedStop { STOP_NONE = 0, @@ -8778,88 +8785,88 @@ typedef struct COR_DEBUG_STEP_RANGE EXTERN_C const IID IID_ICorDebugStepper; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAEC-8A68-11d2-983C-0000F808342D") ICorDebugStepper : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE IsActive( + virtual HRESULT STDMETHODCALLTYPE IsActive( /* [out] */ BOOL *pbActive) = 0; - + virtual HRESULT STDMETHODCALLTYPE Deactivate( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetInterceptMask( + + virtual HRESULT STDMETHODCALLTYPE SetInterceptMask( /* [in] */ CorDebugIntercept mask) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetUnmappedStopMask( + + virtual HRESULT STDMETHODCALLTYPE SetUnmappedStopMask( /* [in] */ CorDebugUnmappedStop mask) = 0; - - virtual HRESULT STDMETHODCALLTYPE Step( + + virtual HRESULT STDMETHODCALLTYPE Step( /* [in] */ BOOL bStepIn) = 0; - - virtual HRESULT STDMETHODCALLTYPE StepRange( + + virtual HRESULT STDMETHODCALLTYPE StepRange( /* [in] */ BOOL bStepIn, /* [size_is][in] */ COR_DEBUG_STEP_RANGE ranges[ ], /* [in] */ ULONG32 cRangeCount) = 0; - + virtual HRESULT STDMETHODCALLTYPE StepOut( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetRangeIL( + + virtual HRESULT STDMETHODCALLTYPE SetRangeIL( /* [in] */ BOOL bIL) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugStepperVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStepper * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStepper * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStepper * This); - - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugStepper * This, /* [out] */ BOOL *pbActive); - - HRESULT ( STDMETHODCALLTYPE *Deactivate )( + + HRESULT ( STDMETHODCALLTYPE *Deactivate )( ICorDebugStepper * This); - - HRESULT ( STDMETHODCALLTYPE *SetInterceptMask )( + + HRESULT ( STDMETHODCALLTYPE *SetInterceptMask )( ICorDebugStepper * This, /* [in] */ CorDebugIntercept mask); - - HRESULT ( STDMETHODCALLTYPE *SetUnmappedStopMask )( + + HRESULT ( STDMETHODCALLTYPE *SetUnmappedStopMask )( ICorDebugStepper * This, /* [in] */ CorDebugUnmappedStop mask); - - HRESULT ( STDMETHODCALLTYPE *Step )( + + HRESULT ( STDMETHODCALLTYPE *Step )( ICorDebugStepper * This, /* [in] */ BOOL bStepIn); - - HRESULT ( STDMETHODCALLTYPE *StepRange )( + + HRESULT ( STDMETHODCALLTYPE *StepRange )( ICorDebugStepper * This, /* [in] */ BOOL bStepIn, /* [size_is][in] */ COR_DEBUG_STEP_RANGE ranges[ ], /* [in] */ ULONG32 cRangeCount); - - HRESULT ( STDMETHODCALLTYPE *StepOut )( + + HRESULT ( STDMETHODCALLTYPE *StepOut )( ICorDebugStepper * This); - - HRESULT ( STDMETHODCALLTYPE *SetRangeIL )( + + HRESULT ( STDMETHODCALLTYPE *SetRangeIL )( ICorDebugStepper * This, /* [in] */ BOOL bIL); - + END_INTERFACE } ICorDebugStepperVtbl; @@ -8868,44 +8875,44 @@ EXTERN_C const IID IID_ICorDebugStepper; CONST_VTBL struct ICorDebugStepperVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugStepper_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugStepper_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugStepper_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugStepper_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) + ( (This)->lpVtbl -> IsActive(This,pbActive) ) #define ICorDebugStepper_Deactivate(This) \ - ( (This)->lpVtbl -> Deactivate(This) ) + ( (This)->lpVtbl -> Deactivate(This) ) #define ICorDebugStepper_SetInterceptMask(This,mask) \ - ( (This)->lpVtbl -> SetInterceptMask(This,mask) ) + ( (This)->lpVtbl -> SetInterceptMask(This,mask) ) #define ICorDebugStepper_SetUnmappedStopMask(This,mask) \ - ( (This)->lpVtbl -> SetUnmappedStopMask(This,mask) ) + ( (This)->lpVtbl -> SetUnmappedStopMask(This,mask) ) #define ICorDebugStepper_Step(This,bStepIn) \ - ( (This)->lpVtbl -> Step(This,bStepIn) ) + ( (This)->lpVtbl -> Step(This,bStepIn) ) #define ICorDebugStepper_StepRange(This,bStepIn,ranges,cRangeCount) \ - ( (This)->lpVtbl -> StepRange(This,bStepIn,ranges,cRangeCount) ) + ( (This)->lpVtbl -> StepRange(This,bStepIn,ranges,cRangeCount) ) #define ICorDebugStepper_StepOut(This) \ - ( (This)->lpVtbl -> StepOut(This) ) + ( (This)->lpVtbl -> StepOut(This) ) #define ICorDebugStepper_SetRangeIL(This,bIL) \ - ( (This)->lpVtbl -> SetRangeIL(This,bIL) ) + ( (This)->lpVtbl -> SetRangeIL(This,bIL) ) #endif /* COBJMACROS */ @@ -8922,45 +8929,45 @@ EXTERN_C const IID IID_ICorDebugStepper; #define __ICorDebugStepper2_INTERFACE_DEFINED__ /* interface ICorDebugStepper2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugStepper2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("C5B6E9C3-E7D1-4a8e-873B-7F047F0706F7") ICorDebugStepper2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE SetJMC( + virtual HRESULT STDMETHODCALLTYPE SetJMC( /* [in] */ BOOL fIsJMCStepper) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugStepper2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStepper2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStepper2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStepper2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetJMC )( + + HRESULT ( STDMETHODCALLTYPE *SetJMC )( ICorDebugStepper2 * This, /* [in] */ BOOL fIsJMCStepper); - + END_INTERFACE } ICorDebugStepper2Vtbl; @@ -8969,23 +8976,23 @@ EXTERN_C const IID IID_ICorDebugStepper2; CONST_VTBL struct ICorDebugStepper2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugStepper2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugStepper2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugStepper2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugStepper2_SetJMC(This,fIsJMCStepper) \ - ( (This)->lpVtbl -> SetJMC(This,fIsJMCStepper) ) + ( (This)->lpVtbl -> SetJMC(This,fIsJMCStepper) ) #endif /* COBJMACROS */ @@ -9002,9 +9009,9 @@ EXTERN_C const IID IID_ICorDebugStepper2; #define __ICorDebugRegisterSet_INTERFACE_DEFINED__ /* interface ICorDebugRegisterSet */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugRegister { REGISTER_INSTRUCTION_POINTER = 0, @@ -9175,86 +9182,86 @@ enum CorDebugRegister REGISTER_ARM64_V28 = ( REGISTER_ARM64_V27 + 1 ) , REGISTER_ARM64_V29 = ( REGISTER_ARM64_V28 + 1 ) , REGISTER_ARM64_V30 = ( REGISTER_ARM64_V29 + 1 ) , - REGISTER_ARM64_V31 = ( REGISTER_ARM64_V30 + 1 ) + REGISTER_ARM64_V31 = ( REGISTER_ARM64_V30 + 1 ) } CorDebugRegister; EXTERN_C const IID IID_ICorDebugRegisterSet; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB0B-8A68-11d2-983C-0000F808342D") ICorDebugRegisterSet : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetRegistersAvailable( + virtual HRESULT STDMETHODCALLTYPE GetRegistersAvailable( /* [out] */ ULONG64 *pAvailable) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegisters( + + virtual HRESULT STDMETHODCALLTYPE GetRegisters( /* [in] */ ULONG64 mask, /* [in] */ ULONG32 regCount, /* [length_is][size_is][out] */ CORDB_REGISTER regBuffer[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetRegisters( + + virtual HRESULT STDMETHODCALLTYPE SetRegisters( /* [in] */ ULONG64 mask, /* [in] */ ULONG32 regCount, /* [size_is][in] */ CORDB_REGISTER regBuffer[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE GetThreadContext( /* [in] */ ULONG32 contextSize, /* [size_is][length_is][out][in] */ BYTE context[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE SetThreadContext( /* [in] */ ULONG32 contextSize, /* [size_is][length_is][in] */ BYTE context[ ]) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugRegisterSetVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugRegisterSet * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugRegisterSet * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugRegisterSet * This); - - HRESULT ( STDMETHODCALLTYPE *GetRegistersAvailable )( + + HRESULT ( STDMETHODCALLTYPE *GetRegistersAvailable )( ICorDebugRegisterSet * This, /* [out] */ ULONG64 *pAvailable); - - HRESULT ( STDMETHODCALLTYPE *GetRegisters )( + + HRESULT ( STDMETHODCALLTYPE *GetRegisters )( ICorDebugRegisterSet * This, /* [in] */ ULONG64 mask, /* [in] */ ULONG32 regCount, /* [length_is][size_is][out] */ CORDB_REGISTER regBuffer[ ]); - - HRESULT ( STDMETHODCALLTYPE *SetRegisters )( + + HRESULT ( STDMETHODCALLTYPE *SetRegisters )( ICorDebugRegisterSet * This, /* [in] */ ULONG64 mask, /* [in] */ ULONG32 regCount, /* [size_is][in] */ CORDB_REGISTER regBuffer[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( + + HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( ICorDebugRegisterSet * This, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][out][in] */ BYTE context[ ]); - - HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( + + HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( ICorDebugRegisterSet * This, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][in] */ BYTE context[ ]); - + END_INTERFACE } ICorDebugRegisterSetVtbl; @@ -9263,35 +9270,35 @@ EXTERN_C const IID IID_ICorDebugRegisterSet; CONST_VTBL struct ICorDebugRegisterSetVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugRegisterSet_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugRegisterSet_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugRegisterSet_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugRegisterSet_GetRegistersAvailable(This,pAvailable) \ - ( (This)->lpVtbl -> GetRegistersAvailable(This,pAvailable) ) + ( (This)->lpVtbl -> GetRegistersAvailable(This,pAvailable) ) #define ICorDebugRegisterSet_GetRegisters(This,mask,regCount,regBuffer) \ - ( (This)->lpVtbl -> GetRegisters(This,mask,regCount,regBuffer) ) + ( (This)->lpVtbl -> GetRegisters(This,mask,regCount,regBuffer) ) #define ICorDebugRegisterSet_SetRegisters(This,mask,regCount,regBuffer) \ - ( (This)->lpVtbl -> SetRegisters(This,mask,regCount,regBuffer) ) + ( (This)->lpVtbl -> SetRegisters(This,mask,regCount,regBuffer) ) #define ICorDebugRegisterSet_GetThreadContext(This,contextSize,context) \ - ( (This)->lpVtbl -> GetThreadContext(This,contextSize,context) ) + ( (This)->lpVtbl -> GetThreadContext(This,contextSize,context) ) #define ICorDebugRegisterSet_SetThreadContext(This,contextSize,context) \ - ( (This)->lpVtbl -> SetThreadContext(This,contextSize,context) ) + ( (This)->lpVtbl -> SetThreadContext(This,contextSize,context) ) #endif /* COBJMACROS */ @@ -9308,73 +9315,73 @@ EXTERN_C const IID IID_ICorDebugRegisterSet; #define __ICorDebugRegisterSet2_INTERFACE_DEFINED__ /* interface ICorDebugRegisterSet2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugRegisterSet2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("6DC7BA3F-89BA-4459-9EC1-9D60937B468D") ICorDebugRegisterSet2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetRegistersAvailable( + virtual HRESULT STDMETHODCALLTYPE GetRegistersAvailable( /* [in] */ ULONG32 numChunks, /* [size_is][out] */ BYTE availableRegChunks[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegisters( + + virtual HRESULT STDMETHODCALLTYPE GetRegisters( /* [in] */ ULONG32 maskCount, /* [size_is][in] */ BYTE mask[ ], /* [in] */ ULONG32 regCount, /* [size_is][out] */ CORDB_REGISTER regBuffer[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetRegisters( + + virtual HRESULT STDMETHODCALLTYPE SetRegisters( /* [in] */ ULONG32 maskCount, /* [size_is][in] */ BYTE mask[ ], /* [in] */ ULONG32 regCount, /* [size_is][in] */ CORDB_REGISTER regBuffer[ ]) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugRegisterSet2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugRegisterSet2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugRegisterSet2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugRegisterSet2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetRegistersAvailable )( + + HRESULT ( STDMETHODCALLTYPE *GetRegistersAvailable )( ICorDebugRegisterSet2 * This, /* [in] */ ULONG32 numChunks, /* [size_is][out] */ BYTE availableRegChunks[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetRegisters )( + + HRESULT ( STDMETHODCALLTYPE *GetRegisters )( ICorDebugRegisterSet2 * This, /* [in] */ ULONG32 maskCount, /* [size_is][in] */ BYTE mask[ ], /* [in] */ ULONG32 regCount, /* [size_is][out] */ CORDB_REGISTER regBuffer[ ]); - - HRESULT ( STDMETHODCALLTYPE *SetRegisters )( + + HRESULT ( STDMETHODCALLTYPE *SetRegisters )( ICorDebugRegisterSet2 * This, /* [in] */ ULONG32 maskCount, /* [size_is][in] */ BYTE mask[ ], /* [in] */ ULONG32 regCount, /* [size_is][in] */ CORDB_REGISTER regBuffer[ ]); - + END_INTERFACE } ICorDebugRegisterSet2Vtbl; @@ -9383,29 +9390,29 @@ EXTERN_C const IID IID_ICorDebugRegisterSet2; CONST_VTBL struct ICorDebugRegisterSet2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugRegisterSet2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugRegisterSet2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugRegisterSet2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugRegisterSet2_GetRegistersAvailable(This,numChunks,availableRegChunks) \ - ( (This)->lpVtbl -> GetRegistersAvailable(This,numChunks,availableRegChunks) ) + ( (This)->lpVtbl -> GetRegistersAvailable(This,numChunks,availableRegChunks) ) #define ICorDebugRegisterSet2_GetRegisters(This,maskCount,mask,regCount,regBuffer) \ - ( (This)->lpVtbl -> GetRegisters(This,maskCount,mask,regCount,regBuffer) ) + ( (This)->lpVtbl -> GetRegisters(This,maskCount,mask,regCount,regBuffer) ) #define ICorDebugRegisterSet2_SetRegisters(This,maskCount,mask,regCount,regBuffer) \ - ( (This)->lpVtbl -> SetRegisters(This,maskCount,mask,regCount,regBuffer) ) + ( (This)->lpVtbl -> SetRegisters(This,maskCount,mask,regCount,regBuffer) ) #endif /* COBJMACROS */ @@ -9422,9 +9429,9 @@ EXTERN_C const IID IID_ICorDebugRegisterSet2; #define __ICorDebugThread_INTERFACE_DEFINED__ /* interface ICorDebugThread */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugUserState { USER_STOP_REQUESTED = 0x1, @@ -9442,142 +9449,142 @@ enum CorDebugUserState EXTERN_C const IID IID_ICorDebugThread; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("938c6d66-7fb6-4f69-b389-425b8987329b") ICorDebugThread : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetProcess( + virtual HRESULT STDMETHODCALLTYPE GetProcess( /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetID( + + virtual HRESULT STDMETHODCALLTYPE GetID( /* [out] */ DWORD *pdwThreadId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHandle( + + virtual HRESULT STDMETHODCALLTYPE GetHandle( /* [out] */ HTHREAD *phThreadHandle) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAppDomain( + + virtual HRESULT STDMETHODCALLTYPE GetAppDomain( /* [out] */ ICorDebugAppDomain **ppAppDomain) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetDebugState( + + virtual HRESULT STDMETHODCALLTYPE SetDebugState( /* [in] */ CorDebugThreadState state) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDebugState( + + virtual HRESULT STDMETHODCALLTYPE GetDebugState( /* [out] */ CorDebugThreadState *pState) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetUserState( + + virtual HRESULT STDMETHODCALLTYPE GetUserState( /* [out] */ CorDebugUserState *pState) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentException( + + virtual HRESULT STDMETHODCALLTYPE GetCurrentException( /* [out] */ ICorDebugValue **ppExceptionObject) = 0; - + virtual HRESULT STDMETHODCALLTYPE ClearCurrentException( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateStepper( + + virtual HRESULT STDMETHODCALLTYPE CreateStepper( /* [out] */ ICorDebugStepper **ppStepper) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateChains( + + virtual HRESULT STDMETHODCALLTYPE EnumerateChains( /* [out] */ ICorDebugChainEnum **ppChains) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetActiveChain( + + virtual HRESULT STDMETHODCALLTYPE GetActiveChain( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetActiveFrame( + + virtual HRESULT STDMETHODCALLTYPE GetActiveFrame( /* [out] */ ICorDebugFrame **ppFrame) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( + + virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( /* [out] */ ICorDebugRegisterSet **ppRegisters) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateEval( + + virtual HRESULT STDMETHODCALLTYPE CreateEval( /* [out] */ ICorDebugEval **ppEval) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObject( + + virtual HRESULT STDMETHODCALLTYPE GetObject( /* [out] */ ICorDebugValue **ppObject) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugThreadVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThread * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThread * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThread * This); - - HRESULT ( STDMETHODCALLTYPE *GetProcess )( + + HRESULT ( STDMETHODCALLTYPE *GetProcess )( ICorDebugThread * This, /* [out] */ ICorDebugProcess **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *GetID )( + + HRESULT ( STDMETHODCALLTYPE *GetID )( ICorDebugThread * This, /* [out] */ DWORD *pdwThreadId); - - HRESULT ( STDMETHODCALLTYPE *GetHandle )( + + HRESULT ( STDMETHODCALLTYPE *GetHandle )( ICorDebugThread * This, /* [out] */ HTHREAD *phThreadHandle); - - HRESULT ( STDMETHODCALLTYPE *GetAppDomain )( + + HRESULT ( STDMETHODCALLTYPE *GetAppDomain )( ICorDebugThread * This, /* [out] */ ICorDebugAppDomain **ppAppDomain); - - HRESULT ( STDMETHODCALLTYPE *SetDebugState )( + + HRESULT ( STDMETHODCALLTYPE *SetDebugState )( ICorDebugThread * This, /* [in] */ CorDebugThreadState state); - - HRESULT ( STDMETHODCALLTYPE *GetDebugState )( + + HRESULT ( STDMETHODCALLTYPE *GetDebugState )( ICorDebugThread * This, /* [out] */ CorDebugThreadState *pState); - - HRESULT ( STDMETHODCALLTYPE *GetUserState )( + + HRESULT ( STDMETHODCALLTYPE *GetUserState )( ICorDebugThread * This, /* [out] */ CorDebugUserState *pState); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentException )( + + HRESULT ( STDMETHODCALLTYPE *GetCurrentException )( ICorDebugThread * This, /* [out] */ ICorDebugValue **ppExceptionObject); - - HRESULT ( STDMETHODCALLTYPE *ClearCurrentException )( + + HRESULT ( STDMETHODCALLTYPE *ClearCurrentException )( ICorDebugThread * This); - - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugThread * This, /* [out] */ ICorDebugStepper **ppStepper); - - HRESULT ( STDMETHODCALLTYPE *EnumerateChains )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateChains )( ICorDebugThread * This, /* [out] */ ICorDebugChainEnum **ppChains); - - HRESULT ( STDMETHODCALLTYPE *GetActiveChain )( + + HRESULT ( STDMETHODCALLTYPE *GetActiveChain )( ICorDebugThread * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetActiveFrame )( + + HRESULT ( STDMETHODCALLTYPE *GetActiveFrame )( ICorDebugThread * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( + + HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( ICorDebugThread * This, /* [out] */ ICorDebugRegisterSet **ppRegisters); - - HRESULT ( STDMETHODCALLTYPE *CreateEval )( + + HRESULT ( STDMETHODCALLTYPE *CreateEval )( ICorDebugThread * This, /* [out] */ ICorDebugEval **ppEval); - - HRESULT ( STDMETHODCALLTYPE *GetObject )( + + HRESULT ( STDMETHODCALLTYPE *GetObject )( ICorDebugThread * This, /* [out] */ ICorDebugValue **ppObject); - + END_INTERFACE } ICorDebugThreadVtbl; @@ -9586,68 +9593,68 @@ EXTERN_C const IID IID_ICorDebugThread; CONST_VTBL struct ICorDebugThreadVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugThread_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugThread_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugThread_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugThread_GetProcess(This,ppProcess) \ - ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) + ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) #define ICorDebugThread_GetID(This,pdwThreadId) \ - ( (This)->lpVtbl -> GetID(This,pdwThreadId) ) + ( (This)->lpVtbl -> GetID(This,pdwThreadId) ) #define ICorDebugThread_GetHandle(This,phThreadHandle) \ - ( (This)->lpVtbl -> GetHandle(This,phThreadHandle) ) + ( (This)->lpVtbl -> GetHandle(This,phThreadHandle) ) #define ICorDebugThread_GetAppDomain(This,ppAppDomain) \ - ( (This)->lpVtbl -> GetAppDomain(This,ppAppDomain) ) + ( (This)->lpVtbl -> GetAppDomain(This,ppAppDomain) ) #define ICorDebugThread_SetDebugState(This,state) \ - ( (This)->lpVtbl -> SetDebugState(This,state) ) + ( (This)->lpVtbl -> SetDebugState(This,state) ) #define ICorDebugThread_GetDebugState(This,pState) \ - ( (This)->lpVtbl -> GetDebugState(This,pState) ) + ( (This)->lpVtbl -> GetDebugState(This,pState) ) #define ICorDebugThread_GetUserState(This,pState) \ - ( (This)->lpVtbl -> GetUserState(This,pState) ) + ( (This)->lpVtbl -> GetUserState(This,pState) ) #define ICorDebugThread_GetCurrentException(This,ppExceptionObject) \ - ( (This)->lpVtbl -> GetCurrentException(This,ppExceptionObject) ) + ( (This)->lpVtbl -> GetCurrentException(This,ppExceptionObject) ) #define ICorDebugThread_ClearCurrentException(This) \ - ( (This)->lpVtbl -> ClearCurrentException(This) ) + ( (This)->lpVtbl -> ClearCurrentException(This) ) #define ICorDebugThread_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) #define ICorDebugThread_EnumerateChains(This,ppChains) \ - ( (This)->lpVtbl -> EnumerateChains(This,ppChains) ) + ( (This)->lpVtbl -> EnumerateChains(This,ppChains) ) #define ICorDebugThread_GetActiveChain(This,ppChain) \ - ( (This)->lpVtbl -> GetActiveChain(This,ppChain) ) + ( (This)->lpVtbl -> GetActiveChain(This,ppChain) ) #define ICorDebugThread_GetActiveFrame(This,ppFrame) \ - ( (This)->lpVtbl -> GetActiveFrame(This,ppFrame) ) + ( (This)->lpVtbl -> GetActiveFrame(This,ppFrame) ) #define ICorDebugThread_GetRegisterSet(This,ppRegisters) \ - ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) + ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) #define ICorDebugThread_CreateEval(This,ppEval) \ - ( (This)->lpVtbl -> CreateEval(This,ppEval) ) + ( (This)->lpVtbl -> CreateEval(This,ppEval) ) #define ICorDebugThread_GetObject(This,ppObject) \ - ( (This)->lpVtbl -> GetObject(This,ppObject) ) + ( (This)->lpVtbl -> GetObject(This,ppObject) ) #endif /* COBJMACROS */ @@ -9664,7 +9671,7 @@ EXTERN_C const IID IID_ICorDebugThread; #define __ICorDebugThread2_INTERFACE_DEFINED__ /* interface ICorDebugThread2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ typedef struct _COR_ACTIVE_FUNCTION { @@ -9679,71 +9686,71 @@ typedef struct _COR_ACTIVE_FUNCTION EXTERN_C const IID IID_ICorDebugThread2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("2BD956D9-7B07-4bef-8A98-12AA862417C5") ICorDebugThread2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetActiveFunctions( + virtual HRESULT STDMETHODCALLTYPE GetActiveFunctions( /* [in] */ ULONG32 cFunctions, /* [out] */ ULONG32 *pcFunctions, /* [length_is][size_is][out][in] */ COR_ACTIVE_FUNCTION pFunctions[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetConnectionID( + + virtual HRESULT STDMETHODCALLTYPE GetConnectionID( /* [out] */ CONNID *pdwConnectionId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTaskID( + + virtual HRESULT STDMETHODCALLTYPE GetTaskID( /* [out] */ TASKID *pTaskId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVolatileOSThreadID( + + virtual HRESULT STDMETHODCALLTYPE GetVolatileOSThreadID( /* [out] */ DWORD *pdwTid) = 0; - - virtual HRESULT STDMETHODCALLTYPE InterceptCurrentException( + + virtual HRESULT STDMETHODCALLTYPE InterceptCurrentException( /* [in] */ ICorDebugFrame *pFrame) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugThread2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThread2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThread2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThread2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetActiveFunctions )( + + HRESULT ( STDMETHODCALLTYPE *GetActiveFunctions )( ICorDebugThread2 * This, /* [in] */ ULONG32 cFunctions, /* [out] */ ULONG32 *pcFunctions, /* [length_is][size_is][out][in] */ COR_ACTIVE_FUNCTION pFunctions[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetConnectionID )( + + HRESULT ( STDMETHODCALLTYPE *GetConnectionID )( ICorDebugThread2 * This, /* [out] */ CONNID *pdwConnectionId); - - HRESULT ( STDMETHODCALLTYPE *GetTaskID )( + + HRESULT ( STDMETHODCALLTYPE *GetTaskID )( ICorDebugThread2 * This, /* [out] */ TASKID *pTaskId); - - HRESULT ( STDMETHODCALLTYPE *GetVolatileOSThreadID )( + + HRESULT ( STDMETHODCALLTYPE *GetVolatileOSThreadID )( ICorDebugThread2 * This, /* [out] */ DWORD *pdwTid); - - HRESULT ( STDMETHODCALLTYPE *InterceptCurrentException )( + + HRESULT ( STDMETHODCALLTYPE *InterceptCurrentException )( ICorDebugThread2 * This, /* [in] */ ICorDebugFrame *pFrame); - + END_INTERFACE } ICorDebugThread2Vtbl; @@ -9752,35 +9759,35 @@ EXTERN_C const IID IID_ICorDebugThread2; CONST_VTBL struct ICorDebugThread2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugThread2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugThread2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugThread2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugThread2_GetActiveFunctions(This,cFunctions,pcFunctions,pFunctions) \ - ( (This)->lpVtbl -> GetActiveFunctions(This,cFunctions,pcFunctions,pFunctions) ) + ( (This)->lpVtbl -> GetActiveFunctions(This,cFunctions,pcFunctions,pFunctions) ) #define ICorDebugThread2_GetConnectionID(This,pdwConnectionId) \ - ( (This)->lpVtbl -> GetConnectionID(This,pdwConnectionId) ) + ( (This)->lpVtbl -> GetConnectionID(This,pdwConnectionId) ) #define ICorDebugThread2_GetTaskID(This,pTaskId) \ - ( (This)->lpVtbl -> GetTaskID(This,pTaskId) ) + ( (This)->lpVtbl -> GetTaskID(This,pTaskId) ) #define ICorDebugThread2_GetVolatileOSThreadID(This,pdwTid) \ - ( (This)->lpVtbl -> GetVolatileOSThreadID(This,pdwTid) ) + ( (This)->lpVtbl -> GetVolatileOSThreadID(This,pdwTid) ) #define ICorDebugThread2_InterceptCurrentException(This,pFrame) \ - ( (This)->lpVtbl -> InterceptCurrentException(This,pFrame) ) + ( (This)->lpVtbl -> InterceptCurrentException(This,pFrame) ) #endif /* COBJMACROS */ @@ -9797,56 +9804,56 @@ EXTERN_C const IID IID_ICorDebugThread2; #define __ICorDebugThread3_INTERFACE_DEFINED__ /* interface ICorDebugThread3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugThread3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("F8544EC3-5E4E-46c7-8D3E-A52B8405B1F5") ICorDebugThread3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreateStackWalk( + virtual HRESULT STDMETHODCALLTYPE CreateStackWalk( /* [out] */ ICorDebugStackWalk **ppStackWalk) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetActiveInternalFrames( + + virtual HRESULT STDMETHODCALLTYPE GetActiveInternalFrames( /* [in] */ ULONG32 cInternalFrames, /* [out] */ ULONG32 *pcInternalFrames, /* [length_is][size_is][out][in] */ ICorDebugInternalFrame2 *ppInternalFrames[ ]) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugThread3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThread3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThread3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThread3 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateStackWalk )( + + HRESULT ( STDMETHODCALLTYPE *CreateStackWalk )( ICorDebugThread3 * This, /* [out] */ ICorDebugStackWalk **ppStackWalk); - - HRESULT ( STDMETHODCALLTYPE *GetActiveInternalFrames )( + + HRESULT ( STDMETHODCALLTYPE *GetActiveInternalFrames )( ICorDebugThread3 * This, /* [in] */ ULONG32 cInternalFrames, /* [out] */ ULONG32 *pcInternalFrames, /* [length_is][size_is][out][in] */ ICorDebugInternalFrame2 *ppInternalFrames[ ]); - + END_INTERFACE } ICorDebugThread3Vtbl; @@ -9855,26 +9862,26 @@ EXTERN_C const IID IID_ICorDebugThread3; CONST_VTBL struct ICorDebugThread3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugThread3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugThread3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugThread3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugThread3_CreateStackWalk(This,ppStackWalk) \ - ( (This)->lpVtbl -> CreateStackWalk(This,ppStackWalk) ) + ( (This)->lpVtbl -> CreateStackWalk(This,ppStackWalk) ) #define ICorDebugThread3_GetActiveInternalFrames(This,cInternalFrames,pcInternalFrames,ppInternalFrames) \ - ( (This)->lpVtbl -> GetActiveInternalFrames(This,cInternalFrames,pcInternalFrames,ppInternalFrames) ) + ( (This)->lpVtbl -> GetActiveInternalFrames(This,cInternalFrames,pcInternalFrames,ppInternalFrames) ) #endif /* COBJMACROS */ @@ -9891,57 +9898,57 @@ EXTERN_C const IID IID_ICorDebugThread3; #define __ICorDebugThread4_INTERFACE_DEFINED__ /* interface ICorDebugThread4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugThread4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("1A1F204B-1C66-4637-823F-3EE6C744A69C") ICorDebugThread4 : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE HasUnhandledException( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBlockingObjects( + + virtual HRESULT STDMETHODCALLTYPE GetBlockingObjects( /* [out] */ ICorDebugBlockingObjectEnum **ppBlockingObjectEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentCustomDebuggerNotification( + + virtual HRESULT STDMETHODCALLTYPE GetCurrentCustomDebuggerNotification( /* [out] */ ICorDebugValue **ppNotificationObject) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugThread4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThread4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThread4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThread4 * This); - - HRESULT ( STDMETHODCALLTYPE *HasUnhandledException )( + + HRESULT ( STDMETHODCALLTYPE *HasUnhandledException )( ICorDebugThread4 * This); - - HRESULT ( STDMETHODCALLTYPE *GetBlockingObjects )( + + HRESULT ( STDMETHODCALLTYPE *GetBlockingObjects )( ICorDebugThread4 * This, /* [out] */ ICorDebugBlockingObjectEnum **ppBlockingObjectEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentCustomDebuggerNotification )( + + HRESULT ( STDMETHODCALLTYPE *GetCurrentCustomDebuggerNotification )( ICorDebugThread4 * This, /* [out] */ ICorDebugValue **ppNotificationObject); - + END_INTERFACE } ICorDebugThread4Vtbl; @@ -9950,29 +9957,29 @@ EXTERN_C const IID IID_ICorDebugThread4; CONST_VTBL struct ICorDebugThread4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugThread4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugThread4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugThread4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugThread4_HasUnhandledException(This) \ - ( (This)->lpVtbl -> HasUnhandledException(This) ) + ( (This)->lpVtbl -> HasUnhandledException(This) ) #define ICorDebugThread4_GetBlockingObjects(This,ppBlockingObjectEnum) \ - ( (This)->lpVtbl -> GetBlockingObjects(This,ppBlockingObjectEnum) ) + ( (This)->lpVtbl -> GetBlockingObjects(This,ppBlockingObjectEnum) ) #define ICorDebugThread4_GetCurrentCustomDebuggerNotification(This,ppNotificationObject) \ - ( (This)->lpVtbl -> GetCurrentCustomDebuggerNotification(This,ppNotificationObject) ) + ( (This)->lpVtbl -> GetCurrentCustomDebuggerNotification(This,ppNotificationObject) ) #endif /* COBJMACROS */ @@ -9989,9 +9996,9 @@ EXTERN_C const IID IID_ICorDebugThread4; #define __ICorDebugStackWalk_INTERFACE_DEFINED__ /* interface ICorDebugStackWalk */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugSetContextFlag { SET_CONTEXT_FLAG_ACTIVE_FRAME = 0x1, @@ -10002,68 +10009,68 @@ enum CorDebugSetContextFlag EXTERN_C const IID IID_ICorDebugStackWalk; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("A0647DE9-55DE-4816-929C-385271C64CF7") ICorDebugStackWalk : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetContext( + virtual HRESULT STDMETHODCALLTYPE GetContext( /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 contextBufSize, /* [out] */ ULONG32 *contextSize, /* [size_is][out] */ BYTE contextBuf[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetContext( + + virtual HRESULT STDMETHODCALLTYPE SetContext( /* [in] */ CorDebugSetContextFlag flag, /* [in] */ ULONG32 contextSize, /* [size_is][in] */ BYTE context[ ]) = 0; - + virtual HRESULT STDMETHODCALLTYPE Next( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFrame( + + virtual HRESULT STDMETHODCALLTYPE GetFrame( /* [out] */ ICorDebugFrame **pFrame) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugStackWalkVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStackWalk * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStackWalk * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStackWalk * This); - - HRESULT ( STDMETHODCALLTYPE *GetContext )( + + HRESULT ( STDMETHODCALLTYPE *GetContext )( ICorDebugStackWalk * This, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 contextBufSize, /* [out] */ ULONG32 *contextSize, /* [size_is][out] */ BYTE contextBuf[ ]); - - HRESULT ( STDMETHODCALLTYPE *SetContext )( + + HRESULT ( STDMETHODCALLTYPE *SetContext )( ICorDebugStackWalk * This, /* [in] */ CorDebugSetContextFlag flag, /* [in] */ ULONG32 contextSize, /* [size_is][in] */ BYTE context[ ]); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugStackWalk * This); - - HRESULT ( STDMETHODCALLTYPE *GetFrame )( + + HRESULT ( STDMETHODCALLTYPE *GetFrame )( ICorDebugStackWalk * This, /* [out] */ ICorDebugFrame **pFrame); - + END_INTERFACE } ICorDebugStackWalkVtbl; @@ -10072,32 +10079,32 @@ EXTERN_C const IID IID_ICorDebugStackWalk; CONST_VTBL struct ICorDebugStackWalkVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugStackWalk_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugStackWalk_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugStackWalk_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugStackWalk_GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) \ - ( (This)->lpVtbl -> GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) ) + ( (This)->lpVtbl -> GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) ) #define ICorDebugStackWalk_SetContext(This,flag,contextSize,context) \ - ( (This)->lpVtbl -> SetContext(This,flag,contextSize,context) ) + ( (This)->lpVtbl -> SetContext(This,flag,contextSize,context) ) #define ICorDebugStackWalk_Next(This) \ - ( (This)->lpVtbl -> Next(This) ) + ( (This)->lpVtbl -> Next(This) ) #define ICorDebugStackWalk_GetFrame(This,pFrame) \ - ( (This)->lpVtbl -> GetFrame(This,pFrame) ) + ( (This)->lpVtbl -> GetFrame(This,pFrame) ) #endif /* COBJMACROS */ @@ -10114,9 +10121,9 @@ EXTERN_C const IID IID_ICorDebugStackWalk; #define __ICorDebugChain_INTERFACE_DEFINED__ /* interface ICorDebugChain */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugChainReason { CHAIN_NONE = 0, @@ -10138,118 +10145,118 @@ enum CorDebugChainReason EXTERN_C const IID IID_ICorDebugChain; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAEE-8A68-11d2-983C-0000F808342D") ICorDebugChain : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetThread( + virtual HRESULT STDMETHODCALLTYPE GetThread( /* [out] */ ICorDebugThread **ppThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStackRange( + + virtual HRESULT STDMETHODCALLTYPE GetStackRange( /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetContext( + + virtual HRESULT STDMETHODCALLTYPE GetContext( /* [out] */ ICorDebugContext **ppContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCaller( + + virtual HRESULT STDMETHODCALLTYPE GetCaller( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCallee( + + virtual HRESULT STDMETHODCALLTYPE GetCallee( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPrevious( + + virtual HRESULT STDMETHODCALLTYPE GetPrevious( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetNext( + + virtual HRESULT STDMETHODCALLTYPE GetNext( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsManaged( + + virtual HRESULT STDMETHODCALLTYPE IsManaged( /* [out] */ BOOL *pManaged) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateFrames( + + virtual HRESULT STDMETHODCALLTYPE EnumerateFrames( /* [out] */ ICorDebugFrameEnum **ppFrames) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetActiveFrame( + + virtual HRESULT STDMETHODCALLTYPE GetActiveFrame( /* [out] */ ICorDebugFrame **ppFrame) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( + + virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( /* [out] */ ICorDebugRegisterSet **ppRegisters) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetReason( + + virtual HRESULT STDMETHODCALLTYPE GetReason( /* [out] */ CorDebugChainReason *pReason) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugChainVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugChain * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugChain * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugChain * This); - - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugChain * This, /* [out] */ ICorDebugThread **ppThread); - - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugChain * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - HRESULT ( STDMETHODCALLTYPE *GetContext )( + + HRESULT ( STDMETHODCALLTYPE *GetContext )( ICorDebugChain * This, /* [out] */ ICorDebugContext **ppContext); - - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugChain * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugChain * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetPrevious )( + + HRESULT ( STDMETHODCALLTYPE *GetPrevious )( ICorDebugChain * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetNext )( + + HRESULT ( STDMETHODCALLTYPE *GetNext )( ICorDebugChain * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *IsManaged )( + + HRESULT ( STDMETHODCALLTYPE *IsManaged )( ICorDebugChain * This, /* [out] */ BOOL *pManaged); - - HRESULT ( STDMETHODCALLTYPE *EnumerateFrames )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateFrames )( ICorDebugChain * This, /* [out] */ ICorDebugFrameEnum **ppFrames); - - HRESULT ( STDMETHODCALLTYPE *GetActiveFrame )( + + HRESULT ( STDMETHODCALLTYPE *GetActiveFrame )( ICorDebugChain * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( + + HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( ICorDebugChain * This, /* [out] */ ICorDebugRegisterSet **ppRegisters); - - HRESULT ( STDMETHODCALLTYPE *GetReason )( + + HRESULT ( STDMETHODCALLTYPE *GetReason )( ICorDebugChain * This, /* [out] */ CorDebugChainReason *pReason); - + END_INTERFACE } ICorDebugChainVtbl; @@ -10258,56 +10265,56 @@ EXTERN_C const IID IID_ICorDebugChain; CONST_VTBL struct ICorDebugChainVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugChain_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugChain_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugChain_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugChain_GetThread(This,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,ppThread) ) + ( (This)->lpVtbl -> GetThread(This,ppThread) ) #define ICorDebugChain_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) #define ICorDebugChain_GetContext(This,ppContext) \ - ( (This)->lpVtbl -> GetContext(This,ppContext) ) + ( (This)->lpVtbl -> GetContext(This,ppContext) ) #define ICorDebugChain_GetCaller(This,ppChain) \ - ( (This)->lpVtbl -> GetCaller(This,ppChain) ) + ( (This)->lpVtbl -> GetCaller(This,ppChain) ) #define ICorDebugChain_GetCallee(This,ppChain) \ - ( (This)->lpVtbl -> GetCallee(This,ppChain) ) + ( (This)->lpVtbl -> GetCallee(This,ppChain) ) #define ICorDebugChain_GetPrevious(This,ppChain) \ - ( (This)->lpVtbl -> GetPrevious(This,ppChain) ) + ( (This)->lpVtbl -> GetPrevious(This,ppChain) ) #define ICorDebugChain_GetNext(This,ppChain) \ - ( (This)->lpVtbl -> GetNext(This,ppChain) ) + ( (This)->lpVtbl -> GetNext(This,ppChain) ) #define ICorDebugChain_IsManaged(This,pManaged) \ - ( (This)->lpVtbl -> IsManaged(This,pManaged) ) + ( (This)->lpVtbl -> IsManaged(This,pManaged) ) #define ICorDebugChain_EnumerateFrames(This,ppFrames) \ - ( (This)->lpVtbl -> EnumerateFrames(This,ppFrames) ) + ( (This)->lpVtbl -> EnumerateFrames(This,ppFrames) ) #define ICorDebugChain_GetActiveFrame(This,ppFrame) \ - ( (This)->lpVtbl -> GetActiveFrame(This,ppFrame) ) + ( (This)->lpVtbl -> GetActiveFrame(This,ppFrame) ) #define ICorDebugChain_GetRegisterSet(This,ppRegisters) \ - ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) + ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) #define ICorDebugChain_GetReason(This,pReason) \ - ( (This)->lpVtbl -> GetReason(This,pReason) ) + ( (This)->lpVtbl -> GetReason(This,pReason) ) #endif /* COBJMACROS */ @@ -10324,96 +10331,96 @@ EXTERN_C const IID IID_ICorDebugChain; #define __ICorDebugFrame_INTERFACE_DEFINED__ /* interface ICorDebugFrame */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFrame; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAEF-8A68-11d2-983C-0000F808342D") ICorDebugFrame : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetChain( + virtual HRESULT STDMETHODCALLTYPE GetChain( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCode( + + virtual HRESULT STDMETHODCALLTYPE GetCode( /* [out] */ ICorDebugCode **ppCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunction( + + virtual HRESULT STDMETHODCALLTYPE GetFunction( /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunctionToken( + + virtual HRESULT STDMETHODCALLTYPE GetFunctionToken( /* [out] */ mdMethodDef *pToken) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStackRange( + + virtual HRESULT STDMETHODCALLTYPE GetStackRange( /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCaller( + + virtual HRESULT STDMETHODCALLTYPE GetCaller( /* [out] */ ICorDebugFrame **ppFrame) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCallee( + + virtual HRESULT STDMETHODCALLTYPE GetCallee( /* [out] */ ICorDebugFrame **ppFrame) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateStepper( + + virtual HRESULT STDMETHODCALLTYPE CreateStepper( /* [out] */ ICorDebugStepper **ppStepper) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugFrameVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFrame * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFrame * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFrame * This); - - HRESULT ( STDMETHODCALLTYPE *GetChain )( + + HRESULT ( STDMETHODCALLTYPE *GetChain )( ICorDebugFrame * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugFrame * This, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugFrame * This, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( + + HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( ICorDebugFrame * This, /* [out] */ mdMethodDef *pToken); - - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugFrame * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugFrame * This, /* [out] */ ICorDebugStepper **ppStepper); - + END_INTERFACE } ICorDebugFrameVtbl; @@ -10422,44 +10429,44 @@ EXTERN_C const IID IID_ICorDebugFrame; CONST_VTBL struct ICorDebugFrameVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugFrame_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugFrame_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugFrame_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugFrame_GetChain(This,ppChain) \ - ( (This)->lpVtbl -> GetChain(This,ppChain) ) + ( (This)->lpVtbl -> GetChain(This,ppChain) ) #define ICorDebugFrame_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) + ( (This)->lpVtbl -> GetCode(This,ppCode) ) #define ICorDebugFrame_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) #define ICorDebugFrame_GetFunctionToken(This,pToken) \ - ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) + ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) #define ICorDebugFrame_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) #define ICorDebugFrame_GetCaller(This,ppFrame) \ - ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) + ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) #define ICorDebugFrame_GetCallee(This,ppFrame) \ - ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) + ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) #define ICorDebugFrame_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) #endif /* COBJMACROS */ @@ -10476,9 +10483,9 @@ EXTERN_C const IID IID_ICorDebugFrame; #define __ICorDebugInternalFrame_INTERFACE_DEFINED__ /* interface ICorDebugInternalFrame */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugInternalFrameType { STUBFRAME_NONE = 0, @@ -10498,72 +10505,72 @@ enum CorDebugInternalFrameType EXTERN_C const IID IID_ICorDebugInternalFrame; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("B92CC7F7-9D2D-45c4-BC2B-621FCC9DFBF4") ICorDebugInternalFrame : public ICorDebugFrame { public: - virtual HRESULT STDMETHODCALLTYPE GetFrameType( + virtual HRESULT STDMETHODCALLTYPE GetFrameType( /* [out] */ CorDebugInternalFrameType *pType) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugInternalFrameVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugInternalFrame * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugInternalFrame * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugInternalFrame * This); - - HRESULT ( STDMETHODCALLTYPE *GetChain )( + + HRESULT ( STDMETHODCALLTYPE *GetChain )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( + + HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( ICorDebugInternalFrame * This, /* [out] */ mdMethodDef *pToken); - - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugInternalFrame * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugStepper **ppStepper); - - HRESULT ( STDMETHODCALLTYPE *GetFrameType )( + + HRESULT ( STDMETHODCALLTYPE *GetFrameType )( ICorDebugInternalFrame * This, /* [out] */ CorDebugInternalFrameType *pType); - + END_INTERFACE } ICorDebugInternalFrameVtbl; @@ -10572,48 +10579,48 @@ EXTERN_C const IID IID_ICorDebugInternalFrame; CONST_VTBL struct ICorDebugInternalFrameVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugInternalFrame_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugInternalFrame_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugInternalFrame_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugInternalFrame_GetChain(This,ppChain) \ - ( (This)->lpVtbl -> GetChain(This,ppChain) ) + ( (This)->lpVtbl -> GetChain(This,ppChain) ) #define ICorDebugInternalFrame_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) + ( (This)->lpVtbl -> GetCode(This,ppCode) ) #define ICorDebugInternalFrame_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) #define ICorDebugInternalFrame_GetFunctionToken(This,pToken) \ - ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) + ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) #define ICorDebugInternalFrame_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) #define ICorDebugInternalFrame_GetCaller(This,ppFrame) \ - ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) + ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) #define ICorDebugInternalFrame_GetCallee(This,ppFrame) \ - ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) + ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) #define ICorDebugInternalFrame_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) #define ICorDebugInternalFrame_GetFrameType(This,pType) \ - ( (This)->lpVtbl -> GetFrameType(This,pType) ) + ( (This)->lpVtbl -> GetFrameType(This,pType) ) #endif /* COBJMACROS */ @@ -10630,54 +10637,54 @@ EXTERN_C const IID IID_ICorDebugInternalFrame; #define __ICorDebugInternalFrame2_INTERFACE_DEFINED__ /* interface ICorDebugInternalFrame2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugInternalFrame2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("C0815BDC-CFAB-447e-A779-C116B454EB5B") ICorDebugInternalFrame2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetAddress( + virtual HRESULT STDMETHODCALLTYPE GetAddress( /* [out] */ CORDB_ADDRESS *pAddress) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsCloserToLeaf( + + virtual HRESULT STDMETHODCALLTYPE IsCloserToLeaf( /* [in] */ ICorDebugFrame *pFrameToCompare, /* [out] */ BOOL *pIsCloser) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugInternalFrame2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugInternalFrame2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugInternalFrame2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugInternalFrame2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugInternalFrame2 * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *IsCloserToLeaf )( + + HRESULT ( STDMETHODCALLTYPE *IsCloserToLeaf )( ICorDebugInternalFrame2 * This, /* [in] */ ICorDebugFrame *pFrameToCompare, /* [out] */ BOOL *pIsCloser); - + END_INTERFACE } ICorDebugInternalFrame2Vtbl; @@ -10686,26 +10693,26 @@ EXTERN_C const IID IID_ICorDebugInternalFrame2; CONST_VTBL struct ICorDebugInternalFrame2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugInternalFrame2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugInternalFrame2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugInternalFrame2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugInternalFrame2_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) #define ICorDebugInternalFrame2_IsCloserToLeaf(This,pFrameToCompare,pIsCloser) \ - ( (This)->lpVtbl -> IsCloserToLeaf(This,pFrameToCompare,pIsCloser) ) + ( (This)->lpVtbl -> IsCloserToLeaf(This,pFrameToCompare,pIsCloser) ) #endif /* COBJMACROS */ @@ -10722,9 +10729,9 @@ EXTERN_C const IID IID_ICorDebugInternalFrame2; #define __ICorDebugILFrame_INTERFACE_DEFINED__ /* interface ICorDebugILFrame */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugMappingResult { MAPPING_PROLOG = 0x1, @@ -10739,136 +10746,136 @@ enum CorDebugMappingResult EXTERN_C const IID IID_ICorDebugILFrame; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("03E26311-4F76-11d3-88C6-006097945418") ICorDebugILFrame : public ICorDebugFrame { public: - virtual HRESULT STDMETHODCALLTYPE GetIP( + virtual HRESULT STDMETHODCALLTYPE GetIP( /* [out] */ ULONG32 *pnOffset, /* [out] */ CorDebugMappingResult *pMappingResult) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetIP( + + virtual HRESULT STDMETHODCALLTYPE SetIP( /* [in] */ ULONG32 nOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateLocalVariables( + + virtual HRESULT STDMETHODCALLTYPE EnumerateLocalVariables( /* [out] */ ICorDebugValueEnum **ppValueEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalVariable( + + virtual HRESULT STDMETHODCALLTYPE GetLocalVariable( /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateArguments( + + virtual HRESULT STDMETHODCALLTYPE EnumerateArguments( /* [out] */ ICorDebugValueEnum **ppValueEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetArgument( + + virtual HRESULT STDMETHODCALLTYPE GetArgument( /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStackDepth( + + virtual HRESULT STDMETHODCALLTYPE GetStackDepth( /* [out] */ ULONG32 *pDepth) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStackValue( + + virtual HRESULT STDMETHODCALLTYPE GetStackValue( /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE CanSetIP( + + virtual HRESULT STDMETHODCALLTYPE CanSetIP( /* [in] */ ULONG32 nOffset) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugILFrameVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILFrame * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILFrame * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILFrame * This); - - HRESULT ( STDMETHODCALLTYPE *GetChain )( + + HRESULT ( STDMETHODCALLTYPE *GetChain )( ICorDebugILFrame * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugILFrame * This, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugILFrame * This, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( + + HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( ICorDebugILFrame * This, /* [out] */ mdMethodDef *pToken); - - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugILFrame * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugILFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugILFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugILFrame * This, /* [out] */ ICorDebugStepper **ppStepper); - - HRESULT ( STDMETHODCALLTYPE *GetIP )( + + HRESULT ( STDMETHODCALLTYPE *GetIP )( ICorDebugILFrame * This, /* [out] */ ULONG32 *pnOffset, /* [out] */ CorDebugMappingResult *pMappingResult); - - HRESULT ( STDMETHODCALLTYPE *SetIP )( + + HRESULT ( STDMETHODCALLTYPE *SetIP )( ICorDebugILFrame * This, /* [in] */ ULONG32 nOffset); - - HRESULT ( STDMETHODCALLTYPE *EnumerateLocalVariables )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateLocalVariables )( ICorDebugILFrame * This, /* [out] */ ICorDebugValueEnum **ppValueEnum); - - HRESULT ( STDMETHODCALLTYPE *GetLocalVariable )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalVariable )( ICorDebugILFrame * This, /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *EnumerateArguments )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateArguments )( ICorDebugILFrame * This, /* [out] */ ICorDebugValueEnum **ppValueEnum); - - HRESULT ( STDMETHODCALLTYPE *GetArgument )( + + HRESULT ( STDMETHODCALLTYPE *GetArgument )( ICorDebugILFrame * This, /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetStackDepth )( + + HRESULT ( STDMETHODCALLTYPE *GetStackDepth )( ICorDebugILFrame * This, /* [out] */ ULONG32 *pDepth); - - HRESULT ( STDMETHODCALLTYPE *GetStackValue )( + + HRESULT ( STDMETHODCALLTYPE *GetStackValue )( ICorDebugILFrame * This, /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *CanSetIP )( + + HRESULT ( STDMETHODCALLTYPE *CanSetIP )( ICorDebugILFrame * This, /* [in] */ ULONG32 nOffset); - + END_INTERFACE } ICorDebugILFrameVtbl; @@ -10877,72 +10884,72 @@ EXTERN_C const IID IID_ICorDebugILFrame; CONST_VTBL struct ICorDebugILFrameVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugILFrame_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugILFrame_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugILFrame_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugILFrame_GetChain(This,ppChain) \ - ( (This)->lpVtbl -> GetChain(This,ppChain) ) + ( (This)->lpVtbl -> GetChain(This,ppChain) ) #define ICorDebugILFrame_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) + ( (This)->lpVtbl -> GetCode(This,ppCode) ) #define ICorDebugILFrame_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) #define ICorDebugILFrame_GetFunctionToken(This,pToken) \ - ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) + ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) #define ICorDebugILFrame_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) #define ICorDebugILFrame_GetCaller(This,ppFrame) \ - ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) + ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) #define ICorDebugILFrame_GetCallee(This,ppFrame) \ - ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) + ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) #define ICorDebugILFrame_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) #define ICorDebugILFrame_GetIP(This,pnOffset,pMappingResult) \ - ( (This)->lpVtbl -> GetIP(This,pnOffset,pMappingResult) ) + ( (This)->lpVtbl -> GetIP(This,pnOffset,pMappingResult) ) #define ICorDebugILFrame_SetIP(This,nOffset) \ - ( (This)->lpVtbl -> SetIP(This,nOffset) ) + ( (This)->lpVtbl -> SetIP(This,nOffset) ) #define ICorDebugILFrame_EnumerateLocalVariables(This,ppValueEnum) \ - ( (This)->lpVtbl -> EnumerateLocalVariables(This,ppValueEnum) ) + ( (This)->lpVtbl -> EnumerateLocalVariables(This,ppValueEnum) ) #define ICorDebugILFrame_GetLocalVariable(This,dwIndex,ppValue) \ - ( (This)->lpVtbl -> GetLocalVariable(This,dwIndex,ppValue) ) + ( (This)->lpVtbl -> GetLocalVariable(This,dwIndex,ppValue) ) #define ICorDebugILFrame_EnumerateArguments(This,ppValueEnum) \ - ( (This)->lpVtbl -> EnumerateArguments(This,ppValueEnum) ) + ( (This)->lpVtbl -> EnumerateArguments(This,ppValueEnum) ) #define ICorDebugILFrame_GetArgument(This,dwIndex,ppValue) \ - ( (This)->lpVtbl -> GetArgument(This,dwIndex,ppValue) ) + ( (This)->lpVtbl -> GetArgument(This,dwIndex,ppValue) ) #define ICorDebugILFrame_GetStackDepth(This,pDepth) \ - ( (This)->lpVtbl -> GetStackDepth(This,pDepth) ) + ( (This)->lpVtbl -> GetStackDepth(This,pDepth) ) #define ICorDebugILFrame_GetStackValue(This,dwIndex,ppValue) \ - ( (This)->lpVtbl -> GetStackValue(This,dwIndex,ppValue) ) + ( (This)->lpVtbl -> GetStackValue(This,dwIndex,ppValue) ) #define ICorDebugILFrame_CanSetIP(This,nOffset) \ - ( (This)->lpVtbl -> CanSetIP(This,nOffset) ) + ( (This)->lpVtbl -> CanSetIP(This,nOffset) ) #endif /* COBJMACROS */ @@ -10959,52 +10966,52 @@ EXTERN_C const IID IID_ICorDebugILFrame; #define __ICorDebugILFrame2_INTERFACE_DEFINED__ /* interface ICorDebugILFrame2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugILFrame2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("5D88A994-6C30-479b-890F-BCEF88B129A5") ICorDebugILFrame2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE RemapFunction( + virtual HRESULT STDMETHODCALLTYPE RemapFunction( /* [in] */ ULONG32 newILOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateTypeParameters( + + virtual HRESULT STDMETHODCALLTYPE EnumerateTypeParameters( /* [out] */ ICorDebugTypeEnum **ppTyParEnum) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugILFrame2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILFrame2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILFrame2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILFrame2 * This); - - HRESULT ( STDMETHODCALLTYPE *RemapFunction )( + + HRESULT ( STDMETHODCALLTYPE *RemapFunction )( ICorDebugILFrame2 * This, /* [in] */ ULONG32 newILOffset); - - HRESULT ( STDMETHODCALLTYPE *EnumerateTypeParameters )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateTypeParameters )( ICorDebugILFrame2 * This, /* [out] */ ICorDebugTypeEnum **ppTyParEnum); - + END_INTERFACE } ICorDebugILFrame2Vtbl; @@ -11013,26 +11020,26 @@ EXTERN_C const IID IID_ICorDebugILFrame2; CONST_VTBL struct ICorDebugILFrame2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugILFrame2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugILFrame2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugILFrame2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugILFrame2_RemapFunction(This,newILOffset) \ - ( (This)->lpVtbl -> RemapFunction(This,newILOffset) ) + ( (This)->lpVtbl -> RemapFunction(This,newILOffset) ) #define ICorDebugILFrame2_EnumerateTypeParameters(This,ppTyParEnum) \ - ( (This)->lpVtbl -> EnumerateTypeParameters(This,ppTyParEnum) ) + ( (This)->lpVtbl -> EnumerateTypeParameters(This,ppTyParEnum) ) #endif /* COBJMACROS */ @@ -11049,47 +11056,47 @@ EXTERN_C const IID IID_ICorDebugILFrame2; #define __ICorDebugILFrame3_INTERFACE_DEFINED__ /* interface ICorDebugILFrame3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugILFrame3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("9A9E2ED6-04DF-4FE0-BB50-CAB64126AD24") ICorDebugILFrame3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetReturnValueForILOffset( + virtual HRESULT STDMETHODCALLTYPE GetReturnValueForILOffset( ULONG32 ILoffset, /* [out] */ ICorDebugValue **ppReturnValue) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugILFrame3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILFrame3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILFrame3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILFrame3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetReturnValueForILOffset )( + + HRESULT ( STDMETHODCALLTYPE *GetReturnValueForILOffset )( ICorDebugILFrame3 * This, ULONG32 ILoffset, /* [out] */ ICorDebugValue **ppReturnValue); - + END_INTERFACE } ICorDebugILFrame3Vtbl; @@ -11098,23 +11105,23 @@ EXTERN_C const IID IID_ICorDebugILFrame3; CONST_VTBL struct ICorDebugILFrame3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugILFrame3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugILFrame3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugILFrame3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugILFrame3_GetReturnValueForILOffset(This,ILoffset,ppReturnValue) \ - ( (This)->lpVtbl -> GetReturnValueForILOffset(This,ILoffset,ppReturnValue) ) + ( (This)->lpVtbl -> GetReturnValueForILOffset(This,ILoffset,ppReturnValue) ) #endif /* COBJMACROS */ @@ -11128,9 +11135,9 @@ EXTERN_C const IID IID_ICorDebugILFrame3; /* interface __MIDL_itf_cordebug_0000_0069 */ -/* [local] */ +/* [local] */ -typedef +typedef enum ILCodeKind { ILCODE_ORIGINAL_IL = 0x1, @@ -11146,67 +11153,67 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0069_v0_0_s_ifspec; #define __ICorDebugILFrame4_INTERFACE_DEFINED__ /* interface ICorDebugILFrame4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugILFrame4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("AD914A30-C6D1-4AC5-9C5E-577F3BAA8A45") ICorDebugILFrame4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnumerateLocalVariablesEx( + virtual HRESULT STDMETHODCALLTYPE EnumerateLocalVariablesEx( /* [in] */ ILCodeKind flags, /* [out] */ ICorDebugValueEnum **ppValueEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalVariableEx( + + virtual HRESULT STDMETHODCALLTYPE GetLocalVariableEx( /* [in] */ ILCodeKind flags, /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCodeEx( + + virtual HRESULT STDMETHODCALLTYPE GetCodeEx( /* [in] */ ILCodeKind flags, /* [out] */ ICorDebugCode **ppCode) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugILFrame4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILFrame4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILFrame4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILFrame4 * This); - - HRESULT ( STDMETHODCALLTYPE *EnumerateLocalVariablesEx )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateLocalVariablesEx )( ICorDebugILFrame4 * This, /* [in] */ ILCodeKind flags, /* [out] */ ICorDebugValueEnum **ppValueEnum); - - HRESULT ( STDMETHODCALLTYPE *GetLocalVariableEx )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalVariableEx )( ICorDebugILFrame4 * This, /* [in] */ ILCodeKind flags, /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetCodeEx )( + + HRESULT ( STDMETHODCALLTYPE *GetCodeEx )( ICorDebugILFrame4 * This, /* [in] */ ILCodeKind flags, /* [out] */ ICorDebugCode **ppCode); - + END_INTERFACE } ICorDebugILFrame4Vtbl; @@ -11215,29 +11222,29 @@ EXTERN_C const IID IID_ICorDebugILFrame4; CONST_VTBL struct ICorDebugILFrame4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugILFrame4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugILFrame4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugILFrame4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugILFrame4_EnumerateLocalVariablesEx(This,flags,ppValueEnum) \ - ( (This)->lpVtbl -> EnumerateLocalVariablesEx(This,flags,ppValueEnum) ) + ( (This)->lpVtbl -> EnumerateLocalVariablesEx(This,flags,ppValueEnum) ) #define ICorDebugILFrame4_GetLocalVariableEx(This,flags,dwIndex,ppValue) \ - ( (This)->lpVtbl -> GetLocalVariableEx(This,flags,dwIndex,ppValue) ) + ( (This)->lpVtbl -> GetLocalVariableEx(This,flags,dwIndex,ppValue) ) #define ICorDebugILFrame4_GetCodeEx(This,flags,ppCode) \ - ( (This)->lpVtbl -> GetCodeEx(This,flags,ppCode) ) + ( (This)->lpVtbl -> GetCodeEx(This,flags,ppCode) ) #endif /* COBJMACROS */ @@ -11254,170 +11261,170 @@ EXTERN_C const IID IID_ICorDebugILFrame4; #define __ICorDebugNativeFrame_INTERFACE_DEFINED__ /* interface ICorDebugNativeFrame */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugNativeFrame; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("03E26314-4F76-11d3-88C6-006097945418") ICorDebugNativeFrame : public ICorDebugFrame { public: - virtual HRESULT STDMETHODCALLTYPE GetIP( + virtual HRESULT STDMETHODCALLTYPE GetIP( /* [out] */ ULONG32 *pnOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetIP( + + virtual HRESULT STDMETHODCALLTYPE SetIP( /* [in] */ ULONG32 nOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( + + virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( /* [out] */ ICorDebugRegisterSet **ppRegisters) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalRegisterValue( + + virtual HRESULT STDMETHODCALLTYPE GetLocalRegisterValue( /* [in] */ CorDebugRegister reg, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalDoubleRegisterValue( + + virtual HRESULT STDMETHODCALLTYPE GetLocalDoubleRegisterValue( /* [in] */ CorDebugRegister highWordReg, /* [in] */ CorDebugRegister lowWordReg, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalMemoryValue( + + virtual HRESULT STDMETHODCALLTYPE GetLocalMemoryValue( /* [in] */ CORDB_ADDRESS address, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalRegisterMemoryValue( + + virtual HRESULT STDMETHODCALLTYPE GetLocalRegisterMemoryValue( /* [in] */ CorDebugRegister highWordReg, /* [in] */ CORDB_ADDRESS lowWordAddress, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalMemoryRegisterValue( + + virtual HRESULT STDMETHODCALLTYPE GetLocalMemoryRegisterValue( /* [in] */ CORDB_ADDRESS highWordAddress, /* [in] */ CorDebugRegister lowWordRegister, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE CanSetIP( + + virtual HRESULT STDMETHODCALLTYPE CanSetIP( /* [in] */ ULONG32 nOffset) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugNativeFrameVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugNativeFrame * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugNativeFrame * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugNativeFrame * This); - - HRESULT ( STDMETHODCALLTYPE *GetChain )( + + HRESULT ( STDMETHODCALLTYPE *GetChain )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( + + HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( ICorDebugNativeFrame * This, /* [out] */ mdMethodDef *pToken); - - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugNativeFrame * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugStepper **ppStepper); - - HRESULT ( STDMETHODCALLTYPE *GetIP )( + + HRESULT ( STDMETHODCALLTYPE *GetIP )( ICorDebugNativeFrame * This, /* [out] */ ULONG32 *pnOffset); - - HRESULT ( STDMETHODCALLTYPE *SetIP )( + + HRESULT ( STDMETHODCALLTYPE *SetIP )( ICorDebugNativeFrame * This, /* [in] */ ULONG32 nOffset); - - HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( + + HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugRegisterSet **ppRegisters); - - HRESULT ( STDMETHODCALLTYPE *GetLocalRegisterValue )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalRegisterValue )( ICorDebugNativeFrame * This, /* [in] */ CorDebugRegister reg, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetLocalDoubleRegisterValue )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalDoubleRegisterValue )( ICorDebugNativeFrame * This, /* [in] */ CorDebugRegister highWordReg, /* [in] */ CorDebugRegister lowWordReg, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetLocalMemoryValue )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalMemoryValue )( ICorDebugNativeFrame * This, /* [in] */ CORDB_ADDRESS address, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetLocalRegisterMemoryValue )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalRegisterMemoryValue )( ICorDebugNativeFrame * This, /* [in] */ CorDebugRegister highWordReg, /* [in] */ CORDB_ADDRESS lowWordAddress, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetLocalMemoryRegisterValue )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalMemoryRegisterValue )( ICorDebugNativeFrame * This, /* [in] */ CORDB_ADDRESS highWordAddress, /* [in] */ CorDebugRegister lowWordRegister, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *CanSetIP )( + + HRESULT ( STDMETHODCALLTYPE *CanSetIP )( ICorDebugNativeFrame * This, /* [in] */ ULONG32 nOffset); - + END_INTERFACE } ICorDebugNativeFrameVtbl; @@ -11426,72 +11433,72 @@ EXTERN_C const IID IID_ICorDebugNativeFrame; CONST_VTBL struct ICorDebugNativeFrameVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugNativeFrame_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugNativeFrame_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugNativeFrame_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugNativeFrame_GetChain(This,ppChain) \ - ( (This)->lpVtbl -> GetChain(This,ppChain) ) + ( (This)->lpVtbl -> GetChain(This,ppChain) ) #define ICorDebugNativeFrame_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) + ( (This)->lpVtbl -> GetCode(This,ppCode) ) #define ICorDebugNativeFrame_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) #define ICorDebugNativeFrame_GetFunctionToken(This,pToken) \ - ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) + ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) #define ICorDebugNativeFrame_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) #define ICorDebugNativeFrame_GetCaller(This,ppFrame) \ - ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) + ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) #define ICorDebugNativeFrame_GetCallee(This,ppFrame) \ - ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) + ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) #define ICorDebugNativeFrame_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) #define ICorDebugNativeFrame_GetIP(This,pnOffset) \ - ( (This)->lpVtbl -> GetIP(This,pnOffset) ) + ( (This)->lpVtbl -> GetIP(This,pnOffset) ) #define ICorDebugNativeFrame_SetIP(This,nOffset) \ - ( (This)->lpVtbl -> SetIP(This,nOffset) ) + ( (This)->lpVtbl -> SetIP(This,nOffset) ) #define ICorDebugNativeFrame_GetRegisterSet(This,ppRegisters) \ - ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) + ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) #define ICorDebugNativeFrame_GetLocalRegisterValue(This,reg,cbSigBlob,pvSigBlob,ppValue) \ - ( (This)->lpVtbl -> GetLocalRegisterValue(This,reg,cbSigBlob,pvSigBlob,ppValue) ) + ( (This)->lpVtbl -> GetLocalRegisterValue(This,reg,cbSigBlob,pvSigBlob,ppValue) ) #define ICorDebugNativeFrame_GetLocalDoubleRegisterValue(This,highWordReg,lowWordReg,cbSigBlob,pvSigBlob,ppValue) \ - ( (This)->lpVtbl -> GetLocalDoubleRegisterValue(This,highWordReg,lowWordReg,cbSigBlob,pvSigBlob,ppValue) ) + ( (This)->lpVtbl -> GetLocalDoubleRegisterValue(This,highWordReg,lowWordReg,cbSigBlob,pvSigBlob,ppValue) ) #define ICorDebugNativeFrame_GetLocalMemoryValue(This,address,cbSigBlob,pvSigBlob,ppValue) \ - ( (This)->lpVtbl -> GetLocalMemoryValue(This,address,cbSigBlob,pvSigBlob,ppValue) ) + ( (This)->lpVtbl -> GetLocalMemoryValue(This,address,cbSigBlob,pvSigBlob,ppValue) ) #define ICorDebugNativeFrame_GetLocalRegisterMemoryValue(This,highWordReg,lowWordAddress,cbSigBlob,pvSigBlob,ppValue) \ - ( (This)->lpVtbl -> GetLocalRegisterMemoryValue(This,highWordReg,lowWordAddress,cbSigBlob,pvSigBlob,ppValue) ) + ( (This)->lpVtbl -> GetLocalRegisterMemoryValue(This,highWordReg,lowWordAddress,cbSigBlob,pvSigBlob,ppValue) ) #define ICorDebugNativeFrame_GetLocalMemoryRegisterValue(This,highWordAddress,lowWordRegister,cbSigBlob,pvSigBlob,ppValue) \ - ( (This)->lpVtbl -> GetLocalMemoryRegisterValue(This,highWordAddress,lowWordRegister,cbSigBlob,pvSigBlob,ppValue) ) + ( (This)->lpVtbl -> GetLocalMemoryRegisterValue(This,highWordAddress,lowWordRegister,cbSigBlob,pvSigBlob,ppValue) ) #define ICorDebugNativeFrame_CanSetIP(This,nOffset) \ - ( (This)->lpVtbl -> CanSetIP(This,nOffset) ) + ( (This)->lpVtbl -> CanSetIP(This,nOffset) ) #endif /* COBJMACROS */ @@ -11505,10 +11512,10 @@ EXTERN_C const IID IID_ICorDebugNativeFrame; /* interface __MIDL_itf_cordebug_0000_0071 */ -/* [local] */ +/* [local] */ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0071_v0_0_c_ifspec; @@ -11518,61 +11525,61 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0071_v0_0_s_ifspec; #define __ICorDebugNativeFrame2_INTERFACE_DEFINED__ /* interface ICorDebugNativeFrame2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugNativeFrame2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("35389FF1-3684-4c55-A2EE-210F26C60E5E") ICorDebugNativeFrame2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE IsChild( + virtual HRESULT STDMETHODCALLTYPE IsChild( /* [out] */ BOOL *pIsChild) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsMatchingParentFrame( + + virtual HRESULT STDMETHODCALLTYPE IsMatchingParentFrame( /* [in] */ ICorDebugNativeFrame2 *pPotentialParentFrame, /* [out] */ BOOL *pIsParent) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStackParameterSize( + + virtual HRESULT STDMETHODCALLTYPE GetStackParameterSize( /* [out] */ ULONG32 *pSize) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugNativeFrame2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugNativeFrame2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugNativeFrame2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugNativeFrame2 * This); - - HRESULT ( STDMETHODCALLTYPE *IsChild )( + + HRESULT ( STDMETHODCALLTYPE *IsChild )( ICorDebugNativeFrame2 * This, /* [out] */ BOOL *pIsChild); - - HRESULT ( STDMETHODCALLTYPE *IsMatchingParentFrame )( + + HRESULT ( STDMETHODCALLTYPE *IsMatchingParentFrame )( ICorDebugNativeFrame2 * This, /* [in] */ ICorDebugNativeFrame2 *pPotentialParentFrame, /* [out] */ BOOL *pIsParent); - - HRESULT ( STDMETHODCALLTYPE *GetStackParameterSize )( + + HRESULT ( STDMETHODCALLTYPE *GetStackParameterSize )( ICorDebugNativeFrame2 * This, /* [out] */ ULONG32 *pSize); - + END_INTERFACE } ICorDebugNativeFrame2Vtbl; @@ -11581,29 +11588,29 @@ EXTERN_C const IID IID_ICorDebugNativeFrame2; CONST_VTBL struct ICorDebugNativeFrame2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugNativeFrame2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugNativeFrame2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugNativeFrame2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugNativeFrame2_IsChild(This,pIsChild) \ - ( (This)->lpVtbl -> IsChild(This,pIsChild) ) + ( (This)->lpVtbl -> IsChild(This,pIsChild) ) #define ICorDebugNativeFrame2_IsMatchingParentFrame(This,pPotentialParentFrame,pIsParent) \ - ( (This)->lpVtbl -> IsMatchingParentFrame(This,pPotentialParentFrame,pIsParent) ) + ( (This)->lpVtbl -> IsMatchingParentFrame(This,pPotentialParentFrame,pIsParent) ) #define ICorDebugNativeFrame2_GetStackParameterSize(This,pSize) \ - ( (This)->lpVtbl -> GetStackParameterSize(This,pSize) ) + ( (This)->lpVtbl -> GetStackParameterSize(This,pSize) ) #endif /* COBJMACROS */ @@ -11620,47 +11627,47 @@ EXTERN_C const IID IID_ICorDebugNativeFrame2; #define __ICorDebugModule3_INTERFACE_DEFINED__ /* interface ICorDebugModule3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModule3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("86F012BF-FF15-4372-BD30-B6F11CAAE1DD") ICorDebugModule3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreateReaderForInMemorySymbols( + virtual HRESULT STDMETHODCALLTYPE CreateReaderForInMemorySymbols( /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppObj) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugModule3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModule3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModule3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModule3 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateReaderForInMemorySymbols )( + + HRESULT ( STDMETHODCALLTYPE *CreateReaderForInMemorySymbols )( ICorDebugModule3 * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppObj); - + END_INTERFACE } ICorDebugModule3Vtbl; @@ -11669,23 +11676,23 @@ EXTERN_C const IID IID_ICorDebugModule3; CONST_VTBL struct ICorDebugModule3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugModule3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugModule3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugModule3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugModule3_CreateReaderForInMemorySymbols(This,riid,ppObj) \ - ( (This)->lpVtbl -> CreateReaderForInMemorySymbols(This,riid,ppObj) ) + ( (This)->lpVtbl -> CreateReaderForInMemorySymbols(This,riid,ppObj) ) #endif /* COBJMACROS */ @@ -11702,45 +11709,45 @@ EXTERN_C const IID IID_ICorDebugModule3; #define __ICorDebugModule4_INTERFACE_DEFINED__ /* interface ICorDebugModule4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModule4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("FF8B8EAF-25CD-4316-8859-84416DE4402E") ICorDebugModule4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE IsMappedLayout( + virtual HRESULT STDMETHODCALLTYPE IsMappedLayout( /* [out] */ BOOL *pIsMapped) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugModule4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModule4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModule4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModule4 * This); - - HRESULT ( STDMETHODCALLTYPE *IsMappedLayout )( + + HRESULT ( STDMETHODCALLTYPE *IsMappedLayout )( ICorDebugModule4 * This, /* [out] */ BOOL *pIsMapped); - + END_INTERFACE } ICorDebugModule4Vtbl; @@ -11749,23 +11756,23 @@ EXTERN_C const IID IID_ICorDebugModule4; CONST_VTBL struct ICorDebugModule4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugModule4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugModule4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugModule4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugModule4_IsMappedLayout(This,pIsMapped) \ - ( (This)->lpVtbl -> IsMappedLayout(This,pIsMapped) ) + ( (This)->lpVtbl -> IsMappedLayout(This,pIsMapped) ) #endif /* COBJMACROS */ @@ -11782,71 +11789,71 @@ EXTERN_C const IID IID_ICorDebugModule4; #define __ICorDebugRuntimeUnwindableFrame_INTERFACE_DEFINED__ /* interface ICorDebugRuntimeUnwindableFrame */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugRuntimeUnwindableFrame; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("879CAC0A-4A53-4668-B8E3-CB8473CB187F") ICorDebugRuntimeUnwindableFrame : public ICorDebugFrame { public: }; - - + + #else /* C style interface */ typedef struct ICorDebugRuntimeUnwindableFrameVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugRuntimeUnwindableFrame * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugRuntimeUnwindableFrame * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugRuntimeUnwindableFrame * This); - - HRESULT ( STDMETHODCALLTYPE *GetChain )( + + HRESULT ( STDMETHODCALLTYPE *GetChain )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( + + HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ mdMethodDef *pToken); - - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugStepper **ppStepper); - + END_INTERFACE } ICorDebugRuntimeUnwindableFrameVtbl; @@ -11855,44 +11862,44 @@ EXTERN_C const IID IID_ICorDebugRuntimeUnwindableFrame; CONST_VTBL struct ICorDebugRuntimeUnwindableFrameVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugRuntimeUnwindableFrame_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugRuntimeUnwindableFrame_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugRuntimeUnwindableFrame_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugRuntimeUnwindableFrame_GetChain(This,ppChain) \ - ( (This)->lpVtbl -> GetChain(This,ppChain) ) + ( (This)->lpVtbl -> GetChain(This,ppChain) ) #define ICorDebugRuntimeUnwindableFrame_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) + ( (This)->lpVtbl -> GetCode(This,ppCode) ) #define ICorDebugRuntimeUnwindableFrame_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) #define ICorDebugRuntimeUnwindableFrame_GetFunctionToken(This,pToken) \ - ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) + ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) #define ICorDebugRuntimeUnwindableFrame_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) #define ICorDebugRuntimeUnwindableFrame_GetCaller(This,ppFrame) \ - ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) + ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) #define ICorDebugRuntimeUnwindableFrame_GetCallee(This,ppFrame) \ - ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) + ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) #define ICorDebugRuntimeUnwindableFrame_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) #endif /* COBJMACROS */ @@ -11910,173 +11917,173 @@ EXTERN_C const IID IID_ICorDebugRuntimeUnwindableFrame; #define __ICorDebugModule_INTERFACE_DEFINED__ /* interface ICorDebugModule */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModule; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("dba2d8c1-e5c5-4069-8c13-10a7c6abf43d") ICorDebugModule : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetProcess( + virtual HRESULT STDMETHODCALLTYPE GetProcess( /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBaseAddress( + + virtual HRESULT STDMETHODCALLTYPE GetBaseAddress( /* [out] */ CORDB_ADDRESS *pAddress) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAssembly( + + virtual HRESULT STDMETHODCALLTYPE GetAssembly( /* [out] */ ICorDebugAssembly **ppAssembly) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetName( + + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableJITDebugging( + + virtual HRESULT STDMETHODCALLTYPE EnableJITDebugging( /* [in] */ BOOL bTrackJITInfo, /* [in] */ BOOL bAllowJitOpts) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableClassLoadCallbacks( + + virtual HRESULT STDMETHODCALLTYPE EnableClassLoadCallbacks( /* [in] */ BOOL bClassLoadCallbacks) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunctionFromToken( + + virtual HRESULT STDMETHODCALLTYPE GetFunctionFromToken( /* [in] */ mdMethodDef methodDef, /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunctionFromRVA( + + virtual HRESULT STDMETHODCALLTYPE GetFunctionFromRVA( /* [in] */ CORDB_ADDRESS rva, /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetClassFromToken( + + virtual HRESULT STDMETHODCALLTYPE GetClassFromToken( /* [in] */ mdTypeDef typeDef, /* [out] */ ICorDebugClass **ppClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( /* [out] */ ICorDebugModuleBreakpoint **ppBreakpoint) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetEditAndContinueSnapshot( + + virtual HRESULT STDMETHODCALLTYPE GetEditAndContinueSnapshot( /* [out] */ ICorDebugEditAndContinueSnapshot **ppEditAndContinueSnapshot) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMetaDataInterface( + + virtual HRESULT STDMETHODCALLTYPE GetMetaDataInterface( /* [in] */ REFIID riid, /* [out] */ IUnknown **ppObj) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetToken( + + virtual HRESULT STDMETHODCALLTYPE GetToken( /* [out] */ mdModule *pToken) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsDynamic( + + virtual HRESULT STDMETHODCALLTYPE IsDynamic( /* [out] */ BOOL *pDynamic) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGlobalVariableValue( + + virtual HRESULT STDMETHODCALLTYPE GetGlobalVariableValue( /* [in] */ mdFieldDef fieldDef, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcBytes) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsInMemory( + + virtual HRESULT STDMETHODCALLTYPE IsInMemory( /* [out] */ BOOL *pInMemory) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugModuleVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModule * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModule * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModule * This); - - HRESULT ( STDMETHODCALLTYPE *GetProcess )( + + HRESULT ( STDMETHODCALLTYPE *GetProcess )( ICorDebugModule * This, /* [out] */ ICorDebugProcess **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *GetBaseAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetBaseAddress )( ICorDebugModule * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *GetAssembly )( + + HRESULT ( STDMETHODCALLTYPE *GetAssembly )( ICorDebugModule * This, /* [out] */ ICorDebugAssembly **ppAssembly); - - HRESULT ( STDMETHODCALLTYPE *GetName )( + + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugModule * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *EnableJITDebugging )( + + HRESULT ( STDMETHODCALLTYPE *EnableJITDebugging )( ICorDebugModule * This, /* [in] */ BOOL bTrackJITInfo, /* [in] */ BOOL bAllowJitOpts); - - HRESULT ( STDMETHODCALLTYPE *EnableClassLoadCallbacks )( + + HRESULT ( STDMETHODCALLTYPE *EnableClassLoadCallbacks )( ICorDebugModule * This, /* [in] */ BOOL bClassLoadCallbacks); - - HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )( + + HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )( ICorDebugModule * This, /* [in] */ mdMethodDef methodDef, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetFunctionFromRVA )( + + HRESULT ( STDMETHODCALLTYPE *GetFunctionFromRVA )( ICorDebugModule * This, /* [in] */ CORDB_ADDRESS rva, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )( + + HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )( ICorDebugModule * This, /* [in] */ mdTypeDef typeDef, /* [out] */ ICorDebugClass **ppClass); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugModule * This, /* [out] */ ICorDebugModuleBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetEditAndContinueSnapshot )( + + HRESULT ( STDMETHODCALLTYPE *GetEditAndContinueSnapshot )( ICorDebugModule * This, /* [out] */ ICorDebugEditAndContinueSnapshot **ppEditAndContinueSnapshot); - - HRESULT ( STDMETHODCALLTYPE *GetMetaDataInterface )( + + HRESULT ( STDMETHODCALLTYPE *GetMetaDataInterface )( ICorDebugModule * This, /* [in] */ REFIID riid, /* [out] */ IUnknown **ppObj); - - HRESULT ( STDMETHODCALLTYPE *GetToken )( + + HRESULT ( STDMETHODCALLTYPE *GetToken )( ICorDebugModule * This, /* [out] */ mdModule *pToken); - - HRESULT ( STDMETHODCALLTYPE *IsDynamic )( + + HRESULT ( STDMETHODCALLTYPE *IsDynamic )( ICorDebugModule * This, /* [out] */ BOOL *pDynamic); - - HRESULT ( STDMETHODCALLTYPE *GetGlobalVariableValue )( + + HRESULT ( STDMETHODCALLTYPE *GetGlobalVariableValue )( ICorDebugModule * This, /* [in] */ mdFieldDef fieldDef, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugModule * This, /* [out] */ ULONG32 *pcBytes); - - HRESULT ( STDMETHODCALLTYPE *IsInMemory )( + + HRESULT ( STDMETHODCALLTYPE *IsInMemory )( ICorDebugModule * This, /* [out] */ BOOL *pInMemory); - + END_INTERFACE } ICorDebugModuleVtbl; @@ -12085,71 +12092,71 @@ EXTERN_C const IID IID_ICorDebugModule; CONST_VTBL struct ICorDebugModuleVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugModule_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugModule_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugModule_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugModule_GetProcess(This,ppProcess) \ - ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) + ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) #define ICorDebugModule_GetBaseAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetBaseAddress(This,pAddress) ) + ( (This)->lpVtbl -> GetBaseAddress(This,pAddress) ) #define ICorDebugModule_GetAssembly(This,ppAssembly) \ - ( (This)->lpVtbl -> GetAssembly(This,ppAssembly) ) + ( (This)->lpVtbl -> GetAssembly(This,ppAssembly) ) #define ICorDebugModule_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) #define ICorDebugModule_EnableJITDebugging(This,bTrackJITInfo,bAllowJitOpts) \ - ( (This)->lpVtbl -> EnableJITDebugging(This,bTrackJITInfo,bAllowJitOpts) ) + ( (This)->lpVtbl -> EnableJITDebugging(This,bTrackJITInfo,bAllowJitOpts) ) #define ICorDebugModule_EnableClassLoadCallbacks(This,bClassLoadCallbacks) \ - ( (This)->lpVtbl -> EnableClassLoadCallbacks(This,bClassLoadCallbacks) ) + ( (This)->lpVtbl -> EnableClassLoadCallbacks(This,bClassLoadCallbacks) ) #define ICorDebugModule_GetFunctionFromToken(This,methodDef,ppFunction) \ - ( (This)->lpVtbl -> GetFunctionFromToken(This,methodDef,ppFunction) ) + ( (This)->lpVtbl -> GetFunctionFromToken(This,methodDef,ppFunction) ) #define ICorDebugModule_GetFunctionFromRVA(This,rva,ppFunction) \ - ( (This)->lpVtbl -> GetFunctionFromRVA(This,rva,ppFunction) ) + ( (This)->lpVtbl -> GetFunctionFromRVA(This,rva,ppFunction) ) #define ICorDebugModule_GetClassFromToken(This,typeDef,ppClass) \ - ( (This)->lpVtbl -> GetClassFromToken(This,typeDef,ppClass) ) + ( (This)->lpVtbl -> GetClassFromToken(This,typeDef,ppClass) ) #define ICorDebugModule_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) #define ICorDebugModule_GetEditAndContinueSnapshot(This,ppEditAndContinueSnapshot) \ - ( (This)->lpVtbl -> GetEditAndContinueSnapshot(This,ppEditAndContinueSnapshot) ) + ( (This)->lpVtbl -> GetEditAndContinueSnapshot(This,ppEditAndContinueSnapshot) ) #define ICorDebugModule_GetMetaDataInterface(This,riid,ppObj) \ - ( (This)->lpVtbl -> GetMetaDataInterface(This,riid,ppObj) ) + ( (This)->lpVtbl -> GetMetaDataInterface(This,riid,ppObj) ) #define ICorDebugModule_GetToken(This,pToken) \ - ( (This)->lpVtbl -> GetToken(This,pToken) ) + ( (This)->lpVtbl -> GetToken(This,pToken) ) #define ICorDebugModule_IsDynamic(This,pDynamic) \ - ( (This)->lpVtbl -> IsDynamic(This,pDynamic) ) + ( (This)->lpVtbl -> IsDynamic(This,pDynamic) ) #define ICorDebugModule_GetGlobalVariableValue(This,fieldDef,ppValue) \ - ( (This)->lpVtbl -> GetGlobalVariableValue(This,fieldDef,ppValue) ) + ( (This)->lpVtbl -> GetGlobalVariableValue(This,fieldDef,ppValue) ) #define ICorDebugModule_GetSize(This,pcBytes) \ - ( (This)->lpVtbl -> GetSize(This,pcBytes) ) + ( (This)->lpVtbl -> GetSize(This,pcBytes) ) #define ICorDebugModule_IsInMemory(This,pInMemory) \ - ( (This)->lpVtbl -> IsInMemory(This,pInMemory) ) + ( (This)->lpVtbl -> IsInMemory(This,pInMemory) ) #endif /* COBJMACROS */ @@ -12163,7 +12170,7 @@ EXTERN_C const IID IID_ICorDebugModule; /* interface __MIDL_itf_cordebug_0000_0076 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -12175,85 +12182,85 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0076_v0_0_s_ifspec; #define __ICorDebugModule2_INTERFACE_DEFINED__ /* interface ICorDebugModule2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModule2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("7FCC5FB5-49C0-41de-9938-3B88B5B9ADD7") ICorDebugModule2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( + virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( /* [in] */ BOOL bIsJustMyCode, /* [in] */ ULONG32 cTokens, /* [size_is][in] */ mdToken pTokens[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE ApplyChanges( + + virtual HRESULT STDMETHODCALLTYPE ApplyChanges( /* [in] */ ULONG cbMetadata, /* [size_is][in] */ BYTE pbMetadata[ ], /* [in] */ ULONG cbIL, /* [size_is][in] */ BYTE pbIL[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetJITCompilerFlags( + + virtual HRESULT STDMETHODCALLTYPE SetJITCompilerFlags( /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetJITCompilerFlags( + + virtual HRESULT STDMETHODCALLTYPE GetJITCompilerFlags( /* [out] */ DWORD *pdwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE ResolveAssembly( + + virtual HRESULT STDMETHODCALLTYPE ResolveAssembly( /* [in] */ mdToken tkAssemblyRef, /* [out] */ ICorDebugAssembly **ppAssembly) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugModule2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModule2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModule2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModule2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( + + HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( ICorDebugModule2 * This, /* [in] */ BOOL bIsJustMyCode, /* [in] */ ULONG32 cTokens, /* [size_is][in] */ mdToken pTokens[ ]); - - HRESULT ( STDMETHODCALLTYPE *ApplyChanges )( + + HRESULT ( STDMETHODCALLTYPE *ApplyChanges )( ICorDebugModule2 * This, /* [in] */ ULONG cbMetadata, /* [size_is][in] */ BYTE pbMetadata[ ], /* [in] */ ULONG cbIL, /* [size_is][in] */ BYTE pbIL[ ]); - - HRESULT ( STDMETHODCALLTYPE *SetJITCompilerFlags )( + + HRESULT ( STDMETHODCALLTYPE *SetJITCompilerFlags )( ICorDebugModule2 * This, /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetJITCompilerFlags )( + + HRESULT ( STDMETHODCALLTYPE *GetJITCompilerFlags )( ICorDebugModule2 * This, /* [out] */ DWORD *pdwFlags); - - HRESULT ( STDMETHODCALLTYPE *ResolveAssembly )( + + HRESULT ( STDMETHODCALLTYPE *ResolveAssembly )( ICorDebugModule2 * This, /* [in] */ mdToken tkAssemblyRef, /* [out] */ ICorDebugAssembly **ppAssembly); - + END_INTERFACE } ICorDebugModule2Vtbl; @@ -12262,35 +12269,35 @@ EXTERN_C const IID IID_ICorDebugModule2; CONST_VTBL struct ICorDebugModule2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugModule2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugModule2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugModule2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugModule2_SetJMCStatus(This,bIsJustMyCode,cTokens,pTokens) \ - ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode,cTokens,pTokens) ) + ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode,cTokens,pTokens) ) #define ICorDebugModule2_ApplyChanges(This,cbMetadata,pbMetadata,cbIL,pbIL) \ - ( (This)->lpVtbl -> ApplyChanges(This,cbMetadata,pbMetadata,cbIL,pbIL) ) + ( (This)->lpVtbl -> ApplyChanges(This,cbMetadata,pbMetadata,cbIL,pbIL) ) #define ICorDebugModule2_SetJITCompilerFlags(This,dwFlags) \ - ( (This)->lpVtbl -> SetJITCompilerFlags(This,dwFlags) ) + ( (This)->lpVtbl -> SetJITCompilerFlags(This,dwFlags) ) #define ICorDebugModule2_GetJITCompilerFlags(This,pdwFlags) \ - ( (This)->lpVtbl -> GetJITCompilerFlags(This,pdwFlags) ) + ( (This)->lpVtbl -> GetJITCompilerFlags(This,pdwFlags) ) #define ICorDebugModule2_ResolveAssembly(This,tkAssemblyRef,ppAssembly) \ - ( (This)->lpVtbl -> ResolveAssembly(This,tkAssemblyRef,ppAssembly) ) + ( (This)->lpVtbl -> ResolveAssembly(This,tkAssemblyRef,ppAssembly) ) #endif /* COBJMACROS */ @@ -12307,94 +12314,94 @@ EXTERN_C const IID IID_ICorDebugModule2; #define __ICorDebugFunction_INTERFACE_DEFINED__ /* interface ICorDebugFunction */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFunction; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF3-8A68-11d2-983C-0000F808342D") ICorDebugFunction : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetModule( + virtual HRESULT STDMETHODCALLTYPE GetModule( /* [out] */ ICorDebugModule **ppModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetClass( + + virtual HRESULT STDMETHODCALLTYPE GetClass( /* [out] */ ICorDebugClass **ppClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetToken( + + virtual HRESULT STDMETHODCALLTYPE GetToken( /* [out] */ mdMethodDef *pMethodDef) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetILCode( + + virtual HRESULT STDMETHODCALLTYPE GetILCode( /* [out] */ ICorDebugCode **ppCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetNativeCode( + + virtual HRESULT STDMETHODCALLTYPE GetNativeCode( /* [out] */ ICorDebugCode **ppCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( /* [out] */ ICorDebugFunctionBreakpoint **ppBreakpoint) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalVarSigToken( + + virtual HRESULT STDMETHODCALLTYPE GetLocalVarSigToken( /* [out] */ mdSignature *pmdSig) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentVersionNumber( + + virtual HRESULT STDMETHODCALLTYPE GetCurrentVersionNumber( /* [out] */ ULONG32 *pnCurrentVersion) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugFunctionVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFunction * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFunction * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFunction * This); - - HRESULT ( STDMETHODCALLTYPE *GetModule )( + + HRESULT ( STDMETHODCALLTYPE *GetModule )( ICorDebugFunction * This, /* [out] */ ICorDebugModule **ppModule); - - HRESULT ( STDMETHODCALLTYPE *GetClass )( + + HRESULT ( STDMETHODCALLTYPE *GetClass )( ICorDebugFunction * This, /* [out] */ ICorDebugClass **ppClass); - - HRESULT ( STDMETHODCALLTYPE *GetToken )( + + HRESULT ( STDMETHODCALLTYPE *GetToken )( ICorDebugFunction * This, /* [out] */ mdMethodDef *pMethodDef); - - HRESULT ( STDMETHODCALLTYPE *GetILCode )( + + HRESULT ( STDMETHODCALLTYPE *GetILCode )( ICorDebugFunction * This, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *GetNativeCode )( + + HRESULT ( STDMETHODCALLTYPE *GetNativeCode )( ICorDebugFunction * This, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugFunction * This, /* [out] */ ICorDebugFunctionBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetLocalVarSigToken )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalVarSigToken )( ICorDebugFunction * This, /* [out] */ mdSignature *pmdSig); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentVersionNumber )( + + HRESULT ( STDMETHODCALLTYPE *GetCurrentVersionNumber )( ICorDebugFunction * This, /* [out] */ ULONG32 *pnCurrentVersion); - + END_INTERFACE } ICorDebugFunctionVtbl; @@ -12403,44 +12410,44 @@ EXTERN_C const IID IID_ICorDebugFunction; CONST_VTBL struct ICorDebugFunctionVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugFunction_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugFunction_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugFunction_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugFunction_GetModule(This,ppModule) \ - ( (This)->lpVtbl -> GetModule(This,ppModule) ) + ( (This)->lpVtbl -> GetModule(This,ppModule) ) #define ICorDebugFunction_GetClass(This,ppClass) \ - ( (This)->lpVtbl -> GetClass(This,ppClass) ) + ( (This)->lpVtbl -> GetClass(This,ppClass) ) #define ICorDebugFunction_GetToken(This,pMethodDef) \ - ( (This)->lpVtbl -> GetToken(This,pMethodDef) ) + ( (This)->lpVtbl -> GetToken(This,pMethodDef) ) #define ICorDebugFunction_GetILCode(This,ppCode) \ - ( (This)->lpVtbl -> GetILCode(This,ppCode) ) + ( (This)->lpVtbl -> GetILCode(This,ppCode) ) #define ICorDebugFunction_GetNativeCode(This,ppCode) \ - ( (This)->lpVtbl -> GetNativeCode(This,ppCode) ) + ( (This)->lpVtbl -> GetNativeCode(This,ppCode) ) #define ICorDebugFunction_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) #define ICorDebugFunction_GetLocalVarSigToken(This,pmdSig) \ - ( (This)->lpVtbl -> GetLocalVarSigToken(This,pmdSig) ) + ( (This)->lpVtbl -> GetLocalVarSigToken(This,pmdSig) ) #define ICorDebugFunction_GetCurrentVersionNumber(This,pnCurrentVersion) \ - ( (This)->lpVtbl -> GetCurrentVersionNumber(This,pnCurrentVersion) ) + ( (This)->lpVtbl -> GetCurrentVersionNumber(This,pnCurrentVersion) ) #endif /* COBJMACROS */ @@ -12457,66 +12464,66 @@ EXTERN_C const IID IID_ICorDebugFunction; #define __ICorDebugFunction2_INTERFACE_DEFINED__ /* interface ICorDebugFunction2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFunction2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("EF0C490B-94C3-4e4d-B629-DDC134C532D8") ICorDebugFunction2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( + virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( /* [in] */ BOOL bIsJustMyCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetJMCStatus( + + virtual HRESULT STDMETHODCALLTYPE GetJMCStatus( /* [out] */ BOOL *pbIsJustMyCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateNativeCode( + + virtual HRESULT STDMETHODCALLTYPE EnumerateNativeCode( /* [out] */ ICorDebugCodeEnum **ppCodeEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVersionNumber( + + virtual HRESULT STDMETHODCALLTYPE GetVersionNumber( /* [out] */ ULONG32 *pnVersion) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugFunction2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFunction2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFunction2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFunction2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( + + HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( ICorDebugFunction2 * This, /* [in] */ BOOL bIsJustMyCode); - - HRESULT ( STDMETHODCALLTYPE *GetJMCStatus )( + + HRESULT ( STDMETHODCALLTYPE *GetJMCStatus )( ICorDebugFunction2 * This, /* [out] */ BOOL *pbIsJustMyCode); - - HRESULT ( STDMETHODCALLTYPE *EnumerateNativeCode )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateNativeCode )( ICorDebugFunction2 * This, /* [out] */ ICorDebugCodeEnum **ppCodeEnum); - - HRESULT ( STDMETHODCALLTYPE *GetVersionNumber )( + + HRESULT ( STDMETHODCALLTYPE *GetVersionNumber )( ICorDebugFunction2 * This, /* [out] */ ULONG32 *pnVersion); - + END_INTERFACE } ICorDebugFunction2Vtbl; @@ -12525,32 +12532,32 @@ EXTERN_C const IID IID_ICorDebugFunction2; CONST_VTBL struct ICorDebugFunction2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugFunction2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugFunction2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugFunction2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugFunction2_SetJMCStatus(This,bIsJustMyCode) \ - ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode) ) + ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode) ) #define ICorDebugFunction2_GetJMCStatus(This,pbIsJustMyCode) \ - ( (This)->lpVtbl -> GetJMCStatus(This,pbIsJustMyCode) ) + ( (This)->lpVtbl -> GetJMCStatus(This,pbIsJustMyCode) ) #define ICorDebugFunction2_EnumerateNativeCode(This,ppCodeEnum) \ - ( (This)->lpVtbl -> EnumerateNativeCode(This,ppCodeEnum) ) + ( (This)->lpVtbl -> EnumerateNativeCode(This,ppCodeEnum) ) #define ICorDebugFunction2_GetVersionNumber(This,pnVersion) \ - ( (This)->lpVtbl -> GetVersionNumber(This,pnVersion) ) + ( (This)->lpVtbl -> GetVersionNumber(This,pnVersion) ) #endif /* COBJMACROS */ @@ -12567,45 +12574,45 @@ EXTERN_C const IID IID_ICorDebugFunction2; #define __ICorDebugFunction3_INTERFACE_DEFINED__ /* interface ICorDebugFunction3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFunction3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("09B70F28-E465-482D-99E0-81A165EB0532") ICorDebugFunction3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetActiveReJitRequestILCode( + virtual HRESULT STDMETHODCALLTYPE GetActiveReJitRequestILCode( ICorDebugILCode **ppReJitedILCode) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugFunction3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFunction3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFunction3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFunction3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetActiveReJitRequestILCode )( + + HRESULT ( STDMETHODCALLTYPE *GetActiveReJitRequestILCode )( ICorDebugFunction3 * This, ICorDebugILCode **ppReJitedILCode); - + END_INTERFACE } ICorDebugFunction3Vtbl; @@ -12614,23 +12621,23 @@ EXTERN_C const IID IID_ICorDebugFunction3; CONST_VTBL struct ICorDebugFunction3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugFunction3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugFunction3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugFunction3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugFunction3_GetActiveReJitRequestILCode(This,ppReJitedILCode) \ - ( (This)->lpVtbl -> GetActiveReJitRequestILCode(This,ppReJitedILCode) ) + ( (This)->lpVtbl -> GetActiveReJitRequestILCode(This,ppReJitedILCode) ) #endif /* COBJMACROS */ @@ -12647,45 +12654,45 @@ EXTERN_C const IID IID_ICorDebugFunction3; #define __ICorDebugFunction4_INTERFACE_DEFINED__ /* interface ICorDebugFunction4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFunction4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("72965963-34fd-46e9-9434-b817fe6e7f43") ICorDebugFunction4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreateNativeBreakpoint( + virtual HRESULT STDMETHODCALLTYPE CreateNativeBreakpoint( ICorDebugFunctionBreakpoint **ppBreakpoint) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugFunction4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFunction4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFunction4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFunction4 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateNativeBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateNativeBreakpoint )( ICorDebugFunction4 * This, ICorDebugFunctionBreakpoint **ppBreakpoint); - + END_INTERFACE } ICorDebugFunction4Vtbl; @@ -12694,23 +12701,23 @@ EXTERN_C const IID IID_ICorDebugFunction4; CONST_VTBL struct ICorDebugFunction4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugFunction4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugFunction4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugFunction4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugFunction4_CreateNativeBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateNativeBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateNativeBreakpoint(This,ppBreakpoint) ) #endif /* COBJMACROS */ @@ -12727,119 +12734,119 @@ EXTERN_C const IID IID_ICorDebugFunction4; #define __ICorDebugCode_INTERFACE_DEFINED__ /* interface ICorDebugCode */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugCode; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF4-8A68-11d2-983C-0000F808342D") ICorDebugCode : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE IsIL( + virtual HRESULT STDMETHODCALLTYPE IsIL( /* [out] */ BOOL *pbIL) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunction( + + virtual HRESULT STDMETHODCALLTYPE GetFunction( /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAddress( + + virtual HRESULT STDMETHODCALLTYPE GetAddress( /* [out] */ CORDB_ADDRESS *pStart) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcBytes) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( /* [in] */ ULONG32 offset, /* [out] */ ICorDebugFunctionBreakpoint **ppBreakpoint) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCode( + + virtual HRESULT STDMETHODCALLTYPE GetCode( /* [in] */ ULONG32 startOffset, /* [in] */ ULONG32 endOffset, /* [in] */ ULONG32 cBufferAlloc, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ ULONG32 *pcBufferSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVersionNumber( + + virtual HRESULT STDMETHODCALLTYPE GetVersionNumber( /* [out] */ ULONG32 *nVersion) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetILToNativeMapping( + + virtual HRESULT STDMETHODCALLTYPE GetILToNativeMapping( /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetEnCRemapSequencePoints( + + virtual HRESULT STDMETHODCALLTYPE GetEnCRemapSequencePoints( /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ ULONG32 offsets[ ]) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugCodeVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugCode * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugCode * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugCode * This); - - HRESULT ( STDMETHODCALLTYPE *IsIL )( + + HRESULT ( STDMETHODCALLTYPE *IsIL )( ICorDebugCode * This, /* [out] */ BOOL *pbIL); - - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugCode * This, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugCode * This, /* [out] */ CORDB_ADDRESS *pStart); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugCode * This, /* [out] */ ULONG32 *pcBytes); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugCode * This, /* [in] */ ULONG32 offset, /* [out] */ ICorDebugFunctionBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugCode * This, /* [in] */ ULONG32 startOffset, /* [in] */ ULONG32 endOffset, /* [in] */ ULONG32 cBufferAlloc, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ ULONG32 *pcBufferSize); - - HRESULT ( STDMETHODCALLTYPE *GetVersionNumber )( + + HRESULT ( STDMETHODCALLTYPE *GetVersionNumber )( ICorDebugCode * This, /* [out] */ ULONG32 *nVersion); - - HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )( + + HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )( ICorDebugCode * This, /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetEnCRemapSequencePoints )( + + HRESULT ( STDMETHODCALLTYPE *GetEnCRemapSequencePoints )( ICorDebugCode * This, /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ ULONG32 offsets[ ]); - + END_INTERFACE } ICorDebugCodeVtbl; @@ -12848,47 +12855,47 @@ EXTERN_C const IID IID_ICorDebugCode; CONST_VTBL struct ICorDebugCodeVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugCode_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugCode_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugCode_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugCode_IsIL(This,pbIL) \ - ( (This)->lpVtbl -> IsIL(This,pbIL) ) + ( (This)->lpVtbl -> IsIL(This,pbIL) ) #define ICorDebugCode_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) #define ICorDebugCode_GetAddress(This,pStart) \ - ( (This)->lpVtbl -> GetAddress(This,pStart) ) + ( (This)->lpVtbl -> GetAddress(This,pStart) ) #define ICorDebugCode_GetSize(This,pcBytes) \ - ( (This)->lpVtbl -> GetSize(This,pcBytes) ) + ( (This)->lpVtbl -> GetSize(This,pcBytes) ) #define ICorDebugCode_CreateBreakpoint(This,offset,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,offset,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateBreakpoint(This,offset,ppBreakpoint) ) #define ICorDebugCode_GetCode(This,startOffset,endOffset,cBufferAlloc,buffer,pcBufferSize) \ - ( (This)->lpVtbl -> GetCode(This,startOffset,endOffset,cBufferAlloc,buffer,pcBufferSize) ) + ( (This)->lpVtbl -> GetCode(This,startOffset,endOffset,cBufferAlloc,buffer,pcBufferSize) ) #define ICorDebugCode_GetVersionNumber(This,nVersion) \ - ( (This)->lpVtbl -> GetVersionNumber(This,nVersion) ) + ( (This)->lpVtbl -> GetVersionNumber(This,nVersion) ) #define ICorDebugCode_GetILToNativeMapping(This,cMap,pcMap,map) \ - ( (This)->lpVtbl -> GetILToNativeMapping(This,cMap,pcMap,map) ) + ( (This)->lpVtbl -> GetILToNativeMapping(This,cMap,pcMap,map) ) #define ICorDebugCode_GetEnCRemapSequencePoints(This,cMap,pcMap,offsets) \ - ( (This)->lpVtbl -> GetEnCRemapSequencePoints(This,cMap,pcMap,offsets) ) + ( (This)->lpVtbl -> GetEnCRemapSequencePoints(This,cMap,pcMap,offsets) ) #endif /* COBJMACROS */ @@ -12905,7 +12912,7 @@ EXTERN_C const IID IID_ICorDebugCode; #define __ICorDebugCode2_INTERFACE_DEFINED__ /* interface ICorDebugCode2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ typedef struct _CodeChunkInfo { @@ -12917,50 +12924,50 @@ typedef struct _CodeChunkInfo EXTERN_C const IID IID_ICorDebugCode2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("5F696509-452F-4436-A3FE-4D11FE7E2347") ICorDebugCode2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetCodeChunks( + virtual HRESULT STDMETHODCALLTYPE GetCodeChunks( /* [in] */ ULONG32 cbufSize, /* [out] */ ULONG32 *pcnumChunks, /* [length_is][size_is][out] */ CodeChunkInfo chunks[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCompilerFlags( + + virtual HRESULT STDMETHODCALLTYPE GetCompilerFlags( /* [out] */ DWORD *pdwFlags) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugCode2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugCode2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugCode2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugCode2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetCodeChunks )( + + HRESULT ( STDMETHODCALLTYPE *GetCodeChunks )( ICorDebugCode2 * This, /* [in] */ ULONG32 cbufSize, /* [out] */ ULONG32 *pcnumChunks, /* [length_is][size_is][out] */ CodeChunkInfo chunks[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetCompilerFlags )( + + HRESULT ( STDMETHODCALLTYPE *GetCompilerFlags )( ICorDebugCode2 * This, /* [out] */ DWORD *pdwFlags); - + END_INTERFACE } ICorDebugCode2Vtbl; @@ -12969,26 +12976,26 @@ EXTERN_C const IID IID_ICorDebugCode2; CONST_VTBL struct ICorDebugCode2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugCode2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugCode2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugCode2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugCode2_GetCodeChunks(This,cbufSize,pcnumChunks,chunks) \ - ( (This)->lpVtbl -> GetCodeChunks(This,cbufSize,pcnumChunks,chunks) ) + ( (This)->lpVtbl -> GetCodeChunks(This,cbufSize,pcnumChunks,chunks) ) #define ICorDebugCode2_GetCompilerFlags(This,pdwFlags) \ - ( (This)->lpVtbl -> GetCompilerFlags(This,pdwFlags) ) + ( (This)->lpVtbl -> GetCompilerFlags(This,pdwFlags) ) #endif /* COBJMACROS */ @@ -13005,51 +13012,51 @@ EXTERN_C const IID IID_ICorDebugCode2; #define __ICorDebugCode3_INTERFACE_DEFINED__ /* interface ICorDebugCode3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugCode3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("D13D3E88-E1F2-4020-AA1D-3D162DCBE966") ICorDebugCode3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetReturnValueLiveOffset( + virtual HRESULT STDMETHODCALLTYPE GetReturnValueLiveOffset( /* [in] */ ULONG32 ILoffset, /* [in] */ ULONG32 bufferSize, /* [out] */ ULONG32 *pFetched, /* [length_is][size_is][out] */ ULONG32 pOffsets[ ]) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugCode3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugCode3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugCode3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugCode3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetReturnValueLiveOffset )( + + HRESULT ( STDMETHODCALLTYPE *GetReturnValueLiveOffset )( ICorDebugCode3 * This, /* [in] */ ULONG32 ILoffset, /* [in] */ ULONG32 bufferSize, /* [out] */ ULONG32 *pFetched, /* [length_is][size_is][out] */ ULONG32 pOffsets[ ]); - + END_INTERFACE } ICorDebugCode3Vtbl; @@ -13058,23 +13065,23 @@ EXTERN_C const IID IID_ICorDebugCode3; CONST_VTBL struct ICorDebugCode3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugCode3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugCode3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugCode3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugCode3_GetReturnValueLiveOffset(This,ILoffset,bufferSize,pFetched,pOffsets) \ - ( (This)->lpVtbl -> GetReturnValueLiveOffset(This,ILoffset,bufferSize,pFetched,pOffsets) ) + ( (This)->lpVtbl -> GetReturnValueLiveOffset(This,ILoffset,bufferSize,pFetched,pOffsets) ) #endif /* COBJMACROS */ @@ -13091,45 +13098,45 @@ EXTERN_C const IID IID_ICorDebugCode3; #define __ICorDebugCode4_INTERFACE_DEFINED__ /* interface ICorDebugCode4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugCode4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("18221fa4-20cb-40fa-b19d-9f91c4fa8c14") ICorDebugCode4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnumerateVariableHomes( + virtual HRESULT STDMETHODCALLTYPE EnumerateVariableHomes( /* [out] */ ICorDebugVariableHomeEnum **ppEnum) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugCode4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugCode4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugCode4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugCode4 * This); - - HRESULT ( STDMETHODCALLTYPE *EnumerateVariableHomes )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateVariableHomes )( ICorDebugCode4 * This, /* [out] */ ICorDebugVariableHomeEnum **ppEnum); - + END_INTERFACE } ICorDebugCode4Vtbl; @@ -13138,23 +13145,23 @@ EXTERN_C const IID IID_ICorDebugCode4; CONST_VTBL struct ICorDebugCode4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugCode4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugCode4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugCode4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugCode4_EnumerateVariableHomes(This,ppEnum) \ - ( (This)->lpVtbl -> EnumerateVariableHomes(This,ppEnum) ) + ( (This)->lpVtbl -> EnumerateVariableHomes(This,ppEnum) ) #endif /* COBJMACROS */ @@ -13171,7 +13178,7 @@ EXTERN_C const IID IID_ICorDebugCode4; #define __ICorDebugILCode_INTERFACE_DEFINED__ /* interface ICorDebugILCode */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ typedef struct _CorDebugEHClause { @@ -13188,43 +13195,43 @@ typedef struct _CorDebugEHClause EXTERN_C const IID IID_ICorDebugILCode; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("598D46C2-C877-42A7-89D2-3D0C7F1C1264") ICorDebugILCode : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetEHClauses( + virtual HRESULT STDMETHODCALLTYPE GetEHClauses( /* [in] */ ULONG32 cClauses, /* [out] */ ULONG32 *pcClauses, /* [length_is][size_is][out] */ CorDebugEHClause clauses[ ]) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugILCodeVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILCode * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILCode * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILCode * This); - - HRESULT ( STDMETHODCALLTYPE *GetEHClauses )( + + HRESULT ( STDMETHODCALLTYPE *GetEHClauses )( ICorDebugILCode * This, /* [in] */ ULONG32 cClauses, /* [out] */ ULONG32 *pcClauses, /* [length_is][size_is][out] */ CorDebugEHClause clauses[ ]); - + END_INTERFACE } ICorDebugILCodeVtbl; @@ -13233,23 +13240,23 @@ EXTERN_C const IID IID_ICorDebugILCode; CONST_VTBL struct ICorDebugILCodeVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugILCode_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugILCode_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugILCode_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugILCode_GetEHClauses(This,cClauses,pcClauses,clauses) \ - ( (This)->lpVtbl -> GetEHClauses(This,cClauses,pcClauses,clauses) ) + ( (This)->lpVtbl -> GetEHClauses(This,cClauses,pcClauses,clauses) ) #endif /* COBJMACROS */ @@ -13266,56 +13273,56 @@ EXTERN_C const IID IID_ICorDebugILCode; #define __ICorDebugILCode2_INTERFACE_DEFINED__ /* interface ICorDebugILCode2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugILCode2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("46586093-D3F5-4DB6-ACDB-955BCE228C15") ICorDebugILCode2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetLocalVarSigToken( + virtual HRESULT STDMETHODCALLTYPE GetLocalVarSigToken( /* [out] */ mdSignature *pmdSig) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetInstrumentedILMap( + + virtual HRESULT STDMETHODCALLTYPE GetInstrumentedILMap( /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ COR_IL_MAP map[ ]) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugILCode2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILCode2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILCode2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILCode2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetLocalVarSigToken )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalVarSigToken )( ICorDebugILCode2 * This, /* [out] */ mdSignature *pmdSig); - - HRESULT ( STDMETHODCALLTYPE *GetInstrumentedILMap )( + + HRESULT ( STDMETHODCALLTYPE *GetInstrumentedILMap )( ICorDebugILCode2 * This, /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ COR_IL_MAP map[ ]); - + END_INTERFACE } ICorDebugILCode2Vtbl; @@ -13324,26 +13331,26 @@ EXTERN_C const IID IID_ICorDebugILCode2; CONST_VTBL struct ICorDebugILCode2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugILCode2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugILCode2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugILCode2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugILCode2_GetLocalVarSigToken(This,pmdSig) \ - ( (This)->lpVtbl -> GetLocalVarSigToken(This,pmdSig) ) + ( (This)->lpVtbl -> GetLocalVarSigToken(This,pmdSig) ) #define ICorDebugILCode2_GetInstrumentedILMap(This,cMap,pcMap,map) \ - ( (This)->lpVtbl -> GetInstrumentedILMap(This,cMap,pcMap,map) ) + ( (This)->lpVtbl -> GetInstrumentedILMap(This,cMap,pcMap,map) ) #endif /* COBJMACROS */ @@ -13360,63 +13367,63 @@ EXTERN_C const IID IID_ICorDebugILCode2; #define __ICorDebugClass_INTERFACE_DEFINED__ /* interface ICorDebugClass */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugClass; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF5-8A68-11d2-983C-0000F808342D") ICorDebugClass : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetModule( + virtual HRESULT STDMETHODCALLTYPE GetModule( /* [out] */ ICorDebugModule **pModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetToken( + + virtual HRESULT STDMETHODCALLTYPE GetToken( /* [out] */ mdTypeDef *pTypeDef) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStaticFieldValue( + + virtual HRESULT STDMETHODCALLTYPE GetStaticFieldValue( /* [in] */ mdFieldDef fieldDef, /* [in] */ ICorDebugFrame *pFrame, /* [out] */ ICorDebugValue **ppValue) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugClassVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugClass * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugClass * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugClass * This); - - HRESULT ( STDMETHODCALLTYPE *GetModule )( + + HRESULT ( STDMETHODCALLTYPE *GetModule )( ICorDebugClass * This, /* [out] */ ICorDebugModule **pModule); - - HRESULT ( STDMETHODCALLTYPE *GetToken )( + + HRESULT ( STDMETHODCALLTYPE *GetToken )( ICorDebugClass * This, /* [out] */ mdTypeDef *pTypeDef); - - HRESULT ( STDMETHODCALLTYPE *GetStaticFieldValue )( + + HRESULT ( STDMETHODCALLTYPE *GetStaticFieldValue )( ICorDebugClass * This, /* [in] */ mdFieldDef fieldDef, /* [in] */ ICorDebugFrame *pFrame, /* [out] */ ICorDebugValue **ppValue); - + END_INTERFACE } ICorDebugClassVtbl; @@ -13425,29 +13432,29 @@ EXTERN_C const IID IID_ICorDebugClass; CONST_VTBL struct ICorDebugClassVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugClass_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugClass_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugClass_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugClass_GetModule(This,pModule) \ - ( (This)->lpVtbl -> GetModule(This,pModule) ) + ( (This)->lpVtbl -> GetModule(This,pModule) ) #define ICorDebugClass_GetToken(This,pTypeDef) \ - ( (This)->lpVtbl -> GetToken(This,pTypeDef) ) + ( (This)->lpVtbl -> GetToken(This,pTypeDef) ) #define ICorDebugClass_GetStaticFieldValue(This,fieldDef,pFrame,ppValue) \ - ( (This)->lpVtbl -> GetStaticFieldValue(This,fieldDef,pFrame,ppValue) ) + ( (This)->lpVtbl -> GetStaticFieldValue(This,fieldDef,pFrame,ppValue) ) #endif /* COBJMACROS */ @@ -13464,58 +13471,58 @@ EXTERN_C const IID IID_ICorDebugClass; #define __ICorDebugClass2_INTERFACE_DEFINED__ /* interface ICorDebugClass2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugClass2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("B008EA8D-7AB1-43f7-BB20-FBB5A04038AE") ICorDebugClass2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetParameterizedType( + virtual HRESULT STDMETHODCALLTYPE GetParameterizedType( /* [in] */ CorElementType elementType, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [out] */ ICorDebugType **ppType) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( + + virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( /* [in] */ BOOL bIsJustMyCode) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugClass2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugClass2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugClass2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugClass2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetParameterizedType )( + + HRESULT ( STDMETHODCALLTYPE *GetParameterizedType )( ICorDebugClass2 * This, /* [in] */ CorElementType elementType, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [out] */ ICorDebugType **ppType); - - HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( + + HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( ICorDebugClass2 * This, /* [in] */ BOOL bIsJustMyCode); - + END_INTERFACE } ICorDebugClass2Vtbl; @@ -13524,26 +13531,26 @@ EXTERN_C const IID IID_ICorDebugClass2; CONST_VTBL struct ICorDebugClass2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugClass2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugClass2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugClass2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugClass2_GetParameterizedType(This,elementType,nTypeArgs,ppTypeArgs,ppType) \ - ( (This)->lpVtbl -> GetParameterizedType(This,elementType,nTypeArgs,ppTypeArgs,ppType) ) + ( (This)->lpVtbl -> GetParameterizedType(This,elementType,nTypeArgs,ppTypeArgs,ppType) ) #define ICorDebugClass2_SetJMCStatus(This,bIsJustMyCode) \ - ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode) ) + ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode) ) #endif /* COBJMACROS */ @@ -13560,126 +13567,126 @@ EXTERN_C const IID IID_ICorDebugClass2; #define __ICorDebugEval_INTERFACE_DEFINED__ /* interface ICorDebugEval */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugEval; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF6-8A68-11d2-983C-0000F808342D") ICorDebugEval : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CallFunction( + virtual HRESULT STDMETHODCALLTYPE CallFunction( /* [in] */ ICorDebugFunction *pFunction, /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewObject( + + virtual HRESULT STDMETHODCALLTYPE NewObject( /* [in] */ ICorDebugFunction *pConstructor, /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewObjectNoConstructor( + + virtual HRESULT STDMETHODCALLTYPE NewObjectNoConstructor( /* [in] */ ICorDebugClass *pClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewString( + + virtual HRESULT STDMETHODCALLTYPE NewString( /* [in] */ LPCWSTR string) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewArray( + + virtual HRESULT STDMETHODCALLTYPE NewArray( /* [in] */ CorElementType elementType, /* [in] */ ICorDebugClass *pElementClass, /* [in] */ ULONG32 rank, /* [size_is][in] */ ULONG32 dims[ ], /* [size_is][in] */ ULONG32 lowBounds[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsActive( + + virtual HRESULT STDMETHODCALLTYPE IsActive( /* [out] */ BOOL *pbActive) = 0; - + virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetResult( + + virtual HRESULT STDMETHODCALLTYPE GetResult( /* [out] */ ICorDebugValue **ppResult) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThread( + + virtual HRESULT STDMETHODCALLTYPE GetThread( /* [out] */ ICorDebugThread **ppThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateValue( + + virtual HRESULT STDMETHODCALLTYPE CreateValue( /* [in] */ CorElementType elementType, /* [in] */ ICorDebugClass *pElementClass, /* [out] */ ICorDebugValue **ppValue) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugEvalVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugEval * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugEval * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugEval * This); - - HRESULT ( STDMETHODCALLTYPE *CallFunction )( + + HRESULT ( STDMETHODCALLTYPE *CallFunction )( ICorDebugEval * This, /* [in] */ ICorDebugFunction *pFunction, /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]); - - HRESULT ( STDMETHODCALLTYPE *NewObject )( + + HRESULT ( STDMETHODCALLTYPE *NewObject )( ICorDebugEval * This, /* [in] */ ICorDebugFunction *pConstructor, /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]); - - HRESULT ( STDMETHODCALLTYPE *NewObjectNoConstructor )( + + HRESULT ( STDMETHODCALLTYPE *NewObjectNoConstructor )( ICorDebugEval * This, /* [in] */ ICorDebugClass *pClass); - - HRESULT ( STDMETHODCALLTYPE *NewString )( + + HRESULT ( STDMETHODCALLTYPE *NewString )( ICorDebugEval * This, /* [in] */ LPCWSTR string); - - HRESULT ( STDMETHODCALLTYPE *NewArray )( + + HRESULT ( STDMETHODCALLTYPE *NewArray )( ICorDebugEval * This, /* [in] */ CorElementType elementType, /* [in] */ ICorDebugClass *pElementClass, /* [in] */ ULONG32 rank, /* [size_is][in] */ ULONG32 dims[ ], /* [size_is][in] */ ULONG32 lowBounds[ ]); - - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugEval * This, /* [out] */ BOOL *pbActive); - - HRESULT ( STDMETHODCALLTYPE *Abort )( + + HRESULT ( STDMETHODCALLTYPE *Abort )( ICorDebugEval * This); - - HRESULT ( STDMETHODCALLTYPE *GetResult )( + + HRESULT ( STDMETHODCALLTYPE *GetResult )( ICorDebugEval * This, /* [out] */ ICorDebugValue **ppResult); - - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugEval * This, /* [out] */ ICorDebugThread **ppThread); - - HRESULT ( STDMETHODCALLTYPE *CreateValue )( + + HRESULT ( STDMETHODCALLTYPE *CreateValue )( ICorDebugEval * This, /* [in] */ CorElementType elementType, /* [in] */ ICorDebugClass *pElementClass, /* [out] */ ICorDebugValue **ppValue); - + END_INTERFACE } ICorDebugEvalVtbl; @@ -13688,50 +13695,50 @@ EXTERN_C const IID IID_ICorDebugEval; CONST_VTBL struct ICorDebugEvalVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugEval_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugEval_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugEval_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugEval_CallFunction(This,pFunction,nArgs,ppArgs) \ - ( (This)->lpVtbl -> CallFunction(This,pFunction,nArgs,ppArgs) ) + ( (This)->lpVtbl -> CallFunction(This,pFunction,nArgs,ppArgs) ) #define ICorDebugEval_NewObject(This,pConstructor,nArgs,ppArgs) \ - ( (This)->lpVtbl -> NewObject(This,pConstructor,nArgs,ppArgs) ) + ( (This)->lpVtbl -> NewObject(This,pConstructor,nArgs,ppArgs) ) #define ICorDebugEval_NewObjectNoConstructor(This,pClass) \ - ( (This)->lpVtbl -> NewObjectNoConstructor(This,pClass) ) + ( (This)->lpVtbl -> NewObjectNoConstructor(This,pClass) ) #define ICorDebugEval_NewString(This,string) \ - ( (This)->lpVtbl -> NewString(This,string) ) + ( (This)->lpVtbl -> NewString(This,string) ) #define ICorDebugEval_NewArray(This,elementType,pElementClass,rank,dims,lowBounds) \ - ( (This)->lpVtbl -> NewArray(This,elementType,pElementClass,rank,dims,lowBounds) ) + ( (This)->lpVtbl -> NewArray(This,elementType,pElementClass,rank,dims,lowBounds) ) #define ICorDebugEval_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) + ( (This)->lpVtbl -> IsActive(This,pbActive) ) #define ICorDebugEval_Abort(This) \ - ( (This)->lpVtbl -> Abort(This) ) + ( (This)->lpVtbl -> Abort(This) ) #define ICorDebugEval_GetResult(This,ppResult) \ - ( (This)->lpVtbl -> GetResult(This,ppResult) ) + ( (This)->lpVtbl -> GetResult(This,ppResult) ) #define ICorDebugEval_GetThread(This,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,ppThread) ) + ( (This)->lpVtbl -> GetThread(This,ppThread) ) #define ICorDebugEval_CreateValue(This,elementType,pElementClass,ppValue) \ - ( (This)->lpVtbl -> CreateValue(This,elementType,pElementClass,ppValue) ) + ( (This)->lpVtbl -> CreateValue(This,elementType,pElementClass,ppValue) ) #endif /* COBJMACROS */ @@ -13748,115 +13755,115 @@ EXTERN_C const IID IID_ICorDebugEval; #define __ICorDebugEval2_INTERFACE_DEFINED__ /* interface ICorDebugEval2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugEval2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("FB0D9CE7-BE66-4683-9D32-A42A04E2FD91") ICorDebugEval2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CallParameterizedFunction( + virtual HRESULT STDMETHODCALLTYPE CallParameterizedFunction( /* [in] */ ICorDebugFunction *pFunction, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateValueForType( + + virtual HRESULT STDMETHODCALLTYPE CreateValueForType( /* [in] */ ICorDebugType *pType, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewParameterizedObject( + + virtual HRESULT STDMETHODCALLTYPE NewParameterizedObject( /* [in] */ ICorDebugFunction *pConstructor, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewParameterizedObjectNoConstructor( + + virtual HRESULT STDMETHODCALLTYPE NewParameterizedObjectNoConstructor( /* [in] */ ICorDebugClass *pClass, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewParameterizedArray( + + virtual HRESULT STDMETHODCALLTYPE NewParameterizedArray( /* [in] */ ICorDebugType *pElementType, /* [in] */ ULONG32 rank, /* [size_is][in] */ ULONG32 dims[ ], /* [size_is][in] */ ULONG32 lowBounds[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewStringWithLength( + + virtual HRESULT STDMETHODCALLTYPE NewStringWithLength( /* [in] */ LPCWSTR string, /* [in] */ UINT uiLength) = 0; - + virtual HRESULT STDMETHODCALLTYPE RudeAbort( void) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugEval2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugEval2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugEval2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugEval2 * This); - - HRESULT ( STDMETHODCALLTYPE *CallParameterizedFunction )( + + HRESULT ( STDMETHODCALLTYPE *CallParameterizedFunction )( ICorDebugEval2 * This, /* [in] */ ICorDebugFunction *pFunction, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]); - - HRESULT ( STDMETHODCALLTYPE *CreateValueForType )( + + HRESULT ( STDMETHODCALLTYPE *CreateValueForType )( ICorDebugEval2 * This, /* [in] */ ICorDebugType *pType, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *NewParameterizedObject )( + + HRESULT ( STDMETHODCALLTYPE *NewParameterizedObject )( ICorDebugEval2 * This, /* [in] */ ICorDebugFunction *pConstructor, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]); - - HRESULT ( STDMETHODCALLTYPE *NewParameterizedObjectNoConstructor )( + + HRESULT ( STDMETHODCALLTYPE *NewParameterizedObjectNoConstructor )( ICorDebugEval2 * This, /* [in] */ ICorDebugClass *pClass, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ]); - - HRESULT ( STDMETHODCALLTYPE *NewParameterizedArray )( + + HRESULT ( STDMETHODCALLTYPE *NewParameterizedArray )( ICorDebugEval2 * This, /* [in] */ ICorDebugType *pElementType, /* [in] */ ULONG32 rank, /* [size_is][in] */ ULONG32 dims[ ], /* [size_is][in] */ ULONG32 lowBounds[ ]); - - HRESULT ( STDMETHODCALLTYPE *NewStringWithLength )( + + HRESULT ( STDMETHODCALLTYPE *NewStringWithLength )( ICorDebugEval2 * This, /* [in] */ LPCWSTR string, /* [in] */ UINT uiLength); - - HRESULT ( STDMETHODCALLTYPE *RudeAbort )( + + HRESULT ( STDMETHODCALLTYPE *RudeAbort )( ICorDebugEval2 * This); - + END_INTERFACE } ICorDebugEval2Vtbl; @@ -13865,41 +13872,41 @@ EXTERN_C const IID IID_ICorDebugEval2; CONST_VTBL struct ICorDebugEval2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugEval2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugEval2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugEval2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugEval2_CallParameterizedFunction(This,pFunction,nTypeArgs,ppTypeArgs,nArgs,ppArgs) \ - ( (This)->lpVtbl -> CallParameterizedFunction(This,pFunction,nTypeArgs,ppTypeArgs,nArgs,ppArgs) ) + ( (This)->lpVtbl -> CallParameterizedFunction(This,pFunction,nTypeArgs,ppTypeArgs,nArgs,ppArgs) ) #define ICorDebugEval2_CreateValueForType(This,pType,ppValue) \ - ( (This)->lpVtbl -> CreateValueForType(This,pType,ppValue) ) + ( (This)->lpVtbl -> CreateValueForType(This,pType,ppValue) ) #define ICorDebugEval2_NewParameterizedObject(This,pConstructor,nTypeArgs,ppTypeArgs,nArgs,ppArgs) \ - ( (This)->lpVtbl -> NewParameterizedObject(This,pConstructor,nTypeArgs,ppTypeArgs,nArgs,ppArgs) ) + ( (This)->lpVtbl -> NewParameterizedObject(This,pConstructor,nTypeArgs,ppTypeArgs,nArgs,ppArgs) ) #define ICorDebugEval2_NewParameterizedObjectNoConstructor(This,pClass,nTypeArgs,ppTypeArgs) \ - ( (This)->lpVtbl -> NewParameterizedObjectNoConstructor(This,pClass,nTypeArgs,ppTypeArgs) ) + ( (This)->lpVtbl -> NewParameterizedObjectNoConstructor(This,pClass,nTypeArgs,ppTypeArgs) ) #define ICorDebugEval2_NewParameterizedArray(This,pElementType,rank,dims,lowBounds) \ - ( (This)->lpVtbl -> NewParameterizedArray(This,pElementType,rank,dims,lowBounds) ) + ( (This)->lpVtbl -> NewParameterizedArray(This,pElementType,rank,dims,lowBounds) ) #define ICorDebugEval2_NewStringWithLength(This,string,uiLength) \ - ( (This)->lpVtbl -> NewStringWithLength(This,string,uiLength) ) + ( (This)->lpVtbl -> NewStringWithLength(This,string,uiLength) ) #define ICorDebugEval2_RudeAbort(This) \ - ( (This)->lpVtbl -> RudeAbort(This) ) + ( (This)->lpVtbl -> RudeAbort(This) ) #endif /* COBJMACROS */ @@ -13916,66 +13923,66 @@ EXTERN_C const IID IID_ICorDebugEval2; #define __ICorDebugValue_INTERFACE_DEFINED__ /* interface ICorDebugValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF7-8A68-11d2-983C-0000F808342D") ICorDebugValue : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetType( + virtual HRESULT STDMETHODCALLTYPE GetType( /* [out] */ CorElementType *pType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAddress( + + virtual HRESULT STDMETHODCALLTYPE GetAddress( /* [out] */ CORDB_ADDRESS *pAddress) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - + END_INTERFACE } ICorDebugValueVtbl; @@ -13984,32 +13991,32 @@ EXTERN_C const IID IID_ICorDebugValue; CONST_VTBL struct ICorDebugValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) + ( (This)->lpVtbl -> GetType(This,pType) ) #define ICorDebugValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) + ( (This)->lpVtbl -> GetSize(This,pSize) ) #define ICorDebugValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) #define ICorDebugValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) #endif /* COBJMACROS */ @@ -14026,45 +14033,45 @@ EXTERN_C const IID IID_ICorDebugValue; #define __ICorDebugValue2_INTERFACE_DEFINED__ /* interface ICorDebugValue2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugValue2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("5E0B54E7-D88A-4626-9420-A691E0A78B49") ICorDebugValue2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetExactType( + virtual HRESULT STDMETHODCALLTYPE GetExactType( /* [out] */ ICorDebugType **ppType) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugValue2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugValue2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugValue2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugValue2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetExactType )( + + HRESULT ( STDMETHODCALLTYPE *GetExactType )( ICorDebugValue2 * This, /* [out] */ ICorDebugType **ppType); - + END_INTERFACE } ICorDebugValue2Vtbl; @@ -14073,23 +14080,23 @@ EXTERN_C const IID IID_ICorDebugValue2; CONST_VTBL struct ICorDebugValue2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugValue2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugValue2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugValue2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugValue2_GetExactType(This,ppType) \ - ( (This)->lpVtbl -> GetExactType(This,ppType) ) + ( (This)->lpVtbl -> GetExactType(This,ppType) ) #endif /* COBJMACROS */ @@ -14106,45 +14113,45 @@ EXTERN_C const IID IID_ICorDebugValue2; #define __ICorDebugValue3_INTERFACE_DEFINED__ /* interface ICorDebugValue3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugValue3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("565005FC-0F8A-4F3E-9EDB-83102B156595") ICorDebugValue3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetSize64( + virtual HRESULT STDMETHODCALLTYPE GetSize64( /* [out] */ ULONG64 *pSize) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugValue3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugValue3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugValue3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugValue3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetSize64 )( + + HRESULT ( STDMETHODCALLTYPE *GetSize64 )( ICorDebugValue3 * This, /* [out] */ ULONG64 *pSize); - + END_INTERFACE } ICorDebugValue3Vtbl; @@ -14153,23 +14160,23 @@ EXTERN_C const IID IID_ICorDebugValue3; CONST_VTBL struct ICorDebugValue3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugValue3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugValue3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugValue3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugValue3_GetSize64(This,pSize) \ - ( (This)->lpVtbl -> GetSize64(This,pSize) ) + ( (This)->lpVtbl -> GetSize64(This,pSize) ) #endif /* COBJMACROS */ @@ -14186,68 +14193,68 @@ EXTERN_C const IID IID_ICorDebugValue3; #define __ICorDebugGenericValue_INTERFACE_DEFINED__ /* interface ICorDebugGenericValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugGenericValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF8-8A68-11d2-983C-0000F808342D") ICorDebugGenericValue : public ICorDebugValue { public: - virtual HRESULT STDMETHODCALLTYPE GetValue( + virtual HRESULT STDMETHODCALLTYPE GetValue( /* [out] */ void *pTo) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetValue( + + virtual HRESULT STDMETHODCALLTYPE SetValue( /* [in] */ void *pFrom) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugGenericValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugGenericValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugGenericValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugGenericValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugGenericValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugGenericValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugGenericValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugGenericValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetValue )( + + HRESULT ( STDMETHODCALLTYPE *GetValue )( ICorDebugGenericValue * This, /* [out] */ void *pTo); - - HRESULT ( STDMETHODCALLTYPE *SetValue )( + + HRESULT ( STDMETHODCALLTYPE *SetValue )( ICorDebugGenericValue * This, /* [in] */ void *pFrom); - + END_INTERFACE } ICorDebugGenericValueVtbl; @@ -14256,39 +14263,39 @@ EXTERN_C const IID IID_ICorDebugGenericValue; CONST_VTBL struct ICorDebugGenericValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugGenericValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugGenericValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugGenericValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugGenericValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) + ( (This)->lpVtbl -> GetType(This,pType) ) #define ICorDebugGenericValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) + ( (This)->lpVtbl -> GetSize(This,pSize) ) #define ICorDebugGenericValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) #define ICorDebugGenericValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) #define ICorDebugGenericValue_GetValue(This,pTo) \ - ( (This)->lpVtbl -> GetValue(This,pTo) ) + ( (This)->lpVtbl -> GetValue(This,pTo) ) #define ICorDebugGenericValue_SetValue(This,pFrom) \ - ( (This)->lpVtbl -> SetValue(This,pFrom) ) + ( (This)->lpVtbl -> SetValue(This,pFrom) ) #endif /* COBJMACROS */ @@ -14305,89 +14312,89 @@ EXTERN_C const IID IID_ICorDebugGenericValue; #define __ICorDebugReferenceValue_INTERFACE_DEFINED__ /* interface ICorDebugReferenceValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugReferenceValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF9-8A68-11d2-983C-0000F808342D") ICorDebugReferenceValue : public ICorDebugValue { public: - virtual HRESULT STDMETHODCALLTYPE IsNull( + virtual HRESULT STDMETHODCALLTYPE IsNull( /* [out] */ BOOL *pbNull) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetValue( + + virtual HRESULT STDMETHODCALLTYPE GetValue( /* [out] */ CORDB_ADDRESS *pValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetValue( + + virtual HRESULT STDMETHODCALLTYPE SetValue( /* [in] */ CORDB_ADDRESS value) = 0; - - virtual HRESULT STDMETHODCALLTYPE Dereference( + + virtual HRESULT STDMETHODCALLTYPE Dereference( /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE DereferenceStrong( + + virtual HRESULT STDMETHODCALLTYPE DereferenceStrong( /* [out] */ ICorDebugValue **ppValue) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugReferenceValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugReferenceValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugReferenceValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugReferenceValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugReferenceValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugReferenceValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugReferenceValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugReferenceValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *IsNull )( + + HRESULT ( STDMETHODCALLTYPE *IsNull )( ICorDebugReferenceValue * This, /* [out] */ BOOL *pbNull); - - HRESULT ( STDMETHODCALLTYPE *GetValue )( + + HRESULT ( STDMETHODCALLTYPE *GetValue )( ICorDebugReferenceValue * This, /* [out] */ CORDB_ADDRESS *pValue); - - HRESULT ( STDMETHODCALLTYPE *SetValue )( + + HRESULT ( STDMETHODCALLTYPE *SetValue )( ICorDebugReferenceValue * This, /* [in] */ CORDB_ADDRESS value); - - HRESULT ( STDMETHODCALLTYPE *Dereference )( + + HRESULT ( STDMETHODCALLTYPE *Dereference )( ICorDebugReferenceValue * This, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *DereferenceStrong )( + + HRESULT ( STDMETHODCALLTYPE *DereferenceStrong )( ICorDebugReferenceValue * This, /* [out] */ ICorDebugValue **ppValue); - + END_INTERFACE } ICorDebugReferenceValueVtbl; @@ -14396,48 +14403,48 @@ EXTERN_C const IID IID_ICorDebugReferenceValue; CONST_VTBL struct ICorDebugReferenceValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugReferenceValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugReferenceValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugReferenceValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugReferenceValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) + ( (This)->lpVtbl -> GetType(This,pType) ) #define ICorDebugReferenceValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) + ( (This)->lpVtbl -> GetSize(This,pSize) ) #define ICorDebugReferenceValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) #define ICorDebugReferenceValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) #define ICorDebugReferenceValue_IsNull(This,pbNull) \ - ( (This)->lpVtbl -> IsNull(This,pbNull) ) + ( (This)->lpVtbl -> IsNull(This,pbNull) ) #define ICorDebugReferenceValue_GetValue(This,pValue) \ - ( (This)->lpVtbl -> GetValue(This,pValue) ) + ( (This)->lpVtbl -> GetValue(This,pValue) ) #define ICorDebugReferenceValue_SetValue(This,value) \ - ( (This)->lpVtbl -> SetValue(This,value) ) + ( (This)->lpVtbl -> SetValue(This,value) ) #define ICorDebugReferenceValue_Dereference(This,ppValue) \ - ( (This)->lpVtbl -> Dereference(This,ppValue) ) + ( (This)->lpVtbl -> Dereference(This,ppValue) ) #define ICorDebugReferenceValue_DereferenceStrong(This,ppValue) \ - ( (This)->lpVtbl -> DereferenceStrong(This,ppValue) ) + ( (This)->lpVtbl -> DereferenceStrong(This,ppValue) ) #endif /* COBJMACROS */ @@ -14454,68 +14461,68 @@ EXTERN_C const IID IID_ICorDebugReferenceValue; #define __ICorDebugHeapValue_INTERFACE_DEFINED__ /* interface ICorDebugHeapValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAFA-8A68-11d2-983C-0000F808342D") ICorDebugHeapValue : public ICorDebugValue { public: - virtual HRESULT STDMETHODCALLTYPE IsValid( + virtual HRESULT STDMETHODCALLTYPE IsValid( /* [out] */ BOOL *pbValid) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateRelocBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE CreateRelocBreakpoint( /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugHeapValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugHeapValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugHeapValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugHeapValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugHeapValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *IsValid )( + + HRESULT ( STDMETHODCALLTYPE *IsValid )( ICorDebugHeapValue * This, /* [out] */ BOOL *pbValid); - - HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( ICorDebugHeapValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - + END_INTERFACE } ICorDebugHeapValueVtbl; @@ -14524,39 +14531,39 @@ EXTERN_C const IID IID_ICorDebugHeapValue; CONST_VTBL struct ICorDebugHeapValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugHeapValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugHeapValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugHeapValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugHeapValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) + ( (This)->lpVtbl -> GetType(This,pType) ) #define ICorDebugHeapValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) + ( (This)->lpVtbl -> GetSize(This,pSize) ) #define ICorDebugHeapValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) #define ICorDebugHeapValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) #define ICorDebugHeapValue_IsValid(This,pbValid) \ - ( (This)->lpVtbl -> IsValid(This,pbValid) ) + ( (This)->lpVtbl -> IsValid(This,pbValid) ) #define ICorDebugHeapValue_CreateRelocBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) #endif /* COBJMACROS */ @@ -14573,47 +14580,47 @@ EXTERN_C const IID IID_ICorDebugHeapValue; #define __ICorDebugHeapValue2_INTERFACE_DEFINED__ /* interface ICorDebugHeapValue2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapValue2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("E3AC4D6C-9CB7-43e6-96CC-B21540E5083C") ICorDebugHeapValue2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreateHandle( + virtual HRESULT STDMETHODCALLTYPE CreateHandle( /* [in] */ CorDebugHandleType type, /* [out] */ ICorDebugHandleValue **ppHandle) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugHeapValue2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapValue2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapValue2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapValue2 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateHandle )( + + HRESULT ( STDMETHODCALLTYPE *CreateHandle )( ICorDebugHeapValue2 * This, /* [in] */ CorDebugHandleType type, /* [out] */ ICorDebugHandleValue **ppHandle); - + END_INTERFACE } ICorDebugHeapValue2Vtbl; @@ -14622,23 +14629,23 @@ EXTERN_C const IID IID_ICorDebugHeapValue2; CONST_VTBL struct ICorDebugHeapValue2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugHeapValue2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugHeapValue2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugHeapValue2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugHeapValue2_CreateHandle(This,type,ppHandle) \ - ( (This)->lpVtbl -> CreateHandle(This,type,ppHandle) ) + ( (This)->lpVtbl -> CreateHandle(This,type,ppHandle) ) #endif /* COBJMACROS */ @@ -14655,54 +14662,54 @@ EXTERN_C const IID IID_ICorDebugHeapValue2; #define __ICorDebugHeapValue3_INTERFACE_DEFINED__ /* interface ICorDebugHeapValue3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapValue3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("A69ACAD8-2374-46e9-9FF8-B1F14120D296") ICorDebugHeapValue3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetThreadOwningMonitorLock( + virtual HRESULT STDMETHODCALLTYPE GetThreadOwningMonitorLock( /* [out] */ ICorDebugThread **ppThread, /* [out] */ DWORD *pAcquisitionCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMonitorEventWaitList( + + virtual HRESULT STDMETHODCALLTYPE GetMonitorEventWaitList( /* [out] */ ICorDebugThreadEnum **ppThreadEnum) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugHeapValue3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapValue3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapValue3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapValue3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetThreadOwningMonitorLock )( + + HRESULT ( STDMETHODCALLTYPE *GetThreadOwningMonitorLock )( ICorDebugHeapValue3 * This, /* [out] */ ICorDebugThread **ppThread, /* [out] */ DWORD *pAcquisitionCount); - - HRESULT ( STDMETHODCALLTYPE *GetMonitorEventWaitList )( + + HRESULT ( STDMETHODCALLTYPE *GetMonitorEventWaitList )( ICorDebugHeapValue3 * This, /* [out] */ ICorDebugThreadEnum **ppThreadEnum); - + END_INTERFACE } ICorDebugHeapValue3Vtbl; @@ -14711,26 +14718,26 @@ EXTERN_C const IID IID_ICorDebugHeapValue3; CONST_VTBL struct ICorDebugHeapValue3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugHeapValue3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugHeapValue3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugHeapValue3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugHeapValue3_GetThreadOwningMonitorLock(This,ppThread,pAcquisitionCount) \ - ( (This)->lpVtbl -> GetThreadOwningMonitorLock(This,ppThread,pAcquisitionCount) ) + ( (This)->lpVtbl -> GetThreadOwningMonitorLock(This,ppThread,pAcquisitionCount) ) #define ICorDebugHeapValue3_GetMonitorEventWaitList(This,ppThreadEnum) \ - ( (This)->lpVtbl -> GetMonitorEventWaitList(This,ppThreadEnum) ) + ( (This)->lpVtbl -> GetMonitorEventWaitList(This,ppThreadEnum) ) #endif /* COBJMACROS */ @@ -14743,113 +14750,193 @@ EXTERN_C const IID IID_ICorDebugHeapValue3; #endif /* __ICorDebugHeapValue3_INTERFACE_DEFINED__ */ +#ifndef __ICorDebugHeapValue4_INTERFACE_DEFINED__ +#define __ICorDebugHeapValue4_INTERFACE_DEFINED__ + +/* interface ICorDebugHeapValue4 */ +/* [unique][uuid][local][object] */ + + +EXTERN_C const IID IID_ICorDebugHeapValue4; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("B35DD495-A555-463B-9BE9-C55338486BB8") + ICorDebugHeapValue4 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE CreatePinnedHandle( + /* [out] */ ICorDebugHandleValue **ppHandle) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ICorDebugHeapValue4Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ICorDebugHeapValue4 * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ICorDebugHeapValue4 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ICorDebugHeapValue4 * This); + + HRESULT ( STDMETHODCALLTYPE *CreatePinnedHandle )( + ICorDebugHeapValue4 * This, + /* [out] */ ICorDebugHandleValue **ppHandle); + + END_INTERFACE + } ICorDebugHeapValue4Vtbl; + + interface ICorDebugHeapValue4 + { + CONST_VTBL struct ICorDebugHeapValue4Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ICorDebugHeapValue4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ICorDebugHeapValue4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ICorDebugHeapValue4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ICorDebugHeapValue4_CreatePinnedHandle(This,ppHandle) \ + ( (This)->lpVtbl -> CreatePinnedHandle(This,ppHandle) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ICorDebugHeapValue4_INTERFACE_DEFINED__ */ + + #ifndef __ICorDebugObjectValue_INTERFACE_DEFINED__ #define __ICorDebugObjectValue_INTERFACE_DEFINED__ /* interface ICorDebugObjectValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugObjectValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("18AD3D6E-B7D2-11d2-BD04-0000F80849BD") ICorDebugObjectValue : public ICorDebugValue { public: - virtual HRESULT STDMETHODCALLTYPE GetClass( + virtual HRESULT STDMETHODCALLTYPE GetClass( /* [out] */ ICorDebugClass **ppClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFieldValue( + + virtual HRESULT STDMETHODCALLTYPE GetFieldValue( /* [in] */ ICorDebugClass *pClass, /* [in] */ mdFieldDef fieldDef, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVirtualMethod( + + virtual HRESULT STDMETHODCALLTYPE GetVirtualMethod( /* [in] */ mdMemberRef memberRef, /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetContext( + + virtual HRESULT STDMETHODCALLTYPE GetContext( /* [out] */ ICorDebugContext **ppContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsValueClass( + + virtual HRESULT STDMETHODCALLTYPE IsValueClass( /* [out] */ BOOL *pbIsValueClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetManagedCopy( + + virtual HRESULT STDMETHODCALLTYPE GetManagedCopy( /* [out] */ IUnknown **ppObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFromManagedCopy( + + virtual HRESULT STDMETHODCALLTYPE SetFromManagedCopy( /* [in] */ IUnknown *pObject) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugObjectValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugObjectValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugObjectValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugObjectValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugObjectValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugObjectValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugObjectValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugObjectValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetClass )( + + HRESULT ( STDMETHODCALLTYPE *GetClass )( ICorDebugObjectValue * This, /* [out] */ ICorDebugClass **ppClass); - - HRESULT ( STDMETHODCALLTYPE *GetFieldValue )( + + HRESULT ( STDMETHODCALLTYPE *GetFieldValue )( ICorDebugObjectValue * This, /* [in] */ ICorDebugClass *pClass, /* [in] */ mdFieldDef fieldDef, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetVirtualMethod )( + + HRESULT ( STDMETHODCALLTYPE *GetVirtualMethod )( ICorDebugObjectValue * This, /* [in] */ mdMemberRef memberRef, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetContext )( + + HRESULT ( STDMETHODCALLTYPE *GetContext )( ICorDebugObjectValue * This, /* [out] */ ICorDebugContext **ppContext); - - HRESULT ( STDMETHODCALLTYPE *IsValueClass )( + + HRESULT ( STDMETHODCALLTYPE *IsValueClass )( ICorDebugObjectValue * This, /* [out] */ BOOL *pbIsValueClass); - - HRESULT ( STDMETHODCALLTYPE *GetManagedCopy )( + + HRESULT ( STDMETHODCALLTYPE *GetManagedCopy )( ICorDebugObjectValue * This, /* [out] */ IUnknown **ppObject); - - HRESULT ( STDMETHODCALLTYPE *SetFromManagedCopy )( + + HRESULT ( STDMETHODCALLTYPE *SetFromManagedCopy )( ICorDebugObjectValue * This, /* [in] */ IUnknown *pObject); - + END_INTERFACE } ICorDebugObjectValueVtbl; @@ -14858,54 +14945,54 @@ EXTERN_C const IID IID_ICorDebugObjectValue; CONST_VTBL struct ICorDebugObjectValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugObjectValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugObjectValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugObjectValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugObjectValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) + ( (This)->lpVtbl -> GetType(This,pType) ) #define ICorDebugObjectValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) + ( (This)->lpVtbl -> GetSize(This,pSize) ) #define ICorDebugObjectValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) #define ICorDebugObjectValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) #define ICorDebugObjectValue_GetClass(This,ppClass) \ - ( (This)->lpVtbl -> GetClass(This,ppClass) ) + ( (This)->lpVtbl -> GetClass(This,ppClass) ) #define ICorDebugObjectValue_GetFieldValue(This,pClass,fieldDef,ppValue) \ - ( (This)->lpVtbl -> GetFieldValue(This,pClass,fieldDef,ppValue) ) + ( (This)->lpVtbl -> GetFieldValue(This,pClass,fieldDef,ppValue) ) #define ICorDebugObjectValue_GetVirtualMethod(This,memberRef,ppFunction) \ - ( (This)->lpVtbl -> GetVirtualMethod(This,memberRef,ppFunction) ) + ( (This)->lpVtbl -> GetVirtualMethod(This,memberRef,ppFunction) ) #define ICorDebugObjectValue_GetContext(This,ppContext) \ - ( (This)->lpVtbl -> GetContext(This,ppContext) ) + ( (This)->lpVtbl -> GetContext(This,ppContext) ) #define ICorDebugObjectValue_IsValueClass(This,pbIsValueClass) \ - ( (This)->lpVtbl -> IsValueClass(This,pbIsValueClass) ) + ( (This)->lpVtbl -> IsValueClass(This,pbIsValueClass) ) #define ICorDebugObjectValue_GetManagedCopy(This,ppObject) \ - ( (This)->lpVtbl -> GetManagedCopy(This,ppObject) ) + ( (This)->lpVtbl -> GetManagedCopy(This,ppObject) ) #define ICorDebugObjectValue_SetFromManagedCopy(This,pObject) \ - ( (This)->lpVtbl -> SetFromManagedCopy(This,pObject) ) + ( (This)->lpVtbl -> SetFromManagedCopy(This,pObject) ) #endif /* COBJMACROS */ @@ -14922,49 +15009,49 @@ EXTERN_C const IID IID_ICorDebugObjectValue; #define __ICorDebugObjectValue2_INTERFACE_DEFINED__ /* interface ICorDebugObjectValue2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugObjectValue2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("49E4A320-4A9B-4eca-B105-229FB7D5009F") ICorDebugObjectValue2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetVirtualMethodAndType( + virtual HRESULT STDMETHODCALLTYPE GetVirtualMethodAndType( /* [in] */ mdMemberRef memberRef, /* [out] */ ICorDebugFunction **ppFunction, /* [out] */ ICorDebugType **ppType) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugObjectValue2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugObjectValue2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugObjectValue2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugObjectValue2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetVirtualMethodAndType )( + + HRESULT ( STDMETHODCALLTYPE *GetVirtualMethodAndType )( ICorDebugObjectValue2 * This, /* [in] */ mdMemberRef memberRef, /* [out] */ ICorDebugFunction **ppFunction, /* [out] */ ICorDebugType **ppType); - + END_INTERFACE } ICorDebugObjectValue2Vtbl; @@ -14973,23 +15060,23 @@ EXTERN_C const IID IID_ICorDebugObjectValue2; CONST_VTBL struct ICorDebugObjectValue2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugObjectValue2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugObjectValue2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugObjectValue2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugObjectValue2_GetVirtualMethodAndType(This,memberRef,ppFunction,ppType) \ - ( (This)->lpVtbl -> GetVirtualMethodAndType(This,memberRef,ppFunction,ppType) ) + ( (This)->lpVtbl -> GetVirtualMethodAndType(This,memberRef,ppFunction,ppType) ) #endif /* COBJMACROS */ @@ -15006,52 +15093,52 @@ EXTERN_C const IID IID_ICorDebugObjectValue2; #define __ICorDebugDelegateObjectValue_INTERFACE_DEFINED__ /* interface ICorDebugDelegateObjectValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugDelegateObjectValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3AF70CC7-6047-47F6-A5C5-090A1A622638") ICorDebugDelegateObjectValue : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetTarget( + virtual HRESULT STDMETHODCALLTYPE GetTarget( /* [out] */ ICorDebugReferenceValue **ppObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunction( + + virtual HRESULT STDMETHODCALLTYPE GetFunction( /* [out] */ ICorDebugFunction **ppFunction) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugDelegateObjectValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDelegateObjectValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDelegateObjectValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDelegateObjectValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetTarget )( + + HRESULT ( STDMETHODCALLTYPE *GetTarget )( ICorDebugDelegateObjectValue * This, /* [out] */ ICorDebugReferenceValue **ppObject); - - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugDelegateObjectValue * This, /* [out] */ ICorDebugFunction **ppFunction); - + END_INTERFACE } ICorDebugDelegateObjectValueVtbl; @@ -15060,26 +15147,26 @@ EXTERN_C const IID IID_ICorDebugDelegateObjectValue; CONST_VTBL struct ICorDebugDelegateObjectValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugDelegateObjectValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugDelegateObjectValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugDelegateObjectValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugDelegateObjectValue_GetTarget(This,ppObject) \ - ( (This)->lpVtbl -> GetTarget(This,ppObject) ) + ( (This)->lpVtbl -> GetTarget(This,ppObject) ) #define ICorDebugDelegateObjectValue_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) #endif /* COBJMACROS */ @@ -15096,69 +15183,69 @@ EXTERN_C const IID IID_ICorDebugDelegateObjectValue; #define __ICorDebugBoxValue_INTERFACE_DEFINED__ /* interface ICorDebugBoxValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugBoxValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAFC-8A68-11d2-983C-0000F808342D") ICorDebugBoxValue : public ICorDebugHeapValue { public: - virtual HRESULT STDMETHODCALLTYPE GetObject( + virtual HRESULT STDMETHODCALLTYPE GetObject( /* [out] */ ICorDebugObjectValue **ppObject) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugBoxValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugBoxValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugBoxValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugBoxValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugBoxValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugBoxValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugBoxValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugBoxValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *IsValid )( + + HRESULT ( STDMETHODCALLTYPE *IsValid )( ICorDebugBoxValue * This, /* [out] */ BOOL *pbValid); - - HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( ICorDebugBoxValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetObject )( + + HRESULT ( STDMETHODCALLTYPE *GetObject )( ICorDebugBoxValue * This, /* [out] */ ICorDebugObjectValue **ppObject); - + END_INTERFACE } ICorDebugBoxValueVtbl; @@ -15167,43 +15254,43 @@ EXTERN_C const IID IID_ICorDebugBoxValue; CONST_VTBL struct ICorDebugBoxValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugBoxValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugBoxValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugBoxValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugBoxValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) + ( (This)->lpVtbl -> GetType(This,pType) ) #define ICorDebugBoxValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) + ( (This)->lpVtbl -> GetSize(This,pSize) ) #define ICorDebugBoxValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) #define ICorDebugBoxValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) #define ICorDebugBoxValue_IsValid(This,pbValid) \ - ( (This)->lpVtbl -> IsValid(This,pbValid) ) + ( (This)->lpVtbl -> IsValid(This,pbValid) ) #define ICorDebugBoxValue_CreateRelocBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) #define ICorDebugBoxValue_GetObject(This,ppObject) \ - ( (This)->lpVtbl -> GetObject(This,ppObject) ) + ( (This)->lpVtbl -> GetObject(This,ppObject) ) #endif /* COBJMACROS */ @@ -15216,94 +15303,94 @@ EXTERN_C const IID IID_ICorDebugBoxValue; #endif /* __ICorDebugBoxValue_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0103 */ -/* [local] */ +/* interface __MIDL_itf_cordebug_0000_0104 */ +/* [local] */ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0103_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0103_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0104_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0104_v0_0_s_ifspec; #ifndef __ICorDebugStringValue_INTERFACE_DEFINED__ #define __ICorDebugStringValue_INTERFACE_DEFINED__ /* interface ICorDebugStringValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugStringValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAFD-8A68-11d2-983C-0000F808342D") ICorDebugStringValue : public ICorDebugHeapValue { public: - virtual HRESULT STDMETHODCALLTYPE GetLength( + virtual HRESULT STDMETHODCALLTYPE GetLength( /* [out] */ ULONG32 *pcchString) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetString( + + virtual HRESULT STDMETHODCALLTYPE GetString( /* [in] */ ULONG32 cchString, /* [out] */ ULONG32 *pcchString, /* [length_is][size_is][out] */ WCHAR szString[ ]) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugStringValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStringValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStringValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStringValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugStringValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugStringValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugStringValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugStringValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *IsValid )( + + HRESULT ( STDMETHODCALLTYPE *IsValid )( ICorDebugStringValue * This, /* [out] */ BOOL *pbValid); - - HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( ICorDebugStringValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetLength )( + + HRESULT ( STDMETHODCALLTYPE *GetLength )( ICorDebugStringValue * This, /* [out] */ ULONG32 *pcchString); - - HRESULT ( STDMETHODCALLTYPE *GetString )( + + HRESULT ( STDMETHODCALLTYPE *GetString )( ICorDebugStringValue * This, /* [in] */ ULONG32 cchString, /* [out] */ ULONG32 *pcchString, /* [length_is][size_is][out] */ WCHAR szString[ ]); - + END_INTERFACE } ICorDebugStringValueVtbl; @@ -15312,46 +15399,46 @@ EXTERN_C const IID IID_ICorDebugStringValue; CONST_VTBL struct ICorDebugStringValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugStringValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugStringValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugStringValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugStringValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) + ( (This)->lpVtbl -> GetType(This,pType) ) #define ICorDebugStringValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) + ( (This)->lpVtbl -> GetSize(This,pSize) ) #define ICorDebugStringValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) #define ICorDebugStringValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) #define ICorDebugStringValue_IsValid(This,pbValid) \ - ( (This)->lpVtbl -> IsValid(This,pbValid) ) + ( (This)->lpVtbl -> IsValid(This,pbValid) ) #define ICorDebugStringValue_CreateRelocBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) #define ICorDebugStringValue_GetLength(This,pcchString) \ - ( (This)->lpVtbl -> GetLength(This,pcchString) ) + ( (This)->lpVtbl -> GetLength(This,pcchString) ) #define ICorDebugStringValue_GetString(This,cchString,pcchString,szString) \ - ( (This)->lpVtbl -> GetString(This,cchString,pcchString,szString) ) + ( (This)->lpVtbl -> GetString(This,cchString,pcchString,szString) ) #endif /* COBJMACROS */ @@ -15364,141 +15451,141 @@ EXTERN_C const IID IID_ICorDebugStringValue; #endif /* __ICorDebugStringValue_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0104 */ -/* [local] */ +/* interface __MIDL_itf_cordebug_0000_0105 */ +/* [local] */ #pragma warning(pop) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0104_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0104_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0105_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0105_v0_0_s_ifspec; #ifndef __ICorDebugArrayValue_INTERFACE_DEFINED__ #define __ICorDebugArrayValue_INTERFACE_DEFINED__ /* interface ICorDebugArrayValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugArrayValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("0405B0DF-A660-11d2-BD02-0000F80849BD") ICorDebugArrayValue : public ICorDebugHeapValue { public: - virtual HRESULT STDMETHODCALLTYPE GetElementType( + virtual HRESULT STDMETHODCALLTYPE GetElementType( /* [out] */ CorElementType *pType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRank( + + virtual HRESULT STDMETHODCALLTYPE GetRank( /* [out] */ ULONG32 *pnRank) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCount( + + virtual HRESULT STDMETHODCALLTYPE GetCount( /* [out] */ ULONG32 *pnCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDimensions( + + virtual HRESULT STDMETHODCALLTYPE GetDimensions( /* [in] */ ULONG32 cdim, /* [length_is][size_is][out] */ ULONG32 dims[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE HasBaseIndicies( + + virtual HRESULT STDMETHODCALLTYPE HasBaseIndicies( /* [out] */ BOOL *pbHasBaseIndicies) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBaseIndicies( + + virtual HRESULT STDMETHODCALLTYPE GetBaseIndicies( /* [in] */ ULONG32 cdim, /* [length_is][size_is][out] */ ULONG32 indicies[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetElement( + + virtual HRESULT STDMETHODCALLTYPE GetElement( /* [in] */ ULONG32 cdim, /* [length_is][size_is][in] */ ULONG32 indices[ ], /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetElementAtPosition( + + virtual HRESULT STDMETHODCALLTYPE GetElementAtPosition( /* [in] */ ULONG32 nPosition, /* [out] */ ICorDebugValue **ppValue) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugArrayValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugArrayValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugArrayValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugArrayValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugArrayValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugArrayValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugArrayValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugArrayValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *IsValid )( + + HRESULT ( STDMETHODCALLTYPE *IsValid )( ICorDebugArrayValue * This, /* [out] */ BOOL *pbValid); - - HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( ICorDebugArrayValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetElementType )( + + HRESULT ( STDMETHODCALLTYPE *GetElementType )( ICorDebugArrayValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetRank )( + + HRESULT ( STDMETHODCALLTYPE *GetRank )( ICorDebugArrayValue * This, /* [out] */ ULONG32 *pnRank); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugArrayValue * This, /* [out] */ ULONG32 *pnCount); - - HRESULT ( STDMETHODCALLTYPE *GetDimensions )( + + HRESULT ( STDMETHODCALLTYPE *GetDimensions )( ICorDebugArrayValue * This, /* [in] */ ULONG32 cdim, /* [length_is][size_is][out] */ ULONG32 dims[ ]); - - HRESULT ( STDMETHODCALLTYPE *HasBaseIndicies )( + + HRESULT ( STDMETHODCALLTYPE *HasBaseIndicies )( ICorDebugArrayValue * This, /* [out] */ BOOL *pbHasBaseIndicies); - - HRESULT ( STDMETHODCALLTYPE *GetBaseIndicies )( + + HRESULT ( STDMETHODCALLTYPE *GetBaseIndicies )( ICorDebugArrayValue * This, /* [in] */ ULONG32 cdim, /* [length_is][size_is][out] */ ULONG32 indicies[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetElement )( + + HRESULT ( STDMETHODCALLTYPE *GetElement )( ICorDebugArrayValue * This, /* [in] */ ULONG32 cdim, /* [length_is][size_is][in] */ ULONG32 indices[ ], /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetElementAtPosition )( + + HRESULT ( STDMETHODCALLTYPE *GetElementAtPosition )( ICorDebugArrayValue * This, /* [in] */ ULONG32 nPosition, /* [out] */ ICorDebugValue **ppValue); - + END_INTERFACE } ICorDebugArrayValueVtbl; @@ -15507,64 +15594,64 @@ EXTERN_C const IID IID_ICorDebugArrayValue; CONST_VTBL struct ICorDebugArrayValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugArrayValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugArrayValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugArrayValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugArrayValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) + ( (This)->lpVtbl -> GetType(This,pType) ) #define ICorDebugArrayValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) + ( (This)->lpVtbl -> GetSize(This,pSize) ) #define ICorDebugArrayValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) #define ICorDebugArrayValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) #define ICorDebugArrayValue_IsValid(This,pbValid) \ - ( (This)->lpVtbl -> IsValid(This,pbValid) ) + ( (This)->lpVtbl -> IsValid(This,pbValid) ) #define ICorDebugArrayValue_CreateRelocBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) #define ICorDebugArrayValue_GetElementType(This,pType) \ - ( (This)->lpVtbl -> GetElementType(This,pType) ) + ( (This)->lpVtbl -> GetElementType(This,pType) ) #define ICorDebugArrayValue_GetRank(This,pnRank) \ - ( (This)->lpVtbl -> GetRank(This,pnRank) ) + ( (This)->lpVtbl -> GetRank(This,pnRank) ) #define ICorDebugArrayValue_GetCount(This,pnCount) \ - ( (This)->lpVtbl -> GetCount(This,pnCount) ) + ( (This)->lpVtbl -> GetCount(This,pnCount) ) #define ICorDebugArrayValue_GetDimensions(This,cdim,dims) \ - ( (This)->lpVtbl -> GetDimensions(This,cdim,dims) ) + ( (This)->lpVtbl -> GetDimensions(This,cdim,dims) ) #define ICorDebugArrayValue_HasBaseIndicies(This,pbHasBaseIndicies) \ - ( (This)->lpVtbl -> HasBaseIndicies(This,pbHasBaseIndicies) ) + ( (This)->lpVtbl -> HasBaseIndicies(This,pbHasBaseIndicies) ) #define ICorDebugArrayValue_GetBaseIndicies(This,cdim,indicies) \ - ( (This)->lpVtbl -> GetBaseIndicies(This,cdim,indicies) ) + ( (This)->lpVtbl -> GetBaseIndicies(This,cdim,indicies) ) #define ICorDebugArrayValue_GetElement(This,cdim,indices,ppValue) \ - ( (This)->lpVtbl -> GetElement(This,cdim,indices,ppValue) ) + ( (This)->lpVtbl -> GetElement(This,cdim,indices,ppValue) ) #define ICorDebugArrayValue_GetElementAtPosition(This,nPosition,ppValue) \ - ( (This)->lpVtbl -> GetElementAtPosition(This,nPosition,ppValue) ) + ( (This)->lpVtbl -> GetElementAtPosition(This,nPosition,ppValue) ) #endif /* COBJMACROS */ @@ -15581,97 +15668,97 @@ EXTERN_C const IID IID_ICorDebugArrayValue; #define __ICorDebugVariableHome_INTERFACE_DEFINED__ /* interface ICorDebugVariableHome */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum VariableLocationType { VLT_REGISTER = 0, VLT_REGISTER_RELATIVE = ( VLT_REGISTER + 1 ) , - VLT_INVALID = ( VLT_REGISTER_RELATIVE + 1 ) + VLT_INVALID = ( VLT_REGISTER_RELATIVE + 1 ) } VariableLocationType; EXTERN_C const IID IID_ICorDebugVariableHome; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("50847b8d-f43f-41b0-924c-6383a5f2278b") ICorDebugVariableHome : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetCode( + virtual HRESULT STDMETHODCALLTYPE GetCode( /* [out] */ ICorDebugCode **ppCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSlotIndex( + + virtual HRESULT STDMETHODCALLTYPE GetSlotIndex( /* [out] */ ULONG32 *pSlotIndex) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetArgumentIndex( + + virtual HRESULT STDMETHODCALLTYPE GetArgumentIndex( /* [out] */ ULONG32 *pArgumentIndex) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLiveRange( + + virtual HRESULT STDMETHODCALLTYPE GetLiveRange( /* [out] */ ULONG32 *pStartOffset, /* [out] */ ULONG32 *pEndOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocationType( + + virtual HRESULT STDMETHODCALLTYPE GetLocationType( /* [out] */ VariableLocationType *pLocationType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegister( + + virtual HRESULT STDMETHODCALLTYPE GetRegister( /* [out] */ CorDebugRegister *pRegister) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetOffset( + + virtual HRESULT STDMETHODCALLTYPE GetOffset( /* [out] */ LONG *pOffset) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugVariableHomeVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugVariableHome * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugVariableHome * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugVariableHome * This); - - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugVariableHome * This, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *GetSlotIndex )( + + HRESULT ( STDMETHODCALLTYPE *GetSlotIndex )( ICorDebugVariableHome * This, /* [out] */ ULONG32 *pSlotIndex); - - HRESULT ( STDMETHODCALLTYPE *GetArgumentIndex )( + + HRESULT ( STDMETHODCALLTYPE *GetArgumentIndex )( ICorDebugVariableHome * This, /* [out] */ ULONG32 *pArgumentIndex); - - HRESULT ( STDMETHODCALLTYPE *GetLiveRange )( + + HRESULT ( STDMETHODCALLTYPE *GetLiveRange )( ICorDebugVariableHome * This, /* [out] */ ULONG32 *pStartOffset, /* [out] */ ULONG32 *pEndOffset); - - HRESULT ( STDMETHODCALLTYPE *GetLocationType )( + + HRESULT ( STDMETHODCALLTYPE *GetLocationType )( ICorDebugVariableHome * This, /* [out] */ VariableLocationType *pLocationType); - - HRESULT ( STDMETHODCALLTYPE *GetRegister )( + + HRESULT ( STDMETHODCALLTYPE *GetRegister )( ICorDebugVariableHome * This, /* [out] */ CorDebugRegister *pRegister); - - HRESULT ( STDMETHODCALLTYPE *GetOffset )( + + HRESULT ( STDMETHODCALLTYPE *GetOffset )( ICorDebugVariableHome * This, /* [out] */ LONG *pOffset); - + END_INTERFACE } ICorDebugVariableHomeVtbl; @@ -15680,41 +15767,41 @@ EXTERN_C const IID IID_ICorDebugVariableHome; CONST_VTBL struct ICorDebugVariableHomeVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugVariableHome_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugVariableHome_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugVariableHome_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugVariableHome_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) + ( (This)->lpVtbl -> GetCode(This,ppCode) ) #define ICorDebugVariableHome_GetSlotIndex(This,pSlotIndex) \ - ( (This)->lpVtbl -> GetSlotIndex(This,pSlotIndex) ) + ( (This)->lpVtbl -> GetSlotIndex(This,pSlotIndex) ) #define ICorDebugVariableHome_GetArgumentIndex(This,pArgumentIndex) \ - ( (This)->lpVtbl -> GetArgumentIndex(This,pArgumentIndex) ) + ( (This)->lpVtbl -> GetArgumentIndex(This,pArgumentIndex) ) #define ICorDebugVariableHome_GetLiveRange(This,pStartOffset,pEndOffset) \ - ( (This)->lpVtbl -> GetLiveRange(This,pStartOffset,pEndOffset) ) + ( (This)->lpVtbl -> GetLiveRange(This,pStartOffset,pEndOffset) ) #define ICorDebugVariableHome_GetLocationType(This,pLocationType) \ - ( (This)->lpVtbl -> GetLocationType(This,pLocationType) ) + ( (This)->lpVtbl -> GetLocationType(This,pLocationType) ) #define ICorDebugVariableHome_GetRegister(This,pRegister) \ - ( (This)->lpVtbl -> GetRegister(This,pRegister) ) + ( (This)->lpVtbl -> GetRegister(This,pRegister) ) #define ICorDebugVariableHome_GetOffset(This,pOffset) \ - ( (This)->lpVtbl -> GetOffset(This,pOffset) ) + ( (This)->lpVtbl -> GetOffset(This,pOffset) ) #endif /* COBJMACROS */ @@ -15731,86 +15818,86 @@ EXTERN_C const IID IID_ICorDebugVariableHome; #define __ICorDebugHandleValue_INTERFACE_DEFINED__ /* interface ICorDebugHandleValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHandleValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("029596E8-276B-46a1-9821-732E96BBB00B") ICorDebugHandleValue : public ICorDebugReferenceValue { public: - virtual HRESULT STDMETHODCALLTYPE GetHandleType( + virtual HRESULT STDMETHODCALLTYPE GetHandleType( /* [out] */ CorDebugHandleType *pType) = 0; - + virtual HRESULT STDMETHODCALLTYPE Dispose( void) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugHandleValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHandleValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHandleValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHandleValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugHandleValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugHandleValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugHandleValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugHandleValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *IsNull )( + + HRESULT ( STDMETHODCALLTYPE *IsNull )( ICorDebugHandleValue * This, /* [out] */ BOOL *pbNull); - - HRESULT ( STDMETHODCALLTYPE *GetValue )( + + HRESULT ( STDMETHODCALLTYPE *GetValue )( ICorDebugHandleValue * This, /* [out] */ CORDB_ADDRESS *pValue); - - HRESULT ( STDMETHODCALLTYPE *SetValue )( + + HRESULT ( STDMETHODCALLTYPE *SetValue )( ICorDebugHandleValue * This, /* [in] */ CORDB_ADDRESS value); - - HRESULT ( STDMETHODCALLTYPE *Dereference )( + + HRESULT ( STDMETHODCALLTYPE *Dereference )( ICorDebugHandleValue * This, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *DereferenceStrong )( + + HRESULT ( STDMETHODCALLTYPE *DereferenceStrong )( ICorDebugHandleValue * This, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetHandleType )( + + HRESULT ( STDMETHODCALLTYPE *GetHandleType )( ICorDebugHandleValue * This, /* [out] */ CorDebugHandleType *pType); - - HRESULT ( STDMETHODCALLTYPE *Dispose )( + + HRESULT ( STDMETHODCALLTYPE *Dispose )( ICorDebugHandleValue * This); - + END_INTERFACE } ICorDebugHandleValueVtbl; @@ -15819,55 +15906,55 @@ EXTERN_C const IID IID_ICorDebugHandleValue; CONST_VTBL struct ICorDebugHandleValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugHandleValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugHandleValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugHandleValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugHandleValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) + ( (This)->lpVtbl -> GetType(This,pType) ) #define ICorDebugHandleValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) + ( (This)->lpVtbl -> GetSize(This,pSize) ) #define ICorDebugHandleValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) #define ICorDebugHandleValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) #define ICorDebugHandleValue_IsNull(This,pbNull) \ - ( (This)->lpVtbl -> IsNull(This,pbNull) ) + ( (This)->lpVtbl -> IsNull(This,pbNull) ) #define ICorDebugHandleValue_GetValue(This,pValue) \ - ( (This)->lpVtbl -> GetValue(This,pValue) ) + ( (This)->lpVtbl -> GetValue(This,pValue) ) #define ICorDebugHandleValue_SetValue(This,value) \ - ( (This)->lpVtbl -> SetValue(This,value) ) + ( (This)->lpVtbl -> SetValue(This,value) ) #define ICorDebugHandleValue_Dereference(This,ppValue) \ - ( (This)->lpVtbl -> Dereference(This,ppValue) ) + ( (This)->lpVtbl -> Dereference(This,ppValue) ) #define ICorDebugHandleValue_DereferenceStrong(This,ppValue) \ - ( (This)->lpVtbl -> DereferenceStrong(This,ppValue) ) + ( (This)->lpVtbl -> DereferenceStrong(This,ppValue) ) #define ICorDebugHandleValue_GetHandleType(This,pType) \ - ( (This)->lpVtbl -> GetHandleType(This,pType) ) + ( (This)->lpVtbl -> GetHandleType(This,pType) ) #define ICorDebugHandleValue_Dispose(This) \ - ( (This)->lpVtbl -> Dispose(This) ) + ( (This)->lpVtbl -> Dispose(This) ) #endif /* COBJMACROS */ @@ -15884,85 +15971,85 @@ EXTERN_C const IID IID_ICorDebugHandleValue; #define __ICorDebugContext_INTERFACE_DEFINED__ /* interface ICorDebugContext */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugContext; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB00-8A68-11d2-983C-0000F808342D") ICorDebugContext : public ICorDebugObjectValue { public: }; - - + + #else /* C style interface */ typedef struct ICorDebugContextVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugContext * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugContext * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugContext * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugContext * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugContext * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugContext * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugContext * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetClass )( + + HRESULT ( STDMETHODCALLTYPE *GetClass )( ICorDebugContext * This, /* [out] */ ICorDebugClass **ppClass); - - HRESULT ( STDMETHODCALLTYPE *GetFieldValue )( + + HRESULT ( STDMETHODCALLTYPE *GetFieldValue )( ICorDebugContext * This, /* [in] */ ICorDebugClass *pClass, /* [in] */ mdFieldDef fieldDef, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetVirtualMethod )( + + HRESULT ( STDMETHODCALLTYPE *GetVirtualMethod )( ICorDebugContext * This, /* [in] */ mdMemberRef memberRef, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetContext )( + + HRESULT ( STDMETHODCALLTYPE *GetContext )( ICorDebugContext * This, /* [out] */ ICorDebugContext **ppContext); - - HRESULT ( STDMETHODCALLTYPE *IsValueClass )( + + HRESULT ( STDMETHODCALLTYPE *IsValueClass )( ICorDebugContext * This, /* [out] */ BOOL *pbIsValueClass); - - HRESULT ( STDMETHODCALLTYPE *GetManagedCopy )( + + HRESULT ( STDMETHODCALLTYPE *GetManagedCopy )( ICorDebugContext * This, /* [out] */ IUnknown **ppObject); - - HRESULT ( STDMETHODCALLTYPE *SetFromManagedCopy )( + + HRESULT ( STDMETHODCALLTYPE *SetFromManagedCopy )( ICorDebugContext * This, /* [in] */ IUnknown *pObject); - + END_INTERFACE } ICorDebugContextVtbl; @@ -15971,54 +16058,54 @@ EXTERN_C const IID IID_ICorDebugContext; CONST_VTBL struct ICorDebugContextVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugContext_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugContext_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugContext_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugContext_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) + ( (This)->lpVtbl -> GetType(This,pType) ) #define ICorDebugContext_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) + ( (This)->lpVtbl -> GetSize(This,pSize) ) #define ICorDebugContext_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) #define ICorDebugContext_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) #define ICorDebugContext_GetClass(This,ppClass) \ - ( (This)->lpVtbl -> GetClass(This,ppClass) ) + ( (This)->lpVtbl -> GetClass(This,ppClass) ) #define ICorDebugContext_GetFieldValue(This,pClass,fieldDef,ppValue) \ - ( (This)->lpVtbl -> GetFieldValue(This,pClass,fieldDef,ppValue) ) + ( (This)->lpVtbl -> GetFieldValue(This,pClass,fieldDef,ppValue) ) #define ICorDebugContext_GetVirtualMethod(This,memberRef,ppFunction) \ - ( (This)->lpVtbl -> GetVirtualMethod(This,memberRef,ppFunction) ) + ( (This)->lpVtbl -> GetVirtualMethod(This,memberRef,ppFunction) ) #define ICorDebugContext_GetContext(This,ppContext) \ - ( (This)->lpVtbl -> GetContext(This,ppContext) ) + ( (This)->lpVtbl -> GetContext(This,ppContext) ) #define ICorDebugContext_IsValueClass(This,pbIsValueClass) \ - ( (This)->lpVtbl -> IsValueClass(This,pbIsValueClass) ) + ( (This)->lpVtbl -> IsValueClass(This,pbIsValueClass) ) #define ICorDebugContext_GetManagedCopy(This,ppObject) \ - ( (This)->lpVtbl -> GetManagedCopy(This,ppObject) ) + ( (This)->lpVtbl -> GetManagedCopy(This,ppObject) ) #define ICorDebugContext_SetFromManagedCopy(This,pObject) \ - ( (This)->lpVtbl -> SetFromManagedCopy(This,pObject) ) + ( (This)->lpVtbl -> SetFromManagedCopy(This,pObject) ) #endif /* COBJMACROS */ @@ -16036,60 +16123,60 @@ EXTERN_C const IID IID_ICorDebugContext; #define __ICorDebugComObjectValue_INTERFACE_DEFINED__ /* interface ICorDebugComObjectValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugComObjectValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("5F69C5E5-3E12-42DF-B371-F9D761D6EE24") ICorDebugComObjectValue : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetCachedInterfaceTypes( + virtual HRESULT STDMETHODCALLTYPE GetCachedInterfaceTypes( /* [in] */ BOOL bIInspectableOnly, /* [out] */ ICorDebugTypeEnum **ppInterfacesEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCachedInterfacePointers( + + virtual HRESULT STDMETHODCALLTYPE GetCachedInterfacePointers( /* [in] */ BOOL bIInspectableOnly, /* [in] */ ULONG32 celt, /* [out] */ ULONG32 *pcEltFetched, /* [length_is][size_is][out] */ CORDB_ADDRESS *ptrs) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugComObjectValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugComObjectValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugComObjectValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugComObjectValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetCachedInterfaceTypes )( + + HRESULT ( STDMETHODCALLTYPE *GetCachedInterfaceTypes )( ICorDebugComObjectValue * This, /* [in] */ BOOL bIInspectableOnly, /* [out] */ ICorDebugTypeEnum **ppInterfacesEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCachedInterfacePointers )( + + HRESULT ( STDMETHODCALLTYPE *GetCachedInterfacePointers )( ICorDebugComObjectValue * This, /* [in] */ BOOL bIInspectableOnly, /* [in] */ ULONG32 celt, /* [out] */ ULONG32 *pcEltFetched, /* [length_is][size_is][out] */ CORDB_ADDRESS *ptrs); - + END_INTERFACE } ICorDebugComObjectValueVtbl; @@ -16098,26 +16185,26 @@ EXTERN_C const IID IID_ICorDebugComObjectValue; CONST_VTBL struct ICorDebugComObjectValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugComObjectValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugComObjectValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugComObjectValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugComObjectValue_GetCachedInterfaceTypes(This,bIInspectableOnly,ppInterfacesEnum) \ - ( (This)->lpVtbl -> GetCachedInterfaceTypes(This,bIInspectableOnly,ppInterfacesEnum) ) + ( (This)->lpVtbl -> GetCachedInterfaceTypes(This,bIInspectableOnly,ppInterfacesEnum) ) #define ICorDebugComObjectValue_GetCachedInterfacePointers(This,bIInspectableOnly,celt,pcEltFetched,ptrs) \ - ( (This)->lpVtbl -> GetCachedInterfacePointers(This,bIInspectableOnly,celt,pcEltFetched,ptrs) ) + ( (This)->lpVtbl -> GetCachedInterfacePointers(This,bIInspectableOnly,celt,pcEltFetched,ptrs) ) #endif /* COBJMACROS */ @@ -16134,64 +16221,64 @@ EXTERN_C const IID IID_ICorDebugComObjectValue; #define __ICorDebugObjectEnum_INTERFACE_DEFINED__ /* interface ICorDebugObjectEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugObjectEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB02-8A68-11d2-983C-0000F808342D") ICorDebugObjectEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CORDB_ADDRESS objects[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugObjectEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugObjectEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugObjectEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugObjectEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugObjectEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugObjectEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugObjectEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugObjectEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugObjectEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CORDB_ADDRESS objects[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugObjectEnumVtbl; @@ -16200,36 +16287,36 @@ EXTERN_C const IID IID_ICorDebugObjectEnum; CONST_VTBL struct ICorDebugObjectEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugObjectEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugObjectEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugObjectEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugObjectEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugObjectEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugObjectEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugObjectEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugObjectEnum_Next(This,celt,objects,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) #endif /* COBJMACROS */ @@ -16246,64 +16333,64 @@ EXTERN_C const IID IID_ICorDebugObjectEnum; #define __ICorDebugBreakpointEnum_INTERFACE_DEFINED__ /* interface ICorDebugBreakpointEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugBreakpointEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB03-8A68-11d2-983C-0000F808342D") ICorDebugBreakpointEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugBreakpoint *breakpoints[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugBreakpointEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugBreakpointEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugBreakpointEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugBreakpointEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugBreakpointEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugBreakpointEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugBreakpointEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugBreakpointEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugBreakpointEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugBreakpoint *breakpoints[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugBreakpointEnumVtbl; @@ -16312,36 +16399,36 @@ EXTERN_C const IID IID_ICorDebugBreakpointEnum; CONST_VTBL struct ICorDebugBreakpointEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugBreakpointEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugBreakpointEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugBreakpointEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugBreakpointEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugBreakpointEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugBreakpointEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugBreakpointEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugBreakpointEnum_Next(This,celt,breakpoints,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,breakpoints,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,breakpoints,pceltFetched) ) #endif /* COBJMACROS */ @@ -16358,64 +16445,64 @@ EXTERN_C const IID IID_ICorDebugBreakpointEnum; #define __ICorDebugStepperEnum_INTERFACE_DEFINED__ /* interface ICorDebugStepperEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugStepperEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB04-8A68-11d2-983C-0000F808342D") ICorDebugStepperEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugStepper *steppers[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugStepperEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStepperEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStepperEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStepperEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugStepperEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugStepperEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugStepperEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugStepperEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugStepperEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugStepper *steppers[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugStepperEnumVtbl; @@ -16424,36 +16511,36 @@ EXTERN_C const IID IID_ICorDebugStepperEnum; CONST_VTBL struct ICorDebugStepperEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugStepperEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugStepperEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugStepperEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugStepperEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugStepperEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugStepperEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugStepperEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugStepperEnum_Next(This,celt,steppers,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,steppers,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,steppers,pceltFetched) ) #endif /* COBJMACROS */ @@ -16470,64 +16557,64 @@ EXTERN_C const IID IID_ICorDebugStepperEnum; #define __ICorDebugProcessEnum_INTERFACE_DEFINED__ /* interface ICorDebugProcessEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcessEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB05-8A68-11d2-983C-0000F808342D") ICorDebugProcessEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugProcess *processes[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugProcessEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcessEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcessEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcessEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugProcessEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugProcessEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugProcessEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugProcessEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugProcessEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugProcess *processes[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugProcessEnumVtbl; @@ -16536,36 +16623,36 @@ EXTERN_C const IID IID_ICorDebugProcessEnum; CONST_VTBL struct ICorDebugProcessEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugProcessEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugProcessEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugProcessEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugProcessEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugProcessEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugProcessEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugProcessEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugProcessEnum_Next(This,celt,processes,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,processes,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,processes,pceltFetched) ) #endif /* COBJMACROS */ @@ -16582,64 +16669,64 @@ EXTERN_C const IID IID_ICorDebugProcessEnum; #define __ICorDebugThreadEnum_INTERFACE_DEFINED__ /* interface ICorDebugThreadEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugThreadEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB06-8A68-11d2-983C-0000F808342D") ICorDebugThreadEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugThread *threads[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugThreadEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThreadEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThreadEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThreadEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugThreadEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugThreadEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugThreadEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugThreadEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugThreadEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugThread *threads[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugThreadEnumVtbl; @@ -16648,36 +16735,36 @@ EXTERN_C const IID IID_ICorDebugThreadEnum; CONST_VTBL struct ICorDebugThreadEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugThreadEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugThreadEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugThreadEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugThreadEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugThreadEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugThreadEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugThreadEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugThreadEnum_Next(This,celt,threads,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,threads,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,threads,pceltFetched) ) #endif /* COBJMACROS */ @@ -16694,64 +16781,64 @@ EXTERN_C const IID IID_ICorDebugThreadEnum; #define __ICorDebugFrameEnum_INTERFACE_DEFINED__ /* interface ICorDebugFrameEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFrameEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB07-8A68-11d2-983C-0000F808342D") ICorDebugFrameEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugFrame *frames[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugFrameEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFrameEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFrameEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFrameEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugFrameEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugFrameEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugFrameEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugFrameEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugFrameEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugFrame *frames[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugFrameEnumVtbl; @@ -16760,36 +16847,36 @@ EXTERN_C const IID IID_ICorDebugFrameEnum; CONST_VTBL struct ICorDebugFrameEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugFrameEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugFrameEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugFrameEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugFrameEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugFrameEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugFrameEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugFrameEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugFrameEnum_Next(This,celt,frames,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,frames,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,frames,pceltFetched) ) #endif /* COBJMACROS */ @@ -16806,64 +16893,64 @@ EXTERN_C const IID IID_ICorDebugFrameEnum; #define __ICorDebugChainEnum_INTERFACE_DEFINED__ /* interface ICorDebugChainEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugChainEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB08-8A68-11d2-983C-0000F808342D") ICorDebugChainEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugChain *chains[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugChainEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugChainEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugChainEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugChainEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugChainEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugChainEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugChainEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugChainEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugChainEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugChain *chains[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugChainEnumVtbl; @@ -16872,36 +16959,36 @@ EXTERN_C const IID IID_ICorDebugChainEnum; CONST_VTBL struct ICorDebugChainEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugChainEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugChainEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugChainEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugChainEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugChainEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugChainEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugChainEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugChainEnum_Next(This,celt,chains,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,chains,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,chains,pceltFetched) ) #endif /* COBJMACROS */ @@ -16918,64 +17005,64 @@ EXTERN_C const IID IID_ICorDebugChainEnum; #define __ICorDebugModuleEnum_INTERFACE_DEFINED__ /* interface ICorDebugModuleEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModuleEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB09-8A68-11d2-983C-0000F808342D") ICorDebugModuleEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugModule *modules[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugModuleEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModuleEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModuleEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModuleEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugModuleEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugModuleEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugModuleEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugModuleEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugModuleEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugModule *modules[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugModuleEnumVtbl; @@ -16984,36 +17071,36 @@ EXTERN_C const IID IID_ICorDebugModuleEnum; CONST_VTBL struct ICorDebugModuleEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugModuleEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugModuleEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugModuleEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugModuleEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugModuleEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugModuleEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugModuleEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugModuleEnum_Next(This,celt,modules,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,modules,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,modules,pceltFetched) ) #endif /* COBJMACROS */ @@ -17030,64 +17117,64 @@ EXTERN_C const IID IID_ICorDebugModuleEnum; #define __ICorDebugValueEnum_INTERFACE_DEFINED__ /* interface ICorDebugValueEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugValueEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB0A-8A68-11d2-983C-0000F808342D") ICorDebugValueEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugValue *values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugValueEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugValueEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugValueEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugValueEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugValueEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugValueEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugValueEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugValueEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugValueEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugValue *values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugValueEnumVtbl; @@ -17096,36 +17183,36 @@ EXTERN_C const IID IID_ICorDebugValueEnum; CONST_VTBL struct ICorDebugValueEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugValueEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugValueEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugValueEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugValueEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugValueEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugValueEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugValueEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugValueEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ @@ -17142,64 +17229,64 @@ EXTERN_C const IID IID_ICorDebugValueEnum; #define __ICorDebugVariableHomeEnum_INTERFACE_DEFINED__ /* interface ICorDebugVariableHomeEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugVariableHomeEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("e76b7a57-4f7a-4309-85a7-5d918c3deaf7") ICorDebugVariableHomeEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugVariableHome *homes[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugVariableHomeEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugVariableHomeEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugVariableHomeEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugVariableHomeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugVariableHomeEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugVariableHomeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugVariableHomeEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugVariableHomeEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugVariableHomeEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugVariableHome *homes[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugVariableHomeEnumVtbl; @@ -17208,36 +17295,36 @@ EXTERN_C const IID IID_ICorDebugVariableHomeEnum; CONST_VTBL struct ICorDebugVariableHomeEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugVariableHomeEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugVariableHomeEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugVariableHomeEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugVariableHomeEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugVariableHomeEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugVariableHomeEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugVariableHomeEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugVariableHomeEnum_Next(This,celt,homes,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,homes,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,homes,pceltFetched) ) #endif /* COBJMACROS */ @@ -17254,64 +17341,64 @@ EXTERN_C const IID IID_ICorDebugVariableHomeEnum; #define __ICorDebugCodeEnum_INTERFACE_DEFINED__ /* interface ICorDebugCodeEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugCodeEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("55E96461-9645-45e4-A2FF-0367877ABCDE") ICorDebugCodeEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugCode *values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugCodeEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugCodeEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugCodeEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugCodeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugCodeEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugCodeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugCodeEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugCodeEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugCodeEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugCode *values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugCodeEnumVtbl; @@ -17320,36 +17407,36 @@ EXTERN_C const IID IID_ICorDebugCodeEnum; CONST_VTBL struct ICorDebugCodeEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugCodeEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugCodeEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugCodeEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugCodeEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugCodeEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugCodeEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugCodeEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugCodeEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ @@ -17366,64 +17453,64 @@ EXTERN_C const IID IID_ICorDebugCodeEnum; #define __ICorDebugTypeEnum_INTERFACE_DEFINED__ /* interface ICorDebugTypeEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugTypeEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("10F27499-9DF2-43ce-8333-A321D7C99CB4") ICorDebugTypeEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugType *values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugTypeEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugTypeEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugTypeEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugTypeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugTypeEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugTypeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugTypeEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugTypeEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugTypeEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugType *values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugTypeEnumVtbl; @@ -17432,36 +17519,36 @@ EXTERN_C const IID IID_ICorDebugTypeEnum; CONST_VTBL struct ICorDebugTypeEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugTypeEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugTypeEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugTypeEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugTypeEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugTypeEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugTypeEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugTypeEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugTypeEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ @@ -17478,91 +17565,91 @@ EXTERN_C const IID IID_ICorDebugTypeEnum; #define __ICorDebugType_INTERFACE_DEFINED__ /* interface ICorDebugType */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugType; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("D613F0BB-ACE1-4c19-BD72-E4C08D5DA7F5") ICorDebugType : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetType( + virtual HRESULT STDMETHODCALLTYPE GetType( /* [out] */ CorElementType *ty) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetClass( + + virtual HRESULT STDMETHODCALLTYPE GetClass( /* [out] */ ICorDebugClass **ppClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateTypeParameters( + + virtual HRESULT STDMETHODCALLTYPE EnumerateTypeParameters( /* [out] */ ICorDebugTypeEnum **ppTyParEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFirstTypeParameter( + + virtual HRESULT STDMETHODCALLTYPE GetFirstTypeParameter( /* [out] */ ICorDebugType **value) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBase( + + virtual HRESULT STDMETHODCALLTYPE GetBase( /* [out] */ ICorDebugType **pBase) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStaticFieldValue( + + virtual HRESULT STDMETHODCALLTYPE GetStaticFieldValue( /* [in] */ mdFieldDef fieldDef, /* [in] */ ICorDebugFrame *pFrame, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRank( + + virtual HRESULT STDMETHODCALLTYPE GetRank( /* [out] */ ULONG32 *pnRank) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugTypeVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugType * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugType * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugType * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugType * This, /* [out] */ CorElementType *ty); - - HRESULT ( STDMETHODCALLTYPE *GetClass )( + + HRESULT ( STDMETHODCALLTYPE *GetClass )( ICorDebugType * This, /* [out] */ ICorDebugClass **ppClass); - - HRESULT ( STDMETHODCALLTYPE *EnumerateTypeParameters )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateTypeParameters )( ICorDebugType * This, /* [out] */ ICorDebugTypeEnum **ppTyParEnum); - - HRESULT ( STDMETHODCALLTYPE *GetFirstTypeParameter )( + + HRESULT ( STDMETHODCALLTYPE *GetFirstTypeParameter )( ICorDebugType * This, /* [out] */ ICorDebugType **value); - - HRESULT ( STDMETHODCALLTYPE *GetBase )( + + HRESULT ( STDMETHODCALLTYPE *GetBase )( ICorDebugType * This, /* [out] */ ICorDebugType **pBase); - - HRESULT ( STDMETHODCALLTYPE *GetStaticFieldValue )( + + HRESULT ( STDMETHODCALLTYPE *GetStaticFieldValue )( ICorDebugType * This, /* [in] */ mdFieldDef fieldDef, /* [in] */ ICorDebugFrame *pFrame, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetRank )( + + HRESULT ( STDMETHODCALLTYPE *GetRank )( ICorDebugType * This, /* [out] */ ULONG32 *pnRank); - + END_INTERFACE } ICorDebugTypeVtbl; @@ -17571,41 +17658,41 @@ EXTERN_C const IID IID_ICorDebugType; CONST_VTBL struct ICorDebugTypeVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugType_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugType_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugType_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugType_GetType(This,ty) \ - ( (This)->lpVtbl -> GetType(This,ty) ) + ( (This)->lpVtbl -> GetType(This,ty) ) #define ICorDebugType_GetClass(This,ppClass) \ - ( (This)->lpVtbl -> GetClass(This,ppClass) ) + ( (This)->lpVtbl -> GetClass(This,ppClass) ) #define ICorDebugType_EnumerateTypeParameters(This,ppTyParEnum) \ - ( (This)->lpVtbl -> EnumerateTypeParameters(This,ppTyParEnum) ) + ( (This)->lpVtbl -> EnumerateTypeParameters(This,ppTyParEnum) ) #define ICorDebugType_GetFirstTypeParameter(This,value) \ - ( (This)->lpVtbl -> GetFirstTypeParameter(This,value) ) + ( (This)->lpVtbl -> GetFirstTypeParameter(This,value) ) #define ICorDebugType_GetBase(This,pBase) \ - ( (This)->lpVtbl -> GetBase(This,pBase) ) + ( (This)->lpVtbl -> GetBase(This,pBase) ) #define ICorDebugType_GetStaticFieldValue(This,fieldDef,pFrame,ppValue) \ - ( (This)->lpVtbl -> GetStaticFieldValue(This,fieldDef,pFrame,ppValue) ) + ( (This)->lpVtbl -> GetStaticFieldValue(This,fieldDef,pFrame,ppValue) ) #define ICorDebugType_GetRank(This,pnRank) \ - ( (This)->lpVtbl -> GetRank(This,pnRank) ) + ( (This)->lpVtbl -> GetRank(This,pnRank) ) #endif /* COBJMACROS */ @@ -17622,45 +17709,45 @@ EXTERN_C const IID IID_ICorDebugType; #define __ICorDebugType2_INTERFACE_DEFINED__ /* interface ICorDebugType2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugType2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("e6e91d79-693d-48bc-b417-8284b4f10fb5") ICorDebugType2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetTypeID( + virtual HRESULT STDMETHODCALLTYPE GetTypeID( /* [out] */ COR_TYPEID *id) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugType2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugType2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugType2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugType2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeID )( + + HRESULT ( STDMETHODCALLTYPE *GetTypeID )( ICorDebugType2 * This, /* [out] */ COR_TYPEID *id); - + END_INTERFACE } ICorDebugType2Vtbl; @@ -17669,23 +17756,23 @@ EXTERN_C const IID IID_ICorDebugType2; CONST_VTBL struct ICorDebugType2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugType2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugType2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugType2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugType2_GetTypeID(This,id) \ - ( (This)->lpVtbl -> GetTypeID(This,id) ) + ( (This)->lpVtbl -> GetTypeID(This,id) ) #endif /* COBJMACROS */ @@ -17702,64 +17789,64 @@ EXTERN_C const IID IID_ICorDebugType2; #define __ICorDebugErrorInfoEnum_INTERFACE_DEFINED__ /* interface ICorDebugErrorInfoEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugErrorInfoEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("F0E18809-72B5-11d2-976F-00A0C9B4D50C") ICorDebugErrorInfoEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugEditAndContinueErrorInfo *errors[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugErrorInfoEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugErrorInfoEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugErrorInfoEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugErrorInfoEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugErrorInfoEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugErrorInfoEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugErrorInfoEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugErrorInfoEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugErrorInfoEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugEditAndContinueErrorInfo *errors[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugErrorInfoEnumVtbl; @@ -17768,36 +17855,36 @@ EXTERN_C const IID IID_ICorDebugErrorInfoEnum; CONST_VTBL struct ICorDebugErrorInfoEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugErrorInfoEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugErrorInfoEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugErrorInfoEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugErrorInfoEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugErrorInfoEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugErrorInfoEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugErrorInfoEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugErrorInfoEnum_Next(This,celt,errors,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,errors,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,errors,pceltFetched) ) #endif /* COBJMACROS */ @@ -17814,64 +17901,64 @@ EXTERN_C const IID IID_ICorDebugErrorInfoEnum; #define __ICorDebugAppDomainEnum_INTERFACE_DEFINED__ /* interface ICorDebugAppDomainEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAppDomainEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("63ca1b24-4359-4883-bd57-13f815f58744") ICorDebugAppDomainEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugAppDomain *values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugAppDomainEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAppDomainEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAppDomainEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAppDomainEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugAppDomainEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugAppDomainEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugAppDomainEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugAppDomainEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugAppDomainEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugAppDomain *values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugAppDomainEnumVtbl; @@ -17880,36 +17967,36 @@ EXTERN_C const IID IID_ICorDebugAppDomainEnum; CONST_VTBL struct ICorDebugAppDomainEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugAppDomainEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugAppDomainEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugAppDomainEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugAppDomainEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugAppDomainEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugAppDomainEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugAppDomainEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugAppDomainEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ @@ -17926,64 +18013,64 @@ EXTERN_C const IID IID_ICorDebugAppDomainEnum; #define __ICorDebugAssemblyEnum_INTERFACE_DEFINED__ /* interface ICorDebugAssemblyEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAssemblyEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("4a2a1ec9-85ec-4bfb-9f15-a89fdfe0fe83") ICorDebugAssemblyEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugAssembly *values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugAssemblyEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAssemblyEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAssemblyEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAssemblyEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugAssemblyEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugAssemblyEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugAssemblyEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugAssemblyEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugAssemblyEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugAssembly *values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugAssemblyEnumVtbl; @@ -17992,36 +18079,36 @@ EXTERN_C const IID IID_ICorDebugAssemblyEnum; CONST_VTBL struct ICorDebugAssemblyEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugAssemblyEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugAssemblyEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugAssemblyEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugAssemblyEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugAssemblyEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugAssemblyEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugAssemblyEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugAssemblyEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ @@ -18038,64 +18125,64 @@ EXTERN_C const IID IID_ICorDebugAssemblyEnum; #define __ICorDebugBlockingObjectEnum_INTERFACE_DEFINED__ /* interface ICorDebugBlockingObjectEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugBlockingObjectEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("976A6278-134A-4a81-81A3-8F277943F4C3") ICorDebugBlockingObjectEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugBlockingObject values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugBlockingObjectEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugBlockingObjectEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugBlockingObjectEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugBlockingObjectEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugBlockingObjectEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugBlockingObjectEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugBlockingObjectEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugBlockingObjectEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugBlockingObjectEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugBlockingObject values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugBlockingObjectEnumVtbl; @@ -18104,36 +18191,36 @@ EXTERN_C const IID IID_ICorDebugBlockingObjectEnum; CONST_VTBL struct ICorDebugBlockingObjectEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugBlockingObjectEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugBlockingObjectEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugBlockingObjectEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugBlockingObjectEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugBlockingObjectEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugBlockingObjectEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugBlockingObjectEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugBlockingObjectEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ @@ -18146,23 +18233,23 @@ EXTERN_C const IID IID_ICorDebugBlockingObjectEnum; #endif /* __ICorDebugBlockingObjectEnum_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0128 */ -/* [local] */ +/* interface __MIDL_itf_cordebug_0000_0129 */ +/* [local] */ #pragma warning(push) #pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0128_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0128_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0129_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0129_v0_0_s_ifspec; #ifndef __ICorDebugMDA_INTERFACE_DEFINED__ #define __ICorDebugMDA_INTERFACE_DEFINED__ /* interface ICorDebugMDA */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugMDAFlags { MDA_FLAG_SLIP = 0x2 @@ -18172,79 +18259,79 @@ enum CorDebugMDAFlags EXTERN_C const IID IID_ICorDebugMDA; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC726F2F-1DB7-459b-B0EC-05F01D841B42") ICorDebugMDA : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetName( + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDescription( + + virtual HRESULT STDMETHODCALLTYPE GetDescription( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetXML( + + virtual HRESULT STDMETHODCALLTYPE GetXML( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFlags( + + virtual HRESULT STDMETHODCALLTYPE GetFlags( /* [in] */ CorDebugMDAFlags *pFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetOSThreadId( + + virtual HRESULT STDMETHODCALLTYPE GetOSThreadId( /* [out] */ DWORD *pOsTid) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugMDAVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMDA * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMDA * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMDA * This); - - HRESULT ( STDMETHODCALLTYPE *GetName )( + + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugMDA * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetDescription )( + + HRESULT ( STDMETHODCALLTYPE *GetDescription )( ICorDebugMDA * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetXML )( + + HRESULT ( STDMETHODCALLTYPE *GetXML )( ICorDebugMDA * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetFlags )( + + HRESULT ( STDMETHODCALLTYPE *GetFlags )( ICorDebugMDA * This, /* [in] */ CorDebugMDAFlags *pFlags); - - HRESULT ( STDMETHODCALLTYPE *GetOSThreadId )( + + HRESULT ( STDMETHODCALLTYPE *GetOSThreadId )( ICorDebugMDA * This, /* [out] */ DWORD *pOsTid); - + END_INTERFACE } ICorDebugMDAVtbl; @@ -18253,35 +18340,35 @@ EXTERN_C const IID IID_ICorDebugMDA; CONST_VTBL struct ICorDebugMDAVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugMDA_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugMDA_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugMDA_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugMDA_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) #define ICorDebugMDA_GetDescription(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetDescription(This,cchName,pcchName,szName) ) + ( (This)->lpVtbl -> GetDescription(This,cchName,pcchName,szName) ) #define ICorDebugMDA_GetXML(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetXML(This,cchName,pcchName,szName) ) + ( (This)->lpVtbl -> GetXML(This,cchName,pcchName,szName) ) #define ICorDebugMDA_GetFlags(This,pFlags) \ - ( (This)->lpVtbl -> GetFlags(This,pFlags) ) + ( (This)->lpVtbl -> GetFlags(This,pFlags) ) #define ICorDebugMDA_GetOSThreadId(This,pOsTid) \ - ( (This)->lpVtbl -> GetOSThreadId(This,pOsTid) ) + ( (This)->lpVtbl -> GetOSThreadId(This,pOsTid) ) #endif /* COBJMACROS */ @@ -18294,85 +18381,85 @@ EXTERN_C const IID IID_ICorDebugMDA; #endif /* __ICorDebugMDA_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0129 */ -/* [local] */ +/* interface __MIDL_itf_cordebug_0000_0130 */ +/* [local] */ #pragma warning(pop) #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0129_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0129_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0130_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0130_v0_0_s_ifspec; #ifndef __ICorDebugEditAndContinueErrorInfo_INTERFACE_DEFINED__ #define __ICorDebugEditAndContinueErrorInfo_INTERFACE_DEFINED__ /* interface ICorDebugEditAndContinueErrorInfo */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugEditAndContinueErrorInfo; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("8D600D41-F4F6-4cb3-B7EC-7BD164944036") ICorDebugEditAndContinueErrorInfo : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetModule( + virtual HRESULT STDMETHODCALLTYPE GetModule( /* [out] */ ICorDebugModule **ppModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetToken( + + virtual HRESULT STDMETHODCALLTYPE GetToken( /* [out] */ mdToken *pToken) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetErrorCode( + + virtual HRESULT STDMETHODCALLTYPE GetErrorCode( /* [out] */ HRESULT *pHr) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetString( + + virtual HRESULT STDMETHODCALLTYPE GetString( /* [in] */ ULONG32 cchString, /* [out] */ ULONG32 *pcchString, /* [length_is][size_is][out] */ WCHAR szString[ ]) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugEditAndContinueErrorInfoVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugEditAndContinueErrorInfo * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugEditAndContinueErrorInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugEditAndContinueErrorInfo * This); - - HRESULT ( STDMETHODCALLTYPE *GetModule )( + + HRESULT ( STDMETHODCALLTYPE *GetModule )( ICorDebugEditAndContinueErrorInfo * This, /* [out] */ ICorDebugModule **ppModule); - - HRESULT ( STDMETHODCALLTYPE *GetToken )( + + HRESULT ( STDMETHODCALLTYPE *GetToken )( ICorDebugEditAndContinueErrorInfo * This, /* [out] */ mdToken *pToken); - - HRESULT ( STDMETHODCALLTYPE *GetErrorCode )( + + HRESULT ( STDMETHODCALLTYPE *GetErrorCode )( ICorDebugEditAndContinueErrorInfo * This, /* [out] */ HRESULT *pHr); - - HRESULT ( STDMETHODCALLTYPE *GetString )( + + HRESULT ( STDMETHODCALLTYPE *GetString )( ICorDebugEditAndContinueErrorInfo * This, /* [in] */ ULONG32 cchString, /* [out] */ ULONG32 *pcchString, /* [length_is][size_is][out] */ WCHAR szString[ ]); - + END_INTERFACE } ICorDebugEditAndContinueErrorInfoVtbl; @@ -18381,32 +18468,32 @@ EXTERN_C const IID IID_ICorDebugEditAndContinueErrorInfo; CONST_VTBL struct ICorDebugEditAndContinueErrorInfoVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugEditAndContinueErrorInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugEditAndContinueErrorInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugEditAndContinueErrorInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugEditAndContinueErrorInfo_GetModule(This,ppModule) \ - ( (This)->lpVtbl -> GetModule(This,ppModule) ) + ( (This)->lpVtbl -> GetModule(This,ppModule) ) #define ICorDebugEditAndContinueErrorInfo_GetToken(This,pToken) \ - ( (This)->lpVtbl -> GetToken(This,pToken) ) + ( (This)->lpVtbl -> GetToken(This,pToken) ) #define ICorDebugEditAndContinueErrorInfo_GetErrorCode(This,pHr) \ - ( (This)->lpVtbl -> GetErrorCode(This,pHr) ) + ( (This)->lpVtbl -> GetErrorCode(This,pHr) ) #define ICorDebugEditAndContinueErrorInfo_GetString(This,cchString,pcchString,szString) \ - ( (This)->lpVtbl -> GetString(This,cchString,pcchString,szString) ) + ( (This)->lpVtbl -> GetString(This,cchString,pcchString,szString) ) #endif /* COBJMACROS */ @@ -18419,106 +18506,106 @@ EXTERN_C const IID IID_ICorDebugEditAndContinueErrorInfo; #endif /* __ICorDebugEditAndContinueErrorInfo_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0130 */ -/* [local] */ +/* interface __MIDL_itf_cordebug_0000_0131 */ +/* [local] */ #pragma warning(pop) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0130_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0130_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0131_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0131_v0_0_s_ifspec; #ifndef __ICorDebugEditAndContinueSnapshot_INTERFACE_DEFINED__ #define __ICorDebugEditAndContinueSnapshot_INTERFACE_DEFINED__ /* interface ICorDebugEditAndContinueSnapshot */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugEditAndContinueSnapshot; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("6DC3FA01-D7CB-11d2-8A95-0080C792E5D8") ICorDebugEditAndContinueSnapshot : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CopyMetaData( + virtual HRESULT STDMETHODCALLTYPE CopyMetaData( /* [in] */ IStream *pIStream, /* [out] */ GUID *pMvid) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMvid( + + virtual HRESULT STDMETHODCALLTYPE GetMvid( /* [out] */ GUID *pMvid) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRoDataRVA( + + virtual HRESULT STDMETHODCALLTYPE GetRoDataRVA( /* [out] */ ULONG32 *pRoDataRVA) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRwDataRVA( + + virtual HRESULT STDMETHODCALLTYPE GetRwDataRVA( /* [out] */ ULONG32 *pRwDataRVA) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPEBytes( + + virtual HRESULT STDMETHODCALLTYPE SetPEBytes( /* [in] */ IStream *pIStream) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetILMap( + + virtual HRESULT STDMETHODCALLTYPE SetILMap( /* [in] */ mdToken mdFunction, /* [in] */ ULONG cMapSize, /* [size_is][in] */ COR_IL_MAP map[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPESymbolBytes( + + virtual HRESULT STDMETHODCALLTYPE SetPESymbolBytes( /* [in] */ IStream *pIStream) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugEditAndContinueSnapshotVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugEditAndContinueSnapshot * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugEditAndContinueSnapshot * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugEditAndContinueSnapshot * This); - - HRESULT ( STDMETHODCALLTYPE *CopyMetaData )( + + HRESULT ( STDMETHODCALLTYPE *CopyMetaData )( ICorDebugEditAndContinueSnapshot * This, /* [in] */ IStream *pIStream, /* [out] */ GUID *pMvid); - - HRESULT ( STDMETHODCALLTYPE *GetMvid )( + + HRESULT ( STDMETHODCALLTYPE *GetMvid )( ICorDebugEditAndContinueSnapshot * This, /* [out] */ GUID *pMvid); - - HRESULT ( STDMETHODCALLTYPE *GetRoDataRVA )( + + HRESULT ( STDMETHODCALLTYPE *GetRoDataRVA )( ICorDebugEditAndContinueSnapshot * This, /* [out] */ ULONG32 *pRoDataRVA); - - HRESULT ( STDMETHODCALLTYPE *GetRwDataRVA )( + + HRESULT ( STDMETHODCALLTYPE *GetRwDataRVA )( ICorDebugEditAndContinueSnapshot * This, /* [out] */ ULONG32 *pRwDataRVA); - - HRESULT ( STDMETHODCALLTYPE *SetPEBytes )( + + HRESULT ( STDMETHODCALLTYPE *SetPEBytes )( ICorDebugEditAndContinueSnapshot * This, /* [in] */ IStream *pIStream); - - HRESULT ( STDMETHODCALLTYPE *SetILMap )( + + HRESULT ( STDMETHODCALLTYPE *SetILMap )( ICorDebugEditAndContinueSnapshot * This, /* [in] */ mdToken mdFunction, /* [in] */ ULONG cMapSize, /* [size_is][in] */ COR_IL_MAP map[ ]); - - HRESULT ( STDMETHODCALLTYPE *SetPESymbolBytes )( + + HRESULT ( STDMETHODCALLTYPE *SetPESymbolBytes )( ICorDebugEditAndContinueSnapshot * This, /* [in] */ IStream *pIStream); - + END_INTERFACE } ICorDebugEditAndContinueSnapshotVtbl; @@ -18527,41 +18614,41 @@ EXTERN_C const IID IID_ICorDebugEditAndContinueSnapshot; CONST_VTBL struct ICorDebugEditAndContinueSnapshotVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugEditAndContinueSnapshot_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugEditAndContinueSnapshot_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugEditAndContinueSnapshot_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugEditAndContinueSnapshot_CopyMetaData(This,pIStream,pMvid) \ - ( (This)->lpVtbl -> CopyMetaData(This,pIStream,pMvid) ) + ( (This)->lpVtbl -> CopyMetaData(This,pIStream,pMvid) ) #define ICorDebugEditAndContinueSnapshot_GetMvid(This,pMvid) \ - ( (This)->lpVtbl -> GetMvid(This,pMvid) ) + ( (This)->lpVtbl -> GetMvid(This,pMvid) ) #define ICorDebugEditAndContinueSnapshot_GetRoDataRVA(This,pRoDataRVA) \ - ( (This)->lpVtbl -> GetRoDataRVA(This,pRoDataRVA) ) + ( (This)->lpVtbl -> GetRoDataRVA(This,pRoDataRVA) ) #define ICorDebugEditAndContinueSnapshot_GetRwDataRVA(This,pRwDataRVA) \ - ( (This)->lpVtbl -> GetRwDataRVA(This,pRwDataRVA) ) + ( (This)->lpVtbl -> GetRwDataRVA(This,pRwDataRVA) ) #define ICorDebugEditAndContinueSnapshot_SetPEBytes(This,pIStream) \ - ( (This)->lpVtbl -> SetPEBytes(This,pIStream) ) + ( (This)->lpVtbl -> SetPEBytes(This,pIStream) ) #define ICorDebugEditAndContinueSnapshot_SetILMap(This,mdFunction,cMapSize,map) \ - ( (This)->lpVtbl -> SetILMap(This,mdFunction,cMapSize,map) ) + ( (This)->lpVtbl -> SetILMap(This,mdFunction,cMapSize,map) ) #define ICorDebugEditAndContinueSnapshot_SetPESymbolBytes(This,pIStream) \ - ( (This)->lpVtbl -> SetPESymbolBytes(This,pIStream) ) + ( (This)->lpVtbl -> SetPESymbolBytes(This,pIStream) ) #endif /* COBJMACROS */ @@ -18578,64 +18665,64 @@ EXTERN_C const IID IID_ICorDebugEditAndContinueSnapshot; #define __ICorDebugExceptionObjectCallStackEnum_INTERFACE_DEFINED__ /* interface ICorDebugExceptionObjectCallStackEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugExceptionObjectCallStackEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("ED775530-4DC4-41F7-86D0-9E2DEF7DFC66") ICorDebugExceptionObjectCallStackEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugExceptionObjectStackFrame values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugExceptionObjectCallStackEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugExceptionObjectCallStackEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugExceptionObjectCallStackEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugExceptionObjectCallStackEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugExceptionObjectCallStackEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugExceptionObjectCallStackEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugExceptionObjectCallStackEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugExceptionObjectCallStackEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugExceptionObjectCallStackEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugExceptionObjectStackFrame values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugExceptionObjectCallStackEnumVtbl; @@ -18644,36 +18731,36 @@ EXTERN_C const IID IID_ICorDebugExceptionObjectCallStackEnum; CONST_VTBL struct ICorDebugExceptionObjectCallStackEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugExceptionObjectCallStackEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugExceptionObjectCallStackEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugExceptionObjectCallStackEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugExceptionObjectCallStackEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) + ( (This)->lpVtbl -> Skip(This,celt) ) #define ICorDebugExceptionObjectCallStackEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) + ( (This)->lpVtbl -> Reset(This) ) #define ICorDebugExceptionObjectCallStackEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) + ( (This)->lpVtbl -> Clone(This,ppEnum) ) #define ICorDebugExceptionObjectCallStackEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #define ICorDebugExceptionObjectCallStackEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ @@ -18690,45 +18777,45 @@ EXTERN_C const IID IID_ICorDebugExceptionObjectCallStackEnum; #define __ICorDebugExceptionObjectValue_INTERFACE_DEFINED__ /* interface ICorDebugExceptionObjectValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugExceptionObjectValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("AE4CA65D-59DD-42A2-83A5-57E8A08D8719") ICorDebugExceptionObjectValue : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnumerateExceptionCallStack( + virtual HRESULT STDMETHODCALLTYPE EnumerateExceptionCallStack( /* [out] */ ICorDebugExceptionObjectCallStackEnum **ppCallStackEnum) = 0; - + }; - - + + #else /* C style interface */ typedef struct ICorDebugExceptionObjectValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugExceptionObjectValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugExceptionObjectValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugExceptionObjectValue * This); - - HRESULT ( STDMETHODCALLTYPE *EnumerateExceptionCallStack )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateExceptionCallStack )( ICorDebugExceptionObjectValue * This, /* [out] */ ICorDebugExceptionObjectCallStackEnum **ppCallStackEnum); - + END_INTERFACE } ICorDebugExceptionObjectValueVtbl; @@ -18737,23 +18824,23 @@ EXTERN_C const IID IID_ICorDebugExceptionObjectValue; CONST_VTBL struct ICorDebugExceptionObjectValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS #define ICorDebugExceptionObjectValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ICorDebugExceptionObjectValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) + ( (This)->lpVtbl -> AddRef(This) ) #define ICorDebugExceptionObjectValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) + ( (This)->lpVtbl -> Release(This) ) #define ICorDebugExceptionObjectValue_EnumerateExceptionCallStack(This,ppCallStackEnum) \ - ( (This)->lpVtbl -> EnumerateExceptionCallStack(This,ppCallStackEnum) ) + ( (This)->lpVtbl -> EnumerateExceptionCallStack(This,ppCallStackEnum) ) #endif /* COBJMACROS */ @@ -18771,7 +18858,7 @@ EXTERN_C const IID IID_ICorDebugExceptionObjectValue; #define __CORDBLib_LIBRARY_DEFINED__ /* library CORDBLib */ -/* [helpstring][version][uuid] */ +/* [helpstring][version][uuid] */ @@ -18832,3 +18919,5 @@ EmbeddedCLRCorDebug; #endif #endif + + diff --git a/src/coreclr/src/pal/src/debug/debug.cpp b/src/coreclr/src/pal/src/debug/debug.cpp index 7e7e368200587b..d734c2afd53d92 100644 --- a/src/coreclr/src/pal/src/debug/debug.cpp +++ b/src/coreclr/src/pal/src/debug/debug.cpp @@ -19,10 +19,6 @@ Revision History: --*/ -#ifndef HOST_64BIT -#undef _LARGEFILE64_SOURCE -#undef _FILE_OFFSET_BITS -#endif #include "pal/dbgmsg.h" SET_DEFAULT_DEBUG_CHANNEL(DEBUG); // some headers have code with asserts, so do this first diff --git a/src/coreclr/src/pal/src/exception/remote-unwind.cpp b/src/coreclr/src/pal/src/exception/remote-unwind.cpp index 91f819370f4055..ea54a6f92696cd 100644 --- a/src/coreclr/src/pal/src/exception/remote-unwind.cpp +++ b/src/coreclr/src/pal/src/exception/remote-unwind.cpp @@ -1698,7 +1698,10 @@ find_proc_info(unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pip, int nee ehFrameHdrLen = ph.p_memsz; break; -#ifdef PT_ARM_EXIDX +#if defined(TARGET_ARM) +#ifndef PT_ARM_EXIDX +#define PT_ARM_EXIDX 0x70000001 /* See llvm ELF.h */ +#endif /* !PT_ARM_EXIDX */ case PT_ARM_EXIDX: exidxFrameHdrAddr = loadbias + ph.p_vaddr; exidxFrameHdrLen = ph.p_memsz; diff --git a/src/coreclr/src/pal/src/misc/cgroup.cpp b/src/coreclr/src/pal/src/misc/cgroup.cpp index 26f9686e73c2a6..f3e20012c5393e 100644 --- a/src/coreclr/src/pal/src/misc/cgroup.cpp +++ b/src/coreclr/src/pal/src/misc/cgroup.cpp @@ -53,8 +53,8 @@ class CGroup static void Initialize() { s_cgroup_version = FindCGroupVersion(); - s_memory_cgroup_path = FindCGroupPath(&IsCGroup1MemorySubsystem); - s_cpu_cgroup_path = FindCGroupPath(&IsCGroup1CpuSubsystem); + s_memory_cgroup_path = FindCGroupPath(s_cgroup_version == 1 ? &IsCGroup1MemorySubsystem : nullptr); + s_cpu_cgroup_path = FindCGroupPath(s_cgroup_version == 1 ? &IsCGroup1CpuSubsystem : nullptr); } static void Cleanup() @@ -245,33 +245,37 @@ class CGroup if (strncmp(filesystemType, "cgroup", 6) == 0) { - char* context = nullptr; - char* strTok = strtok_s(options, ",", &context); - while (strTok != nullptr) + bool isSubsystemMatch = is_subsystem == nullptr; + if (!isSubsystemMatch) { - if (is_subsystem(strTok)) + char* context = nullptr; + char* strTok = strtok_s(options, ",", &context); + while (!isSubsystemMatch && strTok != nullptr) { - mountpath = (char*)PAL_malloc(lineLen+1); - if (mountpath == nullptr) - goto done; - mountroot = (char*)PAL_malloc(lineLen+1); - if (mountroot == nullptr) - goto done; - - sscanfRet = sscanf_s(line, - "%*s %*s %*s %s %s ", - mountroot, lineLen+1, - mountpath, lineLen+1); - if (sscanfRet != 2) - _ASSERTE(!"Failed to parse mount info file contents with sscanf_s."); - - // assign the output arguments and clear the locals so we don't free them. - *pmountpath = mountpath; - *pmountroot = mountroot; - mountpath = mountroot = nullptr; - goto done; + isSubsystemMatch = is_subsystem(strTok); + strTok = strtok_s(nullptr, ",", &context); } - strTok = strtok_s(nullptr, ",", &context); + } + if (isSubsystemMatch) + { + mountpath = (char*)PAL_malloc(lineLen+1); + if (mountpath == nullptr) + goto done; + mountroot = (char*)PAL_malloc(lineLen+1); + if (mountroot == nullptr) + goto done; + + sscanfRet = sscanf_s(line, + "%*s %*s %*s %s %s ", + mountroot, lineLen+1, + mountpath, lineLen+1); + if (sscanfRet != 2) + _ASSERTE(!"Failed to parse mount info file contents with sscanf_s."); + + // assign the output arguments and clear the locals so we don't free them. + *pmountpath = mountpath; + *pmountroot = mountroot; + mountpath = mountroot = nullptr; } } } @@ -343,7 +347,7 @@ class CGroup // See https://www.kernel.org/doc/Documentation/cgroup-v2.txt // Look for a "0::/some/path" int sscanfRet = sscanf_s(line, - "0::%s", lineLen+1, + "0::%s", cgroup_path, lineLen+1); if (sscanfRet == 1) { diff --git a/src/coreclr/src/pal/src/thread/process.cpp b/src/coreclr/src/pal/src/thread/process.cpp index 0fd7efae777f25..f7cf95f8c80058 100644 --- a/src/coreclr/src/pal/src/thread/process.cpp +++ b/src/coreclr/src/pal/src/thread/process.cpp @@ -80,6 +80,7 @@ SET_DEFAULT_DEBUG_CHANNEL(PROCESS); // some headers have code with asserts, so d #endif #ifdef __APPLE__ +#include #include #include #endif @@ -3005,65 +3006,63 @@ CreateProcessModules( // NOTE: the module path can have spaces in the name // __TEXT 0000000196220000-00000001965b4000 [ 3664K 2340K 0K 0K] r-x/rwx SM=COW /Volumes/Builds/builds/devmain/rawproduct/debug/build/out/Applications/Microsoft Excel.app/Contents/SharedSupport/PowerQuery/libcoreclr.dylib - char *line = NULL; - size_t lineLen = 0; - int count = 0; - ssize_t read; - char vmmapCommand[100]; - int chars = snprintf(vmmapCommand, sizeof(vmmapCommand), "/usr/bin/vmmap -interleaved %d -wide", dwProcessId); - _ASSERTE(chars > 0 && chars <= sizeof(vmmapCommand)); + // NOTE: Sometimes vmmap hides full paths to some process modules (.dylibs in non-system folders), causing debugger not to work. + // __TEXT 000000010d8bd000-000000010ddce000 [ 5188K 5188K 0K 0K] r-x/rwx SM=COW /Users/USER/*/libcoreclr.dylib + // So now we get modules information by iterating over regions using proc_pidinfo(). See dotnet/runtime#42888. + int count = 0; - FILE *vmmapFile = popen(vmmapCommand, "r"); - if (vmmapFile == NULL) + uint64_t addr = 0; + while (true) { - goto exit; - } + struct proc_regionwithpathinfo rwpi; + int sz = proc_pidinfo(dwProcessId, PROC_PIDREGIONPATHINFO, addr, &rwpi, sizeof rwpi); + if (sz != sizeof rwpi) + { + if (sz == 0 && errno == EINVAL) + break; // ok - // Reading maps file line by line - while ((read = getline(&line, &lineLen, vmmapFile)) != -1) - { - void *startAddress, *endAddress; - char moduleName[PATH_MAX]; + DestroyProcessModules(listHead); + listHead = NULL; + count = 0; + break; // unknown error + } + + const char *moduleName = rwpi.prp_vip.vip_path; - if (sscanf_s(line, "__TEXT %p-%p [ %*[0-9K ]] %*[-/rwxsp] SM=%*[A-Z] %[^\n]", &startAddress, &endAddress, moduleName, _countof(moduleName)) == 3) + bool dup = false; + for (ProcessModules *entry = listHead; entry != NULL; entry = entry->Next) { - bool dup = false; - for (ProcessModules *entry = listHead; entry != NULL; entry = entry->Next) + if (strcmp(moduleName, entry->Name) == 0) { - if (strcmp(moduleName, entry->Name) == 0) - { - dup = true; - break; - } + dup = true; + break; } + } - if (!dup) + if (!dup) + { + int cbModuleName = strlen(moduleName) + 1; + ProcessModules *entry = (ProcessModules *)InternalMalloc(sizeof(ProcessModules) + cbModuleName); + if (entry == NULL) { - int cbModuleName = strlen(moduleName) + 1; - ProcessModules *entry = (ProcessModules *)InternalMalloc(sizeof(ProcessModules) + cbModuleName); - if (entry == NULL) - { - DestroyProcessModules(listHead); - listHead = NULL; - count = 0; - break; - } - strcpy_s(entry->Name, cbModuleName, moduleName); - entry->BaseAddress = startAddress; - entry->Next = listHead; - listHead = entry; - count++; + DestroyProcessModules(listHead); + listHead = NULL; + count = 0; + break; // no memory } + memcpy_s(entry->Name, cbModuleName, moduleName, cbModuleName); + entry->BaseAddress = (void *)rwpi.prp_prinfo.pri_address; + entry->Next = listHead; + listHead = entry; + count++; } + + addr = rwpi.prp_prinfo.pri_address + rwpi.prp_prinfo.pri_size; } *lpCount = count; - free(line); // We didn't allocate line, but as per contract of getline we should free it - pclose(vmmapFile); -exit: - #elif HAVE_PROCFS_MAPS // Here we read /proc//maps file in order to parse it and figure out what it says diff --git a/src/coreclr/src/vm/class.cpp b/src/coreclr/src/vm/class.cpp index c4fb3edfbb55d1..6baa328700702e 100644 --- a/src/coreclr/src/vm/class.cpp +++ b/src/coreclr/src/vm/class.cpp @@ -1109,20 +1109,18 @@ bool ClassLoader::IsCompatibleWith(TypeHandle hType1, TypeHandle hType2) return false; } - _ASSERTE(hType1.GetMethodTable() != NULL); - _ASSERTE(hType2.GetMethodTable() != NULL); - - // Nullable can be cast to T, but this is not compatible according to ECMA I.8.7.1 - bool isCastFromNullableOfTtoT = hType1.GetMethodTable()->IsNullable() && hType2.IsEquivalentTo(hType1.GetMethodTable()->GetInstantiation()[0]); - if (isCastFromNullableOfTtoT) + MethodTable* pMT1 = hType1.GetMethodTable(); + if (pMT1 != NULL) { - return false; + // Nullable can be cast to T, but this is not compatible according to ECMA I.8.7.1 + bool isCastFromNullableOfTtoT = pMT1->IsNullable() && hType2.IsEquivalentTo(pMT1->GetInstantiation()[0]); + if (isCastFromNullableOfTtoT) + { + return false; + } } - { - GCX_COOP(); - return hType2.GetMethodTable()->CanCastTo(hType1.GetMethodTable(), NULL); - } + return hType2.CanCastTo(hType1, NULL); } /*static*/ @@ -1171,13 +1169,21 @@ void ClassLoader::ValidateMethodsWithCovariantReturnTypes(MethodTable* pMT) if (!pMD->RequiresCovariantReturnTypeChecking() && !pParentMD->RequiresCovariantReturnTypeChecking()) continue; - // The context used to load the return type of the parent method has to use the generic method arguments - // of the overriding method, otherwise the type comparison below will not work correctly - SigTypeContext context1(pParentMD->GetClassInstantiation(), pMD->GetMethodInstantiation()); + Instantiation parentClassInst = pParentMD->GetClassInstantiation(); + if (ClassLoader::IsTypicalSharedInstantiation(parentClassInst)) + { + parentClassInst = pParentMT->GetInstantiation(); + } + SigTypeContext context1(parentClassInst, pMD->GetMethodInstantiation()); MetaSig methodSig1(pParentMD); TypeHandle hType1 = methodSig1.GetReturnProps().GetTypeHandleThrowing(pParentMD->GetModule(), &context1, ClassLoader::LoadTypesFlag::LoadTypes, CLASS_LOAD_EXACTPARENTS); - SigTypeContext context2(pMD); + Instantiation classInst = pMD->GetClassInstantiation(); + if (ClassLoader::IsTypicalSharedInstantiation(classInst)) + { + classInst = pMT->GetInstantiation(); + } + SigTypeContext context2(classInst, pMD->GetMethodInstantiation()); MetaSig methodSig2(pMD); TypeHandle hType2 = methodSig2.GetReturnProps().GetTypeHandleThrowing(pMD->GetModule(), &context2, ClassLoader::LoadTypesFlag::LoadTypes, CLASS_LOAD_EXACTPARENTS); diff --git a/src/coreclr/src/vm/classlayoutinfo.cpp b/src/coreclr/src/vm/classlayoutinfo.cpp index e5f9345c88327a..bdef0e40596f34 100644 --- a/src/coreclr/src/vm/classlayoutinfo.cpp +++ b/src/coreclr/src/vm/classlayoutinfo.cpp @@ -653,8 +653,12 @@ VOID EEClassLayoutInfo::CollectLayoutFieldMetadataThrowing( DEBUGARG(szName) ); - // Type is blittable only if parent is also blittable - isBlittable = isBlittable && (fHasNonTrivialParent ? pParentMT->IsBlittable() : TRUE); + // Type is blittable only if parent is also blittable and is not empty. + if (isBlittable && fHasNonTrivialParent) + { + isBlittable = pParentMT->IsBlittable() // Check parent + && (!pParentLayoutInfo || !pParentLayoutInfo->IsZeroSized()); // Ensure non-zero size + } pEEClassLayoutInfoOut->SetIsBlittable(isBlittable); S_UINT32 cbSortArraySize = S_UINT32(cTotalFields) * S_UINT32(sizeof(LayoutRawFieldInfo*)); diff --git a/src/coreclr/src/vm/clsload.cpp b/src/coreclr/src/vm/clsload.cpp index a72d151ffe7ae4..a7152d3400a31d 100644 --- a/src/coreclr/src/vm/clsload.cpp +++ b/src/coreclr/src/vm/clsload.cpp @@ -3531,17 +3531,11 @@ static void PushFinalLevels(TypeHandle typeHnd, ClassLoadLevel targetLevel, cons // and on its transitive dependencies. if (targetLevel == CLASS_LOADED) { - if (!typeHnd.IsTypeDesc()) - { - ClassLoader::ValidateMethodsWithCovariantReturnTypes(typeHnd.AsMethodTable()); - } - DFLPendingList pendingList; BOOL fBailed = FALSE; typeHnd.DoFullyLoad(NULL, CLASS_LOADED, &pendingList, &fBailed, pInstContext); - // In the case of a circular dependency, one or more types will have // had their promotions deferred. // diff --git a/src/coreclr/src/vm/gcenv.ee.cpp b/src/coreclr/src/vm/gcenv.ee.cpp index d58be8634d28f6..5966e56eccdd73 100644 --- a/src/coreclr/src/vm/gcenv.ee.cpp +++ b/src/coreclr/src/vm/gcenv.ee.cpp @@ -309,10 +309,16 @@ bool GCToEEInterface::RefCountedHandleCallbacks(Object * pObject) //@todo optimize the access to the ref-count ComCallWrapper* pWrap = ComCallWrapper::GetWrapperForObject((OBJECTREF)pObject); - return pWrap != NULL && pWrap->IsWrapperActive(); -#else - return false; + if (pWrap != NULL && pWrap->IsWrapperActive()) + return true; #endif +#ifdef FEATURE_COMWRAPPERS + bool isRooted = false; + if (ComWrappersNative::HasManagedObjectComWrapper((OBJECTREF)pObject, &isRooted)) + return isRooted; +#endif + + return false; } void GCToEEInterface::GcBeforeBGCSweepWork() diff --git a/src/coreclr/src/vm/interoplibinterface.cpp b/src/coreclr/src/vm/interoplibinterface.cpp index f77bdc428c3d7e..ce181ce9ccd103 100644 --- a/src/coreclr/src/vm/interoplibinterface.cpp +++ b/src/coreclr/src/vm/interoplibinterface.cpp @@ -442,7 +442,7 @@ namespace INT64 g_trackerSupportGlobalInstanceId = ComWrappersNative::InvalidWrapperId; // Defined handle types for the specific object uses. - const HandleType InstanceHandleType{ HNDTYPE_STRONG }; + const HandleType InstanceHandleType{ HNDTYPE_REFCOUNTED }; // Scenarios for ComWrappers usage. // These values should match the managed definition in ComWrappers. @@ -655,19 +655,9 @@ namespace } else if (wrapperRawMaybe != NULL) { - // It is possible the supplied wrapper is no longer valid. If so, reactivate the - // wrapper using the protected OBJECTREF. + // AddRef() the existing wrapper. IUnknown* wrapper = static_cast(wrapperRawMaybe); - hr = InteropLib::Com::IsActiveWrapper(wrapper); - if (hr == S_FALSE) - { - STRESS_LOG1(LF_INTEROP, LL_INFO100, "Reactivating MOW: 0x%p\n", wrapperRawMaybe); - OBJECTHANDLE h = GetAppDomain()->CreateTypedHandle(gc.instRef, InstanceHandleType); - hr = InteropLib::Com::ReactivateWrapper(wrapper, static_cast(h)); - } - - if (FAILED(hr)) - COMPlusThrowHR(hr); + (void)wrapper->AddRef(); } GCPROTECT_END(); @@ -680,6 +670,7 @@ namespace _In_opt_ OBJECTREF impl, _In_ INT64 wrapperId, _In_ IUnknown* identity, + _In_opt_ IUnknown* inner, _In_ CreateObjectFlags flags, _In_ ComWrappersScenario scenario, _In_opt_ OBJECTREF wrapperMaybe, @@ -760,6 +751,7 @@ namespace GCX_PREEMP(); hr = InteropLib::Com::CreateWrapperForExternal( identity, + inner, flags, sizeof(ExternalObjectContext), &resultHolder); @@ -783,7 +775,7 @@ namespace if (gc.objRefMaybe != NULL) { // Construct the new context with the object details. - DWORD flags = (resultHolder.Result.FromTrackerRuntime + DWORD eocFlags = (resultHolder.Result.FromTrackerRuntime ? ExternalObjectContext::Flags_ReferenceTracker : ExternalObjectContext::Flags_None) | (uniqueInstance @@ -795,7 +787,7 @@ namespace GetCurrentCtxCookie(), gc.objRefMaybe->GetSyncBlockIndex(), wrapperId, - flags); + eocFlags); if (uniqueInstance) { @@ -833,6 +825,18 @@ namespace // Detach from the holder to avoid cleanup. (void)resultHolder.DetachContext(); STRESS_LOG2(LF_INTEROP, LL_INFO100, "Created EOC (Unique Instance: %d): 0x%p\n", (int)uniqueInstance, extObjCxt); + + // If this is an aggregation scenario and the identity object + // is a managed object wrapper, we need to call Release() to + // indicate this external object isn't rooted. In the event the + // object is passed out to native code an AddRef() must be called + // based on COM convention and will "fix" the count. + if (flags & CreateObjectFlags::CreateObjectFlags_Aggregated + && resultHolder.Result.ManagedObjectWrapper) + { + (void)identity->Release(); + STRESS_LOG1(LF_INTEROP, LL_INFO100, "EOC aggregated with MOW: 0x%p\n", identity); + } } _ASSERTE(extObjCxt->IsActive()); @@ -1086,6 +1090,7 @@ namespace InteropLibImports gc.implRef, g_trackerSupportGlobalInstanceId, externalComObject, + NULL, externalObjectFlags, ComWrappersScenario::TrackerSupportGlobalInstance, gc.wrapperMaybeRef, @@ -1252,9 +1257,12 @@ namespace InteropLibImports ::OBJECTHANDLE objectHandle = static_cast<::OBJECTHANDLE>(handle); OBJECTREF target = ObjectFromHandle(objectHandle); - // If these point at the same object don't create a reference. - if (source->PassiveGetSyncBlock() == target->PassiveGetSyncBlock()) + // Return if the target has been collected or these are the same object. + if (target == NULL + || source->PassiveGetSyncBlock() == target->PassiveGetSyncBlock()) + { return S_FALSE; + } STRESS_LOG2(LF_INTEROP, LL_INFO1000, "Found reference path: 0x%p => 0x%p\n", OBJECTREFToObject(source), @@ -1317,9 +1325,22 @@ BOOL QCALLTYPE ComWrappersNative::TryGetOrCreateObjectForComInstance( // Determine the true identity of the object SafeComHolder identity; - hr = externalComObject->QueryInterface(IID_IUnknown, &identity); + hr = InteropLib::Com::GetIdentityForCreateWrapperForExternal( + externalComObject, + (CreateObjectFlags)flags, + &identity); _ASSERTE(hr == S_OK); + // Customized inners are only supported in aggregation with + // IReferenceTracker scenarios (e.g. WinRT). + IUnknown* inner = NULL; + if ((externalComObject != identity) + && (flags & CreateObjectFlags::CreateObjectFlags_TrackerObject) + && (flags & CreateObjectFlags::CreateObjectFlags_Aggregated)) + { + inner = externalComObject; + } + // Switch to Cooperative mode since object references // are being manipulated. { @@ -1330,6 +1351,7 @@ BOOL QCALLTYPE ComWrappersNative::TryGetOrCreateObjectForComInstance( ObjectToOBJECTREF(*comWrappersImpl.m_ppObject), wrapperId, identity, + inner, (CreateObjectFlags)flags, ComWrappersScenario::Instance, ObjectToOBJECTREF(*wrapperMaybe.m_ppObject), @@ -1368,6 +1390,7 @@ void ComWrappersNative::DestroyManagedObjectComWrapper(_In_ void* wrapper) CONTRACTL { NOTHROW; + GC_NOTRIGGER; MODE_ANY; PRECONDITION(wrapper != NULL); } @@ -1382,6 +1405,7 @@ void ComWrappersNative::DestroyExternalComObjectContext(_In_ void* contextRaw) CONTRACTL { NOTHROW; + GC_NOTRIGGER; MODE_ANY; PRECONDITION(contextRaw != NULL); } @@ -1508,6 +1532,7 @@ bool GlobalComWrappersForMarshalling::TryGetOrCreateObjectForComInstance( NULL /*comWrappersImpl*/, g_marshallingGlobalInstanceId, identity, + NULL, (CreateObjectFlags)flags, ComWrappersScenario::MarshallingGlobalInstance, NULL /*wrapperMaybe*/, @@ -1581,6 +1606,7 @@ bool GlobalComWrappersForTrackerSupport::TryGetOrCreateObjectForComInstance( NULL /*comWrappersImpl*/, g_trackerSupportGlobalInstanceId, identity, + NULL, CreateObjectFlags::CreateObjectFlags_TrackerObject, ComWrappersScenario::TrackerSupportGlobalInstance, NULL /*wrapperMaybe*/, @@ -1632,6 +1658,66 @@ IUnknown* ComWrappersNative::GetIdentityForObject(_In_ OBJECTREF* objectPROTECTE return nullptr; } +namespace +{ + struct CallbackContext + { + bool HasWrapper; + bool IsRooted; + }; + bool IsWrapperRootedCallback(_In_ void* mocw, _In_ void* cxtRaw) + { + CONTRACTL + { + NOTHROW; + GC_NOTRIGGER; + MODE_ANY; + PRECONDITION(mocw != NULL); + PRECONDITION(cxtRaw != NULL); + } + CONTRACTL_END; + + auto cxt = static_cast(cxtRaw); + cxt->HasWrapper = true; + + IUnknown* wrapper = static_cast(mocw); + cxt->IsRooted = (InteropLib::Com::IsWrapperRooted(wrapper) == S_OK); + + // If we find a single rooted wrapper then the managed object + // is considered rooted and we can stop enumerating. + if (cxt->IsRooted) + return false; + + return true; + } +} + +bool ComWrappersNative::HasManagedObjectComWrapper(_In_ OBJECTREF object, _Out_ bool* isRooted) +{ + CONTRACTL + { + NOTHROW; + GC_NOTRIGGER; + PRECONDITION(CheckPointer(isRooted)); + } + CONTRACTL_END; + + *isRooted = false; + SyncBlock* syncBlock = object->PassiveGetSyncBlock(); + if (syncBlock == nullptr) + return false; + + InteropSyncBlockInfo* interopInfo = syncBlock->GetInteropInfoNoCreate(); + if (interopInfo == nullptr) + return false; + + CallbackContext cxt{}; + interopInfo->EnumManagedObjectComWrappers(&IsWrapperRootedCallback, &cxt); + + *isRooted = cxt.IsRooted; + return cxt.HasWrapper; +} + #endif // FEATURE_COMWRAPPERS void Interop::OnGCStarted(_In_ int nCondemnedGeneration) diff --git a/src/coreclr/src/vm/interoplibinterface.h b/src/coreclr/src/vm/interoplibinterface.h index a1f34e6557531d..3d132a18ad6ef8 100644 --- a/src/coreclr/src/vm/interoplibinterface.h +++ b/src/coreclr/src/vm/interoplibinterface.h @@ -44,6 +44,7 @@ class ComWrappersNative public: // Unwrapping support static IUnknown* GetIdentityForObject(_In_ OBJECTREF* objectPROTECTED, _In_ REFIID riid, _Out_ INT64* wrapperId); + static bool HasManagedObjectComWrapper(_In_ OBJECTREF object, _Out_ bool* isActive); }; class GlobalComWrappersForMarshalling diff --git a/src/coreclr/src/vm/ipcstreamfactory.cpp b/src/coreclr/src/vm/ipcstreamfactory.cpp index 1116f84dee2bc8..dfaf4b93feaefc 100644 --- a/src/coreclr/src/vm/ipcstreamfactory.cpp +++ b/src/coreclr/src/vm/ipcstreamfactory.cpp @@ -325,6 +325,10 @@ IpcStream *IpcStreamFactory::GetNextAvailableStream(ErrorCallback callback) if (pStream == nullptr) // only use first signaled stream; will get others on subsequent calls { pStream = ((DiagnosticPort*)(rgIpcPollHandles[i].pUserData))->GetConnectedStream(callback); + if (pStream == nullptr) + { + fSawError = true; + } s_currentPort = (DiagnosticPort*)(rgIpcPollHandles[i].pUserData); } STRESS_LOG2(LF_DIAGNOSTICS_PORT, LL_INFO10, "IpcStreamFactory::GetNextAvailableStream - SIG :: Poll attempt: %d, connection %d signalled.\n", nPollAttempts, i); diff --git a/src/coreclr/src/vm/marshalnative.cpp b/src/coreclr/src/vm/marshalnative.cpp index 46a7742ff7ce74..53426fbb3bffc7 100644 --- a/src/coreclr/src/vm/marshalnative.cpp +++ b/src/coreclr/src/vm/marshalnative.cpp @@ -334,7 +334,7 @@ FCIMPL2(UINT32, MarshalNative::SizeOfClass, ReflectClassBaseObject* refClassUNSA // refClass is validated to be non-NULL RuntimeType by callers TypeHandle th = refClass->GetType(); - if (throwIfNotMarshalable && !th.IsBlittable()) + if (throwIfNotMarshalable && (!th.IsBlittable() || th.IsArray())) { GCX_PREEMP(); // Determine if the type is marshalable diff --git a/src/coreclr/src/vm/methodtable.cpp b/src/coreclr/src/vm/methodtable.cpp index 437162fa98f720..4cd29f2042946c 100644 --- a/src/coreclr/src/vm/methodtable.cpp +++ b/src/coreclr/src/vm/methodtable.cpp @@ -5282,6 +5282,12 @@ void MethodTable::DoFullyLoad(Generics::RecursionGraph * const pVisited, const CONSISTENCY_CHECK(IsRestored_NoLogging()); CONSISTENCY_CHECK(!HasApproxParent()); + if ((level == CLASS_LOADED) && !IsSharedByGenericInstantiations()) + { + _ASSERTE(GetLoadLevel() >= CLASS_DEPENDENCIES_LOADED); + ClassLoader::ValidateMethodsWithCovariantReturnTypes(this); + } + if (IsArray()) { Generics::RecursionGraph newVisited(pVisited, TypeHandle(this)); diff --git a/src/coreclr/src/vm/syncblk.h b/src/coreclr/src/vm/syncblk.h index 48d5b85b4f4cee..79cb2c7523156e 100644 --- a/src/coreclr/src/vm/syncblk.h +++ b/src/coreclr/src/vm/syncblk.h @@ -817,7 +817,8 @@ class InteropSyncBlockInfo if (FastInterlockCompareExchangePointer((ManagedObjectComWrapperByIdMap**)&m_managedObjectComWrapperMap, (ManagedObjectComWrapperByIdMap *)map, NULL) == NULL) { map.SuppressRelease(); - m_managedObjectComWrapperLock.Init(CrstLeafLock); + // The GC thread does enumerate these objects so add CRST_UNSAFE_COOPGC. + m_managedObjectComWrapperLock.Init(CrstInteropData, CRST_UNSAFE_COOPGC); } _ASSERTE(m_managedObjectComWrapperMap != NULL); @@ -832,8 +833,8 @@ class InteropSyncBlockInfo return true; } - using EnumWrappersCallback = void(void* mocw); - void ClearManagedObjectComWrappers(EnumWrappersCallback* callback) + using ClearWrappersCallback = void(void* mocw); + void ClearManagedObjectComWrappers(ClearWrappersCallback* callback) { LIMITED_METHOD_CONTRACT; @@ -854,6 +855,27 @@ class InteropSyncBlockInfo m_managedObjectComWrapperMap->RemoveAll(); } + + using EnumWrappersCallback = bool(void* mocw, void* cxt); + void EnumManagedObjectComWrappers(EnumWrappersCallback* callback, void* cxt) + { + LIMITED_METHOD_CONTRACT; + + _ASSERTE(callback != NULL); + + if (m_managedObjectComWrapperMap == NULL) + return; + + CrstHolder lock(&m_managedObjectComWrapperLock); + + ManagedObjectComWrapperByIdMap::Iterator iter = m_managedObjectComWrapperMap->Begin(); + while (iter != m_managedObjectComWrapperMap->End()) + { + if (!callback(iter->Value(), cxt)) + break; + ++iter; + } + } #endif // !DACCESS_COMPILE bool TryGetExternalComObjectContext(_Out_ void** eoc) diff --git a/src/coreclr/src/vm/threadsuspend.cpp b/src/coreclr/src/vm/threadsuspend.cpp index 293c65941569c6..3c3c0784ee6040 100644 --- a/src/coreclr/src/vm/threadsuspend.cpp +++ b/src/coreclr/src/vm/threadsuspend.cpp @@ -6161,14 +6161,11 @@ void ThreadSuspend::SuspendEE(SUSPEND_REASON reason) // that the debugger needs, just use it's code. if ((hr == ERROR_TIMEOUT) #ifdef DEBUGGING_SUPPORTED - || (CORDebuggerAttached() && - // When the debugger is synchronizing, trying to perform a GC could deadlock. The GC has the - // threadstore lock and synchronization cannot complete until the debugger can get the - // threadstore lock. However the GC can not complete until it sends the BeforeGarbageCollection - // event, and the event can not be sent until the debugger is synchronized. In order to break - // this deadlock cycle the GC must give up the threadstore lock, allow the debugger to synchronize, - // then try again. - (g_pDebugInterface->ThreadsAtUnsafePlaces() || g_pDebugInterface->IsSynchronizing())) + // If the debugging services are attached, then its possible + // that there is a thread which appears to be stopped at a gc + // safe point, but which really is not. If that is the case, + // back off and try again. + || (CORDebuggerAttached() && g_pDebugInterface->ThreadsAtUnsafePlaces()) #endif // DEBUGGING_SUPPORTED ) { diff --git a/src/coreclr/src/vm/typehandle.cpp b/src/coreclr/src/vm/typehandle.cpp index 7883071fee28ea..8b494f07eb2d07 100644 --- a/src/coreclr/src/vm/typehandle.cpp +++ b/src/coreclr/src/vm/typehandle.cpp @@ -560,7 +560,7 @@ BOOL TypeHandle::IsBoxedAndCanCastTo(TypeHandle type, TypeHandlePairList *pPairL GC_TRIGGERS; INJECT_FAULT(COMPlusThrowOM()); - LOADS_TYPE(CLASS_LOAD_EXACTPARENTS); + LOADS_TYPE(CLASS_DEPENDENCIES_LOADED); // The caller should check for an exact match. // That will cover the cast of a (unboxed) valuetype to itself. @@ -607,7 +607,7 @@ BOOL TypeHandle::CanCastTo(TypeHandle type, TypeHandlePairList *pVisited) const MODE_ANY; INJECT_FAULT(COMPlusThrowOM()); - LOADS_TYPE(CLASS_LOAD_EXACTPARENTS); + LOADS_TYPE(CLASS_DEPENDENCIES_LOADED); } CONTRACTL_END diff --git a/src/coreclr/tests/issues.targets b/src/coreclr/tests/issues.targets index 93e41277711a01..eaae7f855c53c3 100644 --- a/src/coreclr/tests/issues.targets +++ b/src/coreclr/tests/issues.targets @@ -76,9 +76,6 @@ https://github.com/dotnet/runtime/issues/5933 - - https://github.com/dotnet/runtime/issues/40885 - https://github.com/dotnet/runtime/issues/3893 @@ -955,6 +952,12 @@ + + https://github.com/dotnet/runtime/issues/43676 + + + Tests features specific to coreclr + https://github.com/dotnet/runtime/issues/40394 diff --git a/src/coreclr/tests/stress_dependencies/stress_dependencies.csproj b/src/coreclr/tests/stress_dependencies/stress_dependencies.csproj index 9f7676b251e175..10d2cd9ea94361 100644 --- a/src/coreclr/tests/stress_dependencies/stress_dependencies.csproj +++ b/src/coreclr/tests/stress_dependencies/stress_dependencies.csproj @@ -8,7 +8,7 @@ - 1.0.1-prerelease-* + 1.0.1-prerelease-00005 diff --git a/src/installer/corehost/cli/comhost/comhost.cpp b/src/installer/corehost/cli/comhost/comhost.cpp index 1b0753da6f37bb..9e7317b15917c2 100644 --- a/src/installer/corehost/cli/comhost/comhost.cpp +++ b/src/installer/corehost/cli/comhost/comhost.cpp @@ -269,7 +269,7 @@ namespace 0, REG_SZ, reinterpret_cast(entry.type.c_str()), - static_cast(sizeof(entry.type.size() + 1) * sizeof(entry.type[0]))); + static_cast((entry.type.size() + 1) * sizeof(entry.type[0]))); if (res != ERROR_SUCCESS) return __HRESULT_FROM_WIN32(res); @@ -346,7 +346,7 @@ namespace 0, REG_SZ, reinterpret_cast(defServerName), - static_cast(sizeof(defServerName) * sizeof(defServerName[0]))); + static_cast(sizeof(defServerName))); if (res != ERROR_SUCCESS) return __HRESULT_FROM_WIN32(res); diff --git a/src/installer/corehost/cli/ijwhost/arm64/bootstrap_thunk.cpp b/src/installer/corehost/cli/ijwhost/arm64/bootstrap_thunk.cpp index 615856edd5ce25..7648c407397910 100644 --- a/src/installer/corehost/cli/ijwhost/arm64/bootstrap_thunk.cpp +++ b/src/installer/corehost/cli/ijwhost/arm64/bootstrap_thunk.cpp @@ -9,21 +9,19 @@ // Get thunk from the address that the thunk code provided bootstrap_thunk *bootstrap_thunk::get_thunk_from_cookie(std::uintptr_t cookie) { - + // Cookie is generated via the first thunk instruction: - // mov r12, pc - // The pc is returned from the hardware as the pc at the start of the instruction (i.e. the thunk address) - // + 4. So we can recover the thunk address simply by subtracting 4 from the cookie. - return (bootstrap_thunk *)(cookie - 4); + // adr x16, #0 + // The pc is returned from the hardware as the pc at the start of the instruction (i.e. the thunk address). + return (bootstrap_thunk *)cookie; } //================================================================================= // Get thunk from the thunk code entry point address bootstrap_thunk *bootstrap_thunk::get_thunk_from_entrypoint(std::uintptr_t entryAddr) { - // The entry point is at the start of the thunk but the code address will have the low-order bit set to - // indicate Thumb code and we need to mask that out. - return (bootstrap_thunk *)(entryAddr & ~1); + // The entry point is at the start of the thunk + return (bootstrap_thunk*)entryAddr; } //================================================================================= @@ -50,8 +48,7 @@ std::uint32_t bootstrap_thunk::get_token() //================================================================================= std::uintptr_t bootstrap_thunk::get_entrypoint() { - // Set the low-order bit of the address returned to indicate to the hardware that it's Thumb code. - return (std::uintptr_t)this | 1; + return (std::uintptr_t)this; } //================================================================================= @@ -64,10 +61,11 @@ void bootstrap_thunk::initialize(std::uintptr_t pThunkInitFcn, std::uintptr_t *pSlot) { // Initialize code section of the thunk: - WORD rgCode[] = { - 0x46fc, // mov r12, pc - 0xf8df, 0xf004, // ldr pc, [pc, #4] - 0x0000 // padding for 4-byte alignment of target address that follows + std::uint32_t rgCode[] = { + 0x10000010, // adr x16, #0 + 0xF9400A11, // ldr x17, [x16, #16] + 0xD61F0220, // br x17 + 0x00000000, // padding for 64-bit alignment }; BYTE *pCode = (BYTE*)this; memcpy(pCode, rgCode, sizeof(rgCode)); diff --git a/src/installer/corehost/cli/ijwhost/arm64/bootstrap_thunk.h b/src/installer/corehost/cli/ijwhost/arm64/bootstrap_thunk.h index 07a46aaecffc50..58008e07ea3109 100644 --- a/src/installer/corehost/cli/ijwhost/arm64/bootstrap_thunk.h +++ b/src/installer/corehost/cli/ijwhost/arm64/bootstrap_thunk.h @@ -18,7 +18,7 @@ extern "C" void start_runtime_thunk_stub(); class bootstrap_thunk { private: - DWORD m_rgCode[4]; + std::uint32_t m_rgCode[4]; std::uintptr_t m_pBootstrapCode; pal::dll_t m_dll; // pal::dll_t of this module diff --git a/src/installer/pkg/projects/netcoreapp/sfx/Microsoft.NETCore.App.SharedFx.sfxproj b/src/installer/pkg/projects/netcoreapp/sfx/Microsoft.NETCore.App.SharedFx.sfxproj index e2905a88d37031..7200187407d23d 100644 --- a/src/installer/pkg/projects/netcoreapp/sfx/Microsoft.NETCore.App.SharedFx.sfxproj +++ b/src/installer/pkg/projects/netcoreapp/sfx/Microsoft.NETCore.App.SharedFx.sfxproj @@ -77,6 +77,7 @@ $(RestoreSources);$(LibrariesShippingPackagesDir) $(RestoreSources);$(LibrariesNonShippingPackagesDir) + $(RestoreSources);https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json diff --git a/src/installer/tests/HostActivation.Tests/FrameworkResolution/MultipleHives.cs b/src/installer/tests/HostActivation.Tests/FrameworkResolution/MultipleHives.cs index 4c2ebdac73840c..2b09b95c8ec95b 100644 --- a/src/installer/tests/HostActivation.Tests/FrameworkResolution/MultipleHives.cs +++ b/src/installer/tests/HostActivation.Tests/FrameworkResolution/MultipleHives.cs @@ -78,7 +78,10 @@ private CommandResult RunTest(Func runtimeConfig) SharedState.FrameworkReferenceApp, new TestSettings() .WithRuntimeConfigCustomizer(runtimeConfig) - .WithEnvironment(Constants.TestOnlyEnvironmentVariables.GloballyRegisteredPath, SharedState.DotNetGlobalHive.BinPath), + .WithEnvironment(Constants.TestOnlyEnvironmentVariables.GloballyRegisteredPath, SharedState.DotNetGlobalHive.BinPath) + .WithEnvironment( // Redirect the default install location to an invalid location so that a machine-wide install is not used + Constants.TestOnlyEnvironmentVariables.DefaultInstallPath, + System.IO.Path.Combine(SharedState.DotNetMainHive.BinPath, "invalid")), // Must enable multi-level lookup otherwise multiple hives are not enabled multiLevelLookup: true); } diff --git a/src/libraries/Common/src/Internal/Cryptography/UniversalCryptoEncryptor.cs b/src/libraries/Common/src/Internal/Cryptography/UniversalCryptoEncryptor.cs index e89baaa8ee2e4b..aecb5be18bc6c5 100644 --- a/src/libraries/Common/src/Internal/Cryptography/UniversalCryptoEncryptor.cs +++ b/src/libraries/Common/src/Internal/Cryptography/UniversalCryptoEncryptor.cs @@ -156,7 +156,7 @@ private int PadBlock(ReadOnlySpan block, Span destination) // // xx 00 00 00 00 00 00 00 case PaddingMode.Zeros: - if (padBytes == InputBlockSize) + if (padBytes == PaddingSizeBytes) { padBytes = 0; } diff --git a/src/libraries/Common/src/Interop/Windows/Interop.Libraries.cs b/src/libraries/Common/src/Interop/Windows/Interop.Libraries.cs index 74c014c7179935..6b1006caf3932a 100644 --- a/src/libraries/Common/src/Interop/Windows/Interop.Libraries.cs +++ b/src/libraries/Common/src/Interop/Windows/Interop.Libraries.cs @@ -19,7 +19,7 @@ internal static partial class Libraries internal const string Odbc32 = "odbc32.dll"; internal const string Ole32 = "ole32.dll"; internal const string OleAut32 = "oleaut32.dll"; - internal const string PerfCounter = "perfcounter.dll"; + internal const string Pdh = "pdh.dll"; internal const string Secur32 = "secur32.dll"; internal const string Shell32 = "shell32.dll"; internal const string SspiCli = "sspicli.dll"; diff --git a/src/libraries/Common/src/Interop/Windows/PerfCounter/Interop.FormatFromRawValue.cs b/src/libraries/Common/src/Interop/Windows/Pdh/Interop.PdhFormatFromRawValue.cs similarity index 77% rename from src/libraries/Common/src/Interop/Windows/PerfCounter/Interop.FormatFromRawValue.cs rename to src/libraries/Common/src/Interop/Windows/Pdh/Interop.PdhFormatFromRawValue.cs index f20fc3d3292186..130dac40cafa51 100644 --- a/src/libraries/Common/src/Interop/Windows/PerfCounter/Interop.FormatFromRawValue.cs +++ b/src/libraries/Common/src/Interop/Windows/Pdh/Interop.PdhFormatFromRawValue.cs @@ -5,10 +5,10 @@ internal partial class Interop { - internal partial class PerfCounter + internal partial class Pdh { - [DllImport(Libraries.PerfCounter, CharSet = CharSet.Unicode)] - public static extern unsafe int FormatFromRawValue( + [DllImport(Libraries.Pdh, CharSet = CharSet.Unicode)] + public static extern int PdhFormatFromRawValue( uint dwCounterType, uint dwFormat, ref long pTimeBase, diff --git a/src/libraries/Common/src/System/SR.cs b/src/libraries/Common/src/System/SR.cs index 4eed64c2bf6449..20431f256a1acf 100644 --- a/src/libraries/Common/src/System/SR.cs +++ b/src/libraries/Common/src/System/SR.cs @@ -3,7 +3,6 @@ #nullable enable using System.Resources; -using System.Runtime.CompilerServices; namespace System { diff --git a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/AES/AesCipherTests.cs b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/AES/AesCipherTests.cs index 896c3f8c450680..829dd30fd62ab4 100644 --- a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/AES/AesCipherTests.cs +++ b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/AES/AesCipherTests.cs @@ -127,17 +127,17 @@ public static void DecryptKnownCFB128_192() { byte[] encryptedBytes = new byte[] { - 0x7C, 0xC6, 0xEE, 0xD8, 0xED, 0xB5, 0x3F, 0x8A, - 0x90, 0x95, 0x12, 0xD2, 0xBC, 0x9A, 0x96, 0x1E, - 0x4E, 0xC4, 0xD1, 0x15, 0xA4, 0x7F, 0x32, 0xA4, - 0xD1, 0xFD, 0x8E, 0x02, 0x45, 0xE8, 0x93, 0x3C, - 0x3C, 0x91, 0x3F, 0xA4, 0x7F, 0x99, 0xF7, 0x3A, - 0x53, 0x0C, 0x0B, 0xFD, 0x01, 0xC5, 0xBD, 0x76, - 0xB7, 0xCF, 0x2B, 0x52, 0x34, 0xB1, 0xA6, 0xA4, - 0x29, 0x2F, 0x7D, 0x1C, 0x97, 0x3A, 0xE2, 0x75, - 0x3E, 0xEB, 0xFC, 0xB7, 0xBB, 0x7A, 0xC0, 0x66, - 0x34, 0x25, 0xCF, 0x2D, 0xE2, 0x7E, 0x23, 0x06, - 0x10, 0xFE, 0xEA, 0xB3, 0x0F, 0x1D, 0x2C, 0xDD, + 0x7C, 0xC6, 0xEE, 0xD8, 0xED, 0xB5, 0x3F, 0x8A, + 0x90, 0x95, 0x12, 0xD2, 0xBC, 0x9A, 0x96, 0x1E, + 0x4E, 0xC4, 0xD1, 0x15, 0xA4, 0x7F, 0x32, 0xA4, + 0xD1, 0xFD, 0x8E, 0x02, 0x45, 0xE8, 0x93, 0x3C, + 0x3C, 0x91, 0x3F, 0xA4, 0x7F, 0x99, 0xF7, 0x3A, + 0x53, 0x0C, 0x0B, 0xFD, 0x01, 0xC5, 0xBD, 0x76, + 0xB7, 0xCF, 0x2B, 0x52, 0x34, 0xB1, 0xA6, 0xA4, + 0x29, 0x2F, 0x7D, 0x1C, 0x97, 0x3A, 0xE2, 0x75, + 0x3E, 0xEB, 0xFC, 0xB7, 0xBB, 0x7A, 0xC0, 0x66, + 0x34, 0x25, 0xCF, 0x2D, 0xE2, 0x7E, 0x23, 0x06, + 0x10, 0xFE, 0xEA, 0xB3, 0x0F, 0x1D, 0x2C, 0xDD, 0x72, 0x64, 0x51, 0x78, 0x1D, 0x75, 0xD2, 0x17 }; @@ -149,17 +149,17 @@ public static void DecryptKnownCFB128_128() { byte[] encryptedBytes = new byte[] { - 0x5B, 0x63, 0x3D, 0x1C, 0x0C, 0x8E, 0xD4, 0xF4, - 0xE5, 0x5F, 0xA0, 0xAF, 0x2F, 0xF5, 0xAE, 0x59, - 0xB9, 0xC4, 0xFA, 0x02, 0x11, 0x37, 0xEB, 0x38, - 0x5B, 0x2F, 0x1D, 0xF5, 0x03, 0xD1, 0xFD, 0x85, - 0x4B, 0xAA, 0x4F, 0x29, 0x94, 0x09, 0x31, 0x4C, - 0x4D, 0xD6, 0x99, 0xE3, 0x4D, 0xC4, 0x3A, 0x40, - 0x97, 0x58, 0xA5, 0x26, 0x80, 0xA8, 0xCA, 0xFA, - 0x6D, 0x19, 0x3B, 0x6B, 0x6F, 0x75, 0x76, 0x83, - 0x90, 0x31, 0x07, 0x86, 0x35, 0xD6, 0xAB, 0xB4, - 0x65, 0x07, 0x0A, 0x0A, 0xA3, 0x7A, 0xD7, 0x16, - 0xE2, 0xC5, 0x3B, 0xE0, 0x42, 0x5F, 0xFA, 0xEF, + 0x5B, 0x63, 0x3D, 0x1C, 0x0C, 0x8E, 0xD4, 0xF4, + 0xE5, 0x5F, 0xA0, 0xAF, 0x2F, 0xF5, 0xAE, 0x59, + 0xB9, 0xC4, 0xFA, 0x02, 0x11, 0x37, 0xEB, 0x38, + 0x5B, 0x2F, 0x1D, 0xF5, 0x03, 0xD1, 0xFD, 0x85, + 0x4B, 0xAA, 0x4F, 0x29, 0x94, 0x09, 0x31, 0x4C, + 0x4D, 0xD6, 0x99, 0xE3, 0x4D, 0xC4, 0x3A, 0x40, + 0x97, 0x58, 0xA5, 0x26, 0x80, 0xA8, 0xCA, 0xFA, + 0x6D, 0x19, 0x3B, 0x6B, 0x6F, 0x75, 0x76, 0x83, + 0x90, 0x31, 0x07, 0x86, 0x35, 0xD6, 0xAB, 0xB4, + 0x65, 0x07, 0x0A, 0x0A, 0xA3, 0x7A, 0xD7, 0x16, + 0xE2, 0xC5, 0x3B, 0xE0, 0x42, 0x5F, 0xFA, 0xEF, 0xE1, 0x2E, 0x40, 0x84, 0x36, 0x66, 0xB1, 0xBA }; @@ -655,7 +655,7 @@ public static void VerifyKnownTransform_CFB128_128_NoPadding_4_Fails() feedbackSize: 128) ); } - + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] public static void VerifyKnownTransform_CFB128_128_PKCS7_4() { @@ -682,15 +682,17 @@ public static void VerifyKnownTransform_CFB8_128_PKCS7_4() feedbackSize: 8); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_128_NoPadding_0_Extended() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_128_NoOrZeroPadding_0_Extended(PaddingMode paddingMode) { // NIST CAVP AESMMT.ZIP CFB8MMT128.rsp, [ENCRYPT] COUNT=0 // plaintext zero-extended to a full block, cipherBytes extended value // provided by .NET Framework TestAesTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "c57d699d89df7cfbef71c080a6b10ac3".HexToByteArray(), iv: "fcb2bc4c006b87483978796a2ae2c42e".HexToByteArray(), plainBytes: ("61" + "000000000000000000000000000000").HexToByteArray(), @@ -698,15 +700,17 @@ public static void VerifyKnownTransform_CFB8_128_NoPadding_0_Extended() feedbackSize: 8); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_128_NoPadding_9_Extended() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_128_NoOrZeroPadding_9_Extended(PaddingMode paddingMode) { // NIST CAVP AESMMT.ZIP CFB8MMT128.rsp, [ENCRYPT] COUNT=9 // plaintext zero-extended to a full block, cipherBytes extended value // provided by .NET Framework TestAesTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "3a6f9159263fa6cef2a075caface5817".HexToByteArray(), iv: "0fc23662b7dbf73827f0c7de321ca36e".HexToByteArray(), plainBytes: ("87efeb8d559ed3367728" + "000000000000").HexToByteArray(), @@ -714,15 +718,17 @@ public static void VerifyKnownTransform_CFB8_128_NoPadding_9_Extended() feedbackSize: 8); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_192_NoPadding_0_Extended() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_192_NoOrZeroPadding_0_Extended(PaddingMode paddingMode) { // NIST CAVP AESMMT.ZIP CFB8MMT192.rsp, [ENCRYPT] COUNT=0 // plaintext zero-extended to a full block, cipherBytes extended value // provided by .NET Framework TestAesTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "32a1b0e3da368db563d7316b9779d3327e53d9a6d287ed97".HexToByteArray(), iv: "3dd0e7e21f09d5842f3a699da9b57346".HexToByteArray(), plainBytes: ("54" + "000000000000000000000000000000").HexToByteArray(), @@ -730,15 +736,17 @@ public static void VerifyKnownTransform_CFB8_192_NoPadding_0_Extended() feedbackSize: 8); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_192_NoPadding_9_Extended() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_192_NoOrZeroPadding_9_Extended(PaddingMode paddingMode) { // NIST CAVP AESMMT.ZIP CFB8MMT192.rsp, [ENCRYPT] COUNT=9 // plaintext zero-extended to a full block, cipherBytes extended value // provided by .NET Framework TestAesTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "537e7bf661fd4024a024613f15b13690f7d0c847c1e18965".HexToByteArray(), iv: "3a81f9d9d3c155b0caad5d73349476fc".HexToByteArray(), plainBytes: ("d3d8b9b984adc24237ee" + "000000000000").HexToByteArray(), @@ -746,15 +754,17 @@ public static void VerifyKnownTransform_CFB8_192_NoPadding_9_Extended() feedbackSize: 8); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_256_NoPadding_0_Extended() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_256_NoOrZeroPadding_0_Extended(PaddingMode paddingMode) { // NIST CAVP AESMMT.ZIP CFB8MMT256.rsp, [ENCRYPT] COUNT=0 // plaintext zero-extended to a full block, cipherBytes extended value // provided by .NET Framework TestAesTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "34e8091cee09f1bd3ebf1e8f05f51bfbd4899ef2ae006a3a0f7875052cdd46c8".HexToByteArray(), iv: "43eb4dcc4b04a80216a20e4a09a7abb5".HexToByteArray(), plainBytes: ("f9" + "000000000000000000000000000000").HexToByteArray(), @@ -762,15 +772,17 @@ public static void VerifyKnownTransform_CFB8_256_NoPadding_0_Extended() feedbackSize: 8); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_256_NoPadding_9_Extended() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_256_NoOrZeroPadding_9_Extended(PaddingMode paddingMode) { // NIST CAVP AESMMT.ZIP CFB8MMT256.rsp, [ENCRYPT] COUNT=9 // plaintext zero-extended to a full block, cipherBytes extended value // provided by .NET Framework TestAesTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "ebbb4566b5e182e0f072466b0b311df38f9175bc0213a5530bce2ec4d74f400d".HexToByteArray(), iv: "0956a48e01002c9e16376d6e308dbad1".HexToByteArray(), plainBytes: ("b0fe25ac8d3d28a2f471" + "000000000000").HexToByteArray(), @@ -927,18 +939,28 @@ public static void VerifyKnownTransform_CFB128_256_NoPadding_1_Extended() feedbackSize: 128); } - [Fact] - public static void AesZeroPad() + [Theory] + [InlineData(CipherMode.CBC)] + [InlineData(CipherMode.CFB)] + public static void AesZeroPad(CipherMode cipherMode) { + if (cipherMode == CipherMode.CFB && PlatformDetection.IsWindows7) + { + // Windows 7 does not support CFB. + return; + } + byte[] decryptedBytes; byte[] expectedAnswer; using (Aes aes = AesFactory.Create()) { + aes.Mode = cipherMode; aes.Padding = PaddingMode.Zeros; + aes.FeedbackSize = 128; - int blockBytes = aes.BlockSize / 8; - int missingBytes = blockBytes - (s_multiBlockBytes.Length % blockBytes); + int alignBytes = aes.BlockSize / 8; // Feedback size is same as block size, both are 128 bits + int missingBytes = alignBytes - (s_multiBlockBytes.Length % alignBytes); // Zero-padding doesn't have enough information to remove the trailing zeroes. // Therefore we expect the answer of ZeroPad(s_multiBlockBytes). @@ -1049,7 +1071,7 @@ private static void TestAesDecrypt( { aes.Mode = mode; aes.Key = key; - + if (feedbackSize.HasValue) { aes.FeedbackSize = feedbackSize.Value; diff --git a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/DES/DESCipherTests.cs b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/DES/DESCipherTests.cs index de5e5641a467c3..82b076821f4691 100644 --- a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/DES/DESCipherTests.cs +++ b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/DES/DESCipherTests.cs @@ -254,14 +254,16 @@ public static void EncryptWithLargeOutputBuffer(bool blockAlignedOutput) } } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_0() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_0(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=0 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "fb978a0b6dc2c467".HexToByteArray(), iv: "8b97579ea5ac300f".HexToByteArray(), plainBytes: "80".HexToByteArray(), @@ -270,14 +272,16 @@ public static void VerifyKnownTransform_CFB8_NoPadding_0() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_1() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_1(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=1 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "9b04c86dd31a8a58".HexToByteArray(), iv: "52cd77d49fc72347".HexToByteArray(), plainBytes: "2fef".HexToByteArray(), @@ -286,14 +290,16 @@ public static void VerifyKnownTransform_CFB8_NoPadding_1() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_2() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_2(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=2 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "fbb667e340586b5b".HexToByteArray(), iv: "459e8b8736715791".HexToByteArray(), plainBytes: "061704".HexToByteArray(), @@ -365,14 +371,16 @@ public static void DecryptorReuse_LeadsToSameResults(CipherMode cipherMode, int } } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_3() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_3(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=3 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "4a575d02515d40b0".HexToByteArray(), iv: "ab27e9f02affa532".HexToByteArray(), plainBytes: "55f75b95".HexToByteArray(), @@ -397,14 +405,16 @@ public static void VerifyKnownTransform_CFB8_PKCS7_3() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_4() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_4(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=4 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "91a834855e6bab31".HexToByteArray(), iv: "7838aaad4e64640b".HexToByteArray(), plainBytes: "c3851c0ab4".HexToByteArray(), @@ -413,14 +423,16 @@ public static void VerifyKnownTransform_CFB8_NoPadding_4() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_5() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_5(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=5 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "04d923abd9291c3e".HexToByteArray(), iv: "191f8794944e601c".HexToByteArray(), plainBytes: "6fe8f67d2af1".HexToByteArray(), @@ -429,14 +441,16 @@ public static void VerifyKnownTransform_CFB8_NoPadding_5() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_6() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_6(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=6 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "a7799e7f5dfe54ce".HexToByteArray(), iv: "370184c749d04a20".HexToByteArray(), plainBytes: "2b4228b769795b".HexToByteArray(), @@ -445,14 +459,16 @@ public static void VerifyKnownTransform_CFB8_NoPadding_6() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_7() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_7(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=7 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "6bfe3d3df8c1e0d3".HexToByteArray(), iv: "51e4c5c29e858da6".HexToByteArray(), plainBytes: "4cb3554fd0b9ec82".HexToByteArray(), @@ -461,14 +477,16 @@ public static void VerifyKnownTransform_CFB8_NoPadding_7() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_8() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_8(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=8 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "e0264aec13e63db9".HexToByteArray(), iv: "bd8795dba79930d6".HexToByteArray(), plainBytes: "79068e2943f02914af".HexToByteArray(), @@ -477,14 +495,16 @@ public static void VerifyKnownTransform_CFB8_NoPadding_8() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_9() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_9(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=9 // used only key1, cipherBytes computed using openssl TestDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "7ca28938ba6bec1f".HexToByteArray(), iv: "953896586e49d38f".HexToByteArray(), plainBytes: "2ea956d4a211db6859b7".HexToByteArray(), diff --git a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/TripleDES/TripleDESCipherTests.cs b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/TripleDES/TripleDESCipherTests.cs index 3b4fbb4b27bb83..da2a2ee82bce76 100644 --- a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/TripleDES/TripleDESCipherTests.cs +++ b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/TripleDES/TripleDESCipherTests.cs @@ -42,13 +42,15 @@ public static void TripleDESInvalidKeySizes() } } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_0() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_0(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=0 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "fb978a0b6dc2c467e3cb52329de95161fb978a0b6dc2c467".HexToByteArray(), iv: "8b97579ea5ac300f".HexToByteArray(), plainBytes: "80".HexToByteArray(), @@ -57,13 +59,15 @@ public static void VerifyKnownTransform_CFB8_NoPadding_0() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_1() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_1(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=1 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "9b04c86dd31a8a589876101549d6e0109b04c86dd31a8a58".HexToByteArray(), iv: "52cd77d49fc72347".HexToByteArray(), plainBytes: "2fef".HexToByteArray(), @@ -72,13 +76,15 @@ public static void VerifyKnownTransform_CFB8_NoPadding_1() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_2() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_2(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=2 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "fbb667e340586b5b5ef7c87049b93257fbb667e340586b5b".HexToByteArray(), iv: "459e8b8736715791".HexToByteArray(), plainBytes: "061704".HexToByteArray(), @@ -117,13 +123,15 @@ public static void VerifyKnownTransform_CFB64_PKCS7_2() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_3() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_3(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=3 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "4a575d02515d40b0a40d830bd9b315134a575d02515d40b0".HexToByteArray(), iv: "ab27e9f02affa532".HexToByteArray(), plainBytes: "55f75b95".HexToByteArray(), @@ -132,13 +140,15 @@ public static void VerifyKnownTransform_CFB8_NoPadding_3() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_4() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_4(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=4 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "91a834855e6bab31c7fd6be657ceb9ec91a834855e6bab31".HexToByteArray(), iv: "7838aaad4e64640b".HexToByteArray(), plainBytes: "c3851c0ab4".HexToByteArray(), @@ -147,13 +157,15 @@ public static void VerifyKnownTransform_CFB8_NoPadding_4() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_5() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_5(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=5 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "04d923abd9291c3e4954a8b52fdabcc804d923abd9291c3e".HexToByteArray(), iv: "191f8794944e601c".HexToByteArray(), plainBytes: "6fe8f67d2af1".HexToByteArray(), @@ -162,13 +174,15 @@ public static void VerifyKnownTransform_CFB8_NoPadding_5() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_6() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_6(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=6 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "a7799e7f5dfe54ce13376401e96de075a7799e7f5dfe54ce".HexToByteArray(), iv: "370184c749d04a20".HexToByteArray(), plainBytes: "2b4228b769795b".HexToByteArray(), @@ -177,13 +191,15 @@ public static void VerifyKnownTransform_CFB8_NoPadding_6() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_7() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_7(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=7 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "6bfe3d3df8c1e0d34ffe0dbf854c940e6bfe3d3df8c1e0d3".HexToByteArray(), iv: "51e4c5c29e858da6".HexToByteArray(), plainBytes: "4cb3554fd0b9ec82".HexToByteArray(), @@ -192,13 +208,15 @@ public static void VerifyKnownTransform_CFB8_NoPadding_7() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_8() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_8(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=8 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "e0264aec13e63db991f8c120c4b9b6dae0264aec13e63db9".HexToByteArray(), iv: "bd8795dba79930d6".HexToByteArray(), plainBytes: "79068e2943f02914af".HexToByteArray(), @@ -207,13 +225,15 @@ public static void VerifyKnownTransform_CFB8_NoPadding_8() ); } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] - public static void VerifyKnownTransform_CFB8_NoPadding_9() + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(PaddingMode.None)] + [InlineData(PaddingMode.Zeros)] + public static void VerifyKnownTransform_CFB8_NoOrZeroPadding_9(PaddingMode paddingMode) { // NIST CAVS TDESMMT.ZIP TCFB8MMT2.rsp, [DECRYPT] COUNT=9 TestTripleDESTransformDirectKey( CipherMode.CFB, - PaddingMode.None, + paddingMode, key: "7ca28938ba6bec1ffec78f7cd69761947ca28938ba6bec1f".HexToByteArray(), iv: "953896586e49d38f".HexToByteArray(), plainBytes: "2ea956d4a211db6859b7".HexToByteArray(), diff --git a/src/libraries/Directory.Build.props b/src/libraries/Directory.Build.props index 7a3946c28a47b5..98f97542b7d120 100644 --- a/src/libraries/Directory.Build.props +++ b/src/libraries/Directory.Build.props @@ -10,6 +10,8 @@ + + 5.0.0 $(RepositoryEngineeringDir)BeforeTargetFrameworkInference.targets $([System.Text.RegularExpressions.Regex]::IsMatch($(MSBuildProjectDirectory), 'src%24')) true diff --git a/src/libraries/Directory.Build.targets b/src/libraries/Directory.Build.targets index ea40e570582dd3..674ea86abfb6c4 100644 --- a/src/libraries/Directory.Build.targets +++ b/src/libraries/Directory.Build.targets @@ -242,6 +242,7 @@ + diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/Directory.Build.props b/src/libraries/Microsoft.Extensions.DependencyInjection/Directory.Build.props new file mode 100644 index 00000000000000..94276d35809fd8 --- /dev/null +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/Directory.Build.props @@ -0,0 +1,7 @@ + + + + 5.0.1 + 5.0.0.1 + + \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/ref/Microsoft.Extensions.DependencyInjection.csproj b/src/libraries/Microsoft.Extensions.DependencyInjection/ref/Microsoft.Extensions.DependencyInjection.csproj index b1b514112a7c05..db755870d00982 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/ref/Microsoft.Extensions.DependencyInjection.csproj +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/ref/Microsoft.Extensions.DependencyInjection.csproj @@ -1,6 +1,7 @@ netstandard2.0;netstandard2.1;net461 + 5.0.0.0 diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/ConstantCallSite.cs b/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/ConstantCallSite.cs index acc1d967f73805..bd09485c617f6c 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/ConstantCallSite.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/ConstantCallSite.cs @@ -7,10 +7,12 @@ namespace Microsoft.Extensions.DependencyInjection.ServiceLookup { internal class ConstantCallSite : ServiceCallSite { + private readonly Type _serviceType; internal object DefaultValue { get; } public ConstantCallSite(Type serviceType, object defaultValue): base(ResultCache.None) { + _serviceType = serviceType ?? throw new ArgumentNullException(nameof(serviceType)); if (defaultValue != null && !serviceType.IsInstanceOfType(defaultValue)) { throw new ArgumentException(SR.Format(SR.ConstantCantBeConvertedToServiceType, defaultValue.GetType(), serviceType)); @@ -19,8 +21,8 @@ public ConstantCallSite(Type serviceType, object defaultValue): base(ResultCache DefaultValue = defaultValue; } - public override Type ServiceType => DefaultValue.GetType(); - public override Type ImplementationType => DefaultValue.GetType(); + public override Type ServiceType => DefaultValue?.GetType() ?? _serviceType; + public override Type ImplementationType => DefaultValue?.GetType() ?? _serviceType; public override CallSiteKind Kind { get; } = CallSiteKind.Constant; } } diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/CallSiteTests.cs b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/CallSiteTests.cs index 3dc3cec6c64731..c83e27790b637d 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/CallSiteTests.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/CallSiteTests.cs @@ -264,6 +264,37 @@ public void DoesNotThrowWhenServiceIsUsedAsEnumerableAndNotInOneCallSite() Assert.NotNull(compileCallSite); } + [Theory] + [InlineData(ServiceProviderMode.Default)] + [InlineData(ServiceProviderMode.Dynamic)] + [InlineData(ServiceProviderMode.Runtime)] + [InlineData(ServiceProviderMode.Expressions)] + [InlineData(ServiceProviderMode.ILEmit)] + private void NoServiceCallsite_DefaultValueNull_DoesNotThrow(ServiceProviderMode mode) + { + var descriptors = new ServiceCollection(); + descriptors.AddTransient(); + + var provider = descriptors.BuildServiceProvider(mode); + ServiceF instance = ActivatorUtilities.CreateInstance(provider); + + Assert.NotNull(instance); + } + + private interface IServiceG + { + } + + private class ServiceG + { + public ServiceG(IServiceG service = null) { } + } + + private class ServiceF + { + public ServiceF(ServiceG service) { } + } + private class ServiceD { public ServiceD(IEnumerable services) diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/ServiceProviderCompilationTest.cs b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/ServiceProviderCompilationTest.cs index 5c6853e1b1c181..8094dde9364b1f 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/ServiceProviderCompilationTest.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/ServiceProviderCompilationTest.cs @@ -12,6 +12,7 @@ namespace Microsoft.Extensions.DependencyInjection.Tests public class ServiceProviderCompilationTest { [Theory] + [InlineData(ServiceProviderMode.Default, typeof(I999))] [InlineData(ServiceProviderMode.Dynamic, typeof(I999))] [InlineData(ServiceProviderMode.Runtime, typeof(I999))] [InlineData(ServiceProviderMode.ILEmit, typeof(I999))] diff --git a/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft.VisualBasic.Core.vbproj b/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft.VisualBasic.Core.vbproj index 9d76a13c5fce71..fa9c9d5ae5d806 100644 --- a/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft.VisualBasic.Core.vbproj +++ b/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft.VisualBasic.Core.vbproj @@ -31,6 +31,7 @@ + @@ -113,6 +114,9 @@ + + + diff --git a/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/CompilerServices/CacheDict.vb b/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/CompilerServices/CacheDict.vb new file mode 100644 index 00000000000000..390bb13ece0c2f --- /dev/null +++ b/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/CompilerServices/CacheDict.vb @@ -0,0 +1,69 @@ +' Licensed to the .NET Foundation under one or more agreements. +' The .NET Foundation licenses this file to you under the MIT license. + +Imports System.Collections.Generic +Imports System.Runtime.InteropServices + +Namespace Microsoft.VisualBasic.CompilerServices + + ' Implements a MRU collection for caching dynamic methods used in IDO late binding. + Friend Class CacheDict(Of TKey, TValue) + ' The Dictionary to quickly access cached data + Private ReadOnly _dict As Dictionary(Of TKey, KeyInfo) + ' MRU sorted linked list + Private ReadOnly _list As LinkedList(Of TKey) + ' Maximum size + Private ReadOnly _maxSize As Integer + + Friend Sub New(ByVal maxSize As Integer) + _dict = New Dictionary(Of TKey, KeyInfo) + _list = New LinkedList(Of TKey) + _maxSize = maxSize + End Sub + + Friend Sub Add(ByVal key As TKey, ByVal value As TValue) + Dim info As New KeyInfo + If _dict.TryGetValue(key, info) Then + ' If the key is already in the collection, remove it + _list.Remove(info.List) + ElseIf (_list.Count = _maxSize) Then + ' Age out the last element if we hit the max size + Dim last As LinkedListNode(Of TKey) = _list.Last + _list.RemoveLast() + _dict.Remove(last.Value) + End If + + ' Add the new element + Dim node As New LinkedListNode(Of TKey)(key) + _list.AddFirst(node) + _dict.Item(key) = New KeyInfo(value, node) + End Sub + + Friend Function TryGetValue(ByVal key As TKey, ByRef value As TValue) As Boolean + Dim info As New KeyInfo + If _dict.TryGetValue(key, info) Then + Dim list As LinkedListNode(Of TKey) = info.List + If (list.Previous IsNot Nothing) Then + _list.Remove(list) + _list.AddFirst(list) + End If + value = info.Value + Return True + End If + value = Nothing + Return False + End Function + + ' KeyInfo to store in the dictionary + Private Structure KeyInfo + Friend ReadOnly Value As TValue + Friend ReadOnly List As LinkedListNode(Of TKey) + + Friend Sub New(ByVal v As TValue, ByVal l As LinkedListNode(Of TKey)) + Value = v + List = l + End Sub + End Structure + End Class + +End Namespace diff --git a/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/CompilerServices/IDOBinder.vb b/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/CompilerServices/IDOBinder.vb index c8fb73e8058398..546eee7202b9bf 100644 --- a/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/CompilerServices/IDOBinder.vb +++ b/src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/CompilerServices/IDOBinder.vb @@ -8,6 +8,7 @@ Imports System.Diagnostics Imports System.Dynamic Imports System.Linq.Expressions Imports System.Reflection +Imports System.Reflection.Emit Imports System.Runtime.CompilerServices Imports Microsoft.VisualBasic.CompilerServices.NewLateBinding @@ -1049,15 +1050,6 @@ Namespace Microsoft.VisualBasic.CompilerServices End Function End Class - Public Delegate Function SiteDelegate0(ByVal site As CallSite, ByVal instance As Object) As Object - Public Delegate Function SiteDelegate1(ByVal site As CallSite, ByVal instance As Object, ByRef arg0 As Object) As Object - Public Delegate Function SiteDelegate2(ByVal site As CallSite, ByVal instance As Object, ByRef arg0 As Object, ByRef arg1 As Object) As Object - Public Delegate Function SiteDelegate3(ByVal site As CallSite, ByVal instance As Object, ByRef arg0 As Object, ByRef arg1 As Object, ByRef arg2 As Object) As Object - Public Delegate Function SiteDelegate4(ByVal site As CallSite, ByVal instance As Object, ByRef arg0 As Object, ByRef arg1 As Object, ByRef arg2 As Object, ByRef arg3 As Object) As Object - Public Delegate Function SiteDelegate5(ByVal site As CallSite, ByVal instance As Object, ByRef arg0 As Object, ByRef arg1 As Object, ByRef arg2 As Object, ByRef arg3 As Object, ByRef arg4 As Object) As Object - Public Delegate Function SiteDelegate6(ByVal site As CallSite, ByVal instance As Object, ByRef arg0 As Object, ByRef arg1 As Object, ByRef arg2 As Object, ByRef arg3 As Object, ByRef arg4 As Object, ByRef arg5 As Object) As Object - Public Delegate Function SiteDelegate7(ByVal site As CallSite, ByVal instance As Object, ByRef arg0 As Object, ByRef arg1 As Object, ByRef arg2 As Object, ByRef arg3 As Object, ByRef arg4 As Object, ByRef arg5 As Object, ByRef arg6 As Object) As Object - Friend Class IDOUtils Private Sub New() @@ -1280,6 +1272,9 @@ Namespace Microsoft.VisualBasic.CompilerServices Return If(valueExpression.Type.Equals(GetType(Object)), valueExpression, Expression.Convert(valueExpression, GetType(Object))) End Function + ' MRU Dictionary of invoker delegates. We keep 16 most recently used ones, rest is GC'd + Private Shared Invokers As New CacheDict(Of Integer, Func(Of CallSiteBinder, Object, Object(), Object))(16) + Public Shared Function CreateRefCallSiteAndInvoke( ByVal action As CallSiteBinder, ByVal instance As Object, @@ -1287,55 +1282,71 @@ Namespace Microsoft.VisualBasic.CompilerServices action = GetCachedBinder(action) - Select Case arguments.Length - Case 0 - Dim c As CallSite(Of SiteDelegate0) = CallSite(Of SiteDelegate0).Create(action) - Return c.Target.Invoke(c, instance) - Case 1 - Dim c As CallSite(Of SiteDelegate1) = CallSite(Of SiteDelegate1).Create(action) - Return c.Target.Invoke(c, instance, arguments(0)) - Case 2 - Dim c As CallSite(Of SiteDelegate2) = CallSite(Of SiteDelegate2).Create(action) - Return c.Target.Invoke(c, instance, arguments(0), arguments(1)) - Case 3 - Dim c As CallSite(Of SiteDelegate3) = CallSite(Of SiteDelegate3).Create(action) - Return c.Target.Invoke(c, instance, arguments(0), arguments(1), arguments(2)) - Case 4 - Dim c As CallSite(Of SiteDelegate4) = CallSite(Of SiteDelegate4).Create(action) - Return c.Target.Invoke(c, instance, arguments(0), arguments(1), arguments(2), arguments(3)) - Case 5 - Dim c As CallSite(Of SiteDelegate5) = CallSite(Of SiteDelegate5).Create(action) - Return c.Target.Invoke(c, instance, arguments(0), arguments(1), arguments(2), arguments(3), arguments(4)) - Case 6 - Dim c As CallSite(Of SiteDelegate6) = CallSite(Of SiteDelegate6).Create(action) - Return c.Target.Invoke(c, instance, arguments(0), arguments(1), arguments(2), arguments(3), arguments(4), arguments(5)) - Case 7 - Dim c As CallSite(Of SiteDelegate7) = CallSite(Of SiteDelegate7).Create(action) - Return c.Target.Invoke(c, instance, arguments(0), arguments(1), arguments(2), arguments(3), arguments(4), arguments(5), arguments(6)) - Case Else - Dim signature(arguments.Length + 2) As Type - Dim refObject As Type = GetType(Object).MakeByRefType() - signature(0) = GetType(CallSite) ' First argument is a call site - signature(1) = GetType(Object) ' Second is the instance (ByVal) - signature(signature.Length - 1) = GetType(Object) ' Last type is the return type - For i As Integer = 2 To signature.Length - 2 ' All arguments are ByRef - signature(i) = refObject - Next + Dim Invoker As Func(Of CallSiteBinder, Object, Object(), Object) = Nothing - Dim c As CallSite = CallSite.Create(Expression.GetDelegateType(signature), action) - Dim args(arguments.Length + 1) As Object - args(0) = c - args(1) = instance - arguments.CopyTo(args, 2) - Dim siteTarget As System.Delegate = DirectCast(c.GetType().GetField("Target").GetValue(c), System.Delegate) - Try - Dim result As Object = siteTarget.DynamicInvoke(args) - Array.Copy(args, 2, arguments, 0, arguments.Length) - Return result - Catch ie As TargetInvocationException - Throw ie.InnerException - End Try - End Select + SyncLock Invokers + If Not Invokers.TryGetValue(arguments.Length, Invoker) Then + Invoker = CreateInvoker(arguments.Length) + Invokers.Add(arguments.Length, Invoker) + End If + End SyncLock + + Return Invoker.Invoke(action, instance, arguments) + End Function + + ''' Creates an invoker, a function such as: + ''' + ''' Delegate Function InvokerDelegate3(ByVal site As CallSite, ByVal instance As Object, ByRef arg0 As Object, ByRef arg1 As Object, ByRef arg2 As Object) As Object + ''' + ''' Function Invoker3(action as CallSiteBinder, instance as Object, args as Object()) as Object + ''' Dim site as CallSite(Of InvokerDelegate3) + ''' site = CallSite(Of Func(Of InvokerDelegate3).Create(action) + ''' ' args(0), args(1) and args(2) are passed ByRef + ''' return site.Target.Invoke(site, instance, args(0), args(1), args(2)) + ''' End Function + Private Shared Function CreateInvoker(ByVal ArgLength As Integer) As Func(Of CallSiteBinder, Object, Object(), Object) + ' Useful Types + Dim ObjectType As Type = GetType(Object) + Dim ObjectRefType As Type = ObjectType.MakeByRefType() + Dim CallSiteBinderType As Type = GetType(CallSiteBinder) + + ' Call Site Delegate Signature + Dim CallSiteSignature(ArgLength + 2) As Type + CallSiteSignature(0) = GetType(CallSite) ' CallSite must go first + CallSiteSignature(1) = ObjectType ' Instance: Object + For i As Integer = 2 To CallSiteSignature.Length - 2 ' Arguments: Object& + CallSiteSignature(i) = ObjectRefType + Next + CallSiteSignature(CallSiteSignature.Length - 1) = ObjectType ' Result: Object + + ' Call Site Delegate + Dim CallSiteDelegate As Type = Expression.GetDelegateType(CallSiteSignature) + Dim CallSiteType As Type = GetType(CallSite(Of )).MakeGenericType(CallSiteDelegate) + + ' Invoker(CallSiteBinder, Instance as Object, Args as Object()) + Dim InvokerMethod As New DynamicMethod("Invoker", ObjectType, {CallSiteBinderType, ObjectType, GetType(Object())}, True) + + ' Dim cs as CallSite(Of delegateType) = CallSite(Of delegateType).Create(Action) + Dim il As ILGenerator = InvokerMethod.GetILGenerator() + Dim site As LocalBuilder = il.DeclareLocal(CallSiteType) + il.Emit(OpCodes.Ldarg_0) + il.Emit(OpCodes.Call, CallSiteType.GetMethod("Create", {CallSiteBinderType})) + il.Emit(OpCodes.Stloc, site) + + ' return site.Target.Invoke(site, Instance, ref args(0), ref args(1), ...) + il.Emit(OpCodes.Ldloc, site) + il.Emit(OpCodes.Ldfld, CallSiteType.GetField("Target")) + il.Emit(OpCodes.Ldloc, site) + il.Emit(OpCodes.Ldarg_1) 'Instance + For i As Integer = 0 To ArgLength - 1 + il.Emit(OpCodes.Ldarg_2) + il.Emit(OpCodes.Ldc_I4, i) + il.Emit(OpCodes.Ldelema, ObjectType) ' ref arg(i) + Next + il.Emit(OpCodes.Callvirt, CallSiteDelegate.GetMethod("Invoke")) + il.Emit(OpCodes.Ret) + + Return DirectCast(InvokerMethod.CreateDelegate(GetType(Func(Of CallSiteBinder, Object, Object(), Object))), Func(Of CallSiteBinder, Object, Object(), Object)) End Function Public Shared Function CreateFuncCallSiteAndInvoke( diff --git a/src/libraries/Microsoft.VisualBasic.Core/tests/Microsoft.VisualBasic.Core.Tests.csproj b/src/libraries/Microsoft.VisualBasic.Core/tests/Microsoft.VisualBasic.Core.Tests.csproj index 74c7f14cfeeb78..aa7d1139f0a67d 100644 --- a/src/libraries/Microsoft.VisualBasic.Core/tests/Microsoft.VisualBasic.Core.Tests.csproj +++ b/src/libraries/Microsoft.VisualBasic.Core/tests/Microsoft.VisualBasic.Core.Tests.csproj @@ -39,6 +39,7 @@ + diff --git a/src/libraries/Microsoft.VisualBasic.Core/tests/NewLateBindingTests.cs b/src/libraries/Microsoft.VisualBasic.Core/tests/NewLateBindingTests.cs new file mode 100644 index 00000000000000..d8efbe675fd4e9 --- /dev/null +++ b/src/libraries/Microsoft.VisualBasic.Core/tests/NewLateBindingTests.cs @@ -0,0 +1,116 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; +using System.Dynamic; +using Xunit; + +namespace Microsoft.VisualBasic.CompilerServices.Tests +{ + public class NewLateBindingTests + { + private sealed class OptionalValuesType : DynamicObject + { + public object F1(T p1 = default) + { + return $"{typeof(T)}, {ToString(p1)}"; + } + public object F2(T p1 = default, int? p2 = 2) + { + return $"{typeof(T)}, {ToString(p1)}, {ToString(p2)}"; + } + public object F3(object p1, T p2 = default, int? p3 = 3) + { + return $"{typeof(T)}, {ToString(p2)}, {ToString(p3)}"; + } + public object F4(object p1, object p2, T p3 = default, int? p4 = 4) + { + return $"{typeof(T)}, {ToString(p3)}, {ToString(p4)}"; + } + public object F5(object p1, object p2, object p3, T p4 = default, int? p5 = 5) + { + return $"{typeof(T)}, {ToString(p4)}, {ToString(p5)}"; + } + public object F6(object p1, object p2, object p3, object p4, T p5 = default, int? p6 = 6) + { + return $"{typeof(T)}, {ToString(p5)}, {ToString(p6)}"; + } + public object F7(object p1, object p2, object p3, object p4, object p5, T p6 = default, int? p7 = 7) + { + return $"{typeof(T)}, {ToString(p6)}, {ToString(p7)}"; + } + public object F8(object p1, object p2, object p3, object p4, object p5, object p6, T p7 = default, int? p8 = 8) + { + return $"{typeof(T)}, {ToString(p7)}, {ToString(p8)}"; + } + private static string ToString(object obj) => obj?.ToString() ?? "null"; + } + + public static IEnumerable LateCall_OptionalValues_Data() + { + // If System.Type.Missing is used for a parameter with type parameter type, + // System.Reflection.Missing is used in type inference. This matches .NET Framework behavior. + + yield return CreateData("F1", new object[] { -1 }, null, "System.Int32, -1"); + yield return CreateData("F1", new object[] { Type.Missing }, null, "System.Reflection.Missing, null"); + yield return CreateData("F1", new object[] { Type.Missing }, new[] { typeof(int) }, "System.Int32, 0"); + + yield return CreateData("F2", new object[] { 1, -1 }, null, "System.Int32, 1, -1"); + yield return CreateData("F2", new object[] { 1, Type.Missing }, null, "System.Int32, 1, 2"); + yield return CreateData("F2", new object[] { Type.Missing, Type.Missing }, null, "System.Reflection.Missing, null, 2"); + yield return CreateData("F2", new object[] { Type.Missing, Type.Missing }, new[] { typeof(int) }, "System.Int32, 0, 2"); + + yield return CreateData("F3", new object[] { 1, 2, -1 }, null, "System.Int32, 2, -1"); + yield return CreateData("F3", new object[] { 1, 2, Type.Missing }, null, "System.Int32, 2, 3"); + yield return CreateData("F3", new object[] { 1, Type.Missing, Type.Missing }, null, "System.Reflection.Missing, null, 3"); + yield return CreateData("F3", new object[] { 1, Type.Missing, Type.Missing }, new[] { typeof(int) }, "System.Int32, 0, 3"); + + yield return CreateData("F4", new object[] { 1, 2, 3, -1 }, null, "System.Int32, 3, -1"); + yield return CreateData("F4", new object[] { 1, 2, 3, Type.Missing }, null, "System.Int32, 3, 4"); + yield return CreateData("F4", new object[] { 1, 2, Type.Missing, Type.Missing }, null, "System.Reflection.Missing, null, 4"); + yield return CreateData("F4", new object[] { 1, 2, Type.Missing, Type.Missing }, new[] { typeof(int) }, "System.Int32, 0, 4"); + + yield return CreateData("F5", new object[] { 1, 2, 3, 4, -1 }, null, "System.Int32, 4, -1"); + yield return CreateData("F5", new object[] { 1, 2, 3, 4, Type.Missing }, null, "System.Int32, 4, 5"); + yield return CreateData("F5", new object[] { 1, 2, 3, Type.Missing, Type.Missing }, null, "System.Reflection.Missing, null, 5"); + yield return CreateData("F5", new object[] { 1, 2, 3, Type.Missing, Type.Missing }, new[] { typeof(int) }, "System.Int32, 0, 5"); + + yield return CreateData("F6", new object[] { 1, 2, 3, 4, 5, -1 }, null, "System.Int32, 5, -1"); + yield return CreateData("F6", new object[] { 1, 2, 3, 4, 5, Type.Missing }, null, "System.Int32, 5, 6"); + yield return CreateData("F6", new object[] { 1, 2, 3, 4, Type.Missing, Type.Missing }, null, "System.Reflection.Missing, null, 6"); + yield return CreateData("F6", new object[] { 1, 2, 3, 4, Type.Missing, Type.Missing }, new[] { typeof(int) }, "System.Int32, 0, 6"); + + yield return CreateData("F7", new object[] { 1, 2, 3, 4, 5, 6, -1 }, null, "System.Int32, 6, -1"); + yield return CreateData("F7", new object[] { 1, 2, 3, 4, 5, 6, Type.Missing }, null, "System.Int32, 6, 7"); + yield return CreateData("F7", new object[] { 1, 2, 3, 4, 5, Type.Missing, Type.Missing }, null, "System.Reflection.Missing, null, 7"); + yield return CreateData("F7", new object[] { 1, 2, 3, 4, 5, Type.Missing, Type.Missing }, new[] { typeof(int) }, "System.Int32, 0, 7"); + + yield return CreateData("F8", new object[] { 1, 2, 3, 4, 5, 6, 7, -1 }, null, "System.Int32, 7, -1"); + yield return CreateData("F8", new object[] { 1, 2, 3, 4, 5, 6, 7, Type.Missing }, null, "System.Int32, 7, 8"); + yield return CreateData("F8", new object[] { 1, 2, 3, 4, 5, 6, Type.Missing, Type.Missing }, null, "System.Reflection.Missing, null, 8"); + yield return CreateData("F8", new object[] { 1, 2, 3, 4, 5, 6, Type.Missing, Type.Missing }, new[] { typeof(int) }, "System.Int32, 0, 8"); + + static object[] CreateData(string memberName, object[] arguments, Type[] typeArguments, string expectedValue) => new object[] { memberName, arguments, typeArguments, expectedValue }; + } + + [Theory] + [MemberData(nameof(LateCall_OptionalValues_Data))] + public void LateCall_OptionalValues(string memberName, object[] arguments, Type[] typeArguments, string expectedValue) + { + // NewLateBinding.LateCall() corresponds to a call to the member when using late binding: + // Dim instance = New OptionalValuesType() + // instance.Member(arguments) + var actualValue = NewLateBinding.LateCall( + Instance: new OptionalValuesType(), + Type: null, + MemberName: memberName, + Arguments: arguments, + ArgumentNames: null, + TypeArguments: typeArguments, + CopyBack: null, + IgnoreReturn: true); + Assert.Equal(expectedValue, actualValue); + } + } +} diff --git a/src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.c b/src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.c index fb973ab2f079df..669d59f88e99ce 100644 --- a/src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.c +++ b/src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.c @@ -243,8 +243,6 @@ int32_t GlobalizationNative_GetLocaleInfoString(const UChar* localeName, case LocaleString_NativeCountryName: uloc_getDisplayCountry(locale, locale, value, valueLength, &status); break; - case LocaleString_ListSeparator: - // fall through case LocaleString_ThousandSeparator: status = GetLocaleInfoDecimalFormatSymbol(locale, UNUM_GROUPING_SEPARATOR_SYMBOL, value, valueLength); break; diff --git a/src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.h b/src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.h index 4554a052b285db..a88400e4b51467 100644 --- a/src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.h +++ b/src/libraries/Native/Unix/System.Globalization.Native/pal_localeStringData.h @@ -19,7 +19,6 @@ typedef enum LocaleString_NativeLanguageName = 0x04, LocaleString_EnglishCountryName = 0x00001002, LocaleString_NativeCountryName = 0x08, - LocaleString_ListSeparator = 0x0C, LocaleString_DecimalSeparator = 0x0E, LocaleString_ThousandSeparator = 0x0F, LocaleString_Digits = 0x00000013, diff --git a/src/libraries/System.Collections/tests/Generic/Dictionary/Dictionary.Tests.cs b/src/libraries/System.Collections/tests/Generic/Dictionary/Dictionary.Tests.cs index ee9957b9384484..653f6c7dacd722 100644 --- a/src/libraries/System.Collections/tests/Generic/Dictionary/Dictionary.Tests.cs +++ b/src/libraries/System.Collections/tests/Generic/Dictionary/Dictionary.Tests.cs @@ -337,6 +337,22 @@ public void CantAcceptDuplicateKeysFromSourceDictionary() AssertExtensions.Throws(null, () => new Dictionary(source, StringComparer.OrdinalIgnoreCase)); } + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotInvariantGlobalization))] + // https://github.com/dotnet/runtime/issues/44681 + public void DictionaryOrdinalIgnoreCaseCyrillicKeys() + { + const string Lower = "абвгдеёжзийклмнопрстуфхцчшщьыъэюя"; + const string Higher = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ"; + + var dictionary = new Dictionary(StringComparer.OrdinalIgnoreCase); + + for (int i = 0; i < Lower.Length; i++) + { + dictionary[Lower[i].ToString()] = i; + Assert.Equal(i, dictionary[Higher[i].ToString()]); + } + } + public static IEnumerable CopyConstructorStringComparerData { get diff --git a/src/libraries/System.Collections/tests/Generic/Dictionary/HashCollisionScenarios/OutOfBoundsRegression.cs b/src/libraries/System.Collections/tests/Generic/Dictionary/HashCollisionScenarios/OutOfBoundsRegression.cs index 934e57aafe4cc3..12f3a66f0edd68 100644 --- a/src/libraries/System.Collections/tests/Generic/Dictionary/HashCollisionScenarios/OutOfBoundsRegression.cs +++ b/src/libraries/System.Collections/tests/Generic/Dictionary/HashCollisionScenarios/OutOfBoundsRegression.cs @@ -54,56 +54,56 @@ public static void ComparerImplementations_Dictionary_WithWellKnownStringCompare RunDictionaryTest( equalityComparer: null, - expectedInternalComparerBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, - expectedPublicComparerBeforeCollisionThreshold: EqualityComparer.Default.GetType(), - expectedComparerAfterCollisionThreshold: randomizedOrdinalComparerType); + expectedInternalComparerTypeBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, + expectedPublicComparerBeforeCollisionThreshold: EqualityComparer.Default, + expectedInternalComparerTypeAfterCollisionThreshold: randomizedOrdinalComparerType); // EqualityComparer.Default comparer RunDictionaryTest( equalityComparer: EqualityComparer.Default, - expectedInternalComparerBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, - expectedPublicComparerBeforeCollisionThreshold: EqualityComparer.Default.GetType(), - expectedComparerAfterCollisionThreshold: randomizedOrdinalComparerType); + expectedInternalComparerTypeBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, + expectedPublicComparerBeforeCollisionThreshold: EqualityComparer.Default, + expectedInternalComparerTypeAfterCollisionThreshold: randomizedOrdinalComparerType); // Ordinal comparer RunDictionaryTest( equalityComparer: StringComparer.Ordinal, - expectedInternalComparerBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, - expectedPublicComparerBeforeCollisionThreshold: StringComparer.Ordinal.GetType(), - expectedComparerAfterCollisionThreshold: randomizedOrdinalComparerType); + expectedInternalComparerTypeBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, + expectedPublicComparerBeforeCollisionThreshold: StringComparer.Ordinal, + expectedInternalComparerTypeAfterCollisionThreshold: randomizedOrdinalComparerType); // OrdinalIgnoreCase comparer RunDictionaryTest( equalityComparer: StringComparer.OrdinalIgnoreCase, - expectedInternalComparerBeforeCollisionThreshold: nonRandomizedOrdinalIgnoreCaseComparerType, - expectedPublicComparerBeforeCollisionThreshold: StringComparer.OrdinalIgnoreCase.GetType(), - expectedComparerAfterCollisionThreshold: randomizedOrdinalIgnoreCaseComparerType); + expectedInternalComparerTypeBeforeCollisionThreshold: nonRandomizedOrdinalIgnoreCaseComparerType, + expectedPublicComparerBeforeCollisionThreshold: StringComparer.OrdinalIgnoreCase, + expectedInternalComparerTypeAfterCollisionThreshold: randomizedOrdinalIgnoreCaseComparerType); // linguistic comparer (not optimized) RunDictionaryTest( equalityComparer: StringComparer.InvariantCulture, - expectedInternalComparerBeforeCollisionThreshold: StringComparer.InvariantCulture.GetType(), - expectedPublicComparerBeforeCollisionThreshold: StringComparer.InvariantCulture.GetType(), - expectedComparerAfterCollisionThreshold: StringComparer.InvariantCulture.GetType()); + expectedInternalComparerTypeBeforeCollisionThreshold: StringComparer.InvariantCulture.GetType(), + expectedPublicComparerBeforeCollisionThreshold: StringComparer.InvariantCulture, + expectedInternalComparerTypeAfterCollisionThreshold: StringComparer.InvariantCulture.GetType()); static void RunDictionaryTest( IEqualityComparer equalityComparer, - Type expectedInternalComparerBeforeCollisionThreshold, - Type expectedPublicComparerBeforeCollisionThreshold, - Type expectedComparerAfterCollisionThreshold) + Type expectedInternalComparerTypeBeforeCollisionThreshold, + IEqualityComparer expectedPublicComparerBeforeCollisionThreshold, + Type expectedInternalComparerTypeAfterCollisionThreshold) { RunCollectionTestCommon( () => new Dictionary(equalityComparer), (dictionary, key) => dictionary.Add(key, null), (dictionary, key) => dictionary.ContainsKey(key), dictionary => dictionary.Comparer, - expectedInternalComparerBeforeCollisionThreshold, + expectedInternalComparerTypeBeforeCollisionThreshold, expectedPublicComparerBeforeCollisionThreshold, - expectedComparerAfterCollisionThreshold); + expectedInternalComparerTypeAfterCollisionThreshold); } } @@ -119,56 +119,56 @@ public static void ComparerImplementations_HashSet_WithWellKnownStringComparers( RunHashSetTest( equalityComparer: null, - expectedInternalComparerBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, - expectedPublicComparerBeforeCollisionThreshold: EqualityComparer.Default.GetType(), - expectedComparerAfterCollisionThreshold: randomizedOrdinalComparerType); + expectedInternalComparerTypeBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, + expectedPublicComparerBeforeCollisionThreshold: EqualityComparer.Default, + expectedInternalComparerTypeAfterCollisionThreshold: randomizedOrdinalComparerType); // EqualityComparer.Default comparer RunHashSetTest( equalityComparer: EqualityComparer.Default, - expectedInternalComparerBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, - expectedPublicComparerBeforeCollisionThreshold: EqualityComparer.Default.GetType(), - expectedComparerAfterCollisionThreshold: randomizedOrdinalComparerType); + expectedInternalComparerTypeBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, + expectedPublicComparerBeforeCollisionThreshold: EqualityComparer.Default, + expectedInternalComparerTypeAfterCollisionThreshold: randomizedOrdinalComparerType); // Ordinal comparer RunHashSetTest( equalityComparer: StringComparer.Ordinal, - expectedInternalComparerBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, - expectedPublicComparerBeforeCollisionThreshold: StringComparer.Ordinal.GetType(), - expectedComparerAfterCollisionThreshold: randomizedOrdinalComparerType); + expectedInternalComparerTypeBeforeCollisionThreshold: nonRandomizedOrdinalComparerType, + expectedPublicComparerBeforeCollisionThreshold: StringComparer.Ordinal, + expectedInternalComparerTypeAfterCollisionThreshold: randomizedOrdinalComparerType); // OrdinalIgnoreCase comparer RunHashSetTest( equalityComparer: StringComparer.OrdinalIgnoreCase, - expectedInternalComparerBeforeCollisionThreshold: nonRandomizedOrdinalIgnoreCaseComparerType, - expectedPublicComparerBeforeCollisionThreshold: StringComparer.OrdinalIgnoreCase.GetType(), - expectedComparerAfterCollisionThreshold: randomizedOrdinalIgnoreCaseComparerType); + expectedInternalComparerTypeBeforeCollisionThreshold: nonRandomizedOrdinalIgnoreCaseComparerType, + expectedPublicComparerBeforeCollisionThreshold: StringComparer.OrdinalIgnoreCase, + expectedInternalComparerTypeAfterCollisionThreshold: randomizedOrdinalIgnoreCaseComparerType); // linguistic comparer (not optimized) RunHashSetTest( equalityComparer: StringComparer.InvariantCulture, - expectedInternalComparerBeforeCollisionThreshold: StringComparer.InvariantCulture.GetType(), - expectedPublicComparerBeforeCollisionThreshold: StringComparer.InvariantCulture.GetType(), - expectedComparerAfterCollisionThreshold: StringComparer.InvariantCulture.GetType()); + expectedInternalComparerTypeBeforeCollisionThreshold: StringComparer.InvariantCulture.GetType(), + expectedPublicComparerBeforeCollisionThreshold: StringComparer.InvariantCulture, + expectedInternalComparerTypeAfterCollisionThreshold: StringComparer.InvariantCulture.GetType()); static void RunHashSetTest( IEqualityComparer equalityComparer, - Type expectedInternalComparerBeforeCollisionThreshold, - Type expectedPublicComparerBeforeCollisionThreshold, - Type expectedComparerAfterCollisionThreshold) + Type expectedInternalComparerTypeBeforeCollisionThreshold, + IEqualityComparer expectedPublicComparerBeforeCollisionThreshold, + Type expectedInternalComparerTypeAfterCollisionThreshold) { RunCollectionTestCommon( () => new HashSet(equalityComparer), (set, key) => Assert.True(set.Add(key)), (set, key) => set.Contains(key), set => set.Comparer, - expectedInternalComparerBeforeCollisionThreshold, + expectedInternalComparerTypeBeforeCollisionThreshold, expectedPublicComparerBeforeCollisionThreshold, - expectedComparerAfterCollisionThreshold); + expectedInternalComparerTypeAfterCollisionThreshold); } } @@ -177,24 +177,18 @@ private static void RunCollectionTestCommon( Action addKeyCallback, Func containsKeyCallback, Func> getComparerCallback, - Type expectedInternalComparerBeforeCollisionThreshold, - Type expectedPublicComparerBeforeCollisionThreshold, - Type expectedComparerAfterCollisionThreshold) + Type expectedInternalComparerTypeBeforeCollisionThreshold, + IEqualityComparer expectedPublicComparerBeforeCollisionThreshold, + Type expectedInternalComparerTypeAfterCollisionThreshold) { TCollection collection = collectionFactory(); List allKeys = new List(); - const int StartOfRange = 0xE020; // use the Unicode Private Use range to avoid accidentally creating strings that really do compare as equal OrdinalIgnoreCase - const int Stride = 0x40; // to ensure we don't accidentally reset the 0x20 bit of the seed, which is used to negate OrdinalIgnoreCase effects - // First, go right up to the collision threshold, but don't exceed it. for (int i = 0; i < 100; i++) { - string newKey = GenerateCollidingString(i * Stride + StartOfRange); - Assert.Equal(0, _lazyGetNonRandomizedHashCodeDel.Value(newKey)); // ensure has a zero hash code Ordinal - Assert.Equal(0x24716ca0, _lazyGetNonRandomizedOrdinalIgnoreCaseHashCodeDel.Value(newKey)); // ensure has a zero hash code OrdinalIgnoreCase - + string newKey = _collidingStrings[i]; addKeyCallback(collection, newKey); allKeys.Add(newKey); } @@ -202,15 +196,18 @@ private static void RunCollectionTestCommon( FieldInfo internalComparerField = collection.GetType().GetField("_comparer", BindingFlags.NonPublic | BindingFlags.Instance); Assert.NotNull(internalComparerField); - Assert.Equal(expectedInternalComparerBeforeCollisionThreshold, internalComparerField.GetValue(collection)?.GetType()); - Assert.Equal(expectedPublicComparerBeforeCollisionThreshold, getComparerCallback(collection).GetType()); + IEqualityComparer actualInternalComparerBeforeCollisionThreshold = (IEqualityComparer)internalComparerField.GetValue(collection); + ValidateBehaviorOfInternalComparerVsPublicComparer(actualInternalComparerBeforeCollisionThreshold, expectedPublicComparerBeforeCollisionThreshold); + + Assert.Equal(expectedInternalComparerTypeBeforeCollisionThreshold, actualInternalComparerBeforeCollisionThreshold?.GetType()); + Assert.Equal(expectedPublicComparerBeforeCollisionThreshold, getComparerCallback(collection)); // Now exceed the collision threshold, which should rebucket entries. // Continue adding a few more entries to ensure we didn't corrupt internal state. for (int i = 100; i < 110; i++) { - string newKey = GenerateCollidingString(i * Stride + StartOfRange); + string newKey = _collidingStrings[i]; Assert.Equal(0, _lazyGetNonRandomizedHashCodeDel.Value(newKey)); // ensure has a zero hash code Ordinal Assert.Equal(0x24716ca0, _lazyGetNonRandomizedOrdinalIgnoreCaseHashCodeDel.Value(newKey)); // ensure has a zero hash code OrdinalIgnoreCase @@ -218,8 +215,11 @@ private static void RunCollectionTestCommon( allKeys.Add(newKey); } - Assert.Equal(expectedComparerAfterCollisionThreshold, internalComparerField.GetValue(collection)?.GetType()); - Assert.Equal(expectedPublicComparerBeforeCollisionThreshold, getComparerCallback(collection).GetType()); // shouldn't change this return value after collision threshold met + IEqualityComparer actualInternalComparerAfterCollisionThreshold = (IEqualityComparer)internalComparerField.GetValue(collection); + ValidateBehaviorOfInternalComparerVsPublicComparer(actualInternalComparerAfterCollisionThreshold, expectedPublicComparerBeforeCollisionThreshold); + + Assert.Equal(expectedInternalComparerTypeAfterCollisionThreshold, actualInternalComparerAfterCollisionThreshold?.GetType()); + Assert.Equal(expectedPublicComparerBeforeCollisionThreshold, getComparerCallback(collection)); // shouldn't change this return value after collision threshold met // And validate that all strings are present in the dictionary. @@ -235,7 +235,7 @@ private static void RunCollectionTestCommon( ((ISerializable)collection).GetObjectData(si, new StreamingContext()); object serializedComparer = si.GetValue("Comparer", typeof(IEqualityComparer)); - Assert.Equal(expectedPublicComparerBeforeCollisionThreshold, serializedComparer.GetType()); + Assert.Equal(expectedPublicComparerBeforeCollisionThreshold, serializedComparer); } private static Lazy> _lazyGetNonRandomizedHashCodeDel = new Lazy>( @@ -244,27 +244,63 @@ private static void RunCollectionTestCommon( private static Lazy> _lazyGetNonRandomizedOrdinalIgnoreCaseHashCodeDel = new Lazy>( () => GetStringHashCodeOpenDelegate("GetNonRandomizedHashCodeOrdinalIgnoreCase")); - // Generates a string with a well-known non-randomized hash code: - // - string.GetNonRandomizedHashCode returns 0. - // - string.GetNonRandomizedHashCodeOrdinalIgnoreCase returns 0x24716ca0. - // Provide a different seed to produce a different string. - private static string GenerateCollidingString(int seed) + // n.b., must be initialized *after* delegate fields above + private static readonly List _collidingStrings = GenerateCollidingStrings(110); + + private static List GenerateCollidingStrings(int count) { - return string.Create(8, seed, (span, seed) => + const int StartOfRange = 0xE020; // use the Unicode Private Use range to avoid accidentally creating strings that really do compare as equal OrdinalIgnoreCase + const int Stride = 0x40; // to ensure we don't accidentally reset the 0x20 bit of the seed, which is used to negate OrdinalIgnoreCase effects + + int currentSeed = StartOfRange; + + List collidingStrings = new List(count); + while (collidingStrings.Count < count) { - Span asBytes = MemoryMarshal.AsBytes(span); + if (currentSeed > ushort.MaxValue) + { + throw new Exception($"Couldn't create enough colliding strings? Created {collidingStrings.Count}, needed {count}."); + } - uint hash1 = (5381 << 16) + 5381; - uint hash2 = BitOperations.RotateLeft(hash1, 5) + hash1; + string candidate = GenerateCollidingStringCandidate(currentSeed); - MemoryMarshal.Write(asBytes, ref seed); - MemoryMarshal.Write(asBytes.Slice(4), ref hash2); // set hash2 := 0 (for Ordinal) + int ordinalHashCode = _lazyGetNonRandomizedHashCodeDel.Value(candidate); + Assert.Equal(0, ordinalHashCode); // ensure has a zero hash code Ordinal - hash1 = (BitOperations.RotateLeft(hash1, 5) + hash1) ^ (uint)seed; - hash1 = (BitOperations.RotateLeft(hash1, 5) + hash1); + int ordinalIgnoreCaseHashCode = _lazyGetNonRandomizedOrdinalIgnoreCaseHashCodeDel.Value(candidate); + if (ordinalIgnoreCaseHashCode == 0x24716ca0) // ensure has a zero hash code OrdinalIgnoreCase (might not have one) + { + collidingStrings.Add(candidate); // success! + } - MemoryMarshal.Write(asBytes.Slice(8), ref hash1); // set hash1 := 0 (for Ordinal) - }); + currentSeed += Stride; + } + + return collidingStrings; + + // Generates a possible string with a well-known non-randomized hash code: + // - string.GetNonRandomizedHashCode returns 0. + // - string.GetNonRandomizedHashCodeOrdinalIgnoreCase returns 0x24716ca0. + // Provide a different seed to produce a different string. + // Caller must check OrdinalIgnoreCase hash code to ensure correctness. + static string GenerateCollidingStringCandidate(int seed) + { + return string.Create(8, seed, (span, seed) => + { + Span asBytes = MemoryMarshal.AsBytes(span); + + uint hash1 = (5381 << 16) + 5381; + uint hash2 = BitOperations.RotateLeft(hash1, 5) + hash1; + + MemoryMarshal.Write(asBytes, ref seed); + MemoryMarshal.Write(asBytes.Slice(4), ref hash2); // set hash2 := 0 (for Ordinal) + + hash1 = (BitOperations.RotateLeft(hash1, 5) + hash1) ^ (uint)seed; + hash1 = (BitOperations.RotateLeft(hash1, 5) + hash1); + + MemoryMarshal.Write(asBytes.Slice(8), ref hash1); // set hash1 := 0 (for Ordinal) + }); + } } private static Func GetStringHashCodeOpenDelegate(string methodName) @@ -274,5 +310,44 @@ private static Func GetStringHashCodeOpenDelegate(string methodName return method.CreateDelegate>(target: null); // create open delegate unbound to 'this' } + + private static void ValidateBehaviorOfInternalComparerVsPublicComparer(IEqualityComparer internalComparer, IEqualityComparer publicComparer) + { + // This helper ensures that when we substitute one of our internal comparers + // in place of the expected public comparer, the internal comparer's Equals + // and GetHashCode behavior are consistent with the public comparer's. + + if (internalComparer is null) + { + internalComparer = EqualityComparer.Default; + } + if (publicComparer is null) + { + publicComparer = EqualityComparer.Default; + } + + foreach (var pair in new[] { + ("Hello", "Hello"), // exactly equal + ("Hello", "Goodbye"), // not equal at all + ("Hello", "hello"), // case-insensitive equal + ("Hello", "He\u200dllo"), // equal under linguistic comparer + ("Hello", "HE\u200dLLO"), // equal under case-insensitive linguistic comparer + ("абвгдеёжзийклмнопрстуфхцчшщьыъэюя", "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ"), // Cyrillic, case-insensitive equal + }) + { + bool arePairElementsExpectedEqual = publicComparer.Equals(pair.Item1, pair.Item2); + Assert.Equal(arePairElementsExpectedEqual, internalComparer.Equals(pair.Item1, pair.Item2)); + + bool areInternalHashCodesEqual = internalComparer.GetHashCode(pair.Item1) == internalComparer.GetHashCode(pair.Item2); + if (arePairElementsExpectedEqual) + { + Assert.True(areInternalHashCodesEqual); + } + else if (!areInternalHashCodesEqual) + { + Assert.False(arePairElementsExpectedEqual); + } + } + } } } diff --git a/src/libraries/System.ComponentModel.Primitives/ref/System.ComponentModel.Primitives.cs b/src/libraries/System.ComponentModel.Primitives/ref/System.ComponentModel.Primitives.cs index 326179721c1989..154b82741365a0 100644 --- a/src/libraries/System.ComponentModel.Primitives/ref/System.ComponentModel.Primitives.cs +++ b/src/libraries/System.ComponentModel.Primitives/ref/System.ComponentModel.Primitives.cs @@ -181,7 +181,7 @@ public void Dispose() { } public void RemoveHandler(object key, System.Delegate? value) { } } [System.ComponentModel.DesignerAttribute("System.ComponentModel.Design.ComponentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [System.ComponentModel.DesignerAttribute("System.Windows.Forms.Design.ComponentDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [System.ComponentModel.DesignerAttribute("System.Windows.Forms.Design.ComponentDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.ComponentModel.Design.IRootDesigner, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")] [System.ComponentModel.TypeConverterAttribute("System.ComponentModel.ComponentConverter, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")] public partial interface IComponent : System.IDisposable { diff --git a/src/libraries/System.ComponentModel.Primitives/src/System/ComponentModel/IComponent.cs b/src/libraries/System.ComponentModel.Primitives/src/System/ComponentModel/IComponent.cs index 9d93f5fb9cb82f..1cccaceeac6c2a 100644 --- a/src/libraries/System.ComponentModel.Primitives/src/System/ComponentModel/IComponent.cs +++ b/src/libraries/System.ComponentModel.Primitives/src/System/ComponentModel/IComponent.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.ComponentModel.Design; using System.Runtime.InteropServices; namespace System.ComponentModel @@ -20,7 +21,8 @@ namespace System.ComponentModel /// Provides functionality required by all components. /// [Designer("System.ComponentModel.Design.ComponentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [Designer("System.Windows.Forms.Design.ComponentDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [Designer("System.Windows.Forms.Design.ComponentDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", + "System.ComponentModel.Design.IRootDesigner, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")] [TypeConverter("System.ComponentModel.ComponentConverter, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")] public interface IComponent : IDisposable { diff --git a/src/libraries/System.ComponentModel.TypeConverter/ref/System.ComponentModel.TypeConverter.cs b/src/libraries/System.ComponentModel.TypeConverter/ref/System.ComponentModel.TypeConverter.cs index ab3fa3e9fbe2c9..c993ba4393498c 100644 --- a/src/libraries/System.ComponentModel.TypeConverter/ref/System.ComponentModel.TypeConverter.cs +++ b/src/libraries/System.ComponentModel.TypeConverter/ref/System.ComponentModel.TypeConverter.cs @@ -809,7 +809,7 @@ public LookupBindingPropertiesAttribute(string dataSource, string displayMember, public override bool Equals(object obj) { throw null; } public override int GetHashCode() { throw null; } } - [System.ComponentModel.DesignerAttribute("System.Windows.Forms.Design.ComponentDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(System.ComponentModel.Design.IRootDesigner))] + [System.ComponentModel.DesignerAttribute("System.Windows.Forms.Design.ComponentDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.ComponentModel.Design.IRootDesigner, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")] [System.ComponentModel.DesignerCategoryAttribute("Component")] [System.ComponentModel.TypeConverterAttribute(typeof(System.ComponentModel.ComponentConverter))] public partial class MarshalByValueComponent : System.ComponentModel.IComponent, System.IDisposable, System.IServiceProvider diff --git a/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/MarshalByValueComponent.cs b/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/MarshalByValueComponent.cs index 93d3485b1ec131..33db604c4160e6 100644 --- a/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/MarshalByValueComponent.cs +++ b/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/MarshalByValueComponent.cs @@ -10,7 +10,8 @@ namespace System.ComponentModel /// Provides the base implementation for , /// which is the base class for all components in Win Forms. /// - [Designer("System.Windows.Forms.Design.ComponentDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(IRootDesigner))] + [Designer("System.Windows.Forms.Design.ComponentDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", + "System.ComponentModel.Design.IRootDesigner, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")] [DesignerCategory("Component")] [TypeConverter(typeof(ComponentConverter))] public class MarshalByValueComponent : IComponent, IServiceProvider diff --git a/src/libraries/System.Composition/Directory.Build.props b/src/libraries/System.Composition/Directory.Build.props index ad247e4c80f99a..d3fd2e762c544a 100644 --- a/src/libraries/System.Composition/Directory.Build.props +++ b/src/libraries/System.Composition/Directory.Build.props @@ -1,3 +1,7 @@ - + - \ No newline at end of file + + Microsoft + 5.0.1 + + diff --git a/src/libraries/System.Console/src/System/ConsolePal.Unix.cs b/src/libraries/System.Console/src/System/ConsolePal.Unix.cs index b1a2d097f8281e..0348cac37195d1 100644 --- a/src/libraries/System.Console/src/System/ConsolePal.Unix.cs +++ b/src/libraries/System.Console/src/System/ConsolePal.Unix.cs @@ -1235,6 +1235,11 @@ internal static unsafe int Read(SafeFileHandle fd, byte[] buffer, int offset, in /// Writing this buffer may change the cursor position. private static unsafe void Write(SafeFileHandle fd, byte[] buffer, int offset, int count, bool mayChangeCursorPosition = true) { + // Console initialization might emit data to stdout. + // In order to avoid splitting user data we need to + // complete it before any writes are performed. + EnsureConsoleInitialized(); + fixed (byte* bufPtr = buffer) { Write(fd, bufPtr + offset, count, mayChangeCursorPosition); diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/Directory.Build.props b/src/libraries/System.Diagnostics.DiagnosticSource/Directory.Build.props index bdcfca3b543cbb..819d782564dab1 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/Directory.Build.props +++ b/src/libraries/System.Diagnostics.DiagnosticSource/Directory.Build.props @@ -2,5 +2,8 @@ Open + 5.0.1 + 5.0.0.1 + true \ No newline at end of file diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs index 74c061c89ccfee..df5d819b0dcd74 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs +++ b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs @@ -1017,7 +1017,7 @@ internal static Activity CreateAndStart(ActivitySource source, string name, Acti } } - activity.StartTimeUtc = startTime == default ? DateTime.UtcNow : startTime.UtcDateTime; + activity.StartTimeUtc = startTime == default ? GetUtcNow() : startTime.UtcDateTime; activity.IsAllDataRequested = request == ActivitySamplingResult.AllData || request == ActivitySamplingResult.AllDataAndRecorded; diff --git a/src/libraries/System.Diagnostics.EventLog/Directory.Build.props b/src/libraries/System.Diagnostics.EventLog/Directory.Build.props index 2f8a8940e012a3..6944f65a977f75 100644 --- a/src/libraries/System.Diagnostics.EventLog/Directory.Build.props +++ b/src/libraries/System.Diagnostics.EventLog/Directory.Build.props @@ -3,5 +3,7 @@ Open true + 5.0.1 + 5.0.0.1 \ No newline at end of file diff --git a/src/libraries/System.Diagnostics.EventLog/src/Messages/EventLogMessages.mc b/src/libraries/System.Diagnostics.EventLog/src/Messages/EventLogMessages.mc new file mode 100644 index 00000000000000..821bea0a62a76b --- /dev/null +++ b/src/libraries/System.Diagnostics.EventLog/src/Messages/EventLogMessages.mc @@ -0,0 +1,262144 @@ +MessageId=0 +Language=English +%1 +. +MessageId=1 +Language=English +%1 +. +MessageId=2 +Language=English +%1 +. +MessageId=3 +Language=English +%1 +. +MessageId=4 +Language=English +%1 +. +MessageId=5 +Language=English +%1 +. +MessageId=6 +Language=English +%1 +. +MessageId=7 +Language=English +%1 +. +MessageId=8 +Language=English +%1 +. +MessageId=9 +Language=English +%1 +. +MessageId=10 +Language=English +%1 +. +MessageId=11 +Language=English +%1 +. +MessageId=12 +Language=English +%1 +. +MessageId=13 +Language=English +%1 +. +MessageId=14 +Language=English +%1 +. +MessageId=15 +Language=English +%1 +. +MessageId=16 +Language=English +%1 +. +MessageId=17 +Language=English +%1 +. +MessageId=18 +Language=English +%1 +. +MessageId=19 +Language=English +%1 +. +MessageId=20 +Language=English +%1 +. +MessageId=21 +Language=English +%1 +. +MessageId=22 +Language=English +%1 +. +MessageId=23 +Language=English +%1 +. +MessageId=24 +Language=English +%1 +. +MessageId=25 +Language=English +%1 +. +MessageId=26 +Language=English +%1 +. +MessageId=27 +Language=English +%1 +. +MessageId=28 +Language=English +%1 +. +MessageId=29 +Language=English +%1 +. +MessageId=30 +Language=English +%1 +. +MessageId=31 +Language=English +%1 +. +MessageId=32 +Language=English +%1 +. +MessageId=33 +Language=English +%1 +. +MessageId=34 +Language=English +%1 +. +MessageId=35 +Language=English +%1 +. +MessageId=36 +Language=English +%1 +. +MessageId=37 +Language=English +%1 +. +MessageId=38 +Language=English +%1 +. +MessageId=39 +Language=English +%1 +. +MessageId=40 +Language=English +%1 +. +MessageId=41 +Language=English +%1 +. +MessageId=42 +Language=English +%1 +. +MessageId=43 +Language=English +%1 +. +MessageId=44 +Language=English +%1 +. +MessageId=45 +Language=English +%1 +. +MessageId=46 +Language=English +%1 +. +MessageId=47 +Language=English +%1 +. +MessageId=48 +Language=English +%1 +. +MessageId=49 +Language=English +%1 +. +MessageId=50 +Language=English +%1 +. +MessageId=51 +Language=English +%1 +. +MessageId=52 +Language=English +%1 +. +MessageId=53 +Language=English +%1 +. +MessageId=54 +Language=English +%1 +. +MessageId=55 +Language=English +%1 +. +MessageId=56 +Language=English +%1 +. +MessageId=57 +Language=English +%1 +. +MessageId=58 +Language=English +%1 +. +MessageId=59 +Language=English +%1 +. +MessageId=60 +Language=English +%1 +. +MessageId=61 +Language=English +%1 +. +MessageId=62 +Language=English +%1 +. +MessageId=63 +Language=English +%1 +. +MessageId=64 +Language=English +%1 +. +MessageId=65 +Language=English +%1 +. +MessageId=66 +Language=English +%1 +. +MessageId=67 +Language=English +%1 +. +MessageId=68 +Language=English +%1 +. +MessageId=69 +Language=English +%1 +. +MessageId=70 +Language=English +%1 +. +MessageId=71 +Language=English +%1 +. +MessageId=72 +Language=English +%1 +. +MessageId=73 +Language=English +%1 +. +MessageId=74 +Language=English +%1 +. +MessageId=75 +Language=English +%1 +. +MessageId=76 +Language=English +%1 +. +MessageId=77 +Language=English +%1 +. +MessageId=78 +Language=English +%1 +. +MessageId=79 +Language=English +%1 +. +MessageId=80 +Language=English +%1 +. +MessageId=81 +Language=English +%1 +. +MessageId=82 +Language=English +%1 +. +MessageId=83 +Language=English +%1 +. +MessageId=84 +Language=English +%1 +. +MessageId=85 +Language=English +%1 +. +MessageId=86 +Language=English +%1 +. +MessageId=87 +Language=English +%1 +. +MessageId=88 +Language=English +%1 +. +MessageId=89 +Language=English +%1 +. +MessageId=90 +Language=English +%1 +. +MessageId=91 +Language=English +%1 +. +MessageId=92 +Language=English +%1 +. +MessageId=93 +Language=English +%1 +. +MessageId=94 +Language=English +%1 +. +MessageId=95 +Language=English +%1 +. +MessageId=96 +Language=English +%1 +. +MessageId=97 +Language=English +%1 +. +MessageId=98 +Language=English +%1 +. +MessageId=99 +Language=English +%1 +. +MessageId=100 +Language=English +%1 +. +MessageId=101 +Language=English +%1 +. +MessageId=102 +Language=English +%1 +. +MessageId=103 +Language=English +%1 +. +MessageId=104 +Language=English +%1 +. +MessageId=105 +Language=English +%1 +. +MessageId=106 +Language=English +%1 +. +MessageId=107 +Language=English +%1 +. +MessageId=108 +Language=English +%1 +. +MessageId=109 +Language=English +%1 +. +MessageId=110 +Language=English +%1 +. +MessageId=111 +Language=English +%1 +. +MessageId=112 +Language=English +%1 +. +MessageId=113 +Language=English +%1 +. +MessageId=114 +Language=English +%1 +. +MessageId=115 +Language=English +%1 +. +MessageId=116 +Language=English +%1 +. +MessageId=117 +Language=English +%1 +. +MessageId=118 +Language=English +%1 +. +MessageId=119 +Language=English +%1 +. +MessageId=120 +Language=English +%1 +. +MessageId=121 +Language=English +%1 +. +MessageId=122 +Language=English +%1 +. +MessageId=123 +Language=English +%1 +. +MessageId=124 +Language=English +%1 +. +MessageId=125 +Language=English +%1 +. +MessageId=126 +Language=English +%1 +. +MessageId=127 +Language=English +%1 +. +MessageId=128 +Language=English +%1 +. +MessageId=129 +Language=English +%1 +. +MessageId=130 +Language=English +%1 +. +MessageId=131 +Language=English +%1 +. +MessageId=132 +Language=English +%1 +. +MessageId=133 +Language=English +%1 +. +MessageId=134 +Language=English +%1 +. +MessageId=135 +Language=English +%1 +. +MessageId=136 +Language=English +%1 +. +MessageId=137 +Language=English +%1 +. +MessageId=138 +Language=English +%1 +. +MessageId=139 +Language=English +%1 +. +MessageId=140 +Language=English +%1 +. +MessageId=141 +Language=English +%1 +. +MessageId=142 +Language=English +%1 +. +MessageId=143 +Language=English +%1 +. +MessageId=144 +Language=English +%1 +. +MessageId=145 +Language=English +%1 +. +MessageId=146 +Language=English +%1 +. +MessageId=147 +Language=English +%1 +. +MessageId=148 +Language=English +%1 +. +MessageId=149 +Language=English +%1 +. +MessageId=150 +Language=English +%1 +. +MessageId=151 +Language=English +%1 +. +MessageId=152 +Language=English +%1 +. +MessageId=153 +Language=English +%1 +. +MessageId=154 +Language=English +%1 +. +MessageId=155 +Language=English +%1 +. +MessageId=156 +Language=English +%1 +. +MessageId=157 +Language=English +%1 +. +MessageId=158 +Language=English +%1 +. +MessageId=159 +Language=English +%1 +. +MessageId=160 +Language=English +%1 +. +MessageId=161 +Language=English +%1 +. +MessageId=162 +Language=English +%1 +. +MessageId=163 +Language=English +%1 +. +MessageId=164 +Language=English +%1 +. +MessageId=165 +Language=English +%1 +. +MessageId=166 +Language=English +%1 +. +MessageId=167 +Language=English +%1 +. +MessageId=168 +Language=English +%1 +. +MessageId=169 +Language=English +%1 +. +MessageId=170 +Language=English +%1 +. +MessageId=171 +Language=English +%1 +. +MessageId=172 +Language=English +%1 +. +MessageId=173 +Language=English +%1 +. +MessageId=174 +Language=English +%1 +. +MessageId=175 +Language=English +%1 +. +MessageId=176 +Language=English +%1 +. +MessageId=177 +Language=English +%1 +. +MessageId=178 +Language=English +%1 +. +MessageId=179 +Language=English +%1 +. +MessageId=180 +Language=English +%1 +. +MessageId=181 +Language=English +%1 +. +MessageId=182 +Language=English +%1 +. +MessageId=183 +Language=English +%1 +. +MessageId=184 +Language=English +%1 +. +MessageId=185 +Language=English +%1 +. +MessageId=186 +Language=English +%1 +. +MessageId=187 +Language=English +%1 +. +MessageId=188 +Language=English +%1 +. +MessageId=189 +Language=English +%1 +. +MessageId=190 +Language=English +%1 +. +MessageId=191 +Language=English +%1 +. +MessageId=192 +Language=English +%1 +. +MessageId=193 +Language=English +%1 +. +MessageId=194 +Language=English +%1 +. +MessageId=195 +Language=English +%1 +. +MessageId=196 +Language=English +%1 +. +MessageId=197 +Language=English +%1 +. +MessageId=198 +Language=English +%1 +. +MessageId=199 +Language=English +%1 +. +MessageId=200 +Language=English +%1 +. +MessageId=201 +Language=English +%1 +. +MessageId=202 +Language=English +%1 +. +MessageId=203 +Language=English +%1 +. +MessageId=204 +Language=English +%1 +. +MessageId=205 +Language=English +%1 +. +MessageId=206 +Language=English +%1 +. +MessageId=207 +Language=English +%1 +. +MessageId=208 +Language=English +%1 +. +MessageId=209 +Language=English +%1 +. +MessageId=210 +Language=English +%1 +. +MessageId=211 +Language=English +%1 +. +MessageId=212 +Language=English +%1 +. +MessageId=213 +Language=English +%1 +. +MessageId=214 +Language=English +%1 +. +MessageId=215 +Language=English +%1 +. +MessageId=216 +Language=English +%1 +. +MessageId=217 +Language=English +%1 +. +MessageId=218 +Language=English +%1 +. +MessageId=219 +Language=English +%1 +. +MessageId=220 +Language=English +%1 +. +MessageId=221 +Language=English +%1 +. +MessageId=222 +Language=English +%1 +. +MessageId=223 +Language=English +%1 +. +MessageId=224 +Language=English +%1 +. +MessageId=225 +Language=English +%1 +. +MessageId=226 +Language=English +%1 +. +MessageId=227 +Language=English +%1 +. +MessageId=228 +Language=English +%1 +. +MessageId=229 +Language=English +%1 +. +MessageId=230 +Language=English +%1 +. +MessageId=231 +Language=English +%1 +. +MessageId=232 +Language=English +%1 +. +MessageId=233 +Language=English +%1 +. +MessageId=234 +Language=English +%1 +. +MessageId=235 +Language=English +%1 +. +MessageId=236 +Language=English +%1 +. +MessageId=237 +Language=English +%1 +. +MessageId=238 +Language=English +%1 +. +MessageId=239 +Language=English +%1 +. +MessageId=240 +Language=English +%1 +. +MessageId=241 +Language=English +%1 +. +MessageId=242 +Language=English +%1 +. +MessageId=243 +Language=English +%1 +. +MessageId=244 +Language=English +%1 +. +MessageId=245 +Language=English +%1 +. +MessageId=246 +Language=English +%1 +. +MessageId=247 +Language=English +%1 +. +MessageId=248 +Language=English +%1 +. +MessageId=249 +Language=English +%1 +. +MessageId=250 +Language=English +%1 +. +MessageId=251 +Language=English +%1 +. +MessageId=252 +Language=English +%1 +. +MessageId=253 +Language=English +%1 +. +MessageId=254 +Language=English +%1 +. +MessageId=255 +Language=English +%1 +. +MessageId=256 +Language=English +%1 +. +MessageId=257 +Language=English +%1 +. +MessageId=258 +Language=English +%1 +. +MessageId=259 +Language=English +%1 +. +MessageId=260 +Language=English +%1 +. +MessageId=261 +Language=English +%1 +. +MessageId=262 +Language=English +%1 +. +MessageId=263 +Language=English +%1 +. +MessageId=264 +Language=English +%1 +. +MessageId=265 +Language=English +%1 +. +MessageId=266 +Language=English +%1 +. +MessageId=267 +Language=English +%1 +. +MessageId=268 +Language=English +%1 +. +MessageId=269 +Language=English +%1 +. +MessageId=270 +Language=English +%1 +. +MessageId=271 +Language=English +%1 +. +MessageId=272 +Language=English +%1 +. +MessageId=273 +Language=English +%1 +. +MessageId=274 +Language=English +%1 +. +MessageId=275 +Language=English +%1 +. +MessageId=276 +Language=English +%1 +. +MessageId=277 +Language=English +%1 +. +MessageId=278 +Language=English +%1 +. +MessageId=279 +Language=English +%1 +. +MessageId=280 +Language=English +%1 +. +MessageId=281 +Language=English +%1 +. +MessageId=282 +Language=English +%1 +. +MessageId=283 +Language=English +%1 +. +MessageId=284 +Language=English +%1 +. +MessageId=285 +Language=English +%1 +. +MessageId=286 +Language=English +%1 +. +MessageId=287 +Language=English +%1 +. +MessageId=288 +Language=English +%1 +. +MessageId=289 +Language=English +%1 +. +MessageId=290 +Language=English +%1 +. +MessageId=291 +Language=English +%1 +. +MessageId=292 +Language=English +%1 +. +MessageId=293 +Language=English +%1 +. +MessageId=294 +Language=English +%1 +. +MessageId=295 +Language=English +%1 +. +MessageId=296 +Language=English +%1 +. +MessageId=297 +Language=English +%1 +. +MessageId=298 +Language=English +%1 +. +MessageId=299 +Language=English +%1 +. +MessageId=300 +Language=English +%1 +. +MessageId=301 +Language=English +%1 +. +MessageId=302 +Language=English +%1 +. +MessageId=303 +Language=English +%1 +. +MessageId=304 +Language=English +%1 +. +MessageId=305 +Language=English +%1 +. +MessageId=306 +Language=English +%1 +. +MessageId=307 +Language=English +%1 +. +MessageId=308 +Language=English +%1 +. +MessageId=309 +Language=English +%1 +. +MessageId=310 +Language=English +%1 +. +MessageId=311 +Language=English +%1 +. +MessageId=312 +Language=English +%1 +. +MessageId=313 +Language=English +%1 +. +MessageId=314 +Language=English +%1 +. +MessageId=315 +Language=English +%1 +. +MessageId=316 +Language=English +%1 +. +MessageId=317 +Language=English +%1 +. +MessageId=318 +Language=English +%1 +. +MessageId=319 +Language=English +%1 +. +MessageId=320 +Language=English +%1 +. +MessageId=321 +Language=English +%1 +. +MessageId=322 +Language=English +%1 +. +MessageId=323 +Language=English +%1 +. +MessageId=324 +Language=English +%1 +. +MessageId=325 +Language=English +%1 +. +MessageId=326 +Language=English +%1 +. +MessageId=327 +Language=English +%1 +. +MessageId=328 +Language=English +%1 +. +MessageId=329 +Language=English +%1 +. +MessageId=330 +Language=English +%1 +. +MessageId=331 +Language=English +%1 +. +MessageId=332 +Language=English +%1 +. +MessageId=333 +Language=English +%1 +. +MessageId=334 +Language=English +%1 +. +MessageId=335 +Language=English +%1 +. +MessageId=336 +Language=English +%1 +. +MessageId=337 +Language=English +%1 +. +MessageId=338 +Language=English +%1 +. +MessageId=339 +Language=English +%1 +. +MessageId=340 +Language=English +%1 +. +MessageId=341 +Language=English +%1 +. +MessageId=342 +Language=English +%1 +. +MessageId=343 +Language=English +%1 +. +MessageId=344 +Language=English +%1 +. +MessageId=345 +Language=English +%1 +. +MessageId=346 +Language=English +%1 +. +MessageId=347 +Language=English +%1 +. +MessageId=348 +Language=English +%1 +. +MessageId=349 +Language=English +%1 +. +MessageId=350 +Language=English +%1 +. +MessageId=351 +Language=English +%1 +. +MessageId=352 +Language=English +%1 +. +MessageId=353 +Language=English +%1 +. +MessageId=354 +Language=English +%1 +. +MessageId=355 +Language=English +%1 +. +MessageId=356 +Language=English +%1 +. +MessageId=357 +Language=English +%1 +. +MessageId=358 +Language=English +%1 +. +MessageId=359 +Language=English +%1 +. +MessageId=360 +Language=English +%1 +. +MessageId=361 +Language=English +%1 +. +MessageId=362 +Language=English +%1 +. +MessageId=363 +Language=English +%1 +. +MessageId=364 +Language=English +%1 +. +MessageId=365 +Language=English +%1 +. +MessageId=366 +Language=English +%1 +. +MessageId=367 +Language=English +%1 +. +MessageId=368 +Language=English +%1 +. +MessageId=369 +Language=English +%1 +. +MessageId=370 +Language=English +%1 +. +MessageId=371 +Language=English +%1 +. +MessageId=372 +Language=English +%1 +. +MessageId=373 +Language=English +%1 +. +MessageId=374 +Language=English +%1 +. +MessageId=375 +Language=English +%1 +. +MessageId=376 +Language=English +%1 +. +MessageId=377 +Language=English +%1 +. +MessageId=378 +Language=English +%1 +. +MessageId=379 +Language=English +%1 +. +MessageId=380 +Language=English +%1 +. +MessageId=381 +Language=English +%1 +. +MessageId=382 +Language=English +%1 +. +MessageId=383 +Language=English +%1 +. +MessageId=384 +Language=English +%1 +. +MessageId=385 +Language=English +%1 +. +MessageId=386 +Language=English +%1 +. +MessageId=387 +Language=English +%1 +. +MessageId=388 +Language=English +%1 +. +MessageId=389 +Language=English +%1 +. +MessageId=390 +Language=English +%1 +. +MessageId=391 +Language=English +%1 +. +MessageId=392 +Language=English +%1 +. +MessageId=393 +Language=English +%1 +. +MessageId=394 +Language=English +%1 +. +MessageId=395 +Language=English +%1 +. +MessageId=396 +Language=English +%1 +. +MessageId=397 +Language=English +%1 +. +MessageId=398 +Language=English +%1 +. +MessageId=399 +Language=English +%1 +. +MessageId=400 +Language=English +%1 +. +MessageId=401 +Language=English +%1 +. +MessageId=402 +Language=English +%1 +. +MessageId=403 +Language=English +%1 +. +MessageId=404 +Language=English +%1 +. +MessageId=405 +Language=English +%1 +. +MessageId=406 +Language=English +%1 +. +MessageId=407 +Language=English +%1 +. +MessageId=408 +Language=English +%1 +. +MessageId=409 +Language=English +%1 +. +MessageId=410 +Language=English +%1 +. +MessageId=411 +Language=English +%1 +. +MessageId=412 +Language=English +%1 +. +MessageId=413 +Language=English +%1 +. +MessageId=414 +Language=English +%1 +. +MessageId=415 +Language=English +%1 +. +MessageId=416 +Language=English +%1 +. +MessageId=417 +Language=English +%1 +. +MessageId=418 +Language=English +%1 +. +MessageId=419 +Language=English +%1 +. +MessageId=420 +Language=English +%1 +. +MessageId=421 +Language=English +%1 +. +MessageId=422 +Language=English +%1 +. +MessageId=423 +Language=English +%1 +. +MessageId=424 +Language=English +%1 +. +MessageId=425 +Language=English +%1 +. +MessageId=426 +Language=English +%1 +. +MessageId=427 +Language=English +%1 +. +MessageId=428 +Language=English +%1 +. +MessageId=429 +Language=English +%1 +. +MessageId=430 +Language=English +%1 +. +MessageId=431 +Language=English +%1 +. +MessageId=432 +Language=English +%1 +. +MessageId=433 +Language=English +%1 +. +MessageId=434 +Language=English +%1 +. +MessageId=435 +Language=English +%1 +. +MessageId=436 +Language=English +%1 +. +MessageId=437 +Language=English +%1 +. +MessageId=438 +Language=English +%1 +. +MessageId=439 +Language=English +%1 +. +MessageId=440 +Language=English +%1 +. +MessageId=441 +Language=English +%1 +. +MessageId=442 +Language=English +%1 +. +MessageId=443 +Language=English +%1 +. +MessageId=444 +Language=English +%1 +. +MessageId=445 +Language=English +%1 +. +MessageId=446 +Language=English +%1 +. +MessageId=447 +Language=English +%1 +. +MessageId=448 +Language=English +%1 +. +MessageId=449 +Language=English +%1 +. +MessageId=450 +Language=English +%1 +. +MessageId=451 +Language=English +%1 +. +MessageId=452 +Language=English +%1 +. +MessageId=453 +Language=English +%1 +. +MessageId=454 +Language=English +%1 +. +MessageId=455 +Language=English +%1 +. +MessageId=456 +Language=English +%1 +. +MessageId=457 +Language=English +%1 +. +MessageId=458 +Language=English +%1 +. +MessageId=459 +Language=English +%1 +. +MessageId=460 +Language=English +%1 +. +MessageId=461 +Language=English +%1 +. +MessageId=462 +Language=English +%1 +. +MessageId=463 +Language=English +%1 +. +MessageId=464 +Language=English +%1 +. +MessageId=465 +Language=English +%1 +. +MessageId=466 +Language=English +%1 +. +MessageId=467 +Language=English +%1 +. +MessageId=468 +Language=English +%1 +. +MessageId=469 +Language=English +%1 +. +MessageId=470 +Language=English +%1 +. +MessageId=471 +Language=English +%1 +. +MessageId=472 +Language=English +%1 +. +MessageId=473 +Language=English +%1 +. +MessageId=474 +Language=English +%1 +. +MessageId=475 +Language=English +%1 +. +MessageId=476 +Language=English +%1 +. +MessageId=477 +Language=English +%1 +. +MessageId=478 +Language=English +%1 +. +MessageId=479 +Language=English +%1 +. +MessageId=480 +Language=English +%1 +. +MessageId=481 +Language=English +%1 +. +MessageId=482 +Language=English +%1 +. +MessageId=483 +Language=English +%1 +. +MessageId=484 +Language=English +%1 +. +MessageId=485 +Language=English +%1 +. +MessageId=486 +Language=English +%1 +. +MessageId=487 +Language=English +%1 +. +MessageId=488 +Language=English +%1 +. +MessageId=489 +Language=English +%1 +. +MessageId=490 +Language=English +%1 +. +MessageId=491 +Language=English +%1 +. +MessageId=492 +Language=English +%1 +. +MessageId=493 +Language=English +%1 +. +MessageId=494 +Language=English +%1 +. +MessageId=495 +Language=English +%1 +. +MessageId=496 +Language=English +%1 +. +MessageId=497 +Language=English +%1 +. +MessageId=498 +Language=English +%1 +. +MessageId=499 +Language=English +%1 +. +MessageId=500 +Language=English +%1 +. +MessageId=501 +Language=English +%1 +. +MessageId=502 +Language=English +%1 +. +MessageId=503 +Language=English +%1 +. +MessageId=504 +Language=English +%1 +. +MessageId=505 +Language=English +%1 +. +MessageId=506 +Language=English +%1 +. +MessageId=507 +Language=English +%1 +. +MessageId=508 +Language=English +%1 +. +MessageId=509 +Language=English +%1 +. +MessageId=510 +Language=English +%1 +. +MessageId=511 +Language=English +%1 +. +MessageId=512 +Language=English +%1 +. +MessageId=513 +Language=English +%1 +. +MessageId=514 +Language=English +%1 +. +MessageId=515 +Language=English +%1 +. +MessageId=516 +Language=English +%1 +. +MessageId=517 +Language=English +%1 +. +MessageId=518 +Language=English +%1 +. +MessageId=519 +Language=English +%1 +. +MessageId=520 +Language=English +%1 +. +MessageId=521 +Language=English +%1 +. +MessageId=522 +Language=English +%1 +. +MessageId=523 +Language=English +%1 +. +MessageId=524 +Language=English +%1 +. +MessageId=525 +Language=English +%1 +. +MessageId=526 +Language=English +%1 +. +MessageId=527 +Language=English +%1 +. +MessageId=528 +Language=English +%1 +. +MessageId=529 +Language=English +%1 +. +MessageId=530 +Language=English +%1 +. +MessageId=531 +Language=English +%1 +. +MessageId=532 +Language=English +%1 +. +MessageId=533 +Language=English +%1 +. +MessageId=534 +Language=English +%1 +. +MessageId=535 +Language=English +%1 +. +MessageId=536 +Language=English +%1 +. +MessageId=537 +Language=English +%1 +. +MessageId=538 +Language=English +%1 +. +MessageId=539 +Language=English +%1 +. +MessageId=540 +Language=English +%1 +. +MessageId=541 +Language=English +%1 +. +MessageId=542 +Language=English +%1 +. +MessageId=543 +Language=English +%1 +. +MessageId=544 +Language=English +%1 +. +MessageId=545 +Language=English +%1 +. +MessageId=546 +Language=English +%1 +. +MessageId=547 +Language=English +%1 +. +MessageId=548 +Language=English +%1 +. +MessageId=549 +Language=English +%1 +. +MessageId=550 +Language=English +%1 +. +MessageId=551 +Language=English +%1 +. +MessageId=552 +Language=English +%1 +. +MessageId=553 +Language=English +%1 +. +MessageId=554 +Language=English +%1 +. +MessageId=555 +Language=English +%1 +. +MessageId=556 +Language=English +%1 +. +MessageId=557 +Language=English +%1 +. +MessageId=558 +Language=English +%1 +. +MessageId=559 +Language=English +%1 +. +MessageId=560 +Language=English +%1 +. +MessageId=561 +Language=English +%1 +. +MessageId=562 +Language=English +%1 +. +MessageId=563 +Language=English +%1 +. +MessageId=564 +Language=English +%1 +. +MessageId=565 +Language=English +%1 +. +MessageId=566 +Language=English +%1 +. +MessageId=567 +Language=English +%1 +. +MessageId=568 +Language=English +%1 +. +MessageId=569 +Language=English +%1 +. +MessageId=570 +Language=English +%1 +. +MessageId=571 +Language=English +%1 +. +MessageId=572 +Language=English +%1 +. +MessageId=573 +Language=English +%1 +. +MessageId=574 +Language=English +%1 +. +MessageId=575 +Language=English +%1 +. +MessageId=576 +Language=English +%1 +. +MessageId=577 +Language=English +%1 +. +MessageId=578 +Language=English +%1 +. +MessageId=579 +Language=English +%1 +. +MessageId=580 +Language=English +%1 +. +MessageId=581 +Language=English +%1 +. +MessageId=582 +Language=English +%1 +. +MessageId=583 +Language=English +%1 +. +MessageId=584 +Language=English +%1 +. +MessageId=585 +Language=English +%1 +. +MessageId=586 +Language=English +%1 +. +MessageId=587 +Language=English +%1 +. +MessageId=588 +Language=English +%1 +. +MessageId=589 +Language=English +%1 +. +MessageId=590 +Language=English +%1 +. +MessageId=591 +Language=English +%1 +. +MessageId=592 +Language=English +%1 +. +MessageId=593 +Language=English +%1 +. +MessageId=594 +Language=English +%1 +. +MessageId=595 +Language=English +%1 +. +MessageId=596 +Language=English +%1 +. +MessageId=597 +Language=English +%1 +. +MessageId=598 +Language=English +%1 +. +MessageId=599 +Language=English +%1 +. +MessageId=600 +Language=English +%1 +. +MessageId=601 +Language=English +%1 +. +MessageId=602 +Language=English +%1 +. +MessageId=603 +Language=English +%1 +. +MessageId=604 +Language=English +%1 +. +MessageId=605 +Language=English +%1 +. +MessageId=606 +Language=English +%1 +. +MessageId=607 +Language=English +%1 +. +MessageId=608 +Language=English +%1 +. +MessageId=609 +Language=English +%1 +. +MessageId=610 +Language=English +%1 +. +MessageId=611 +Language=English +%1 +. +MessageId=612 +Language=English +%1 +. +MessageId=613 +Language=English +%1 +. +MessageId=614 +Language=English +%1 +. +MessageId=615 +Language=English +%1 +. +MessageId=616 +Language=English +%1 +. +MessageId=617 +Language=English +%1 +. +MessageId=618 +Language=English +%1 +. +MessageId=619 +Language=English +%1 +. +MessageId=620 +Language=English +%1 +. +MessageId=621 +Language=English +%1 +. +MessageId=622 +Language=English +%1 +. +MessageId=623 +Language=English +%1 +. +MessageId=624 +Language=English +%1 +. +MessageId=625 +Language=English +%1 +. +MessageId=626 +Language=English +%1 +. +MessageId=627 +Language=English +%1 +. +MessageId=628 +Language=English +%1 +. +MessageId=629 +Language=English +%1 +. +MessageId=630 +Language=English +%1 +. +MessageId=631 +Language=English +%1 +. +MessageId=632 +Language=English +%1 +. +MessageId=633 +Language=English +%1 +. +MessageId=634 +Language=English +%1 +. +MessageId=635 +Language=English +%1 +. +MessageId=636 +Language=English +%1 +. +MessageId=637 +Language=English +%1 +. +MessageId=638 +Language=English +%1 +. +MessageId=639 +Language=English +%1 +. +MessageId=640 +Language=English +%1 +. +MessageId=641 +Language=English +%1 +. +MessageId=642 +Language=English +%1 +. +MessageId=643 +Language=English +%1 +. +MessageId=644 +Language=English +%1 +. +MessageId=645 +Language=English +%1 +. +MessageId=646 +Language=English +%1 +. +MessageId=647 +Language=English +%1 +. +MessageId=648 +Language=English +%1 +. +MessageId=649 +Language=English +%1 +. +MessageId=650 +Language=English +%1 +. +MessageId=651 +Language=English +%1 +. +MessageId=652 +Language=English +%1 +. +MessageId=653 +Language=English +%1 +. +MessageId=654 +Language=English +%1 +. +MessageId=655 +Language=English +%1 +. +MessageId=656 +Language=English +%1 +. +MessageId=657 +Language=English +%1 +. +MessageId=658 +Language=English +%1 +. +MessageId=659 +Language=English +%1 +. +MessageId=660 +Language=English +%1 +. +MessageId=661 +Language=English +%1 +. +MessageId=662 +Language=English +%1 +. +MessageId=663 +Language=English +%1 +. +MessageId=664 +Language=English +%1 +. +MessageId=665 +Language=English +%1 +. +MessageId=666 +Language=English +%1 +. +MessageId=667 +Language=English +%1 +. +MessageId=668 +Language=English +%1 +. +MessageId=669 +Language=English +%1 +. +MessageId=670 +Language=English +%1 +. +MessageId=671 +Language=English +%1 +. +MessageId=672 +Language=English +%1 +. +MessageId=673 +Language=English +%1 +. +MessageId=674 +Language=English +%1 +. +MessageId=675 +Language=English +%1 +. +MessageId=676 +Language=English +%1 +. +MessageId=677 +Language=English +%1 +. +MessageId=678 +Language=English +%1 +. +MessageId=679 +Language=English +%1 +. +MessageId=680 +Language=English +%1 +. +MessageId=681 +Language=English +%1 +. +MessageId=682 +Language=English +%1 +. +MessageId=683 +Language=English +%1 +. +MessageId=684 +Language=English +%1 +. +MessageId=685 +Language=English +%1 +. +MessageId=686 +Language=English +%1 +. +MessageId=687 +Language=English +%1 +. +MessageId=688 +Language=English +%1 +. +MessageId=689 +Language=English +%1 +. +MessageId=690 +Language=English +%1 +. +MessageId=691 +Language=English +%1 +. +MessageId=692 +Language=English +%1 +. +MessageId=693 +Language=English +%1 +. +MessageId=694 +Language=English +%1 +. +MessageId=695 +Language=English +%1 +. +MessageId=696 +Language=English +%1 +. +MessageId=697 +Language=English +%1 +. +MessageId=698 +Language=English +%1 +. +MessageId=699 +Language=English +%1 +. +MessageId=700 +Language=English +%1 +. +MessageId=701 +Language=English +%1 +. +MessageId=702 +Language=English +%1 +. +MessageId=703 +Language=English +%1 +. +MessageId=704 +Language=English +%1 +. +MessageId=705 +Language=English +%1 +. +MessageId=706 +Language=English +%1 +. +MessageId=707 +Language=English +%1 +. +MessageId=708 +Language=English +%1 +. +MessageId=709 +Language=English +%1 +. +MessageId=710 +Language=English +%1 +. +MessageId=711 +Language=English +%1 +. +MessageId=712 +Language=English +%1 +. +MessageId=713 +Language=English +%1 +. +MessageId=714 +Language=English +%1 +. +MessageId=715 +Language=English +%1 +. +MessageId=716 +Language=English +%1 +. +MessageId=717 +Language=English +%1 +. +MessageId=718 +Language=English +%1 +. +MessageId=719 +Language=English +%1 +. +MessageId=720 +Language=English +%1 +. +MessageId=721 +Language=English +%1 +. +MessageId=722 +Language=English +%1 +. +MessageId=723 +Language=English +%1 +. +MessageId=724 +Language=English +%1 +. +MessageId=725 +Language=English +%1 +. +MessageId=726 +Language=English +%1 +. +MessageId=727 +Language=English +%1 +. +MessageId=728 +Language=English +%1 +. +MessageId=729 +Language=English +%1 +. +MessageId=730 +Language=English +%1 +. +MessageId=731 +Language=English +%1 +. +MessageId=732 +Language=English +%1 +. +MessageId=733 +Language=English +%1 +. +MessageId=734 +Language=English +%1 +. +MessageId=735 +Language=English +%1 +. +MessageId=736 +Language=English +%1 +. +MessageId=737 +Language=English +%1 +. +MessageId=738 +Language=English +%1 +. +MessageId=739 +Language=English +%1 +. +MessageId=740 +Language=English +%1 +. +MessageId=741 +Language=English +%1 +. +MessageId=742 +Language=English +%1 +. +MessageId=743 +Language=English +%1 +. +MessageId=744 +Language=English +%1 +. +MessageId=745 +Language=English +%1 +. +MessageId=746 +Language=English +%1 +. +MessageId=747 +Language=English +%1 +. +MessageId=748 +Language=English +%1 +. +MessageId=749 +Language=English +%1 +. +MessageId=750 +Language=English +%1 +. +MessageId=751 +Language=English +%1 +. +MessageId=752 +Language=English +%1 +. +MessageId=753 +Language=English +%1 +. +MessageId=754 +Language=English +%1 +. +MessageId=755 +Language=English +%1 +. +MessageId=756 +Language=English +%1 +. +MessageId=757 +Language=English +%1 +. +MessageId=758 +Language=English +%1 +. +MessageId=759 +Language=English +%1 +. +MessageId=760 +Language=English +%1 +. +MessageId=761 +Language=English +%1 +. +MessageId=762 +Language=English +%1 +. +MessageId=763 +Language=English +%1 +. +MessageId=764 +Language=English +%1 +. +MessageId=765 +Language=English +%1 +. +MessageId=766 +Language=English +%1 +. +MessageId=767 +Language=English +%1 +. +MessageId=768 +Language=English +%1 +. +MessageId=769 +Language=English +%1 +. +MessageId=770 +Language=English +%1 +. +MessageId=771 +Language=English +%1 +. +MessageId=772 +Language=English +%1 +. +MessageId=773 +Language=English +%1 +. +MessageId=774 +Language=English +%1 +. +MessageId=775 +Language=English +%1 +. +MessageId=776 +Language=English +%1 +. +MessageId=777 +Language=English +%1 +. +MessageId=778 +Language=English +%1 +. +MessageId=779 +Language=English +%1 +. +MessageId=780 +Language=English +%1 +. +MessageId=781 +Language=English +%1 +. +MessageId=782 +Language=English +%1 +. +MessageId=783 +Language=English +%1 +. +MessageId=784 +Language=English +%1 +. +MessageId=785 +Language=English +%1 +. +MessageId=786 +Language=English +%1 +. +MessageId=787 +Language=English +%1 +. +MessageId=788 +Language=English +%1 +. +MessageId=789 +Language=English +%1 +. +MessageId=790 +Language=English +%1 +. +MessageId=791 +Language=English +%1 +. +MessageId=792 +Language=English +%1 +. +MessageId=793 +Language=English +%1 +. +MessageId=794 +Language=English +%1 +. +MessageId=795 +Language=English +%1 +. +MessageId=796 +Language=English +%1 +. +MessageId=797 +Language=English +%1 +. +MessageId=798 +Language=English +%1 +. +MessageId=799 +Language=English +%1 +. +MessageId=800 +Language=English +%1 +. +MessageId=801 +Language=English +%1 +. +MessageId=802 +Language=English +%1 +. +MessageId=803 +Language=English +%1 +. +MessageId=804 +Language=English +%1 +. +MessageId=805 +Language=English +%1 +. +MessageId=806 +Language=English +%1 +. +MessageId=807 +Language=English +%1 +. +MessageId=808 +Language=English +%1 +. +MessageId=809 +Language=English +%1 +. +MessageId=810 +Language=English +%1 +. +MessageId=811 +Language=English +%1 +. +MessageId=812 +Language=English +%1 +. +MessageId=813 +Language=English +%1 +. +MessageId=814 +Language=English +%1 +. +MessageId=815 +Language=English +%1 +. +MessageId=816 +Language=English +%1 +. +MessageId=817 +Language=English +%1 +. +MessageId=818 +Language=English +%1 +. +MessageId=819 +Language=English +%1 +. +MessageId=820 +Language=English +%1 +. +MessageId=821 +Language=English +%1 +. +MessageId=822 +Language=English +%1 +. +MessageId=823 +Language=English +%1 +. +MessageId=824 +Language=English +%1 +. +MessageId=825 +Language=English +%1 +. +MessageId=826 +Language=English +%1 +. +MessageId=827 +Language=English +%1 +. +MessageId=828 +Language=English +%1 +. +MessageId=829 +Language=English +%1 +. +MessageId=830 +Language=English +%1 +. +MessageId=831 +Language=English +%1 +. +MessageId=832 +Language=English +%1 +. +MessageId=833 +Language=English +%1 +. +MessageId=834 +Language=English +%1 +. +MessageId=835 +Language=English +%1 +. +MessageId=836 +Language=English +%1 +. +MessageId=837 +Language=English +%1 +. +MessageId=838 +Language=English +%1 +. +MessageId=839 +Language=English +%1 +. +MessageId=840 +Language=English +%1 +. +MessageId=841 +Language=English +%1 +. +MessageId=842 +Language=English +%1 +. +MessageId=843 +Language=English +%1 +. +MessageId=844 +Language=English +%1 +. +MessageId=845 +Language=English +%1 +. +MessageId=846 +Language=English +%1 +. +MessageId=847 +Language=English +%1 +. +MessageId=848 +Language=English +%1 +. +MessageId=849 +Language=English +%1 +. +MessageId=850 +Language=English +%1 +. +MessageId=851 +Language=English +%1 +. +MessageId=852 +Language=English +%1 +. +MessageId=853 +Language=English +%1 +. +MessageId=854 +Language=English +%1 +. +MessageId=855 +Language=English +%1 +. +MessageId=856 +Language=English +%1 +. +MessageId=857 +Language=English +%1 +. +MessageId=858 +Language=English +%1 +. +MessageId=859 +Language=English +%1 +. +MessageId=860 +Language=English +%1 +. +MessageId=861 +Language=English +%1 +. +MessageId=862 +Language=English +%1 +. +MessageId=863 +Language=English +%1 +. +MessageId=864 +Language=English +%1 +. +MessageId=865 +Language=English +%1 +. +MessageId=866 +Language=English +%1 +. +MessageId=867 +Language=English +%1 +. +MessageId=868 +Language=English +%1 +. +MessageId=869 +Language=English +%1 +. +MessageId=870 +Language=English +%1 +. +MessageId=871 +Language=English +%1 +. +MessageId=872 +Language=English +%1 +. +MessageId=873 +Language=English +%1 +. +MessageId=874 +Language=English +%1 +. +MessageId=875 +Language=English +%1 +. +MessageId=876 +Language=English +%1 +. +MessageId=877 +Language=English +%1 +. +MessageId=878 +Language=English +%1 +. +MessageId=879 +Language=English +%1 +. +MessageId=880 +Language=English +%1 +. +MessageId=881 +Language=English +%1 +. +MessageId=882 +Language=English +%1 +. +MessageId=883 +Language=English +%1 +. +MessageId=884 +Language=English +%1 +. +MessageId=885 +Language=English +%1 +. +MessageId=886 +Language=English +%1 +. +MessageId=887 +Language=English +%1 +. +MessageId=888 +Language=English +%1 +. +MessageId=889 +Language=English +%1 +. +MessageId=890 +Language=English +%1 +. +MessageId=891 +Language=English +%1 +. +MessageId=892 +Language=English +%1 +. +MessageId=893 +Language=English +%1 +. +MessageId=894 +Language=English +%1 +. +MessageId=895 +Language=English +%1 +. +MessageId=896 +Language=English +%1 +. +MessageId=897 +Language=English +%1 +. +MessageId=898 +Language=English +%1 +. +MessageId=899 +Language=English +%1 +. +MessageId=900 +Language=English +%1 +. +MessageId=901 +Language=English +%1 +. +MessageId=902 +Language=English +%1 +. +MessageId=903 +Language=English +%1 +. +MessageId=904 +Language=English +%1 +. +MessageId=905 +Language=English +%1 +. +MessageId=906 +Language=English +%1 +. +MessageId=907 +Language=English +%1 +. +MessageId=908 +Language=English +%1 +. +MessageId=909 +Language=English +%1 +. +MessageId=910 +Language=English +%1 +. +MessageId=911 +Language=English +%1 +. +MessageId=912 +Language=English +%1 +. +MessageId=913 +Language=English +%1 +. +MessageId=914 +Language=English +%1 +. +MessageId=915 +Language=English +%1 +. +MessageId=916 +Language=English +%1 +. +MessageId=917 +Language=English +%1 +. +MessageId=918 +Language=English +%1 +. +MessageId=919 +Language=English +%1 +. +MessageId=920 +Language=English +%1 +. +MessageId=921 +Language=English +%1 +. +MessageId=922 +Language=English +%1 +. +MessageId=923 +Language=English +%1 +. +MessageId=924 +Language=English +%1 +. +MessageId=925 +Language=English +%1 +. +MessageId=926 +Language=English +%1 +. +MessageId=927 +Language=English +%1 +. +MessageId=928 +Language=English +%1 +. +MessageId=929 +Language=English +%1 +. +MessageId=930 +Language=English +%1 +. +MessageId=931 +Language=English +%1 +. +MessageId=932 +Language=English +%1 +. +MessageId=933 +Language=English +%1 +. +MessageId=934 +Language=English +%1 +. +MessageId=935 +Language=English +%1 +. +MessageId=936 +Language=English +%1 +. +MessageId=937 +Language=English +%1 +. +MessageId=938 +Language=English +%1 +. +MessageId=939 +Language=English +%1 +. +MessageId=940 +Language=English +%1 +. +MessageId=941 +Language=English +%1 +. +MessageId=942 +Language=English +%1 +. +MessageId=943 +Language=English +%1 +. +MessageId=944 +Language=English +%1 +. +MessageId=945 +Language=English +%1 +. +MessageId=946 +Language=English +%1 +. +MessageId=947 +Language=English +%1 +. +MessageId=948 +Language=English +%1 +. +MessageId=949 +Language=English +%1 +. +MessageId=950 +Language=English +%1 +. +MessageId=951 +Language=English +%1 +. +MessageId=952 +Language=English +%1 +. +MessageId=953 +Language=English +%1 +. +MessageId=954 +Language=English +%1 +. +MessageId=955 +Language=English +%1 +. +MessageId=956 +Language=English +%1 +. +MessageId=957 +Language=English +%1 +. +MessageId=958 +Language=English +%1 +. +MessageId=959 +Language=English +%1 +. +MessageId=960 +Language=English +%1 +. +MessageId=961 +Language=English +%1 +. +MessageId=962 +Language=English +%1 +. +MessageId=963 +Language=English +%1 +. +MessageId=964 +Language=English +%1 +. +MessageId=965 +Language=English +%1 +. +MessageId=966 +Language=English +%1 +. +MessageId=967 +Language=English +%1 +. +MessageId=968 +Language=English +%1 +. +MessageId=969 +Language=English +%1 +. +MessageId=970 +Language=English +%1 +. +MessageId=971 +Language=English +%1 +. +MessageId=972 +Language=English +%1 +. +MessageId=973 +Language=English +%1 +. +MessageId=974 +Language=English +%1 +. +MessageId=975 +Language=English +%1 +. +MessageId=976 +Language=English +%1 +. +MessageId=977 +Language=English +%1 +. +MessageId=978 +Language=English +%1 +. +MessageId=979 +Language=English +%1 +. +MessageId=980 +Language=English +%1 +. +MessageId=981 +Language=English +%1 +. +MessageId=982 +Language=English +%1 +. +MessageId=983 +Language=English +%1 +. +MessageId=984 +Language=English +%1 +. +MessageId=985 +Language=English +%1 +. +MessageId=986 +Language=English +%1 +. +MessageId=987 +Language=English +%1 +. +MessageId=988 +Language=English +%1 +. +MessageId=989 +Language=English +%1 +. +MessageId=990 +Language=English +%1 +. +MessageId=991 +Language=English +%1 +. +MessageId=992 +Language=English +%1 +. +MessageId=993 +Language=English +%1 +. +MessageId=994 +Language=English +%1 +. +MessageId=995 +Language=English +%1 +. +MessageId=996 +Language=English +%1 +. +MessageId=997 +Language=English +%1 +. +MessageId=998 +Language=English +%1 +. +MessageId=999 +Language=English +%1 +. +MessageId=1000 +Language=English +%1 +. +MessageId=1001 +Language=English +%1 +. +MessageId=1002 +Language=English +%1 +. +MessageId=1003 +Language=English +%1 +. +MessageId=1004 +Language=English +%1 +. +MessageId=1005 +Language=English +%1 +. +MessageId=1006 +Language=English +%1 +. +MessageId=1007 +Language=English +%1 +. +MessageId=1008 +Language=English +%1 +. +MessageId=1009 +Language=English +%1 +. +MessageId=1010 +Language=English +%1 +. +MessageId=1011 +Language=English +%1 +. +MessageId=1012 +Language=English +%1 +. +MessageId=1013 +Language=English +%1 +. +MessageId=1014 +Language=English +%1 +. +MessageId=1015 +Language=English +%1 +. +MessageId=1016 +Language=English +%1 +. +MessageId=1017 +Language=English +%1 +. +MessageId=1018 +Language=English +%1 +. +MessageId=1019 +Language=English +%1 +. +MessageId=1020 +Language=English +%1 +. +MessageId=1021 +Language=English +%1 +. +MessageId=1022 +Language=English +%1 +. +MessageId=1023 +Language=English +%1 +. +MessageId=1024 +Language=English +%1 +. +MessageId=1025 +Language=English +%1 +. +MessageId=1026 +Language=English +%1 +. +MessageId=1027 +Language=English +%1 +. +MessageId=1028 +Language=English +%1 +. +MessageId=1029 +Language=English +%1 +. +MessageId=1030 +Language=English +%1 +. +MessageId=1031 +Language=English +%1 +. +MessageId=1032 +Language=English +%1 +. +MessageId=1033 +Language=English +%1 +. +MessageId=1034 +Language=English +%1 +. +MessageId=1035 +Language=English +%1 +. +MessageId=1036 +Language=English +%1 +. +MessageId=1037 +Language=English +%1 +. +MessageId=1038 +Language=English +%1 +. +MessageId=1039 +Language=English +%1 +. +MessageId=1040 +Language=English +%1 +. +MessageId=1041 +Language=English +%1 +. +MessageId=1042 +Language=English +%1 +. +MessageId=1043 +Language=English +%1 +. +MessageId=1044 +Language=English +%1 +. +MessageId=1045 +Language=English +%1 +. +MessageId=1046 +Language=English +%1 +. +MessageId=1047 +Language=English +%1 +. +MessageId=1048 +Language=English +%1 +. +MessageId=1049 +Language=English +%1 +. +MessageId=1050 +Language=English +%1 +. +MessageId=1051 +Language=English +%1 +. +MessageId=1052 +Language=English +%1 +. +MessageId=1053 +Language=English +%1 +. +MessageId=1054 +Language=English +%1 +. +MessageId=1055 +Language=English +%1 +. +MessageId=1056 +Language=English +%1 +. +MessageId=1057 +Language=English +%1 +. +MessageId=1058 +Language=English +%1 +. +MessageId=1059 +Language=English +%1 +. +MessageId=1060 +Language=English +%1 +. +MessageId=1061 +Language=English +%1 +. +MessageId=1062 +Language=English +%1 +. +MessageId=1063 +Language=English +%1 +. +MessageId=1064 +Language=English +%1 +. +MessageId=1065 +Language=English +%1 +. +MessageId=1066 +Language=English +%1 +. +MessageId=1067 +Language=English +%1 +. +MessageId=1068 +Language=English +%1 +. +MessageId=1069 +Language=English +%1 +. +MessageId=1070 +Language=English +%1 +. +MessageId=1071 +Language=English +%1 +. +MessageId=1072 +Language=English +%1 +. +MessageId=1073 +Language=English +%1 +. +MessageId=1074 +Language=English +%1 +. +MessageId=1075 +Language=English +%1 +. +MessageId=1076 +Language=English +%1 +. +MessageId=1077 +Language=English +%1 +. +MessageId=1078 +Language=English +%1 +. +MessageId=1079 +Language=English +%1 +. +MessageId=1080 +Language=English +%1 +. +MessageId=1081 +Language=English +%1 +. +MessageId=1082 +Language=English +%1 +. +MessageId=1083 +Language=English +%1 +. +MessageId=1084 +Language=English +%1 +. +MessageId=1085 +Language=English +%1 +. +MessageId=1086 +Language=English +%1 +. +MessageId=1087 +Language=English +%1 +. +MessageId=1088 +Language=English +%1 +. +MessageId=1089 +Language=English +%1 +. +MessageId=1090 +Language=English +%1 +. +MessageId=1091 +Language=English +%1 +. +MessageId=1092 +Language=English +%1 +. +MessageId=1093 +Language=English +%1 +. +MessageId=1094 +Language=English +%1 +. +MessageId=1095 +Language=English +%1 +. +MessageId=1096 +Language=English +%1 +. +MessageId=1097 +Language=English +%1 +. +MessageId=1098 +Language=English +%1 +. +MessageId=1099 +Language=English +%1 +. +MessageId=1100 +Language=English +%1 +. +MessageId=1101 +Language=English +%1 +. +MessageId=1102 +Language=English +%1 +. +MessageId=1103 +Language=English +%1 +. +MessageId=1104 +Language=English +%1 +. +MessageId=1105 +Language=English +%1 +. +MessageId=1106 +Language=English +%1 +. +MessageId=1107 +Language=English +%1 +. +MessageId=1108 +Language=English +%1 +. +MessageId=1109 +Language=English +%1 +. +MessageId=1110 +Language=English +%1 +. +MessageId=1111 +Language=English +%1 +. +MessageId=1112 +Language=English +%1 +. +MessageId=1113 +Language=English +%1 +. +MessageId=1114 +Language=English +%1 +. +MessageId=1115 +Language=English +%1 +. +MessageId=1116 +Language=English +%1 +. +MessageId=1117 +Language=English +%1 +. +MessageId=1118 +Language=English +%1 +. +MessageId=1119 +Language=English +%1 +. +MessageId=1120 +Language=English +%1 +. +MessageId=1121 +Language=English +%1 +. +MessageId=1122 +Language=English +%1 +. +MessageId=1123 +Language=English +%1 +. +MessageId=1124 +Language=English +%1 +. +MessageId=1125 +Language=English +%1 +. +MessageId=1126 +Language=English +%1 +. +MessageId=1127 +Language=English +%1 +. +MessageId=1128 +Language=English +%1 +. +MessageId=1129 +Language=English +%1 +. +MessageId=1130 +Language=English +%1 +. +MessageId=1131 +Language=English +%1 +. +MessageId=1132 +Language=English +%1 +. +MessageId=1133 +Language=English +%1 +. +MessageId=1134 +Language=English +%1 +. +MessageId=1135 +Language=English +%1 +. +MessageId=1136 +Language=English +%1 +. +MessageId=1137 +Language=English +%1 +. +MessageId=1138 +Language=English +%1 +. +MessageId=1139 +Language=English +%1 +. +MessageId=1140 +Language=English +%1 +. +MessageId=1141 +Language=English +%1 +. +MessageId=1142 +Language=English +%1 +. +MessageId=1143 +Language=English +%1 +. +MessageId=1144 +Language=English +%1 +. +MessageId=1145 +Language=English +%1 +. +MessageId=1146 +Language=English +%1 +. +MessageId=1147 +Language=English +%1 +. +MessageId=1148 +Language=English +%1 +. +MessageId=1149 +Language=English +%1 +. +MessageId=1150 +Language=English +%1 +. +MessageId=1151 +Language=English +%1 +. +MessageId=1152 +Language=English +%1 +. +MessageId=1153 +Language=English +%1 +. +MessageId=1154 +Language=English +%1 +. +MessageId=1155 +Language=English +%1 +. +MessageId=1156 +Language=English +%1 +. +MessageId=1157 +Language=English +%1 +. +MessageId=1158 +Language=English +%1 +. +MessageId=1159 +Language=English +%1 +. +MessageId=1160 +Language=English +%1 +. +MessageId=1161 +Language=English +%1 +. +MessageId=1162 +Language=English +%1 +. +MessageId=1163 +Language=English +%1 +. +MessageId=1164 +Language=English +%1 +. +MessageId=1165 +Language=English +%1 +. +MessageId=1166 +Language=English +%1 +. +MessageId=1167 +Language=English +%1 +. +MessageId=1168 +Language=English +%1 +. +MessageId=1169 +Language=English +%1 +. +MessageId=1170 +Language=English +%1 +. +MessageId=1171 +Language=English +%1 +. +MessageId=1172 +Language=English +%1 +. +MessageId=1173 +Language=English +%1 +. +MessageId=1174 +Language=English +%1 +. +MessageId=1175 +Language=English +%1 +. +MessageId=1176 +Language=English +%1 +. +MessageId=1177 +Language=English +%1 +. +MessageId=1178 +Language=English +%1 +. +MessageId=1179 +Language=English +%1 +. +MessageId=1180 +Language=English +%1 +. +MessageId=1181 +Language=English +%1 +. +MessageId=1182 +Language=English +%1 +. +MessageId=1183 +Language=English +%1 +. +MessageId=1184 +Language=English +%1 +. +MessageId=1185 +Language=English +%1 +. +MessageId=1186 +Language=English +%1 +. +MessageId=1187 +Language=English +%1 +. +MessageId=1188 +Language=English +%1 +. +MessageId=1189 +Language=English +%1 +. +MessageId=1190 +Language=English +%1 +. +MessageId=1191 +Language=English +%1 +. +MessageId=1192 +Language=English +%1 +. +MessageId=1193 +Language=English +%1 +. +MessageId=1194 +Language=English +%1 +. +MessageId=1195 +Language=English +%1 +. +MessageId=1196 +Language=English +%1 +. +MessageId=1197 +Language=English +%1 +. +MessageId=1198 +Language=English +%1 +. +MessageId=1199 +Language=English +%1 +. +MessageId=1200 +Language=English +%1 +. +MessageId=1201 +Language=English +%1 +. +MessageId=1202 +Language=English +%1 +. +MessageId=1203 +Language=English +%1 +. +MessageId=1204 +Language=English +%1 +. +MessageId=1205 +Language=English +%1 +. +MessageId=1206 +Language=English +%1 +. +MessageId=1207 +Language=English +%1 +. +MessageId=1208 +Language=English +%1 +. +MessageId=1209 +Language=English +%1 +. +MessageId=1210 +Language=English +%1 +. +MessageId=1211 +Language=English +%1 +. +MessageId=1212 +Language=English +%1 +. +MessageId=1213 +Language=English +%1 +. +MessageId=1214 +Language=English +%1 +. +MessageId=1215 +Language=English +%1 +. +MessageId=1216 +Language=English +%1 +. +MessageId=1217 +Language=English +%1 +. +MessageId=1218 +Language=English +%1 +. +MessageId=1219 +Language=English +%1 +. +MessageId=1220 +Language=English +%1 +. +MessageId=1221 +Language=English +%1 +. +MessageId=1222 +Language=English +%1 +. +MessageId=1223 +Language=English +%1 +. +MessageId=1224 +Language=English +%1 +. +MessageId=1225 +Language=English +%1 +. +MessageId=1226 +Language=English +%1 +. +MessageId=1227 +Language=English +%1 +. +MessageId=1228 +Language=English +%1 +. +MessageId=1229 +Language=English +%1 +. +MessageId=1230 +Language=English +%1 +. +MessageId=1231 +Language=English +%1 +. +MessageId=1232 +Language=English +%1 +. +MessageId=1233 +Language=English +%1 +. +MessageId=1234 +Language=English +%1 +. +MessageId=1235 +Language=English +%1 +. +MessageId=1236 +Language=English +%1 +. +MessageId=1237 +Language=English +%1 +. +MessageId=1238 +Language=English +%1 +. +MessageId=1239 +Language=English +%1 +. +MessageId=1240 +Language=English +%1 +. +MessageId=1241 +Language=English +%1 +. +MessageId=1242 +Language=English +%1 +. +MessageId=1243 +Language=English +%1 +. +MessageId=1244 +Language=English +%1 +. +MessageId=1245 +Language=English +%1 +. +MessageId=1246 +Language=English +%1 +. +MessageId=1247 +Language=English +%1 +. +MessageId=1248 +Language=English +%1 +. +MessageId=1249 +Language=English +%1 +. +MessageId=1250 +Language=English +%1 +. +MessageId=1251 +Language=English +%1 +. +MessageId=1252 +Language=English +%1 +. +MessageId=1253 +Language=English +%1 +. +MessageId=1254 +Language=English +%1 +. +MessageId=1255 +Language=English +%1 +. +MessageId=1256 +Language=English +%1 +. +MessageId=1257 +Language=English +%1 +. +MessageId=1258 +Language=English +%1 +. +MessageId=1259 +Language=English +%1 +. +MessageId=1260 +Language=English +%1 +. +MessageId=1261 +Language=English +%1 +. +MessageId=1262 +Language=English +%1 +. +MessageId=1263 +Language=English +%1 +. +MessageId=1264 +Language=English +%1 +. +MessageId=1265 +Language=English +%1 +. +MessageId=1266 +Language=English +%1 +. +MessageId=1267 +Language=English +%1 +. +MessageId=1268 +Language=English +%1 +. +MessageId=1269 +Language=English +%1 +. +MessageId=1270 +Language=English +%1 +. +MessageId=1271 +Language=English +%1 +. +MessageId=1272 +Language=English +%1 +. +MessageId=1273 +Language=English +%1 +. +MessageId=1274 +Language=English +%1 +. +MessageId=1275 +Language=English +%1 +. +MessageId=1276 +Language=English +%1 +. +MessageId=1277 +Language=English +%1 +. +MessageId=1278 +Language=English +%1 +. +MessageId=1279 +Language=English +%1 +. +MessageId=1280 +Language=English +%1 +. +MessageId=1281 +Language=English +%1 +. +MessageId=1282 +Language=English +%1 +. +MessageId=1283 +Language=English +%1 +. +MessageId=1284 +Language=English +%1 +. +MessageId=1285 +Language=English +%1 +. +MessageId=1286 +Language=English +%1 +. +MessageId=1287 +Language=English +%1 +. +MessageId=1288 +Language=English +%1 +. +MessageId=1289 +Language=English +%1 +. +MessageId=1290 +Language=English +%1 +. +MessageId=1291 +Language=English +%1 +. +MessageId=1292 +Language=English +%1 +. +MessageId=1293 +Language=English +%1 +. +MessageId=1294 +Language=English +%1 +. +MessageId=1295 +Language=English +%1 +. +MessageId=1296 +Language=English +%1 +. +MessageId=1297 +Language=English +%1 +. +MessageId=1298 +Language=English +%1 +. +MessageId=1299 +Language=English +%1 +. +MessageId=1300 +Language=English +%1 +. +MessageId=1301 +Language=English +%1 +. +MessageId=1302 +Language=English +%1 +. +MessageId=1303 +Language=English +%1 +. +MessageId=1304 +Language=English +%1 +. +MessageId=1305 +Language=English +%1 +. +MessageId=1306 +Language=English +%1 +. +MessageId=1307 +Language=English +%1 +. +MessageId=1308 +Language=English +%1 +. +MessageId=1309 +Language=English +%1 +. +MessageId=1310 +Language=English +%1 +. +MessageId=1311 +Language=English +%1 +. +MessageId=1312 +Language=English +%1 +. +MessageId=1313 +Language=English +%1 +. +MessageId=1314 +Language=English +%1 +. +MessageId=1315 +Language=English +%1 +. +MessageId=1316 +Language=English +%1 +. +MessageId=1317 +Language=English +%1 +. +MessageId=1318 +Language=English +%1 +. +MessageId=1319 +Language=English +%1 +. +MessageId=1320 +Language=English +%1 +. +MessageId=1321 +Language=English +%1 +. +MessageId=1322 +Language=English +%1 +. +MessageId=1323 +Language=English +%1 +. +MessageId=1324 +Language=English +%1 +. +MessageId=1325 +Language=English +%1 +. +MessageId=1326 +Language=English +%1 +. +MessageId=1327 +Language=English +%1 +. +MessageId=1328 +Language=English +%1 +. +MessageId=1329 +Language=English +%1 +. +MessageId=1330 +Language=English +%1 +. +MessageId=1331 +Language=English +%1 +. +MessageId=1332 +Language=English +%1 +. +MessageId=1333 +Language=English +%1 +. +MessageId=1334 +Language=English +%1 +. +MessageId=1335 +Language=English +%1 +. +MessageId=1336 +Language=English +%1 +. +MessageId=1337 +Language=English +%1 +. +MessageId=1338 +Language=English +%1 +. +MessageId=1339 +Language=English +%1 +. +MessageId=1340 +Language=English +%1 +. +MessageId=1341 +Language=English +%1 +. +MessageId=1342 +Language=English +%1 +. +MessageId=1343 +Language=English +%1 +. +MessageId=1344 +Language=English +%1 +. +MessageId=1345 +Language=English +%1 +. +MessageId=1346 +Language=English +%1 +. +MessageId=1347 +Language=English +%1 +. +MessageId=1348 +Language=English +%1 +. +MessageId=1349 +Language=English +%1 +. +MessageId=1350 +Language=English +%1 +. +MessageId=1351 +Language=English +%1 +. +MessageId=1352 +Language=English +%1 +. +MessageId=1353 +Language=English +%1 +. +MessageId=1354 +Language=English +%1 +. +MessageId=1355 +Language=English +%1 +. +MessageId=1356 +Language=English +%1 +. +MessageId=1357 +Language=English +%1 +. +MessageId=1358 +Language=English +%1 +. +MessageId=1359 +Language=English +%1 +. +MessageId=1360 +Language=English +%1 +. +MessageId=1361 +Language=English +%1 +. +MessageId=1362 +Language=English +%1 +. +MessageId=1363 +Language=English +%1 +. +MessageId=1364 +Language=English +%1 +. +MessageId=1365 +Language=English +%1 +. +MessageId=1366 +Language=English +%1 +. +MessageId=1367 +Language=English +%1 +. +MessageId=1368 +Language=English +%1 +. +MessageId=1369 +Language=English +%1 +. +MessageId=1370 +Language=English +%1 +. +MessageId=1371 +Language=English +%1 +. +MessageId=1372 +Language=English +%1 +. +MessageId=1373 +Language=English +%1 +. +MessageId=1374 +Language=English +%1 +. +MessageId=1375 +Language=English +%1 +. +MessageId=1376 +Language=English +%1 +. +MessageId=1377 +Language=English +%1 +. +MessageId=1378 +Language=English +%1 +. +MessageId=1379 +Language=English +%1 +. +MessageId=1380 +Language=English +%1 +. +MessageId=1381 +Language=English +%1 +. +MessageId=1382 +Language=English +%1 +. +MessageId=1383 +Language=English +%1 +. +MessageId=1384 +Language=English +%1 +. +MessageId=1385 +Language=English +%1 +. +MessageId=1386 +Language=English +%1 +. +MessageId=1387 +Language=English +%1 +. +MessageId=1388 +Language=English +%1 +. +MessageId=1389 +Language=English +%1 +. +MessageId=1390 +Language=English +%1 +. +MessageId=1391 +Language=English +%1 +. +MessageId=1392 +Language=English +%1 +. +MessageId=1393 +Language=English +%1 +. +MessageId=1394 +Language=English +%1 +. +MessageId=1395 +Language=English +%1 +. +MessageId=1396 +Language=English +%1 +. +MessageId=1397 +Language=English +%1 +. +MessageId=1398 +Language=English +%1 +. +MessageId=1399 +Language=English +%1 +. +MessageId=1400 +Language=English +%1 +. +MessageId=1401 +Language=English +%1 +. +MessageId=1402 +Language=English +%1 +. +MessageId=1403 +Language=English +%1 +. +MessageId=1404 +Language=English +%1 +. +MessageId=1405 +Language=English +%1 +. +MessageId=1406 +Language=English +%1 +. +MessageId=1407 +Language=English +%1 +. +MessageId=1408 +Language=English +%1 +. +MessageId=1409 +Language=English +%1 +. +MessageId=1410 +Language=English +%1 +. +MessageId=1411 +Language=English +%1 +. +MessageId=1412 +Language=English +%1 +. +MessageId=1413 +Language=English +%1 +. +MessageId=1414 +Language=English +%1 +. +MessageId=1415 +Language=English +%1 +. +MessageId=1416 +Language=English +%1 +. +MessageId=1417 +Language=English +%1 +. +MessageId=1418 +Language=English +%1 +. +MessageId=1419 +Language=English +%1 +. +MessageId=1420 +Language=English +%1 +. +MessageId=1421 +Language=English +%1 +. +MessageId=1422 +Language=English +%1 +. +MessageId=1423 +Language=English +%1 +. +MessageId=1424 +Language=English +%1 +. +MessageId=1425 +Language=English +%1 +. +MessageId=1426 +Language=English +%1 +. +MessageId=1427 +Language=English +%1 +. +MessageId=1428 +Language=English +%1 +. +MessageId=1429 +Language=English +%1 +. +MessageId=1430 +Language=English +%1 +. +MessageId=1431 +Language=English +%1 +. +MessageId=1432 +Language=English +%1 +. +MessageId=1433 +Language=English +%1 +. +MessageId=1434 +Language=English +%1 +. +MessageId=1435 +Language=English +%1 +. +MessageId=1436 +Language=English +%1 +. +MessageId=1437 +Language=English +%1 +. +MessageId=1438 +Language=English +%1 +. +MessageId=1439 +Language=English +%1 +. +MessageId=1440 +Language=English +%1 +. +MessageId=1441 +Language=English +%1 +. +MessageId=1442 +Language=English +%1 +. +MessageId=1443 +Language=English +%1 +. +MessageId=1444 +Language=English +%1 +. +MessageId=1445 +Language=English +%1 +. +MessageId=1446 +Language=English +%1 +. +MessageId=1447 +Language=English +%1 +. +MessageId=1448 +Language=English +%1 +. +MessageId=1449 +Language=English +%1 +. +MessageId=1450 +Language=English +%1 +. +MessageId=1451 +Language=English +%1 +. +MessageId=1452 +Language=English +%1 +. +MessageId=1453 +Language=English +%1 +. +MessageId=1454 +Language=English +%1 +. +MessageId=1455 +Language=English +%1 +. +MessageId=1456 +Language=English +%1 +. +MessageId=1457 +Language=English +%1 +. +MessageId=1458 +Language=English +%1 +. +MessageId=1459 +Language=English +%1 +. +MessageId=1460 +Language=English +%1 +. +MessageId=1461 +Language=English +%1 +. +MessageId=1462 +Language=English +%1 +. +MessageId=1463 +Language=English +%1 +. +MessageId=1464 +Language=English +%1 +. +MessageId=1465 +Language=English +%1 +. +MessageId=1466 +Language=English +%1 +. +MessageId=1467 +Language=English +%1 +. +MessageId=1468 +Language=English +%1 +. +MessageId=1469 +Language=English +%1 +. +MessageId=1470 +Language=English +%1 +. +MessageId=1471 +Language=English +%1 +. +MessageId=1472 +Language=English +%1 +. +MessageId=1473 +Language=English +%1 +. +MessageId=1474 +Language=English +%1 +. +MessageId=1475 +Language=English +%1 +. +MessageId=1476 +Language=English +%1 +. +MessageId=1477 +Language=English +%1 +. +MessageId=1478 +Language=English +%1 +. +MessageId=1479 +Language=English +%1 +. +MessageId=1480 +Language=English +%1 +. +MessageId=1481 +Language=English +%1 +. +MessageId=1482 +Language=English +%1 +. +MessageId=1483 +Language=English +%1 +. +MessageId=1484 +Language=English +%1 +. +MessageId=1485 +Language=English +%1 +. +MessageId=1486 +Language=English +%1 +. +MessageId=1487 +Language=English +%1 +. +MessageId=1488 +Language=English +%1 +. +MessageId=1489 +Language=English +%1 +. +MessageId=1490 +Language=English +%1 +. +MessageId=1491 +Language=English +%1 +. +MessageId=1492 +Language=English +%1 +. +MessageId=1493 +Language=English +%1 +. +MessageId=1494 +Language=English +%1 +. +MessageId=1495 +Language=English +%1 +. +MessageId=1496 +Language=English +%1 +. +MessageId=1497 +Language=English +%1 +. +MessageId=1498 +Language=English +%1 +. +MessageId=1499 +Language=English +%1 +. +MessageId=1500 +Language=English +%1 +. +MessageId=1501 +Language=English +%1 +. +MessageId=1502 +Language=English +%1 +. +MessageId=1503 +Language=English +%1 +. +MessageId=1504 +Language=English +%1 +. +MessageId=1505 +Language=English +%1 +. +MessageId=1506 +Language=English +%1 +. +MessageId=1507 +Language=English +%1 +. +MessageId=1508 +Language=English +%1 +. +MessageId=1509 +Language=English +%1 +. +MessageId=1510 +Language=English +%1 +. +MessageId=1511 +Language=English +%1 +. +MessageId=1512 +Language=English +%1 +. +MessageId=1513 +Language=English +%1 +. +MessageId=1514 +Language=English +%1 +. +MessageId=1515 +Language=English +%1 +. +MessageId=1516 +Language=English +%1 +. +MessageId=1517 +Language=English +%1 +. +MessageId=1518 +Language=English +%1 +. +MessageId=1519 +Language=English +%1 +. +MessageId=1520 +Language=English +%1 +. +MessageId=1521 +Language=English +%1 +. +MessageId=1522 +Language=English +%1 +. +MessageId=1523 +Language=English +%1 +. +MessageId=1524 +Language=English +%1 +. +MessageId=1525 +Language=English +%1 +. +MessageId=1526 +Language=English +%1 +. +MessageId=1527 +Language=English +%1 +. +MessageId=1528 +Language=English +%1 +. +MessageId=1529 +Language=English +%1 +. +MessageId=1530 +Language=English +%1 +. +MessageId=1531 +Language=English +%1 +. +MessageId=1532 +Language=English +%1 +. +MessageId=1533 +Language=English +%1 +. +MessageId=1534 +Language=English +%1 +. +MessageId=1535 +Language=English +%1 +. +MessageId=1536 +Language=English +%1 +. +MessageId=1537 +Language=English +%1 +. +MessageId=1538 +Language=English +%1 +. +MessageId=1539 +Language=English +%1 +. +MessageId=1540 +Language=English +%1 +. +MessageId=1541 +Language=English +%1 +. +MessageId=1542 +Language=English +%1 +. +MessageId=1543 +Language=English +%1 +. +MessageId=1544 +Language=English +%1 +. +MessageId=1545 +Language=English +%1 +. +MessageId=1546 +Language=English +%1 +. +MessageId=1547 +Language=English +%1 +. +MessageId=1548 +Language=English +%1 +. +MessageId=1549 +Language=English +%1 +. +MessageId=1550 +Language=English +%1 +. +MessageId=1551 +Language=English +%1 +. +MessageId=1552 +Language=English +%1 +. +MessageId=1553 +Language=English +%1 +. +MessageId=1554 +Language=English +%1 +. +MessageId=1555 +Language=English +%1 +. +MessageId=1556 +Language=English +%1 +. +MessageId=1557 +Language=English +%1 +. +MessageId=1558 +Language=English +%1 +. +MessageId=1559 +Language=English +%1 +. +MessageId=1560 +Language=English +%1 +. +MessageId=1561 +Language=English +%1 +. +MessageId=1562 +Language=English +%1 +. +MessageId=1563 +Language=English +%1 +. +MessageId=1564 +Language=English +%1 +. +MessageId=1565 +Language=English +%1 +. +MessageId=1566 +Language=English +%1 +. +MessageId=1567 +Language=English +%1 +. +MessageId=1568 +Language=English +%1 +. +MessageId=1569 +Language=English +%1 +. +MessageId=1570 +Language=English +%1 +. +MessageId=1571 +Language=English +%1 +. +MessageId=1572 +Language=English +%1 +. +MessageId=1573 +Language=English +%1 +. +MessageId=1574 +Language=English +%1 +. +MessageId=1575 +Language=English +%1 +. +MessageId=1576 +Language=English +%1 +. +MessageId=1577 +Language=English +%1 +. +MessageId=1578 +Language=English +%1 +. +MessageId=1579 +Language=English +%1 +. +MessageId=1580 +Language=English +%1 +. +MessageId=1581 +Language=English +%1 +. +MessageId=1582 +Language=English +%1 +. +MessageId=1583 +Language=English +%1 +. +MessageId=1584 +Language=English +%1 +. +MessageId=1585 +Language=English +%1 +. +MessageId=1586 +Language=English +%1 +. +MessageId=1587 +Language=English +%1 +. +MessageId=1588 +Language=English +%1 +. +MessageId=1589 +Language=English +%1 +. +MessageId=1590 +Language=English +%1 +. +MessageId=1591 +Language=English +%1 +. +MessageId=1592 +Language=English +%1 +. +MessageId=1593 +Language=English +%1 +. +MessageId=1594 +Language=English +%1 +. +MessageId=1595 +Language=English +%1 +. +MessageId=1596 +Language=English +%1 +. +MessageId=1597 +Language=English +%1 +. +MessageId=1598 +Language=English +%1 +. +MessageId=1599 +Language=English +%1 +. +MessageId=1600 +Language=English +%1 +. +MessageId=1601 +Language=English +%1 +. +MessageId=1602 +Language=English +%1 +. +MessageId=1603 +Language=English +%1 +. +MessageId=1604 +Language=English +%1 +. +MessageId=1605 +Language=English +%1 +. +MessageId=1606 +Language=English +%1 +. +MessageId=1607 +Language=English +%1 +. +MessageId=1608 +Language=English +%1 +. +MessageId=1609 +Language=English +%1 +. +MessageId=1610 +Language=English +%1 +. +MessageId=1611 +Language=English +%1 +. +MessageId=1612 +Language=English +%1 +. +MessageId=1613 +Language=English +%1 +. +MessageId=1614 +Language=English +%1 +. +MessageId=1615 +Language=English +%1 +. +MessageId=1616 +Language=English +%1 +. +MessageId=1617 +Language=English +%1 +. +MessageId=1618 +Language=English +%1 +. +MessageId=1619 +Language=English +%1 +. +MessageId=1620 +Language=English +%1 +. +MessageId=1621 +Language=English +%1 +. +MessageId=1622 +Language=English +%1 +. +MessageId=1623 +Language=English +%1 +. +MessageId=1624 +Language=English +%1 +. +MessageId=1625 +Language=English +%1 +. +MessageId=1626 +Language=English +%1 +. +MessageId=1627 +Language=English +%1 +. +MessageId=1628 +Language=English +%1 +. +MessageId=1629 +Language=English +%1 +. +MessageId=1630 +Language=English +%1 +. +MessageId=1631 +Language=English +%1 +. +MessageId=1632 +Language=English +%1 +. +MessageId=1633 +Language=English +%1 +. +MessageId=1634 +Language=English +%1 +. +MessageId=1635 +Language=English +%1 +. +MessageId=1636 +Language=English +%1 +. +MessageId=1637 +Language=English +%1 +. +MessageId=1638 +Language=English +%1 +. +MessageId=1639 +Language=English +%1 +. +MessageId=1640 +Language=English +%1 +. +MessageId=1641 +Language=English +%1 +. +MessageId=1642 +Language=English +%1 +. +MessageId=1643 +Language=English +%1 +. +MessageId=1644 +Language=English +%1 +. +MessageId=1645 +Language=English +%1 +. +MessageId=1646 +Language=English +%1 +. +MessageId=1647 +Language=English +%1 +. +MessageId=1648 +Language=English +%1 +. +MessageId=1649 +Language=English +%1 +. +MessageId=1650 +Language=English +%1 +. +MessageId=1651 +Language=English +%1 +. +MessageId=1652 +Language=English +%1 +. +MessageId=1653 +Language=English +%1 +. +MessageId=1654 +Language=English +%1 +. +MessageId=1655 +Language=English +%1 +. +MessageId=1656 +Language=English +%1 +. +MessageId=1657 +Language=English +%1 +. +MessageId=1658 +Language=English +%1 +. +MessageId=1659 +Language=English +%1 +. +MessageId=1660 +Language=English +%1 +. +MessageId=1661 +Language=English +%1 +. +MessageId=1662 +Language=English +%1 +. +MessageId=1663 +Language=English +%1 +. +MessageId=1664 +Language=English +%1 +. +MessageId=1665 +Language=English +%1 +. +MessageId=1666 +Language=English +%1 +. +MessageId=1667 +Language=English +%1 +. +MessageId=1668 +Language=English +%1 +. +MessageId=1669 +Language=English +%1 +. +MessageId=1670 +Language=English +%1 +. +MessageId=1671 +Language=English +%1 +. +MessageId=1672 +Language=English +%1 +. +MessageId=1673 +Language=English +%1 +. +MessageId=1674 +Language=English +%1 +. +MessageId=1675 +Language=English +%1 +. +MessageId=1676 +Language=English +%1 +. +MessageId=1677 +Language=English +%1 +. +MessageId=1678 +Language=English +%1 +. +MessageId=1679 +Language=English +%1 +. +MessageId=1680 +Language=English +%1 +. +MessageId=1681 +Language=English +%1 +. +MessageId=1682 +Language=English +%1 +. +MessageId=1683 +Language=English +%1 +. +MessageId=1684 +Language=English +%1 +. +MessageId=1685 +Language=English +%1 +. +MessageId=1686 +Language=English +%1 +. +MessageId=1687 +Language=English +%1 +. +MessageId=1688 +Language=English +%1 +. +MessageId=1689 +Language=English +%1 +. +MessageId=1690 +Language=English +%1 +. +MessageId=1691 +Language=English +%1 +. +MessageId=1692 +Language=English +%1 +. +MessageId=1693 +Language=English +%1 +. +MessageId=1694 +Language=English +%1 +. +MessageId=1695 +Language=English +%1 +. +MessageId=1696 +Language=English +%1 +. +MessageId=1697 +Language=English +%1 +. +MessageId=1698 +Language=English +%1 +. +MessageId=1699 +Language=English +%1 +. +MessageId=1700 +Language=English +%1 +. +MessageId=1701 +Language=English +%1 +. +MessageId=1702 +Language=English +%1 +. +MessageId=1703 +Language=English +%1 +. +MessageId=1704 +Language=English +%1 +. +MessageId=1705 +Language=English +%1 +. +MessageId=1706 +Language=English +%1 +. +MessageId=1707 +Language=English +%1 +. +MessageId=1708 +Language=English +%1 +. +MessageId=1709 +Language=English +%1 +. +MessageId=1710 +Language=English +%1 +. +MessageId=1711 +Language=English +%1 +. +MessageId=1712 +Language=English +%1 +. +MessageId=1713 +Language=English +%1 +. +MessageId=1714 +Language=English +%1 +. +MessageId=1715 +Language=English +%1 +. +MessageId=1716 +Language=English +%1 +. +MessageId=1717 +Language=English +%1 +. +MessageId=1718 +Language=English +%1 +. +MessageId=1719 +Language=English +%1 +. +MessageId=1720 +Language=English +%1 +. +MessageId=1721 +Language=English +%1 +. +MessageId=1722 +Language=English +%1 +. +MessageId=1723 +Language=English +%1 +. +MessageId=1724 +Language=English +%1 +. +MessageId=1725 +Language=English +%1 +. +MessageId=1726 +Language=English +%1 +. +MessageId=1727 +Language=English +%1 +. +MessageId=1728 +Language=English +%1 +. +MessageId=1729 +Language=English +%1 +. +MessageId=1730 +Language=English +%1 +. +MessageId=1731 +Language=English +%1 +. +MessageId=1732 +Language=English +%1 +. +MessageId=1733 +Language=English +%1 +. +MessageId=1734 +Language=English +%1 +. +MessageId=1735 +Language=English +%1 +. +MessageId=1736 +Language=English +%1 +. +MessageId=1737 +Language=English +%1 +. +MessageId=1738 +Language=English +%1 +. +MessageId=1739 +Language=English +%1 +. +MessageId=1740 +Language=English +%1 +. +MessageId=1741 +Language=English +%1 +. +MessageId=1742 +Language=English +%1 +. +MessageId=1743 +Language=English +%1 +. +MessageId=1744 +Language=English +%1 +. +MessageId=1745 +Language=English +%1 +. +MessageId=1746 +Language=English +%1 +. +MessageId=1747 +Language=English +%1 +. +MessageId=1748 +Language=English +%1 +. +MessageId=1749 +Language=English +%1 +. +MessageId=1750 +Language=English +%1 +. +MessageId=1751 +Language=English +%1 +. +MessageId=1752 +Language=English +%1 +. +MessageId=1753 +Language=English +%1 +. +MessageId=1754 +Language=English +%1 +. +MessageId=1755 +Language=English +%1 +. +MessageId=1756 +Language=English +%1 +. +MessageId=1757 +Language=English +%1 +. +MessageId=1758 +Language=English +%1 +. +MessageId=1759 +Language=English +%1 +. +MessageId=1760 +Language=English +%1 +. +MessageId=1761 +Language=English +%1 +. +MessageId=1762 +Language=English +%1 +. +MessageId=1763 +Language=English +%1 +. +MessageId=1764 +Language=English +%1 +. +MessageId=1765 +Language=English +%1 +. +MessageId=1766 +Language=English +%1 +. +MessageId=1767 +Language=English +%1 +. +MessageId=1768 +Language=English +%1 +. +MessageId=1769 +Language=English +%1 +. +MessageId=1770 +Language=English +%1 +. +MessageId=1771 +Language=English +%1 +. +MessageId=1772 +Language=English +%1 +. +MessageId=1773 +Language=English +%1 +. +MessageId=1774 +Language=English +%1 +. +MessageId=1775 +Language=English +%1 +. +MessageId=1776 +Language=English +%1 +. +MessageId=1777 +Language=English +%1 +. +MessageId=1778 +Language=English +%1 +. +MessageId=1779 +Language=English +%1 +. +MessageId=1780 +Language=English +%1 +. +MessageId=1781 +Language=English +%1 +. +MessageId=1782 +Language=English +%1 +. +MessageId=1783 +Language=English +%1 +. +MessageId=1784 +Language=English +%1 +. +MessageId=1785 +Language=English +%1 +. +MessageId=1786 +Language=English +%1 +. +MessageId=1787 +Language=English +%1 +. +MessageId=1788 +Language=English +%1 +. +MessageId=1789 +Language=English +%1 +. +MessageId=1790 +Language=English +%1 +. +MessageId=1791 +Language=English +%1 +. +MessageId=1792 +Language=English +%1 +. +MessageId=1793 +Language=English +%1 +. +MessageId=1794 +Language=English +%1 +. +MessageId=1795 +Language=English +%1 +. +MessageId=1796 +Language=English +%1 +. +MessageId=1797 +Language=English +%1 +. +MessageId=1798 +Language=English +%1 +. +MessageId=1799 +Language=English +%1 +. +MessageId=1800 +Language=English +%1 +. +MessageId=1801 +Language=English +%1 +. +MessageId=1802 +Language=English +%1 +. +MessageId=1803 +Language=English +%1 +. +MessageId=1804 +Language=English +%1 +. +MessageId=1805 +Language=English +%1 +. +MessageId=1806 +Language=English +%1 +. +MessageId=1807 +Language=English +%1 +. +MessageId=1808 +Language=English +%1 +. +MessageId=1809 +Language=English +%1 +. +MessageId=1810 +Language=English +%1 +. +MessageId=1811 +Language=English +%1 +. +MessageId=1812 +Language=English +%1 +. +MessageId=1813 +Language=English +%1 +. +MessageId=1814 +Language=English +%1 +. +MessageId=1815 +Language=English +%1 +. +MessageId=1816 +Language=English +%1 +. +MessageId=1817 +Language=English +%1 +. +MessageId=1818 +Language=English +%1 +. +MessageId=1819 +Language=English +%1 +. +MessageId=1820 +Language=English +%1 +. +MessageId=1821 +Language=English +%1 +. +MessageId=1822 +Language=English +%1 +. +MessageId=1823 +Language=English +%1 +. +MessageId=1824 +Language=English +%1 +. +MessageId=1825 +Language=English +%1 +. +MessageId=1826 +Language=English +%1 +. +MessageId=1827 +Language=English +%1 +. +MessageId=1828 +Language=English +%1 +. +MessageId=1829 +Language=English +%1 +. +MessageId=1830 +Language=English +%1 +. +MessageId=1831 +Language=English +%1 +. +MessageId=1832 +Language=English +%1 +. +MessageId=1833 +Language=English +%1 +. +MessageId=1834 +Language=English +%1 +. +MessageId=1835 +Language=English +%1 +. +MessageId=1836 +Language=English +%1 +. +MessageId=1837 +Language=English +%1 +. +MessageId=1838 +Language=English +%1 +. +MessageId=1839 +Language=English +%1 +. +MessageId=1840 +Language=English +%1 +. +MessageId=1841 +Language=English +%1 +. +MessageId=1842 +Language=English +%1 +. +MessageId=1843 +Language=English +%1 +. +MessageId=1844 +Language=English +%1 +. +MessageId=1845 +Language=English +%1 +. +MessageId=1846 +Language=English +%1 +. +MessageId=1847 +Language=English +%1 +. +MessageId=1848 +Language=English +%1 +. +MessageId=1849 +Language=English +%1 +. +MessageId=1850 +Language=English +%1 +. +MessageId=1851 +Language=English +%1 +. +MessageId=1852 +Language=English +%1 +. +MessageId=1853 +Language=English +%1 +. +MessageId=1854 +Language=English +%1 +. +MessageId=1855 +Language=English +%1 +. +MessageId=1856 +Language=English +%1 +. +MessageId=1857 +Language=English +%1 +. +MessageId=1858 +Language=English +%1 +. +MessageId=1859 +Language=English +%1 +. +MessageId=1860 +Language=English +%1 +. +MessageId=1861 +Language=English +%1 +. +MessageId=1862 +Language=English +%1 +. +MessageId=1863 +Language=English +%1 +. +MessageId=1864 +Language=English +%1 +. +MessageId=1865 +Language=English +%1 +. +MessageId=1866 +Language=English +%1 +. +MessageId=1867 +Language=English +%1 +. +MessageId=1868 +Language=English +%1 +. +MessageId=1869 +Language=English +%1 +. +MessageId=1870 +Language=English +%1 +. +MessageId=1871 +Language=English +%1 +. +MessageId=1872 +Language=English +%1 +. +MessageId=1873 +Language=English +%1 +. +MessageId=1874 +Language=English +%1 +. +MessageId=1875 +Language=English +%1 +. +MessageId=1876 +Language=English +%1 +. +MessageId=1877 +Language=English +%1 +. +MessageId=1878 +Language=English +%1 +. +MessageId=1879 +Language=English +%1 +. +MessageId=1880 +Language=English +%1 +. +MessageId=1881 +Language=English +%1 +. +MessageId=1882 +Language=English +%1 +. +MessageId=1883 +Language=English +%1 +. +MessageId=1884 +Language=English +%1 +. +MessageId=1885 +Language=English +%1 +. +MessageId=1886 +Language=English +%1 +. +MessageId=1887 +Language=English +%1 +. +MessageId=1888 +Language=English +%1 +. +MessageId=1889 +Language=English +%1 +. +MessageId=1890 +Language=English +%1 +. +MessageId=1891 +Language=English +%1 +. +MessageId=1892 +Language=English +%1 +. +MessageId=1893 +Language=English +%1 +. +MessageId=1894 +Language=English +%1 +. +MessageId=1895 +Language=English +%1 +. +MessageId=1896 +Language=English +%1 +. +MessageId=1897 +Language=English +%1 +. +MessageId=1898 +Language=English +%1 +. +MessageId=1899 +Language=English +%1 +. +MessageId=1900 +Language=English +%1 +. +MessageId=1901 +Language=English +%1 +. +MessageId=1902 +Language=English +%1 +. +MessageId=1903 +Language=English +%1 +. +MessageId=1904 +Language=English +%1 +. +MessageId=1905 +Language=English +%1 +. +MessageId=1906 +Language=English +%1 +. +MessageId=1907 +Language=English +%1 +. +MessageId=1908 +Language=English +%1 +. +MessageId=1909 +Language=English +%1 +. +MessageId=1910 +Language=English +%1 +. +MessageId=1911 +Language=English +%1 +. +MessageId=1912 +Language=English +%1 +. +MessageId=1913 +Language=English +%1 +. +MessageId=1914 +Language=English +%1 +. +MessageId=1915 +Language=English +%1 +. +MessageId=1916 +Language=English +%1 +. +MessageId=1917 +Language=English +%1 +. +MessageId=1918 +Language=English +%1 +. +MessageId=1919 +Language=English +%1 +. +MessageId=1920 +Language=English +%1 +. +MessageId=1921 +Language=English +%1 +. +MessageId=1922 +Language=English +%1 +. +MessageId=1923 +Language=English +%1 +. +MessageId=1924 +Language=English +%1 +. +MessageId=1925 +Language=English +%1 +. +MessageId=1926 +Language=English +%1 +. +MessageId=1927 +Language=English +%1 +. +MessageId=1928 +Language=English +%1 +. +MessageId=1929 +Language=English +%1 +. +MessageId=1930 +Language=English +%1 +. +MessageId=1931 +Language=English +%1 +. +MessageId=1932 +Language=English +%1 +. +MessageId=1933 +Language=English +%1 +. +MessageId=1934 +Language=English +%1 +. +MessageId=1935 +Language=English +%1 +. +MessageId=1936 +Language=English +%1 +. +MessageId=1937 +Language=English +%1 +. +MessageId=1938 +Language=English +%1 +. +MessageId=1939 +Language=English +%1 +. +MessageId=1940 +Language=English +%1 +. +MessageId=1941 +Language=English +%1 +. +MessageId=1942 +Language=English +%1 +. +MessageId=1943 +Language=English +%1 +. +MessageId=1944 +Language=English +%1 +. +MessageId=1945 +Language=English +%1 +. +MessageId=1946 +Language=English +%1 +. +MessageId=1947 +Language=English +%1 +. +MessageId=1948 +Language=English +%1 +. +MessageId=1949 +Language=English +%1 +. +MessageId=1950 +Language=English +%1 +. +MessageId=1951 +Language=English +%1 +. +MessageId=1952 +Language=English +%1 +. +MessageId=1953 +Language=English +%1 +. +MessageId=1954 +Language=English +%1 +. +MessageId=1955 +Language=English +%1 +. +MessageId=1956 +Language=English +%1 +. +MessageId=1957 +Language=English +%1 +. +MessageId=1958 +Language=English +%1 +. +MessageId=1959 +Language=English +%1 +. +MessageId=1960 +Language=English +%1 +. +MessageId=1961 +Language=English +%1 +. +MessageId=1962 +Language=English +%1 +. +MessageId=1963 +Language=English +%1 +. +MessageId=1964 +Language=English +%1 +. +MessageId=1965 +Language=English +%1 +. +MessageId=1966 +Language=English +%1 +. +MessageId=1967 +Language=English +%1 +. +MessageId=1968 +Language=English +%1 +. +MessageId=1969 +Language=English +%1 +. +MessageId=1970 +Language=English +%1 +. +MessageId=1971 +Language=English +%1 +. +MessageId=1972 +Language=English +%1 +. +MessageId=1973 +Language=English +%1 +. +MessageId=1974 +Language=English +%1 +. +MessageId=1975 +Language=English +%1 +. +MessageId=1976 +Language=English +%1 +. +MessageId=1977 +Language=English +%1 +. +MessageId=1978 +Language=English +%1 +. +MessageId=1979 +Language=English +%1 +. +MessageId=1980 +Language=English +%1 +. +MessageId=1981 +Language=English +%1 +. +MessageId=1982 +Language=English +%1 +. +MessageId=1983 +Language=English +%1 +. +MessageId=1984 +Language=English +%1 +. +MessageId=1985 +Language=English +%1 +. +MessageId=1986 +Language=English +%1 +. +MessageId=1987 +Language=English +%1 +. +MessageId=1988 +Language=English +%1 +. +MessageId=1989 +Language=English +%1 +. +MessageId=1990 +Language=English +%1 +. +MessageId=1991 +Language=English +%1 +. +MessageId=1992 +Language=English +%1 +. +MessageId=1993 +Language=English +%1 +. +MessageId=1994 +Language=English +%1 +. +MessageId=1995 +Language=English +%1 +. +MessageId=1996 +Language=English +%1 +. +MessageId=1997 +Language=English +%1 +. +MessageId=1998 +Language=English +%1 +. +MessageId=1999 +Language=English +%1 +. +MessageId=2000 +Language=English +%1 +. +MessageId=2001 +Language=English +%1 +. +MessageId=2002 +Language=English +%1 +. +MessageId=2003 +Language=English +%1 +. +MessageId=2004 +Language=English +%1 +. +MessageId=2005 +Language=English +%1 +. +MessageId=2006 +Language=English +%1 +. +MessageId=2007 +Language=English +%1 +. +MessageId=2008 +Language=English +%1 +. +MessageId=2009 +Language=English +%1 +. +MessageId=2010 +Language=English +%1 +. +MessageId=2011 +Language=English +%1 +. +MessageId=2012 +Language=English +%1 +. +MessageId=2013 +Language=English +%1 +. +MessageId=2014 +Language=English +%1 +. +MessageId=2015 +Language=English +%1 +. +MessageId=2016 +Language=English +%1 +. +MessageId=2017 +Language=English +%1 +. +MessageId=2018 +Language=English +%1 +. +MessageId=2019 +Language=English +%1 +. +MessageId=2020 +Language=English +%1 +. +MessageId=2021 +Language=English +%1 +. +MessageId=2022 +Language=English +%1 +. +MessageId=2023 +Language=English +%1 +. +MessageId=2024 +Language=English +%1 +. +MessageId=2025 +Language=English +%1 +. +MessageId=2026 +Language=English +%1 +. +MessageId=2027 +Language=English +%1 +. +MessageId=2028 +Language=English +%1 +. +MessageId=2029 +Language=English +%1 +. +MessageId=2030 +Language=English +%1 +. +MessageId=2031 +Language=English +%1 +. +MessageId=2032 +Language=English +%1 +. +MessageId=2033 +Language=English +%1 +. +MessageId=2034 +Language=English +%1 +. +MessageId=2035 +Language=English +%1 +. +MessageId=2036 +Language=English +%1 +. +MessageId=2037 +Language=English +%1 +. +MessageId=2038 +Language=English +%1 +. +MessageId=2039 +Language=English +%1 +. +MessageId=2040 +Language=English +%1 +. +MessageId=2041 +Language=English +%1 +. +MessageId=2042 +Language=English +%1 +. +MessageId=2043 +Language=English +%1 +. +MessageId=2044 +Language=English +%1 +. +MessageId=2045 +Language=English +%1 +. +MessageId=2046 +Language=English +%1 +. +MessageId=2047 +Language=English +%1 +. +MessageId=2048 +Language=English +%1 +. +MessageId=2049 +Language=English +%1 +. +MessageId=2050 +Language=English +%1 +. +MessageId=2051 +Language=English +%1 +. +MessageId=2052 +Language=English +%1 +. +MessageId=2053 +Language=English +%1 +. +MessageId=2054 +Language=English +%1 +. +MessageId=2055 +Language=English +%1 +. +MessageId=2056 +Language=English +%1 +. +MessageId=2057 +Language=English +%1 +. +MessageId=2058 +Language=English +%1 +. +MessageId=2059 +Language=English +%1 +. +MessageId=2060 +Language=English +%1 +. +MessageId=2061 +Language=English +%1 +. +MessageId=2062 +Language=English +%1 +. +MessageId=2063 +Language=English +%1 +. +MessageId=2064 +Language=English +%1 +. +MessageId=2065 +Language=English +%1 +. +MessageId=2066 +Language=English +%1 +. +MessageId=2067 +Language=English +%1 +. +MessageId=2068 +Language=English +%1 +. +MessageId=2069 +Language=English +%1 +. +MessageId=2070 +Language=English +%1 +. +MessageId=2071 +Language=English +%1 +. +MessageId=2072 +Language=English +%1 +. +MessageId=2073 +Language=English +%1 +. +MessageId=2074 +Language=English +%1 +. +MessageId=2075 +Language=English +%1 +. +MessageId=2076 +Language=English +%1 +. +MessageId=2077 +Language=English +%1 +. +MessageId=2078 +Language=English +%1 +. +MessageId=2079 +Language=English +%1 +. +MessageId=2080 +Language=English +%1 +. +MessageId=2081 +Language=English +%1 +. +MessageId=2082 +Language=English +%1 +. +MessageId=2083 +Language=English +%1 +. +MessageId=2084 +Language=English +%1 +. +MessageId=2085 +Language=English +%1 +. +MessageId=2086 +Language=English +%1 +. +MessageId=2087 +Language=English +%1 +. +MessageId=2088 +Language=English +%1 +. +MessageId=2089 +Language=English +%1 +. +MessageId=2090 +Language=English +%1 +. +MessageId=2091 +Language=English +%1 +. +MessageId=2092 +Language=English +%1 +. +MessageId=2093 +Language=English +%1 +. +MessageId=2094 +Language=English +%1 +. +MessageId=2095 +Language=English +%1 +. +MessageId=2096 +Language=English +%1 +. +MessageId=2097 +Language=English +%1 +. +MessageId=2098 +Language=English +%1 +. +MessageId=2099 +Language=English +%1 +. +MessageId=2100 +Language=English +%1 +. +MessageId=2101 +Language=English +%1 +. +MessageId=2102 +Language=English +%1 +. +MessageId=2103 +Language=English +%1 +. +MessageId=2104 +Language=English +%1 +. +MessageId=2105 +Language=English +%1 +. +MessageId=2106 +Language=English +%1 +. +MessageId=2107 +Language=English +%1 +. +MessageId=2108 +Language=English +%1 +. +MessageId=2109 +Language=English +%1 +. +MessageId=2110 +Language=English +%1 +. +MessageId=2111 +Language=English +%1 +. +MessageId=2112 +Language=English +%1 +. +MessageId=2113 +Language=English +%1 +. +MessageId=2114 +Language=English +%1 +. +MessageId=2115 +Language=English +%1 +. +MessageId=2116 +Language=English +%1 +. +MessageId=2117 +Language=English +%1 +. +MessageId=2118 +Language=English +%1 +. +MessageId=2119 +Language=English +%1 +. +MessageId=2120 +Language=English +%1 +. +MessageId=2121 +Language=English +%1 +. +MessageId=2122 +Language=English +%1 +. +MessageId=2123 +Language=English +%1 +. +MessageId=2124 +Language=English +%1 +. +MessageId=2125 +Language=English +%1 +. +MessageId=2126 +Language=English +%1 +. +MessageId=2127 +Language=English +%1 +. +MessageId=2128 +Language=English +%1 +. +MessageId=2129 +Language=English +%1 +. +MessageId=2130 +Language=English +%1 +. +MessageId=2131 +Language=English +%1 +. +MessageId=2132 +Language=English +%1 +. +MessageId=2133 +Language=English +%1 +. +MessageId=2134 +Language=English +%1 +. +MessageId=2135 +Language=English +%1 +. +MessageId=2136 +Language=English +%1 +. +MessageId=2137 +Language=English +%1 +. +MessageId=2138 +Language=English +%1 +. +MessageId=2139 +Language=English +%1 +. +MessageId=2140 +Language=English +%1 +. +MessageId=2141 +Language=English +%1 +. +MessageId=2142 +Language=English +%1 +. +MessageId=2143 +Language=English +%1 +. +MessageId=2144 +Language=English +%1 +. +MessageId=2145 +Language=English +%1 +. +MessageId=2146 +Language=English +%1 +. +MessageId=2147 +Language=English +%1 +. +MessageId=2148 +Language=English +%1 +. +MessageId=2149 +Language=English +%1 +. +MessageId=2150 +Language=English +%1 +. +MessageId=2151 +Language=English +%1 +. +MessageId=2152 +Language=English +%1 +. +MessageId=2153 +Language=English +%1 +. +MessageId=2154 +Language=English +%1 +. +MessageId=2155 +Language=English +%1 +. +MessageId=2156 +Language=English +%1 +. +MessageId=2157 +Language=English +%1 +. +MessageId=2158 +Language=English +%1 +. +MessageId=2159 +Language=English +%1 +. +MessageId=2160 +Language=English +%1 +. +MessageId=2161 +Language=English +%1 +. +MessageId=2162 +Language=English +%1 +. +MessageId=2163 +Language=English +%1 +. +MessageId=2164 +Language=English +%1 +. +MessageId=2165 +Language=English +%1 +. +MessageId=2166 +Language=English +%1 +. +MessageId=2167 +Language=English +%1 +. +MessageId=2168 +Language=English +%1 +. +MessageId=2169 +Language=English +%1 +. +MessageId=2170 +Language=English +%1 +. +MessageId=2171 +Language=English +%1 +. +MessageId=2172 +Language=English +%1 +. +MessageId=2173 +Language=English +%1 +. +MessageId=2174 +Language=English +%1 +. +MessageId=2175 +Language=English +%1 +. +MessageId=2176 +Language=English +%1 +. +MessageId=2177 +Language=English +%1 +. +MessageId=2178 +Language=English +%1 +. +MessageId=2179 +Language=English +%1 +. +MessageId=2180 +Language=English +%1 +. +MessageId=2181 +Language=English +%1 +. +MessageId=2182 +Language=English +%1 +. +MessageId=2183 +Language=English +%1 +. +MessageId=2184 +Language=English +%1 +. +MessageId=2185 +Language=English +%1 +. +MessageId=2186 +Language=English +%1 +. +MessageId=2187 +Language=English +%1 +. +MessageId=2188 +Language=English +%1 +. +MessageId=2189 +Language=English +%1 +. +MessageId=2190 +Language=English +%1 +. +MessageId=2191 +Language=English +%1 +. +MessageId=2192 +Language=English +%1 +. +MessageId=2193 +Language=English +%1 +. +MessageId=2194 +Language=English +%1 +. +MessageId=2195 +Language=English +%1 +. +MessageId=2196 +Language=English +%1 +. +MessageId=2197 +Language=English +%1 +. +MessageId=2198 +Language=English +%1 +. +MessageId=2199 +Language=English +%1 +. +MessageId=2200 +Language=English +%1 +. +MessageId=2201 +Language=English +%1 +. +MessageId=2202 +Language=English +%1 +. +MessageId=2203 +Language=English +%1 +. +MessageId=2204 +Language=English +%1 +. +MessageId=2205 +Language=English +%1 +. +MessageId=2206 +Language=English +%1 +. +MessageId=2207 +Language=English +%1 +. +MessageId=2208 +Language=English +%1 +. +MessageId=2209 +Language=English +%1 +. +MessageId=2210 +Language=English +%1 +. +MessageId=2211 +Language=English +%1 +. +MessageId=2212 +Language=English +%1 +. +MessageId=2213 +Language=English +%1 +. +MessageId=2214 +Language=English +%1 +. +MessageId=2215 +Language=English +%1 +. +MessageId=2216 +Language=English +%1 +. +MessageId=2217 +Language=English +%1 +. +MessageId=2218 +Language=English +%1 +. +MessageId=2219 +Language=English +%1 +. +MessageId=2220 +Language=English +%1 +. +MessageId=2221 +Language=English +%1 +. +MessageId=2222 +Language=English +%1 +. +MessageId=2223 +Language=English +%1 +. +MessageId=2224 +Language=English +%1 +. +MessageId=2225 +Language=English +%1 +. +MessageId=2226 +Language=English +%1 +. +MessageId=2227 +Language=English +%1 +. +MessageId=2228 +Language=English +%1 +. +MessageId=2229 +Language=English +%1 +. +MessageId=2230 +Language=English +%1 +. +MessageId=2231 +Language=English +%1 +. +MessageId=2232 +Language=English +%1 +. +MessageId=2233 +Language=English +%1 +. +MessageId=2234 +Language=English +%1 +. +MessageId=2235 +Language=English +%1 +. +MessageId=2236 +Language=English +%1 +. +MessageId=2237 +Language=English +%1 +. +MessageId=2238 +Language=English +%1 +. +MessageId=2239 +Language=English +%1 +. +MessageId=2240 +Language=English +%1 +. +MessageId=2241 +Language=English +%1 +. +MessageId=2242 +Language=English +%1 +. +MessageId=2243 +Language=English +%1 +. +MessageId=2244 +Language=English +%1 +. +MessageId=2245 +Language=English +%1 +. +MessageId=2246 +Language=English +%1 +. +MessageId=2247 +Language=English +%1 +. +MessageId=2248 +Language=English +%1 +. +MessageId=2249 +Language=English +%1 +. +MessageId=2250 +Language=English +%1 +. +MessageId=2251 +Language=English +%1 +. +MessageId=2252 +Language=English +%1 +. +MessageId=2253 +Language=English +%1 +. +MessageId=2254 +Language=English +%1 +. +MessageId=2255 +Language=English +%1 +. +MessageId=2256 +Language=English +%1 +. +MessageId=2257 +Language=English +%1 +. +MessageId=2258 +Language=English +%1 +. +MessageId=2259 +Language=English +%1 +. +MessageId=2260 +Language=English +%1 +. +MessageId=2261 +Language=English +%1 +. +MessageId=2262 +Language=English +%1 +. +MessageId=2263 +Language=English +%1 +. +MessageId=2264 +Language=English +%1 +. +MessageId=2265 +Language=English +%1 +. +MessageId=2266 +Language=English +%1 +. +MessageId=2267 +Language=English +%1 +. +MessageId=2268 +Language=English +%1 +. +MessageId=2269 +Language=English +%1 +. +MessageId=2270 +Language=English +%1 +. +MessageId=2271 +Language=English +%1 +. +MessageId=2272 +Language=English +%1 +. +MessageId=2273 +Language=English +%1 +. +MessageId=2274 +Language=English +%1 +. +MessageId=2275 +Language=English +%1 +. +MessageId=2276 +Language=English +%1 +. +MessageId=2277 +Language=English +%1 +. +MessageId=2278 +Language=English +%1 +. +MessageId=2279 +Language=English +%1 +. +MessageId=2280 +Language=English +%1 +. +MessageId=2281 +Language=English +%1 +. +MessageId=2282 +Language=English +%1 +. +MessageId=2283 +Language=English +%1 +. +MessageId=2284 +Language=English +%1 +. +MessageId=2285 +Language=English +%1 +. +MessageId=2286 +Language=English +%1 +. +MessageId=2287 +Language=English +%1 +. +MessageId=2288 +Language=English +%1 +. +MessageId=2289 +Language=English +%1 +. +MessageId=2290 +Language=English +%1 +. +MessageId=2291 +Language=English +%1 +. +MessageId=2292 +Language=English +%1 +. +MessageId=2293 +Language=English +%1 +. +MessageId=2294 +Language=English +%1 +. +MessageId=2295 +Language=English +%1 +. +MessageId=2296 +Language=English +%1 +. +MessageId=2297 +Language=English +%1 +. +MessageId=2298 +Language=English +%1 +. +MessageId=2299 +Language=English +%1 +. +MessageId=2300 +Language=English +%1 +. +MessageId=2301 +Language=English +%1 +. +MessageId=2302 +Language=English +%1 +. +MessageId=2303 +Language=English +%1 +. +MessageId=2304 +Language=English +%1 +. +MessageId=2305 +Language=English +%1 +. +MessageId=2306 +Language=English +%1 +. +MessageId=2307 +Language=English +%1 +. +MessageId=2308 +Language=English +%1 +. +MessageId=2309 +Language=English +%1 +. +MessageId=2310 +Language=English +%1 +. +MessageId=2311 +Language=English +%1 +. +MessageId=2312 +Language=English +%1 +. +MessageId=2313 +Language=English +%1 +. +MessageId=2314 +Language=English +%1 +. +MessageId=2315 +Language=English +%1 +. +MessageId=2316 +Language=English +%1 +. +MessageId=2317 +Language=English +%1 +. +MessageId=2318 +Language=English +%1 +. +MessageId=2319 +Language=English +%1 +. +MessageId=2320 +Language=English +%1 +. +MessageId=2321 +Language=English +%1 +. +MessageId=2322 +Language=English +%1 +. +MessageId=2323 +Language=English +%1 +. +MessageId=2324 +Language=English +%1 +. +MessageId=2325 +Language=English +%1 +. +MessageId=2326 +Language=English +%1 +. +MessageId=2327 +Language=English +%1 +. +MessageId=2328 +Language=English +%1 +. +MessageId=2329 +Language=English +%1 +. +MessageId=2330 +Language=English +%1 +. +MessageId=2331 +Language=English +%1 +. +MessageId=2332 +Language=English +%1 +. +MessageId=2333 +Language=English +%1 +. +MessageId=2334 +Language=English +%1 +. +MessageId=2335 +Language=English +%1 +. +MessageId=2336 +Language=English +%1 +. +MessageId=2337 +Language=English +%1 +. +MessageId=2338 +Language=English +%1 +. +MessageId=2339 +Language=English +%1 +. +MessageId=2340 +Language=English +%1 +. +MessageId=2341 +Language=English +%1 +. +MessageId=2342 +Language=English +%1 +. +MessageId=2343 +Language=English +%1 +. +MessageId=2344 +Language=English +%1 +. +MessageId=2345 +Language=English +%1 +. +MessageId=2346 +Language=English +%1 +. +MessageId=2347 +Language=English +%1 +. +MessageId=2348 +Language=English +%1 +. +MessageId=2349 +Language=English +%1 +. +MessageId=2350 +Language=English +%1 +. +MessageId=2351 +Language=English +%1 +. +MessageId=2352 +Language=English +%1 +. +MessageId=2353 +Language=English +%1 +. +MessageId=2354 +Language=English +%1 +. +MessageId=2355 +Language=English +%1 +. +MessageId=2356 +Language=English +%1 +. +MessageId=2357 +Language=English +%1 +. +MessageId=2358 +Language=English +%1 +. +MessageId=2359 +Language=English +%1 +. +MessageId=2360 +Language=English +%1 +. +MessageId=2361 +Language=English +%1 +. +MessageId=2362 +Language=English +%1 +. +MessageId=2363 +Language=English +%1 +. +MessageId=2364 +Language=English +%1 +. +MessageId=2365 +Language=English +%1 +. +MessageId=2366 +Language=English +%1 +. +MessageId=2367 +Language=English +%1 +. +MessageId=2368 +Language=English +%1 +. +MessageId=2369 +Language=English +%1 +. +MessageId=2370 +Language=English +%1 +. +MessageId=2371 +Language=English +%1 +. +MessageId=2372 +Language=English +%1 +. +MessageId=2373 +Language=English +%1 +. +MessageId=2374 +Language=English +%1 +. +MessageId=2375 +Language=English +%1 +. +MessageId=2376 +Language=English +%1 +. +MessageId=2377 +Language=English +%1 +. +MessageId=2378 +Language=English +%1 +. +MessageId=2379 +Language=English +%1 +. +MessageId=2380 +Language=English +%1 +. +MessageId=2381 +Language=English +%1 +. +MessageId=2382 +Language=English +%1 +. +MessageId=2383 +Language=English +%1 +. +MessageId=2384 +Language=English +%1 +. +MessageId=2385 +Language=English +%1 +. +MessageId=2386 +Language=English +%1 +. +MessageId=2387 +Language=English +%1 +. +MessageId=2388 +Language=English +%1 +. +MessageId=2389 +Language=English +%1 +. +MessageId=2390 +Language=English +%1 +. +MessageId=2391 +Language=English +%1 +. +MessageId=2392 +Language=English +%1 +. +MessageId=2393 +Language=English +%1 +. +MessageId=2394 +Language=English +%1 +. +MessageId=2395 +Language=English +%1 +. +MessageId=2396 +Language=English +%1 +. +MessageId=2397 +Language=English +%1 +. +MessageId=2398 +Language=English +%1 +. +MessageId=2399 +Language=English +%1 +. +MessageId=2400 +Language=English +%1 +. +MessageId=2401 +Language=English +%1 +. +MessageId=2402 +Language=English +%1 +. +MessageId=2403 +Language=English +%1 +. +MessageId=2404 +Language=English +%1 +. +MessageId=2405 +Language=English +%1 +. +MessageId=2406 +Language=English +%1 +. +MessageId=2407 +Language=English +%1 +. +MessageId=2408 +Language=English +%1 +. +MessageId=2409 +Language=English +%1 +. +MessageId=2410 +Language=English +%1 +. +MessageId=2411 +Language=English +%1 +. +MessageId=2412 +Language=English +%1 +. +MessageId=2413 +Language=English +%1 +. +MessageId=2414 +Language=English +%1 +. +MessageId=2415 +Language=English +%1 +. +MessageId=2416 +Language=English +%1 +. +MessageId=2417 +Language=English +%1 +. +MessageId=2418 +Language=English +%1 +. +MessageId=2419 +Language=English +%1 +. +MessageId=2420 +Language=English +%1 +. +MessageId=2421 +Language=English +%1 +. +MessageId=2422 +Language=English +%1 +. +MessageId=2423 +Language=English +%1 +. +MessageId=2424 +Language=English +%1 +. +MessageId=2425 +Language=English +%1 +. +MessageId=2426 +Language=English +%1 +. +MessageId=2427 +Language=English +%1 +. +MessageId=2428 +Language=English +%1 +. +MessageId=2429 +Language=English +%1 +. +MessageId=2430 +Language=English +%1 +. +MessageId=2431 +Language=English +%1 +. +MessageId=2432 +Language=English +%1 +. +MessageId=2433 +Language=English +%1 +. +MessageId=2434 +Language=English +%1 +. +MessageId=2435 +Language=English +%1 +. +MessageId=2436 +Language=English +%1 +. +MessageId=2437 +Language=English +%1 +. +MessageId=2438 +Language=English +%1 +. +MessageId=2439 +Language=English +%1 +. +MessageId=2440 +Language=English +%1 +. +MessageId=2441 +Language=English +%1 +. +MessageId=2442 +Language=English +%1 +. +MessageId=2443 +Language=English +%1 +. +MessageId=2444 +Language=English +%1 +. +MessageId=2445 +Language=English +%1 +. +MessageId=2446 +Language=English +%1 +. +MessageId=2447 +Language=English +%1 +. +MessageId=2448 +Language=English +%1 +. +MessageId=2449 +Language=English +%1 +. +MessageId=2450 +Language=English +%1 +. +MessageId=2451 +Language=English +%1 +. +MessageId=2452 +Language=English +%1 +. +MessageId=2453 +Language=English +%1 +. +MessageId=2454 +Language=English +%1 +. +MessageId=2455 +Language=English +%1 +. +MessageId=2456 +Language=English +%1 +. +MessageId=2457 +Language=English +%1 +. +MessageId=2458 +Language=English +%1 +. +MessageId=2459 +Language=English +%1 +. +MessageId=2460 +Language=English +%1 +. +MessageId=2461 +Language=English +%1 +. +MessageId=2462 +Language=English +%1 +. +MessageId=2463 +Language=English +%1 +. +MessageId=2464 +Language=English +%1 +. +MessageId=2465 +Language=English +%1 +. +MessageId=2466 +Language=English +%1 +. +MessageId=2467 +Language=English +%1 +. +MessageId=2468 +Language=English +%1 +. +MessageId=2469 +Language=English +%1 +. +MessageId=2470 +Language=English +%1 +. +MessageId=2471 +Language=English +%1 +. +MessageId=2472 +Language=English +%1 +. +MessageId=2473 +Language=English +%1 +. +MessageId=2474 +Language=English +%1 +. +MessageId=2475 +Language=English +%1 +. +MessageId=2476 +Language=English +%1 +. +MessageId=2477 +Language=English +%1 +. +MessageId=2478 +Language=English +%1 +. +MessageId=2479 +Language=English +%1 +. +MessageId=2480 +Language=English +%1 +. +MessageId=2481 +Language=English +%1 +. +MessageId=2482 +Language=English +%1 +. +MessageId=2483 +Language=English +%1 +. +MessageId=2484 +Language=English +%1 +. +MessageId=2485 +Language=English +%1 +. +MessageId=2486 +Language=English +%1 +. +MessageId=2487 +Language=English +%1 +. +MessageId=2488 +Language=English +%1 +. +MessageId=2489 +Language=English +%1 +. +MessageId=2490 +Language=English +%1 +. +MessageId=2491 +Language=English +%1 +. +MessageId=2492 +Language=English +%1 +. +MessageId=2493 +Language=English +%1 +. +MessageId=2494 +Language=English +%1 +. +MessageId=2495 +Language=English +%1 +. +MessageId=2496 +Language=English +%1 +. +MessageId=2497 +Language=English +%1 +. +MessageId=2498 +Language=English +%1 +. +MessageId=2499 +Language=English +%1 +. +MessageId=2500 +Language=English +%1 +. +MessageId=2501 +Language=English +%1 +. +MessageId=2502 +Language=English +%1 +. +MessageId=2503 +Language=English +%1 +. +MessageId=2504 +Language=English +%1 +. +MessageId=2505 +Language=English +%1 +. +MessageId=2506 +Language=English +%1 +. +MessageId=2507 +Language=English +%1 +. +MessageId=2508 +Language=English +%1 +. +MessageId=2509 +Language=English +%1 +. +MessageId=2510 +Language=English +%1 +. +MessageId=2511 +Language=English +%1 +. +MessageId=2512 +Language=English +%1 +. +MessageId=2513 +Language=English +%1 +. +MessageId=2514 +Language=English +%1 +. +MessageId=2515 +Language=English +%1 +. +MessageId=2516 +Language=English +%1 +. +MessageId=2517 +Language=English +%1 +. +MessageId=2518 +Language=English +%1 +. +MessageId=2519 +Language=English +%1 +. +MessageId=2520 +Language=English +%1 +. +MessageId=2521 +Language=English +%1 +. +MessageId=2522 +Language=English +%1 +. +MessageId=2523 +Language=English +%1 +. +MessageId=2524 +Language=English +%1 +. +MessageId=2525 +Language=English +%1 +. +MessageId=2526 +Language=English +%1 +. +MessageId=2527 +Language=English +%1 +. +MessageId=2528 +Language=English +%1 +. +MessageId=2529 +Language=English +%1 +. +MessageId=2530 +Language=English +%1 +. +MessageId=2531 +Language=English +%1 +. +MessageId=2532 +Language=English +%1 +. +MessageId=2533 +Language=English +%1 +. +MessageId=2534 +Language=English +%1 +. +MessageId=2535 +Language=English +%1 +. +MessageId=2536 +Language=English +%1 +. +MessageId=2537 +Language=English +%1 +. +MessageId=2538 +Language=English +%1 +. +MessageId=2539 +Language=English +%1 +. +MessageId=2540 +Language=English +%1 +. +MessageId=2541 +Language=English +%1 +. +MessageId=2542 +Language=English +%1 +. +MessageId=2543 +Language=English +%1 +. +MessageId=2544 +Language=English +%1 +. +MessageId=2545 +Language=English +%1 +. +MessageId=2546 +Language=English +%1 +. +MessageId=2547 +Language=English +%1 +. +MessageId=2548 +Language=English +%1 +. +MessageId=2549 +Language=English +%1 +. +MessageId=2550 +Language=English +%1 +. +MessageId=2551 +Language=English +%1 +. +MessageId=2552 +Language=English +%1 +. +MessageId=2553 +Language=English +%1 +. +MessageId=2554 +Language=English +%1 +. +MessageId=2555 +Language=English +%1 +. +MessageId=2556 +Language=English +%1 +. +MessageId=2557 +Language=English +%1 +. +MessageId=2558 +Language=English +%1 +. +MessageId=2559 +Language=English +%1 +. +MessageId=2560 +Language=English +%1 +. +MessageId=2561 +Language=English +%1 +. +MessageId=2562 +Language=English +%1 +. +MessageId=2563 +Language=English +%1 +. +MessageId=2564 +Language=English +%1 +. +MessageId=2565 +Language=English +%1 +. +MessageId=2566 +Language=English +%1 +. +MessageId=2567 +Language=English +%1 +. +MessageId=2568 +Language=English +%1 +. +MessageId=2569 +Language=English +%1 +. +MessageId=2570 +Language=English +%1 +. +MessageId=2571 +Language=English +%1 +. +MessageId=2572 +Language=English +%1 +. +MessageId=2573 +Language=English +%1 +. +MessageId=2574 +Language=English +%1 +. +MessageId=2575 +Language=English +%1 +. +MessageId=2576 +Language=English +%1 +. +MessageId=2577 +Language=English +%1 +. +MessageId=2578 +Language=English +%1 +. +MessageId=2579 +Language=English +%1 +. +MessageId=2580 +Language=English +%1 +. +MessageId=2581 +Language=English +%1 +. +MessageId=2582 +Language=English +%1 +. +MessageId=2583 +Language=English +%1 +. +MessageId=2584 +Language=English +%1 +. +MessageId=2585 +Language=English +%1 +. +MessageId=2586 +Language=English +%1 +. +MessageId=2587 +Language=English +%1 +. +MessageId=2588 +Language=English +%1 +. +MessageId=2589 +Language=English +%1 +. +MessageId=2590 +Language=English +%1 +. +MessageId=2591 +Language=English +%1 +. +MessageId=2592 +Language=English +%1 +. +MessageId=2593 +Language=English +%1 +. +MessageId=2594 +Language=English +%1 +. +MessageId=2595 +Language=English +%1 +. +MessageId=2596 +Language=English +%1 +. +MessageId=2597 +Language=English +%1 +. +MessageId=2598 +Language=English +%1 +. +MessageId=2599 +Language=English +%1 +. +MessageId=2600 +Language=English +%1 +. +MessageId=2601 +Language=English +%1 +. +MessageId=2602 +Language=English +%1 +. +MessageId=2603 +Language=English +%1 +. +MessageId=2604 +Language=English +%1 +. +MessageId=2605 +Language=English +%1 +. +MessageId=2606 +Language=English +%1 +. +MessageId=2607 +Language=English +%1 +. +MessageId=2608 +Language=English +%1 +. +MessageId=2609 +Language=English +%1 +. +MessageId=2610 +Language=English +%1 +. +MessageId=2611 +Language=English +%1 +. +MessageId=2612 +Language=English +%1 +. +MessageId=2613 +Language=English +%1 +. +MessageId=2614 +Language=English +%1 +. +MessageId=2615 +Language=English +%1 +. +MessageId=2616 +Language=English +%1 +. +MessageId=2617 +Language=English +%1 +. +MessageId=2618 +Language=English +%1 +. +MessageId=2619 +Language=English +%1 +. +MessageId=2620 +Language=English +%1 +. +MessageId=2621 +Language=English +%1 +. +MessageId=2622 +Language=English +%1 +. +MessageId=2623 +Language=English +%1 +. +MessageId=2624 +Language=English +%1 +. +MessageId=2625 +Language=English +%1 +. +MessageId=2626 +Language=English +%1 +. +MessageId=2627 +Language=English +%1 +. +MessageId=2628 +Language=English +%1 +. +MessageId=2629 +Language=English +%1 +. +MessageId=2630 +Language=English +%1 +. +MessageId=2631 +Language=English +%1 +. +MessageId=2632 +Language=English +%1 +. +MessageId=2633 +Language=English +%1 +. +MessageId=2634 +Language=English +%1 +. +MessageId=2635 +Language=English +%1 +. +MessageId=2636 +Language=English +%1 +. +MessageId=2637 +Language=English +%1 +. +MessageId=2638 +Language=English +%1 +. +MessageId=2639 +Language=English +%1 +. +MessageId=2640 +Language=English +%1 +. +MessageId=2641 +Language=English +%1 +. +MessageId=2642 +Language=English +%1 +. +MessageId=2643 +Language=English +%1 +. +MessageId=2644 +Language=English +%1 +. +MessageId=2645 +Language=English +%1 +. +MessageId=2646 +Language=English +%1 +. +MessageId=2647 +Language=English +%1 +. +MessageId=2648 +Language=English +%1 +. +MessageId=2649 +Language=English +%1 +. +MessageId=2650 +Language=English +%1 +. +MessageId=2651 +Language=English +%1 +. +MessageId=2652 +Language=English +%1 +. +MessageId=2653 +Language=English +%1 +. +MessageId=2654 +Language=English +%1 +. +MessageId=2655 +Language=English +%1 +. +MessageId=2656 +Language=English +%1 +. +MessageId=2657 +Language=English +%1 +. +MessageId=2658 +Language=English +%1 +. +MessageId=2659 +Language=English +%1 +. +MessageId=2660 +Language=English +%1 +. +MessageId=2661 +Language=English +%1 +. +MessageId=2662 +Language=English +%1 +. +MessageId=2663 +Language=English +%1 +. +MessageId=2664 +Language=English +%1 +. +MessageId=2665 +Language=English +%1 +. +MessageId=2666 +Language=English +%1 +. +MessageId=2667 +Language=English +%1 +. +MessageId=2668 +Language=English +%1 +. +MessageId=2669 +Language=English +%1 +. +MessageId=2670 +Language=English +%1 +. +MessageId=2671 +Language=English +%1 +. +MessageId=2672 +Language=English +%1 +. +MessageId=2673 +Language=English +%1 +. +MessageId=2674 +Language=English +%1 +. +MessageId=2675 +Language=English +%1 +. +MessageId=2676 +Language=English +%1 +. +MessageId=2677 +Language=English +%1 +. +MessageId=2678 +Language=English +%1 +. +MessageId=2679 +Language=English +%1 +. +MessageId=2680 +Language=English +%1 +. +MessageId=2681 +Language=English +%1 +. +MessageId=2682 +Language=English +%1 +. +MessageId=2683 +Language=English +%1 +. +MessageId=2684 +Language=English +%1 +. +MessageId=2685 +Language=English +%1 +. +MessageId=2686 +Language=English +%1 +. +MessageId=2687 +Language=English +%1 +. +MessageId=2688 +Language=English +%1 +. +MessageId=2689 +Language=English +%1 +. +MessageId=2690 +Language=English +%1 +. +MessageId=2691 +Language=English +%1 +. +MessageId=2692 +Language=English +%1 +. +MessageId=2693 +Language=English +%1 +. +MessageId=2694 +Language=English +%1 +. +MessageId=2695 +Language=English +%1 +. +MessageId=2696 +Language=English +%1 +. +MessageId=2697 +Language=English +%1 +. +MessageId=2698 +Language=English +%1 +. +MessageId=2699 +Language=English +%1 +. +MessageId=2700 +Language=English +%1 +. +MessageId=2701 +Language=English +%1 +. +MessageId=2702 +Language=English +%1 +. +MessageId=2703 +Language=English +%1 +. +MessageId=2704 +Language=English +%1 +. +MessageId=2705 +Language=English +%1 +. +MessageId=2706 +Language=English +%1 +. +MessageId=2707 +Language=English +%1 +. +MessageId=2708 +Language=English +%1 +. +MessageId=2709 +Language=English +%1 +. +MessageId=2710 +Language=English +%1 +. +MessageId=2711 +Language=English +%1 +. +MessageId=2712 +Language=English +%1 +. +MessageId=2713 +Language=English +%1 +. +MessageId=2714 +Language=English +%1 +. +MessageId=2715 +Language=English +%1 +. +MessageId=2716 +Language=English +%1 +. +MessageId=2717 +Language=English +%1 +. +MessageId=2718 +Language=English +%1 +. +MessageId=2719 +Language=English +%1 +. +MessageId=2720 +Language=English +%1 +. +MessageId=2721 +Language=English +%1 +. +MessageId=2722 +Language=English +%1 +. +MessageId=2723 +Language=English +%1 +. +MessageId=2724 +Language=English +%1 +. +MessageId=2725 +Language=English +%1 +. +MessageId=2726 +Language=English +%1 +. +MessageId=2727 +Language=English +%1 +. +MessageId=2728 +Language=English +%1 +. +MessageId=2729 +Language=English +%1 +. +MessageId=2730 +Language=English +%1 +. +MessageId=2731 +Language=English +%1 +. +MessageId=2732 +Language=English +%1 +. +MessageId=2733 +Language=English +%1 +. +MessageId=2734 +Language=English +%1 +. +MessageId=2735 +Language=English +%1 +. +MessageId=2736 +Language=English +%1 +. +MessageId=2737 +Language=English +%1 +. +MessageId=2738 +Language=English +%1 +. +MessageId=2739 +Language=English +%1 +. +MessageId=2740 +Language=English +%1 +. +MessageId=2741 +Language=English +%1 +. +MessageId=2742 +Language=English +%1 +. +MessageId=2743 +Language=English +%1 +. +MessageId=2744 +Language=English +%1 +. +MessageId=2745 +Language=English +%1 +. +MessageId=2746 +Language=English +%1 +. +MessageId=2747 +Language=English +%1 +. +MessageId=2748 +Language=English +%1 +. +MessageId=2749 +Language=English +%1 +. +MessageId=2750 +Language=English +%1 +. +MessageId=2751 +Language=English +%1 +. +MessageId=2752 +Language=English +%1 +. +MessageId=2753 +Language=English +%1 +. +MessageId=2754 +Language=English +%1 +. +MessageId=2755 +Language=English +%1 +. +MessageId=2756 +Language=English +%1 +. +MessageId=2757 +Language=English +%1 +. +MessageId=2758 +Language=English +%1 +. +MessageId=2759 +Language=English +%1 +. +MessageId=2760 +Language=English +%1 +. +MessageId=2761 +Language=English +%1 +. +MessageId=2762 +Language=English +%1 +. +MessageId=2763 +Language=English +%1 +. +MessageId=2764 +Language=English +%1 +. +MessageId=2765 +Language=English +%1 +. +MessageId=2766 +Language=English +%1 +. +MessageId=2767 +Language=English +%1 +. +MessageId=2768 +Language=English +%1 +. +MessageId=2769 +Language=English +%1 +. +MessageId=2770 +Language=English +%1 +. +MessageId=2771 +Language=English +%1 +. +MessageId=2772 +Language=English +%1 +. +MessageId=2773 +Language=English +%1 +. +MessageId=2774 +Language=English +%1 +. +MessageId=2775 +Language=English +%1 +. +MessageId=2776 +Language=English +%1 +. +MessageId=2777 +Language=English +%1 +. +MessageId=2778 +Language=English +%1 +. +MessageId=2779 +Language=English +%1 +. +MessageId=2780 +Language=English +%1 +. +MessageId=2781 +Language=English +%1 +. +MessageId=2782 +Language=English +%1 +. +MessageId=2783 +Language=English +%1 +. +MessageId=2784 +Language=English +%1 +. +MessageId=2785 +Language=English +%1 +. +MessageId=2786 +Language=English +%1 +. +MessageId=2787 +Language=English +%1 +. +MessageId=2788 +Language=English +%1 +. +MessageId=2789 +Language=English +%1 +. +MessageId=2790 +Language=English +%1 +. +MessageId=2791 +Language=English +%1 +. +MessageId=2792 +Language=English +%1 +. +MessageId=2793 +Language=English +%1 +. +MessageId=2794 +Language=English +%1 +. +MessageId=2795 +Language=English +%1 +. +MessageId=2796 +Language=English +%1 +. +MessageId=2797 +Language=English +%1 +. +MessageId=2798 +Language=English +%1 +. +MessageId=2799 +Language=English +%1 +. +MessageId=2800 +Language=English +%1 +. +MessageId=2801 +Language=English +%1 +. +MessageId=2802 +Language=English +%1 +. +MessageId=2803 +Language=English +%1 +. +MessageId=2804 +Language=English +%1 +. +MessageId=2805 +Language=English +%1 +. +MessageId=2806 +Language=English +%1 +. +MessageId=2807 +Language=English +%1 +. +MessageId=2808 +Language=English +%1 +. +MessageId=2809 +Language=English +%1 +. +MessageId=2810 +Language=English +%1 +. +MessageId=2811 +Language=English +%1 +. +MessageId=2812 +Language=English +%1 +. +MessageId=2813 +Language=English +%1 +. +MessageId=2814 +Language=English +%1 +. +MessageId=2815 +Language=English +%1 +. +MessageId=2816 +Language=English +%1 +. +MessageId=2817 +Language=English +%1 +. +MessageId=2818 +Language=English +%1 +. +MessageId=2819 +Language=English +%1 +. +MessageId=2820 +Language=English +%1 +. +MessageId=2821 +Language=English +%1 +. +MessageId=2822 +Language=English +%1 +. +MessageId=2823 +Language=English +%1 +. +MessageId=2824 +Language=English +%1 +. +MessageId=2825 +Language=English +%1 +. +MessageId=2826 +Language=English +%1 +. +MessageId=2827 +Language=English +%1 +. +MessageId=2828 +Language=English +%1 +. +MessageId=2829 +Language=English +%1 +. +MessageId=2830 +Language=English +%1 +. +MessageId=2831 +Language=English +%1 +. +MessageId=2832 +Language=English +%1 +. +MessageId=2833 +Language=English +%1 +. +MessageId=2834 +Language=English +%1 +. +MessageId=2835 +Language=English +%1 +. +MessageId=2836 +Language=English +%1 +. +MessageId=2837 +Language=English +%1 +. +MessageId=2838 +Language=English +%1 +. +MessageId=2839 +Language=English +%1 +. +MessageId=2840 +Language=English +%1 +. +MessageId=2841 +Language=English +%1 +. +MessageId=2842 +Language=English +%1 +. +MessageId=2843 +Language=English +%1 +. +MessageId=2844 +Language=English +%1 +. +MessageId=2845 +Language=English +%1 +. +MessageId=2846 +Language=English +%1 +. +MessageId=2847 +Language=English +%1 +. +MessageId=2848 +Language=English +%1 +. +MessageId=2849 +Language=English +%1 +. +MessageId=2850 +Language=English +%1 +. +MessageId=2851 +Language=English +%1 +. +MessageId=2852 +Language=English +%1 +. +MessageId=2853 +Language=English +%1 +. +MessageId=2854 +Language=English +%1 +. +MessageId=2855 +Language=English +%1 +. +MessageId=2856 +Language=English +%1 +. +MessageId=2857 +Language=English +%1 +. +MessageId=2858 +Language=English +%1 +. +MessageId=2859 +Language=English +%1 +. +MessageId=2860 +Language=English +%1 +. +MessageId=2861 +Language=English +%1 +. +MessageId=2862 +Language=English +%1 +. +MessageId=2863 +Language=English +%1 +. +MessageId=2864 +Language=English +%1 +. +MessageId=2865 +Language=English +%1 +. +MessageId=2866 +Language=English +%1 +. +MessageId=2867 +Language=English +%1 +. +MessageId=2868 +Language=English +%1 +. +MessageId=2869 +Language=English +%1 +. +MessageId=2870 +Language=English +%1 +. +MessageId=2871 +Language=English +%1 +. +MessageId=2872 +Language=English +%1 +. +MessageId=2873 +Language=English +%1 +. +MessageId=2874 +Language=English +%1 +. +MessageId=2875 +Language=English +%1 +. +MessageId=2876 +Language=English +%1 +. +MessageId=2877 +Language=English +%1 +. +MessageId=2878 +Language=English +%1 +. +MessageId=2879 +Language=English +%1 +. +MessageId=2880 +Language=English +%1 +. +MessageId=2881 +Language=English +%1 +. +MessageId=2882 +Language=English +%1 +. +MessageId=2883 +Language=English +%1 +. +MessageId=2884 +Language=English +%1 +. +MessageId=2885 +Language=English +%1 +. +MessageId=2886 +Language=English +%1 +. +MessageId=2887 +Language=English +%1 +. +MessageId=2888 +Language=English +%1 +. +MessageId=2889 +Language=English +%1 +. +MessageId=2890 +Language=English +%1 +. +MessageId=2891 +Language=English +%1 +. +MessageId=2892 +Language=English +%1 +. +MessageId=2893 +Language=English +%1 +. +MessageId=2894 +Language=English +%1 +. +MessageId=2895 +Language=English +%1 +. +MessageId=2896 +Language=English +%1 +. +MessageId=2897 +Language=English +%1 +. +MessageId=2898 +Language=English +%1 +. +MessageId=2899 +Language=English +%1 +. +MessageId=2900 +Language=English +%1 +. +MessageId=2901 +Language=English +%1 +. +MessageId=2902 +Language=English +%1 +. +MessageId=2903 +Language=English +%1 +. +MessageId=2904 +Language=English +%1 +. +MessageId=2905 +Language=English +%1 +. +MessageId=2906 +Language=English +%1 +. +MessageId=2907 +Language=English +%1 +. +MessageId=2908 +Language=English +%1 +. +MessageId=2909 +Language=English +%1 +. +MessageId=2910 +Language=English +%1 +. +MessageId=2911 +Language=English +%1 +. +MessageId=2912 +Language=English +%1 +. +MessageId=2913 +Language=English +%1 +. +MessageId=2914 +Language=English +%1 +. +MessageId=2915 +Language=English +%1 +. +MessageId=2916 +Language=English +%1 +. +MessageId=2917 +Language=English +%1 +. +MessageId=2918 +Language=English +%1 +. +MessageId=2919 +Language=English +%1 +. +MessageId=2920 +Language=English +%1 +. +MessageId=2921 +Language=English +%1 +. +MessageId=2922 +Language=English +%1 +. +MessageId=2923 +Language=English +%1 +. +MessageId=2924 +Language=English +%1 +. +MessageId=2925 +Language=English +%1 +. +MessageId=2926 +Language=English +%1 +. +MessageId=2927 +Language=English +%1 +. +MessageId=2928 +Language=English +%1 +. +MessageId=2929 +Language=English +%1 +. +MessageId=2930 +Language=English +%1 +. +MessageId=2931 +Language=English +%1 +. +MessageId=2932 +Language=English +%1 +. +MessageId=2933 +Language=English +%1 +. +MessageId=2934 +Language=English +%1 +. +MessageId=2935 +Language=English +%1 +. +MessageId=2936 +Language=English +%1 +. +MessageId=2937 +Language=English +%1 +. +MessageId=2938 +Language=English +%1 +. +MessageId=2939 +Language=English +%1 +. +MessageId=2940 +Language=English +%1 +. +MessageId=2941 +Language=English +%1 +. +MessageId=2942 +Language=English +%1 +. +MessageId=2943 +Language=English +%1 +. +MessageId=2944 +Language=English +%1 +. +MessageId=2945 +Language=English +%1 +. +MessageId=2946 +Language=English +%1 +. +MessageId=2947 +Language=English +%1 +. +MessageId=2948 +Language=English +%1 +. +MessageId=2949 +Language=English +%1 +. +MessageId=2950 +Language=English +%1 +. +MessageId=2951 +Language=English +%1 +. +MessageId=2952 +Language=English +%1 +. +MessageId=2953 +Language=English +%1 +. +MessageId=2954 +Language=English +%1 +. +MessageId=2955 +Language=English +%1 +. +MessageId=2956 +Language=English +%1 +. +MessageId=2957 +Language=English +%1 +. +MessageId=2958 +Language=English +%1 +. +MessageId=2959 +Language=English +%1 +. +MessageId=2960 +Language=English +%1 +. +MessageId=2961 +Language=English +%1 +. +MessageId=2962 +Language=English +%1 +. +MessageId=2963 +Language=English +%1 +. +MessageId=2964 +Language=English +%1 +. +MessageId=2965 +Language=English +%1 +. +MessageId=2966 +Language=English +%1 +. +MessageId=2967 +Language=English +%1 +. +MessageId=2968 +Language=English +%1 +. +MessageId=2969 +Language=English +%1 +. +MessageId=2970 +Language=English +%1 +. +MessageId=2971 +Language=English +%1 +. +MessageId=2972 +Language=English +%1 +. +MessageId=2973 +Language=English +%1 +. +MessageId=2974 +Language=English +%1 +. +MessageId=2975 +Language=English +%1 +. +MessageId=2976 +Language=English +%1 +. +MessageId=2977 +Language=English +%1 +. +MessageId=2978 +Language=English +%1 +. +MessageId=2979 +Language=English +%1 +. +MessageId=2980 +Language=English +%1 +. +MessageId=2981 +Language=English +%1 +. +MessageId=2982 +Language=English +%1 +. +MessageId=2983 +Language=English +%1 +. +MessageId=2984 +Language=English +%1 +. +MessageId=2985 +Language=English +%1 +. +MessageId=2986 +Language=English +%1 +. +MessageId=2987 +Language=English +%1 +. +MessageId=2988 +Language=English +%1 +. +MessageId=2989 +Language=English +%1 +. +MessageId=2990 +Language=English +%1 +. +MessageId=2991 +Language=English +%1 +. +MessageId=2992 +Language=English +%1 +. +MessageId=2993 +Language=English +%1 +. +MessageId=2994 +Language=English +%1 +. +MessageId=2995 +Language=English +%1 +. +MessageId=2996 +Language=English +%1 +. +MessageId=2997 +Language=English +%1 +. +MessageId=2998 +Language=English +%1 +. +MessageId=2999 +Language=English +%1 +. +MessageId=3000 +Language=English +%1 +. +MessageId=3001 +Language=English +%1 +. +MessageId=3002 +Language=English +%1 +. +MessageId=3003 +Language=English +%1 +. +MessageId=3004 +Language=English +%1 +. +MessageId=3005 +Language=English +%1 +. +MessageId=3006 +Language=English +%1 +. +MessageId=3007 +Language=English +%1 +. +MessageId=3008 +Language=English +%1 +. +MessageId=3009 +Language=English +%1 +. +MessageId=3010 +Language=English +%1 +. +MessageId=3011 +Language=English +%1 +. +MessageId=3012 +Language=English +%1 +. +MessageId=3013 +Language=English +%1 +. +MessageId=3014 +Language=English +%1 +. +MessageId=3015 +Language=English +%1 +. +MessageId=3016 +Language=English +%1 +. +MessageId=3017 +Language=English +%1 +. +MessageId=3018 +Language=English +%1 +. +MessageId=3019 +Language=English +%1 +. +MessageId=3020 +Language=English +%1 +. +MessageId=3021 +Language=English +%1 +. +MessageId=3022 +Language=English +%1 +. +MessageId=3023 +Language=English +%1 +. +MessageId=3024 +Language=English +%1 +. +MessageId=3025 +Language=English +%1 +. +MessageId=3026 +Language=English +%1 +. +MessageId=3027 +Language=English +%1 +. +MessageId=3028 +Language=English +%1 +. +MessageId=3029 +Language=English +%1 +. +MessageId=3030 +Language=English +%1 +. +MessageId=3031 +Language=English +%1 +. +MessageId=3032 +Language=English +%1 +. +MessageId=3033 +Language=English +%1 +. +MessageId=3034 +Language=English +%1 +. +MessageId=3035 +Language=English +%1 +. +MessageId=3036 +Language=English +%1 +. +MessageId=3037 +Language=English +%1 +. +MessageId=3038 +Language=English +%1 +. +MessageId=3039 +Language=English +%1 +. +MessageId=3040 +Language=English +%1 +. +MessageId=3041 +Language=English +%1 +. +MessageId=3042 +Language=English +%1 +. +MessageId=3043 +Language=English +%1 +. +MessageId=3044 +Language=English +%1 +. +MessageId=3045 +Language=English +%1 +. +MessageId=3046 +Language=English +%1 +. +MessageId=3047 +Language=English +%1 +. +MessageId=3048 +Language=English +%1 +. +MessageId=3049 +Language=English +%1 +. +MessageId=3050 +Language=English +%1 +. +MessageId=3051 +Language=English +%1 +. +MessageId=3052 +Language=English +%1 +. +MessageId=3053 +Language=English +%1 +. +MessageId=3054 +Language=English +%1 +. +MessageId=3055 +Language=English +%1 +. +MessageId=3056 +Language=English +%1 +. +MessageId=3057 +Language=English +%1 +. +MessageId=3058 +Language=English +%1 +. +MessageId=3059 +Language=English +%1 +. +MessageId=3060 +Language=English +%1 +. +MessageId=3061 +Language=English +%1 +. +MessageId=3062 +Language=English +%1 +. +MessageId=3063 +Language=English +%1 +. +MessageId=3064 +Language=English +%1 +. +MessageId=3065 +Language=English +%1 +. +MessageId=3066 +Language=English +%1 +. +MessageId=3067 +Language=English +%1 +. +MessageId=3068 +Language=English +%1 +. +MessageId=3069 +Language=English +%1 +. +MessageId=3070 +Language=English +%1 +. +MessageId=3071 +Language=English +%1 +. +MessageId=3072 +Language=English +%1 +. +MessageId=3073 +Language=English +%1 +. +MessageId=3074 +Language=English +%1 +. +MessageId=3075 +Language=English +%1 +. +MessageId=3076 +Language=English +%1 +. +MessageId=3077 +Language=English +%1 +. +MessageId=3078 +Language=English +%1 +. +MessageId=3079 +Language=English +%1 +. +MessageId=3080 +Language=English +%1 +. +MessageId=3081 +Language=English +%1 +. +MessageId=3082 +Language=English +%1 +. +MessageId=3083 +Language=English +%1 +. +MessageId=3084 +Language=English +%1 +. +MessageId=3085 +Language=English +%1 +. +MessageId=3086 +Language=English +%1 +. +MessageId=3087 +Language=English +%1 +. +MessageId=3088 +Language=English +%1 +. +MessageId=3089 +Language=English +%1 +. +MessageId=3090 +Language=English +%1 +. +MessageId=3091 +Language=English +%1 +. +MessageId=3092 +Language=English +%1 +. +MessageId=3093 +Language=English +%1 +. +MessageId=3094 +Language=English +%1 +. +MessageId=3095 +Language=English +%1 +. +MessageId=3096 +Language=English +%1 +. +MessageId=3097 +Language=English +%1 +. +MessageId=3098 +Language=English +%1 +. +MessageId=3099 +Language=English +%1 +. +MessageId=3100 +Language=English +%1 +. +MessageId=3101 +Language=English +%1 +. +MessageId=3102 +Language=English +%1 +. +MessageId=3103 +Language=English +%1 +. +MessageId=3104 +Language=English +%1 +. +MessageId=3105 +Language=English +%1 +. +MessageId=3106 +Language=English +%1 +. +MessageId=3107 +Language=English +%1 +. +MessageId=3108 +Language=English +%1 +. +MessageId=3109 +Language=English +%1 +. +MessageId=3110 +Language=English +%1 +. +MessageId=3111 +Language=English +%1 +. +MessageId=3112 +Language=English +%1 +. +MessageId=3113 +Language=English +%1 +. +MessageId=3114 +Language=English +%1 +. +MessageId=3115 +Language=English +%1 +. +MessageId=3116 +Language=English +%1 +. +MessageId=3117 +Language=English +%1 +. +MessageId=3118 +Language=English +%1 +. +MessageId=3119 +Language=English +%1 +. +MessageId=3120 +Language=English +%1 +. +MessageId=3121 +Language=English +%1 +. +MessageId=3122 +Language=English +%1 +. +MessageId=3123 +Language=English +%1 +. +MessageId=3124 +Language=English +%1 +. +MessageId=3125 +Language=English +%1 +. +MessageId=3126 +Language=English +%1 +. +MessageId=3127 +Language=English +%1 +. +MessageId=3128 +Language=English +%1 +. +MessageId=3129 +Language=English +%1 +. +MessageId=3130 +Language=English +%1 +. +MessageId=3131 +Language=English +%1 +. +MessageId=3132 +Language=English +%1 +. +MessageId=3133 +Language=English +%1 +. +MessageId=3134 +Language=English +%1 +. +MessageId=3135 +Language=English +%1 +. +MessageId=3136 +Language=English +%1 +. +MessageId=3137 +Language=English +%1 +. +MessageId=3138 +Language=English +%1 +. +MessageId=3139 +Language=English +%1 +. +MessageId=3140 +Language=English +%1 +. +MessageId=3141 +Language=English +%1 +. +MessageId=3142 +Language=English +%1 +. +MessageId=3143 +Language=English +%1 +. +MessageId=3144 +Language=English +%1 +. +MessageId=3145 +Language=English +%1 +. +MessageId=3146 +Language=English +%1 +. +MessageId=3147 +Language=English +%1 +. +MessageId=3148 +Language=English +%1 +. +MessageId=3149 +Language=English +%1 +. +MessageId=3150 +Language=English +%1 +. +MessageId=3151 +Language=English +%1 +. +MessageId=3152 +Language=English +%1 +. +MessageId=3153 +Language=English +%1 +. +MessageId=3154 +Language=English +%1 +. +MessageId=3155 +Language=English +%1 +. +MessageId=3156 +Language=English +%1 +. +MessageId=3157 +Language=English +%1 +. +MessageId=3158 +Language=English +%1 +. +MessageId=3159 +Language=English +%1 +. +MessageId=3160 +Language=English +%1 +. +MessageId=3161 +Language=English +%1 +. +MessageId=3162 +Language=English +%1 +. +MessageId=3163 +Language=English +%1 +. +MessageId=3164 +Language=English +%1 +. +MessageId=3165 +Language=English +%1 +. +MessageId=3166 +Language=English +%1 +. +MessageId=3167 +Language=English +%1 +. +MessageId=3168 +Language=English +%1 +. +MessageId=3169 +Language=English +%1 +. +MessageId=3170 +Language=English +%1 +. +MessageId=3171 +Language=English +%1 +. +MessageId=3172 +Language=English +%1 +. +MessageId=3173 +Language=English +%1 +. +MessageId=3174 +Language=English +%1 +. +MessageId=3175 +Language=English +%1 +. +MessageId=3176 +Language=English +%1 +. +MessageId=3177 +Language=English +%1 +. +MessageId=3178 +Language=English +%1 +. +MessageId=3179 +Language=English +%1 +. +MessageId=3180 +Language=English +%1 +. +MessageId=3181 +Language=English +%1 +. +MessageId=3182 +Language=English +%1 +. +MessageId=3183 +Language=English +%1 +. +MessageId=3184 +Language=English +%1 +. +MessageId=3185 +Language=English +%1 +. +MessageId=3186 +Language=English +%1 +. +MessageId=3187 +Language=English +%1 +. +MessageId=3188 +Language=English +%1 +. +MessageId=3189 +Language=English +%1 +. +MessageId=3190 +Language=English +%1 +. +MessageId=3191 +Language=English +%1 +. +MessageId=3192 +Language=English +%1 +. +MessageId=3193 +Language=English +%1 +. +MessageId=3194 +Language=English +%1 +. +MessageId=3195 +Language=English +%1 +. +MessageId=3196 +Language=English +%1 +. +MessageId=3197 +Language=English +%1 +. +MessageId=3198 +Language=English +%1 +. +MessageId=3199 +Language=English +%1 +. +MessageId=3200 +Language=English +%1 +. +MessageId=3201 +Language=English +%1 +. +MessageId=3202 +Language=English +%1 +. +MessageId=3203 +Language=English +%1 +. +MessageId=3204 +Language=English +%1 +. +MessageId=3205 +Language=English +%1 +. +MessageId=3206 +Language=English +%1 +. +MessageId=3207 +Language=English +%1 +. +MessageId=3208 +Language=English +%1 +. +MessageId=3209 +Language=English +%1 +. +MessageId=3210 +Language=English +%1 +. +MessageId=3211 +Language=English +%1 +. +MessageId=3212 +Language=English +%1 +. +MessageId=3213 +Language=English +%1 +. +MessageId=3214 +Language=English +%1 +. +MessageId=3215 +Language=English +%1 +. +MessageId=3216 +Language=English +%1 +. +MessageId=3217 +Language=English +%1 +. +MessageId=3218 +Language=English +%1 +. +MessageId=3219 +Language=English +%1 +. +MessageId=3220 +Language=English +%1 +. +MessageId=3221 +Language=English +%1 +. +MessageId=3222 +Language=English +%1 +. +MessageId=3223 +Language=English +%1 +. +MessageId=3224 +Language=English +%1 +. +MessageId=3225 +Language=English +%1 +. +MessageId=3226 +Language=English +%1 +. +MessageId=3227 +Language=English +%1 +. +MessageId=3228 +Language=English +%1 +. +MessageId=3229 +Language=English +%1 +. +MessageId=3230 +Language=English +%1 +. +MessageId=3231 +Language=English +%1 +. +MessageId=3232 +Language=English +%1 +. +MessageId=3233 +Language=English +%1 +. +MessageId=3234 +Language=English +%1 +. +MessageId=3235 +Language=English +%1 +. +MessageId=3236 +Language=English +%1 +. +MessageId=3237 +Language=English +%1 +. +MessageId=3238 +Language=English +%1 +. +MessageId=3239 +Language=English +%1 +. +MessageId=3240 +Language=English +%1 +. +MessageId=3241 +Language=English +%1 +. +MessageId=3242 +Language=English +%1 +. +MessageId=3243 +Language=English +%1 +. +MessageId=3244 +Language=English +%1 +. +MessageId=3245 +Language=English +%1 +. +MessageId=3246 +Language=English +%1 +. +MessageId=3247 +Language=English +%1 +. +MessageId=3248 +Language=English +%1 +. +MessageId=3249 +Language=English +%1 +. +MessageId=3250 +Language=English +%1 +. +MessageId=3251 +Language=English +%1 +. +MessageId=3252 +Language=English +%1 +. +MessageId=3253 +Language=English +%1 +. +MessageId=3254 +Language=English +%1 +. +MessageId=3255 +Language=English +%1 +. +MessageId=3256 +Language=English +%1 +. +MessageId=3257 +Language=English +%1 +. +MessageId=3258 +Language=English +%1 +. +MessageId=3259 +Language=English +%1 +. +MessageId=3260 +Language=English +%1 +. +MessageId=3261 +Language=English +%1 +. +MessageId=3262 +Language=English +%1 +. +MessageId=3263 +Language=English +%1 +. +MessageId=3264 +Language=English +%1 +. +MessageId=3265 +Language=English +%1 +. +MessageId=3266 +Language=English +%1 +. +MessageId=3267 +Language=English +%1 +. +MessageId=3268 +Language=English +%1 +. +MessageId=3269 +Language=English +%1 +. +MessageId=3270 +Language=English +%1 +. +MessageId=3271 +Language=English +%1 +. +MessageId=3272 +Language=English +%1 +. +MessageId=3273 +Language=English +%1 +. +MessageId=3274 +Language=English +%1 +. +MessageId=3275 +Language=English +%1 +. +MessageId=3276 +Language=English +%1 +. +MessageId=3277 +Language=English +%1 +. +MessageId=3278 +Language=English +%1 +. +MessageId=3279 +Language=English +%1 +. +MessageId=3280 +Language=English +%1 +. +MessageId=3281 +Language=English +%1 +. +MessageId=3282 +Language=English +%1 +. +MessageId=3283 +Language=English +%1 +. +MessageId=3284 +Language=English +%1 +. +MessageId=3285 +Language=English +%1 +. +MessageId=3286 +Language=English +%1 +. +MessageId=3287 +Language=English +%1 +. +MessageId=3288 +Language=English +%1 +. +MessageId=3289 +Language=English +%1 +. +MessageId=3290 +Language=English +%1 +. +MessageId=3291 +Language=English +%1 +. +MessageId=3292 +Language=English +%1 +. +MessageId=3293 +Language=English +%1 +. +MessageId=3294 +Language=English +%1 +. +MessageId=3295 +Language=English +%1 +. +MessageId=3296 +Language=English +%1 +. +MessageId=3297 +Language=English +%1 +. +MessageId=3298 +Language=English +%1 +. +MessageId=3299 +Language=English +%1 +. +MessageId=3300 +Language=English +%1 +. +MessageId=3301 +Language=English +%1 +. +MessageId=3302 +Language=English +%1 +. +MessageId=3303 +Language=English +%1 +. +MessageId=3304 +Language=English +%1 +. +MessageId=3305 +Language=English +%1 +. +MessageId=3306 +Language=English +%1 +. +MessageId=3307 +Language=English +%1 +. +MessageId=3308 +Language=English +%1 +. +MessageId=3309 +Language=English +%1 +. +MessageId=3310 +Language=English +%1 +. +MessageId=3311 +Language=English +%1 +. +MessageId=3312 +Language=English +%1 +. +MessageId=3313 +Language=English +%1 +. +MessageId=3314 +Language=English +%1 +. +MessageId=3315 +Language=English +%1 +. +MessageId=3316 +Language=English +%1 +. +MessageId=3317 +Language=English +%1 +. +MessageId=3318 +Language=English +%1 +. +MessageId=3319 +Language=English +%1 +. +MessageId=3320 +Language=English +%1 +. +MessageId=3321 +Language=English +%1 +. +MessageId=3322 +Language=English +%1 +. +MessageId=3323 +Language=English +%1 +. +MessageId=3324 +Language=English +%1 +. +MessageId=3325 +Language=English +%1 +. +MessageId=3326 +Language=English +%1 +. +MessageId=3327 +Language=English +%1 +. +MessageId=3328 +Language=English +%1 +. +MessageId=3329 +Language=English +%1 +. +MessageId=3330 +Language=English +%1 +. +MessageId=3331 +Language=English +%1 +. +MessageId=3332 +Language=English +%1 +. +MessageId=3333 +Language=English +%1 +. +MessageId=3334 +Language=English +%1 +. +MessageId=3335 +Language=English +%1 +. +MessageId=3336 +Language=English +%1 +. +MessageId=3337 +Language=English +%1 +. +MessageId=3338 +Language=English +%1 +. +MessageId=3339 +Language=English +%1 +. +MessageId=3340 +Language=English +%1 +. +MessageId=3341 +Language=English +%1 +. +MessageId=3342 +Language=English +%1 +. +MessageId=3343 +Language=English +%1 +. +MessageId=3344 +Language=English +%1 +. +MessageId=3345 +Language=English +%1 +. +MessageId=3346 +Language=English +%1 +. +MessageId=3347 +Language=English +%1 +. +MessageId=3348 +Language=English +%1 +. +MessageId=3349 +Language=English +%1 +. +MessageId=3350 +Language=English +%1 +. +MessageId=3351 +Language=English +%1 +. +MessageId=3352 +Language=English +%1 +. +MessageId=3353 +Language=English +%1 +. +MessageId=3354 +Language=English +%1 +. +MessageId=3355 +Language=English +%1 +. +MessageId=3356 +Language=English +%1 +. +MessageId=3357 +Language=English +%1 +. +MessageId=3358 +Language=English +%1 +. +MessageId=3359 +Language=English +%1 +. +MessageId=3360 +Language=English +%1 +. +MessageId=3361 +Language=English +%1 +. +MessageId=3362 +Language=English +%1 +. +MessageId=3363 +Language=English +%1 +. +MessageId=3364 +Language=English +%1 +. +MessageId=3365 +Language=English +%1 +. +MessageId=3366 +Language=English +%1 +. +MessageId=3367 +Language=English +%1 +. +MessageId=3368 +Language=English +%1 +. +MessageId=3369 +Language=English +%1 +. +MessageId=3370 +Language=English +%1 +. +MessageId=3371 +Language=English +%1 +. +MessageId=3372 +Language=English +%1 +. +MessageId=3373 +Language=English +%1 +. +MessageId=3374 +Language=English +%1 +. +MessageId=3375 +Language=English +%1 +. +MessageId=3376 +Language=English +%1 +. +MessageId=3377 +Language=English +%1 +. +MessageId=3378 +Language=English +%1 +. +MessageId=3379 +Language=English +%1 +. +MessageId=3380 +Language=English +%1 +. +MessageId=3381 +Language=English +%1 +. +MessageId=3382 +Language=English +%1 +. +MessageId=3383 +Language=English +%1 +. +MessageId=3384 +Language=English +%1 +. +MessageId=3385 +Language=English +%1 +. +MessageId=3386 +Language=English +%1 +. +MessageId=3387 +Language=English +%1 +. +MessageId=3388 +Language=English +%1 +. +MessageId=3389 +Language=English +%1 +. +MessageId=3390 +Language=English +%1 +. +MessageId=3391 +Language=English +%1 +. +MessageId=3392 +Language=English +%1 +. +MessageId=3393 +Language=English +%1 +. +MessageId=3394 +Language=English +%1 +. +MessageId=3395 +Language=English +%1 +. +MessageId=3396 +Language=English +%1 +. +MessageId=3397 +Language=English +%1 +. +MessageId=3398 +Language=English +%1 +. +MessageId=3399 +Language=English +%1 +. +MessageId=3400 +Language=English +%1 +. +MessageId=3401 +Language=English +%1 +. +MessageId=3402 +Language=English +%1 +. +MessageId=3403 +Language=English +%1 +. +MessageId=3404 +Language=English +%1 +. +MessageId=3405 +Language=English +%1 +. +MessageId=3406 +Language=English +%1 +. +MessageId=3407 +Language=English +%1 +. +MessageId=3408 +Language=English +%1 +. +MessageId=3409 +Language=English +%1 +. +MessageId=3410 +Language=English +%1 +. +MessageId=3411 +Language=English +%1 +. +MessageId=3412 +Language=English +%1 +. +MessageId=3413 +Language=English +%1 +. +MessageId=3414 +Language=English +%1 +. +MessageId=3415 +Language=English +%1 +. +MessageId=3416 +Language=English +%1 +. +MessageId=3417 +Language=English +%1 +. +MessageId=3418 +Language=English +%1 +. +MessageId=3419 +Language=English +%1 +. +MessageId=3420 +Language=English +%1 +. +MessageId=3421 +Language=English +%1 +. +MessageId=3422 +Language=English +%1 +. +MessageId=3423 +Language=English +%1 +. +MessageId=3424 +Language=English +%1 +. +MessageId=3425 +Language=English +%1 +. +MessageId=3426 +Language=English +%1 +. +MessageId=3427 +Language=English +%1 +. +MessageId=3428 +Language=English +%1 +. +MessageId=3429 +Language=English +%1 +. +MessageId=3430 +Language=English +%1 +. +MessageId=3431 +Language=English +%1 +. +MessageId=3432 +Language=English +%1 +. +MessageId=3433 +Language=English +%1 +. +MessageId=3434 +Language=English +%1 +. +MessageId=3435 +Language=English +%1 +. +MessageId=3436 +Language=English +%1 +. +MessageId=3437 +Language=English +%1 +. +MessageId=3438 +Language=English +%1 +. +MessageId=3439 +Language=English +%1 +. +MessageId=3440 +Language=English +%1 +. +MessageId=3441 +Language=English +%1 +. +MessageId=3442 +Language=English +%1 +. +MessageId=3443 +Language=English +%1 +. +MessageId=3444 +Language=English +%1 +. +MessageId=3445 +Language=English +%1 +. +MessageId=3446 +Language=English +%1 +. +MessageId=3447 +Language=English +%1 +. +MessageId=3448 +Language=English +%1 +. +MessageId=3449 +Language=English +%1 +. +MessageId=3450 +Language=English +%1 +. +MessageId=3451 +Language=English +%1 +. +MessageId=3452 +Language=English +%1 +. +MessageId=3453 +Language=English +%1 +. +MessageId=3454 +Language=English +%1 +. +MessageId=3455 +Language=English +%1 +. +MessageId=3456 +Language=English +%1 +. +MessageId=3457 +Language=English +%1 +. +MessageId=3458 +Language=English +%1 +. +MessageId=3459 +Language=English +%1 +. +MessageId=3460 +Language=English +%1 +. +MessageId=3461 +Language=English +%1 +. +MessageId=3462 +Language=English +%1 +. +MessageId=3463 +Language=English +%1 +. +MessageId=3464 +Language=English +%1 +. +MessageId=3465 +Language=English +%1 +. +MessageId=3466 +Language=English +%1 +. +MessageId=3467 +Language=English +%1 +. +MessageId=3468 +Language=English +%1 +. +MessageId=3469 +Language=English +%1 +. +MessageId=3470 +Language=English +%1 +. +MessageId=3471 +Language=English +%1 +. +MessageId=3472 +Language=English +%1 +. +MessageId=3473 +Language=English +%1 +. +MessageId=3474 +Language=English +%1 +. +MessageId=3475 +Language=English +%1 +. +MessageId=3476 +Language=English +%1 +. +MessageId=3477 +Language=English +%1 +. +MessageId=3478 +Language=English +%1 +. +MessageId=3479 +Language=English +%1 +. +MessageId=3480 +Language=English +%1 +. +MessageId=3481 +Language=English +%1 +. +MessageId=3482 +Language=English +%1 +. +MessageId=3483 +Language=English +%1 +. +MessageId=3484 +Language=English +%1 +. +MessageId=3485 +Language=English +%1 +. +MessageId=3486 +Language=English +%1 +. +MessageId=3487 +Language=English +%1 +. +MessageId=3488 +Language=English +%1 +. +MessageId=3489 +Language=English +%1 +. +MessageId=3490 +Language=English +%1 +. +MessageId=3491 +Language=English +%1 +. +MessageId=3492 +Language=English +%1 +. +MessageId=3493 +Language=English +%1 +. +MessageId=3494 +Language=English +%1 +. +MessageId=3495 +Language=English +%1 +. +MessageId=3496 +Language=English +%1 +. +MessageId=3497 +Language=English +%1 +. +MessageId=3498 +Language=English +%1 +. +MessageId=3499 +Language=English +%1 +. +MessageId=3500 +Language=English +%1 +. +MessageId=3501 +Language=English +%1 +. +MessageId=3502 +Language=English +%1 +. +MessageId=3503 +Language=English +%1 +. +MessageId=3504 +Language=English +%1 +. +MessageId=3505 +Language=English +%1 +. +MessageId=3506 +Language=English +%1 +. +MessageId=3507 +Language=English +%1 +. +MessageId=3508 +Language=English +%1 +. +MessageId=3509 +Language=English +%1 +. +MessageId=3510 +Language=English +%1 +. +MessageId=3511 +Language=English +%1 +. +MessageId=3512 +Language=English +%1 +. +MessageId=3513 +Language=English +%1 +. +MessageId=3514 +Language=English +%1 +. +MessageId=3515 +Language=English +%1 +. +MessageId=3516 +Language=English +%1 +. +MessageId=3517 +Language=English +%1 +. +MessageId=3518 +Language=English +%1 +. +MessageId=3519 +Language=English +%1 +. +MessageId=3520 +Language=English +%1 +. +MessageId=3521 +Language=English +%1 +. +MessageId=3522 +Language=English +%1 +. +MessageId=3523 +Language=English +%1 +. +MessageId=3524 +Language=English +%1 +. +MessageId=3525 +Language=English +%1 +. +MessageId=3526 +Language=English +%1 +. +MessageId=3527 +Language=English +%1 +. +MessageId=3528 +Language=English +%1 +. +MessageId=3529 +Language=English +%1 +. +MessageId=3530 +Language=English +%1 +. +MessageId=3531 +Language=English +%1 +. +MessageId=3532 +Language=English +%1 +. +MessageId=3533 +Language=English +%1 +. +MessageId=3534 +Language=English +%1 +. +MessageId=3535 +Language=English +%1 +. +MessageId=3536 +Language=English +%1 +. +MessageId=3537 +Language=English +%1 +. +MessageId=3538 +Language=English +%1 +. +MessageId=3539 +Language=English +%1 +. +MessageId=3540 +Language=English +%1 +. +MessageId=3541 +Language=English +%1 +. +MessageId=3542 +Language=English +%1 +. +MessageId=3543 +Language=English +%1 +. +MessageId=3544 +Language=English +%1 +. +MessageId=3545 +Language=English +%1 +. +MessageId=3546 +Language=English +%1 +. +MessageId=3547 +Language=English +%1 +. +MessageId=3548 +Language=English +%1 +. +MessageId=3549 +Language=English +%1 +. +MessageId=3550 +Language=English +%1 +. +MessageId=3551 +Language=English +%1 +. +MessageId=3552 +Language=English +%1 +. +MessageId=3553 +Language=English +%1 +. +MessageId=3554 +Language=English +%1 +. +MessageId=3555 +Language=English +%1 +. +MessageId=3556 +Language=English +%1 +. +MessageId=3557 +Language=English +%1 +. +MessageId=3558 +Language=English +%1 +. +MessageId=3559 +Language=English +%1 +. +MessageId=3560 +Language=English +%1 +. +MessageId=3561 +Language=English +%1 +. +MessageId=3562 +Language=English +%1 +. +MessageId=3563 +Language=English +%1 +. +MessageId=3564 +Language=English +%1 +. +MessageId=3565 +Language=English +%1 +. +MessageId=3566 +Language=English +%1 +. +MessageId=3567 +Language=English +%1 +. +MessageId=3568 +Language=English +%1 +. +MessageId=3569 +Language=English +%1 +. +MessageId=3570 +Language=English +%1 +. +MessageId=3571 +Language=English +%1 +. +MessageId=3572 +Language=English +%1 +. +MessageId=3573 +Language=English +%1 +. +MessageId=3574 +Language=English +%1 +. +MessageId=3575 +Language=English +%1 +. +MessageId=3576 +Language=English +%1 +. +MessageId=3577 +Language=English +%1 +. +MessageId=3578 +Language=English +%1 +. +MessageId=3579 +Language=English +%1 +. +MessageId=3580 +Language=English +%1 +. +MessageId=3581 +Language=English +%1 +. +MessageId=3582 +Language=English +%1 +. +MessageId=3583 +Language=English +%1 +. +MessageId=3584 +Language=English +%1 +. +MessageId=3585 +Language=English +%1 +. +MessageId=3586 +Language=English +%1 +. +MessageId=3587 +Language=English +%1 +. +MessageId=3588 +Language=English +%1 +. +MessageId=3589 +Language=English +%1 +. +MessageId=3590 +Language=English +%1 +. +MessageId=3591 +Language=English +%1 +. +MessageId=3592 +Language=English +%1 +. +MessageId=3593 +Language=English +%1 +. +MessageId=3594 +Language=English +%1 +. +MessageId=3595 +Language=English +%1 +. +MessageId=3596 +Language=English +%1 +. +MessageId=3597 +Language=English +%1 +. +MessageId=3598 +Language=English +%1 +. +MessageId=3599 +Language=English +%1 +. +MessageId=3600 +Language=English +%1 +. +MessageId=3601 +Language=English +%1 +. +MessageId=3602 +Language=English +%1 +. +MessageId=3603 +Language=English +%1 +. +MessageId=3604 +Language=English +%1 +. +MessageId=3605 +Language=English +%1 +. +MessageId=3606 +Language=English +%1 +. +MessageId=3607 +Language=English +%1 +. +MessageId=3608 +Language=English +%1 +. +MessageId=3609 +Language=English +%1 +. +MessageId=3610 +Language=English +%1 +. +MessageId=3611 +Language=English +%1 +. +MessageId=3612 +Language=English +%1 +. +MessageId=3613 +Language=English +%1 +. +MessageId=3614 +Language=English +%1 +. +MessageId=3615 +Language=English +%1 +. +MessageId=3616 +Language=English +%1 +. +MessageId=3617 +Language=English +%1 +. +MessageId=3618 +Language=English +%1 +. +MessageId=3619 +Language=English +%1 +. +MessageId=3620 +Language=English +%1 +. +MessageId=3621 +Language=English +%1 +. +MessageId=3622 +Language=English +%1 +. +MessageId=3623 +Language=English +%1 +. +MessageId=3624 +Language=English +%1 +. +MessageId=3625 +Language=English +%1 +. +MessageId=3626 +Language=English +%1 +. +MessageId=3627 +Language=English +%1 +. +MessageId=3628 +Language=English +%1 +. +MessageId=3629 +Language=English +%1 +. +MessageId=3630 +Language=English +%1 +. +MessageId=3631 +Language=English +%1 +. +MessageId=3632 +Language=English +%1 +. +MessageId=3633 +Language=English +%1 +. +MessageId=3634 +Language=English +%1 +. +MessageId=3635 +Language=English +%1 +. +MessageId=3636 +Language=English +%1 +. +MessageId=3637 +Language=English +%1 +. +MessageId=3638 +Language=English +%1 +. +MessageId=3639 +Language=English +%1 +. +MessageId=3640 +Language=English +%1 +. +MessageId=3641 +Language=English +%1 +. +MessageId=3642 +Language=English +%1 +. +MessageId=3643 +Language=English +%1 +. +MessageId=3644 +Language=English +%1 +. +MessageId=3645 +Language=English +%1 +. +MessageId=3646 +Language=English +%1 +. +MessageId=3647 +Language=English +%1 +. +MessageId=3648 +Language=English +%1 +. +MessageId=3649 +Language=English +%1 +. +MessageId=3650 +Language=English +%1 +. +MessageId=3651 +Language=English +%1 +. +MessageId=3652 +Language=English +%1 +. +MessageId=3653 +Language=English +%1 +. +MessageId=3654 +Language=English +%1 +. +MessageId=3655 +Language=English +%1 +. +MessageId=3656 +Language=English +%1 +. +MessageId=3657 +Language=English +%1 +. +MessageId=3658 +Language=English +%1 +. +MessageId=3659 +Language=English +%1 +. +MessageId=3660 +Language=English +%1 +. +MessageId=3661 +Language=English +%1 +. +MessageId=3662 +Language=English +%1 +. +MessageId=3663 +Language=English +%1 +. +MessageId=3664 +Language=English +%1 +. +MessageId=3665 +Language=English +%1 +. +MessageId=3666 +Language=English +%1 +. +MessageId=3667 +Language=English +%1 +. +MessageId=3668 +Language=English +%1 +. +MessageId=3669 +Language=English +%1 +. +MessageId=3670 +Language=English +%1 +. +MessageId=3671 +Language=English +%1 +. +MessageId=3672 +Language=English +%1 +. +MessageId=3673 +Language=English +%1 +. +MessageId=3674 +Language=English +%1 +. +MessageId=3675 +Language=English +%1 +. +MessageId=3676 +Language=English +%1 +. +MessageId=3677 +Language=English +%1 +. +MessageId=3678 +Language=English +%1 +. +MessageId=3679 +Language=English +%1 +. +MessageId=3680 +Language=English +%1 +. +MessageId=3681 +Language=English +%1 +. +MessageId=3682 +Language=English +%1 +. +MessageId=3683 +Language=English +%1 +. +MessageId=3684 +Language=English +%1 +. +MessageId=3685 +Language=English +%1 +. +MessageId=3686 +Language=English +%1 +. +MessageId=3687 +Language=English +%1 +. +MessageId=3688 +Language=English +%1 +. +MessageId=3689 +Language=English +%1 +. +MessageId=3690 +Language=English +%1 +. +MessageId=3691 +Language=English +%1 +. +MessageId=3692 +Language=English +%1 +. +MessageId=3693 +Language=English +%1 +. +MessageId=3694 +Language=English +%1 +. +MessageId=3695 +Language=English +%1 +. +MessageId=3696 +Language=English +%1 +. +MessageId=3697 +Language=English +%1 +. +MessageId=3698 +Language=English +%1 +. +MessageId=3699 +Language=English +%1 +. +MessageId=3700 +Language=English +%1 +. +MessageId=3701 +Language=English +%1 +. +MessageId=3702 +Language=English +%1 +. +MessageId=3703 +Language=English +%1 +. +MessageId=3704 +Language=English +%1 +. +MessageId=3705 +Language=English +%1 +. +MessageId=3706 +Language=English +%1 +. +MessageId=3707 +Language=English +%1 +. +MessageId=3708 +Language=English +%1 +. +MessageId=3709 +Language=English +%1 +. +MessageId=3710 +Language=English +%1 +. +MessageId=3711 +Language=English +%1 +. +MessageId=3712 +Language=English +%1 +. +MessageId=3713 +Language=English +%1 +. +MessageId=3714 +Language=English +%1 +. +MessageId=3715 +Language=English +%1 +. +MessageId=3716 +Language=English +%1 +. +MessageId=3717 +Language=English +%1 +. +MessageId=3718 +Language=English +%1 +. +MessageId=3719 +Language=English +%1 +. +MessageId=3720 +Language=English +%1 +. +MessageId=3721 +Language=English +%1 +. +MessageId=3722 +Language=English +%1 +. +MessageId=3723 +Language=English +%1 +. +MessageId=3724 +Language=English +%1 +. +MessageId=3725 +Language=English +%1 +. +MessageId=3726 +Language=English +%1 +. +MessageId=3727 +Language=English +%1 +. +MessageId=3728 +Language=English +%1 +. +MessageId=3729 +Language=English +%1 +. +MessageId=3730 +Language=English +%1 +. +MessageId=3731 +Language=English +%1 +. +MessageId=3732 +Language=English +%1 +. +MessageId=3733 +Language=English +%1 +. +MessageId=3734 +Language=English +%1 +. +MessageId=3735 +Language=English +%1 +. +MessageId=3736 +Language=English +%1 +. +MessageId=3737 +Language=English +%1 +. +MessageId=3738 +Language=English +%1 +. +MessageId=3739 +Language=English +%1 +. +MessageId=3740 +Language=English +%1 +. +MessageId=3741 +Language=English +%1 +. +MessageId=3742 +Language=English +%1 +. +MessageId=3743 +Language=English +%1 +. +MessageId=3744 +Language=English +%1 +. +MessageId=3745 +Language=English +%1 +. +MessageId=3746 +Language=English +%1 +. +MessageId=3747 +Language=English +%1 +. +MessageId=3748 +Language=English +%1 +. +MessageId=3749 +Language=English +%1 +. +MessageId=3750 +Language=English +%1 +. +MessageId=3751 +Language=English +%1 +. +MessageId=3752 +Language=English +%1 +. +MessageId=3753 +Language=English +%1 +. +MessageId=3754 +Language=English +%1 +. +MessageId=3755 +Language=English +%1 +. +MessageId=3756 +Language=English +%1 +. +MessageId=3757 +Language=English +%1 +. +MessageId=3758 +Language=English +%1 +. +MessageId=3759 +Language=English +%1 +. +MessageId=3760 +Language=English +%1 +. +MessageId=3761 +Language=English +%1 +. +MessageId=3762 +Language=English +%1 +. +MessageId=3763 +Language=English +%1 +. +MessageId=3764 +Language=English +%1 +. +MessageId=3765 +Language=English +%1 +. +MessageId=3766 +Language=English +%1 +. +MessageId=3767 +Language=English +%1 +. +MessageId=3768 +Language=English +%1 +. +MessageId=3769 +Language=English +%1 +. +MessageId=3770 +Language=English +%1 +. +MessageId=3771 +Language=English +%1 +. +MessageId=3772 +Language=English +%1 +. +MessageId=3773 +Language=English +%1 +. +MessageId=3774 +Language=English +%1 +. +MessageId=3775 +Language=English +%1 +. +MessageId=3776 +Language=English +%1 +. +MessageId=3777 +Language=English +%1 +. +MessageId=3778 +Language=English +%1 +. +MessageId=3779 +Language=English +%1 +. +MessageId=3780 +Language=English +%1 +. +MessageId=3781 +Language=English +%1 +. +MessageId=3782 +Language=English +%1 +. +MessageId=3783 +Language=English +%1 +. +MessageId=3784 +Language=English +%1 +. +MessageId=3785 +Language=English +%1 +. +MessageId=3786 +Language=English +%1 +. +MessageId=3787 +Language=English +%1 +. +MessageId=3788 +Language=English +%1 +. +MessageId=3789 +Language=English +%1 +. +MessageId=3790 +Language=English +%1 +. +MessageId=3791 +Language=English +%1 +. +MessageId=3792 +Language=English +%1 +. +MessageId=3793 +Language=English +%1 +. +MessageId=3794 +Language=English +%1 +. +MessageId=3795 +Language=English +%1 +. +MessageId=3796 +Language=English +%1 +. +MessageId=3797 +Language=English +%1 +. +MessageId=3798 +Language=English +%1 +. +MessageId=3799 +Language=English +%1 +. +MessageId=3800 +Language=English +%1 +. +MessageId=3801 +Language=English +%1 +. +MessageId=3802 +Language=English +%1 +. +MessageId=3803 +Language=English +%1 +. +MessageId=3804 +Language=English +%1 +. +MessageId=3805 +Language=English +%1 +. +MessageId=3806 +Language=English +%1 +. +MessageId=3807 +Language=English +%1 +. +MessageId=3808 +Language=English +%1 +. +MessageId=3809 +Language=English +%1 +. +MessageId=3810 +Language=English +%1 +. +MessageId=3811 +Language=English +%1 +. +MessageId=3812 +Language=English +%1 +. +MessageId=3813 +Language=English +%1 +. +MessageId=3814 +Language=English +%1 +. +MessageId=3815 +Language=English +%1 +. +MessageId=3816 +Language=English +%1 +. +MessageId=3817 +Language=English +%1 +. +MessageId=3818 +Language=English +%1 +. +MessageId=3819 +Language=English +%1 +. +MessageId=3820 +Language=English +%1 +. +MessageId=3821 +Language=English +%1 +. +MessageId=3822 +Language=English +%1 +. +MessageId=3823 +Language=English +%1 +. +MessageId=3824 +Language=English +%1 +. +MessageId=3825 +Language=English +%1 +. +MessageId=3826 +Language=English +%1 +. +MessageId=3827 +Language=English +%1 +. +MessageId=3828 +Language=English +%1 +. +MessageId=3829 +Language=English +%1 +. +MessageId=3830 +Language=English +%1 +. +MessageId=3831 +Language=English +%1 +. +MessageId=3832 +Language=English +%1 +. +MessageId=3833 +Language=English +%1 +. +MessageId=3834 +Language=English +%1 +. +MessageId=3835 +Language=English +%1 +. +MessageId=3836 +Language=English +%1 +. +MessageId=3837 +Language=English +%1 +. +MessageId=3838 +Language=English +%1 +. +MessageId=3839 +Language=English +%1 +. +MessageId=3840 +Language=English +%1 +. +MessageId=3841 +Language=English +%1 +. +MessageId=3842 +Language=English +%1 +. +MessageId=3843 +Language=English +%1 +. +MessageId=3844 +Language=English +%1 +. +MessageId=3845 +Language=English +%1 +. +MessageId=3846 +Language=English +%1 +. +MessageId=3847 +Language=English +%1 +. +MessageId=3848 +Language=English +%1 +. +MessageId=3849 +Language=English +%1 +. +MessageId=3850 +Language=English +%1 +. +MessageId=3851 +Language=English +%1 +. +MessageId=3852 +Language=English +%1 +. +MessageId=3853 +Language=English +%1 +. +MessageId=3854 +Language=English +%1 +. +MessageId=3855 +Language=English +%1 +. +MessageId=3856 +Language=English +%1 +. +MessageId=3857 +Language=English +%1 +. +MessageId=3858 +Language=English +%1 +. +MessageId=3859 +Language=English +%1 +. +MessageId=3860 +Language=English +%1 +. +MessageId=3861 +Language=English +%1 +. +MessageId=3862 +Language=English +%1 +. +MessageId=3863 +Language=English +%1 +. +MessageId=3864 +Language=English +%1 +. +MessageId=3865 +Language=English +%1 +. +MessageId=3866 +Language=English +%1 +. +MessageId=3867 +Language=English +%1 +. +MessageId=3868 +Language=English +%1 +. +MessageId=3869 +Language=English +%1 +. +MessageId=3870 +Language=English +%1 +. +MessageId=3871 +Language=English +%1 +. +MessageId=3872 +Language=English +%1 +. +MessageId=3873 +Language=English +%1 +. +MessageId=3874 +Language=English +%1 +. +MessageId=3875 +Language=English +%1 +. +MessageId=3876 +Language=English +%1 +. +MessageId=3877 +Language=English +%1 +. +MessageId=3878 +Language=English +%1 +. +MessageId=3879 +Language=English +%1 +. +MessageId=3880 +Language=English +%1 +. +MessageId=3881 +Language=English +%1 +. +MessageId=3882 +Language=English +%1 +. +MessageId=3883 +Language=English +%1 +. +MessageId=3884 +Language=English +%1 +. +MessageId=3885 +Language=English +%1 +. +MessageId=3886 +Language=English +%1 +. +MessageId=3887 +Language=English +%1 +. +MessageId=3888 +Language=English +%1 +. +MessageId=3889 +Language=English +%1 +. +MessageId=3890 +Language=English +%1 +. +MessageId=3891 +Language=English +%1 +. +MessageId=3892 +Language=English +%1 +. +MessageId=3893 +Language=English +%1 +. +MessageId=3894 +Language=English +%1 +. +MessageId=3895 +Language=English +%1 +. +MessageId=3896 +Language=English +%1 +. +MessageId=3897 +Language=English +%1 +. +MessageId=3898 +Language=English +%1 +. +MessageId=3899 +Language=English +%1 +. +MessageId=3900 +Language=English +%1 +. +MessageId=3901 +Language=English +%1 +. +MessageId=3902 +Language=English +%1 +. +MessageId=3903 +Language=English +%1 +. +MessageId=3904 +Language=English +%1 +. +MessageId=3905 +Language=English +%1 +. +MessageId=3906 +Language=English +%1 +. +MessageId=3907 +Language=English +%1 +. +MessageId=3908 +Language=English +%1 +. +MessageId=3909 +Language=English +%1 +. +MessageId=3910 +Language=English +%1 +. +MessageId=3911 +Language=English +%1 +. +MessageId=3912 +Language=English +%1 +. +MessageId=3913 +Language=English +%1 +. +MessageId=3914 +Language=English +%1 +. +MessageId=3915 +Language=English +%1 +. +MessageId=3916 +Language=English +%1 +. +MessageId=3917 +Language=English +%1 +. +MessageId=3918 +Language=English +%1 +. +MessageId=3919 +Language=English +%1 +. +MessageId=3920 +Language=English +%1 +. +MessageId=3921 +Language=English +%1 +. +MessageId=3922 +Language=English +%1 +. +MessageId=3923 +Language=English +%1 +. +MessageId=3924 +Language=English +%1 +. +MessageId=3925 +Language=English +%1 +. +MessageId=3926 +Language=English +%1 +. +MessageId=3927 +Language=English +%1 +. +MessageId=3928 +Language=English +%1 +. +MessageId=3929 +Language=English +%1 +. +MessageId=3930 +Language=English +%1 +. +MessageId=3931 +Language=English +%1 +. +MessageId=3932 +Language=English +%1 +. +MessageId=3933 +Language=English +%1 +. +MessageId=3934 +Language=English +%1 +. +MessageId=3935 +Language=English +%1 +. +MessageId=3936 +Language=English +%1 +. +MessageId=3937 +Language=English +%1 +. +MessageId=3938 +Language=English +%1 +. +MessageId=3939 +Language=English +%1 +. +MessageId=3940 +Language=English +%1 +. +MessageId=3941 +Language=English +%1 +. +MessageId=3942 +Language=English +%1 +. +MessageId=3943 +Language=English +%1 +. +MessageId=3944 +Language=English +%1 +. +MessageId=3945 +Language=English +%1 +. +MessageId=3946 +Language=English +%1 +. +MessageId=3947 +Language=English +%1 +. +MessageId=3948 +Language=English +%1 +. +MessageId=3949 +Language=English +%1 +. +MessageId=3950 +Language=English +%1 +. +MessageId=3951 +Language=English +%1 +. +MessageId=3952 +Language=English +%1 +. +MessageId=3953 +Language=English +%1 +. +MessageId=3954 +Language=English +%1 +. +MessageId=3955 +Language=English +%1 +. +MessageId=3956 +Language=English +%1 +. +MessageId=3957 +Language=English +%1 +. +MessageId=3958 +Language=English +%1 +. +MessageId=3959 +Language=English +%1 +. +MessageId=3960 +Language=English +%1 +. +MessageId=3961 +Language=English +%1 +. +MessageId=3962 +Language=English +%1 +. +MessageId=3963 +Language=English +%1 +. +MessageId=3964 +Language=English +%1 +. +MessageId=3965 +Language=English +%1 +. +MessageId=3966 +Language=English +%1 +. +MessageId=3967 +Language=English +%1 +. +MessageId=3968 +Language=English +%1 +. +MessageId=3969 +Language=English +%1 +. +MessageId=3970 +Language=English +%1 +. +MessageId=3971 +Language=English +%1 +. +MessageId=3972 +Language=English +%1 +. +MessageId=3973 +Language=English +%1 +. +MessageId=3974 +Language=English +%1 +. +MessageId=3975 +Language=English +%1 +. +MessageId=3976 +Language=English +%1 +. +MessageId=3977 +Language=English +%1 +. +MessageId=3978 +Language=English +%1 +. +MessageId=3979 +Language=English +%1 +. +MessageId=3980 +Language=English +%1 +. +MessageId=3981 +Language=English +%1 +. +MessageId=3982 +Language=English +%1 +. +MessageId=3983 +Language=English +%1 +. +MessageId=3984 +Language=English +%1 +. +MessageId=3985 +Language=English +%1 +. +MessageId=3986 +Language=English +%1 +. +MessageId=3987 +Language=English +%1 +. +MessageId=3988 +Language=English +%1 +. +MessageId=3989 +Language=English +%1 +. +MessageId=3990 +Language=English +%1 +. +MessageId=3991 +Language=English +%1 +. +MessageId=3992 +Language=English +%1 +. +MessageId=3993 +Language=English +%1 +. +MessageId=3994 +Language=English +%1 +. +MessageId=3995 +Language=English +%1 +. +MessageId=3996 +Language=English +%1 +. +MessageId=3997 +Language=English +%1 +. +MessageId=3998 +Language=English +%1 +. +MessageId=3999 +Language=English +%1 +. +MessageId=4000 +Language=English +%1 +. +MessageId=4001 +Language=English +%1 +. +MessageId=4002 +Language=English +%1 +. +MessageId=4003 +Language=English +%1 +. +MessageId=4004 +Language=English +%1 +. +MessageId=4005 +Language=English +%1 +. +MessageId=4006 +Language=English +%1 +. +MessageId=4007 +Language=English +%1 +. +MessageId=4008 +Language=English +%1 +. +MessageId=4009 +Language=English +%1 +. +MessageId=4010 +Language=English +%1 +. +MessageId=4011 +Language=English +%1 +. +MessageId=4012 +Language=English +%1 +. +MessageId=4013 +Language=English +%1 +. +MessageId=4014 +Language=English +%1 +. +MessageId=4015 +Language=English +%1 +. +MessageId=4016 +Language=English +%1 +. +MessageId=4017 +Language=English +%1 +. +MessageId=4018 +Language=English +%1 +. +MessageId=4019 +Language=English +%1 +. +MessageId=4020 +Language=English +%1 +. +MessageId=4021 +Language=English +%1 +. +MessageId=4022 +Language=English +%1 +. +MessageId=4023 +Language=English +%1 +. +MessageId=4024 +Language=English +%1 +. +MessageId=4025 +Language=English +%1 +. +MessageId=4026 +Language=English +%1 +. +MessageId=4027 +Language=English +%1 +. +MessageId=4028 +Language=English +%1 +. +MessageId=4029 +Language=English +%1 +. +MessageId=4030 +Language=English +%1 +. +MessageId=4031 +Language=English +%1 +. +MessageId=4032 +Language=English +%1 +. +MessageId=4033 +Language=English +%1 +. +MessageId=4034 +Language=English +%1 +. +MessageId=4035 +Language=English +%1 +. +MessageId=4036 +Language=English +%1 +. +MessageId=4037 +Language=English +%1 +. +MessageId=4038 +Language=English +%1 +. +MessageId=4039 +Language=English +%1 +. +MessageId=4040 +Language=English +%1 +. +MessageId=4041 +Language=English +%1 +. +MessageId=4042 +Language=English +%1 +. +MessageId=4043 +Language=English +%1 +. +MessageId=4044 +Language=English +%1 +. +MessageId=4045 +Language=English +%1 +. +MessageId=4046 +Language=English +%1 +. +MessageId=4047 +Language=English +%1 +. +MessageId=4048 +Language=English +%1 +. +MessageId=4049 +Language=English +%1 +. +MessageId=4050 +Language=English +%1 +. +MessageId=4051 +Language=English +%1 +. +MessageId=4052 +Language=English +%1 +. +MessageId=4053 +Language=English +%1 +. +MessageId=4054 +Language=English +%1 +. +MessageId=4055 +Language=English +%1 +. +MessageId=4056 +Language=English +%1 +. +MessageId=4057 +Language=English +%1 +. +MessageId=4058 +Language=English +%1 +. +MessageId=4059 +Language=English +%1 +. +MessageId=4060 +Language=English +%1 +. +MessageId=4061 +Language=English +%1 +. +MessageId=4062 +Language=English +%1 +. +MessageId=4063 +Language=English +%1 +. +MessageId=4064 +Language=English +%1 +. +MessageId=4065 +Language=English +%1 +. +MessageId=4066 +Language=English +%1 +. +MessageId=4067 +Language=English +%1 +. +MessageId=4068 +Language=English +%1 +. +MessageId=4069 +Language=English +%1 +. +MessageId=4070 +Language=English +%1 +. +MessageId=4071 +Language=English +%1 +. +MessageId=4072 +Language=English +%1 +. +MessageId=4073 +Language=English +%1 +. +MessageId=4074 +Language=English +%1 +. +MessageId=4075 +Language=English +%1 +. +MessageId=4076 +Language=English +%1 +. +MessageId=4077 +Language=English +%1 +. +MessageId=4078 +Language=English +%1 +. +MessageId=4079 +Language=English +%1 +. +MessageId=4080 +Language=English +%1 +. +MessageId=4081 +Language=English +%1 +. +MessageId=4082 +Language=English +%1 +. +MessageId=4083 +Language=English +%1 +. +MessageId=4084 +Language=English +%1 +. +MessageId=4085 +Language=English +%1 +. +MessageId=4086 +Language=English +%1 +. +MessageId=4087 +Language=English +%1 +. +MessageId=4088 +Language=English +%1 +. +MessageId=4089 +Language=English +%1 +. +MessageId=4090 +Language=English +%1 +. +MessageId=4091 +Language=English +%1 +. +MessageId=4092 +Language=English +%1 +. +MessageId=4093 +Language=English +%1 +. +MessageId=4094 +Language=English +%1 +. +MessageId=4095 +Language=English +%1 +. +MessageId=4096 +Language=English +%1 +. +MessageId=4097 +Language=English +%1 +. +MessageId=4098 +Language=English +%1 +. +MessageId=4099 +Language=English +%1 +. +MessageId=4100 +Language=English +%1 +. +MessageId=4101 +Language=English +%1 +. +MessageId=4102 +Language=English +%1 +. +MessageId=4103 +Language=English +%1 +. +MessageId=4104 +Language=English +%1 +. +MessageId=4105 +Language=English +%1 +. +MessageId=4106 +Language=English +%1 +. +MessageId=4107 +Language=English +%1 +. +MessageId=4108 +Language=English +%1 +. +MessageId=4109 +Language=English +%1 +. +MessageId=4110 +Language=English +%1 +. +MessageId=4111 +Language=English +%1 +. +MessageId=4112 +Language=English +%1 +. +MessageId=4113 +Language=English +%1 +. +MessageId=4114 +Language=English +%1 +. +MessageId=4115 +Language=English +%1 +. +MessageId=4116 +Language=English +%1 +. +MessageId=4117 +Language=English +%1 +. +MessageId=4118 +Language=English +%1 +. +MessageId=4119 +Language=English +%1 +. +MessageId=4120 +Language=English +%1 +. +MessageId=4121 +Language=English +%1 +. +MessageId=4122 +Language=English +%1 +. +MessageId=4123 +Language=English +%1 +. +MessageId=4124 +Language=English +%1 +. +MessageId=4125 +Language=English +%1 +. +MessageId=4126 +Language=English +%1 +. +MessageId=4127 +Language=English +%1 +. +MessageId=4128 +Language=English +%1 +. +MessageId=4129 +Language=English +%1 +. +MessageId=4130 +Language=English +%1 +. +MessageId=4131 +Language=English +%1 +. +MessageId=4132 +Language=English +%1 +. +MessageId=4133 +Language=English +%1 +. +MessageId=4134 +Language=English +%1 +. +MessageId=4135 +Language=English +%1 +. +MessageId=4136 +Language=English +%1 +. +MessageId=4137 +Language=English +%1 +. +MessageId=4138 +Language=English +%1 +. +MessageId=4139 +Language=English +%1 +. +MessageId=4140 +Language=English +%1 +. +MessageId=4141 +Language=English +%1 +. +MessageId=4142 +Language=English +%1 +. +MessageId=4143 +Language=English +%1 +. +MessageId=4144 +Language=English +%1 +. +MessageId=4145 +Language=English +%1 +. +MessageId=4146 +Language=English +%1 +. +MessageId=4147 +Language=English +%1 +. +MessageId=4148 +Language=English +%1 +. +MessageId=4149 +Language=English +%1 +. +MessageId=4150 +Language=English +%1 +. +MessageId=4151 +Language=English +%1 +. +MessageId=4152 +Language=English +%1 +. +MessageId=4153 +Language=English +%1 +. +MessageId=4154 +Language=English +%1 +. +MessageId=4155 +Language=English +%1 +. +MessageId=4156 +Language=English +%1 +. +MessageId=4157 +Language=English +%1 +. +MessageId=4158 +Language=English +%1 +. +MessageId=4159 +Language=English +%1 +. +MessageId=4160 +Language=English +%1 +. +MessageId=4161 +Language=English +%1 +. +MessageId=4162 +Language=English +%1 +. +MessageId=4163 +Language=English +%1 +. +MessageId=4164 +Language=English +%1 +. +MessageId=4165 +Language=English +%1 +. +MessageId=4166 +Language=English +%1 +. +MessageId=4167 +Language=English +%1 +. +MessageId=4168 +Language=English +%1 +. +MessageId=4169 +Language=English +%1 +. +MessageId=4170 +Language=English +%1 +. +MessageId=4171 +Language=English +%1 +. +MessageId=4172 +Language=English +%1 +. +MessageId=4173 +Language=English +%1 +. +MessageId=4174 +Language=English +%1 +. +MessageId=4175 +Language=English +%1 +. +MessageId=4176 +Language=English +%1 +. +MessageId=4177 +Language=English +%1 +. +MessageId=4178 +Language=English +%1 +. +MessageId=4179 +Language=English +%1 +. +MessageId=4180 +Language=English +%1 +. +MessageId=4181 +Language=English +%1 +. +MessageId=4182 +Language=English +%1 +. +MessageId=4183 +Language=English +%1 +. +MessageId=4184 +Language=English +%1 +. +MessageId=4185 +Language=English +%1 +. +MessageId=4186 +Language=English +%1 +. +MessageId=4187 +Language=English +%1 +. +MessageId=4188 +Language=English +%1 +. +MessageId=4189 +Language=English +%1 +. +MessageId=4190 +Language=English +%1 +. +MessageId=4191 +Language=English +%1 +. +MessageId=4192 +Language=English +%1 +. +MessageId=4193 +Language=English +%1 +. +MessageId=4194 +Language=English +%1 +. +MessageId=4195 +Language=English +%1 +. +MessageId=4196 +Language=English +%1 +. +MessageId=4197 +Language=English +%1 +. +MessageId=4198 +Language=English +%1 +. +MessageId=4199 +Language=English +%1 +. +MessageId=4200 +Language=English +%1 +. +MessageId=4201 +Language=English +%1 +. +MessageId=4202 +Language=English +%1 +. +MessageId=4203 +Language=English +%1 +. +MessageId=4204 +Language=English +%1 +. +MessageId=4205 +Language=English +%1 +. +MessageId=4206 +Language=English +%1 +. +MessageId=4207 +Language=English +%1 +. +MessageId=4208 +Language=English +%1 +. +MessageId=4209 +Language=English +%1 +. +MessageId=4210 +Language=English +%1 +. +MessageId=4211 +Language=English +%1 +. +MessageId=4212 +Language=English +%1 +. +MessageId=4213 +Language=English +%1 +. +MessageId=4214 +Language=English +%1 +. +MessageId=4215 +Language=English +%1 +. +MessageId=4216 +Language=English +%1 +. +MessageId=4217 +Language=English +%1 +. +MessageId=4218 +Language=English +%1 +. +MessageId=4219 +Language=English +%1 +. +MessageId=4220 +Language=English +%1 +. +MessageId=4221 +Language=English +%1 +. +MessageId=4222 +Language=English +%1 +. +MessageId=4223 +Language=English +%1 +. +MessageId=4224 +Language=English +%1 +. +MessageId=4225 +Language=English +%1 +. +MessageId=4226 +Language=English +%1 +. +MessageId=4227 +Language=English +%1 +. +MessageId=4228 +Language=English +%1 +. +MessageId=4229 +Language=English +%1 +. +MessageId=4230 +Language=English +%1 +. +MessageId=4231 +Language=English +%1 +. +MessageId=4232 +Language=English +%1 +. +MessageId=4233 +Language=English +%1 +. +MessageId=4234 +Language=English +%1 +. +MessageId=4235 +Language=English +%1 +. +MessageId=4236 +Language=English +%1 +. +MessageId=4237 +Language=English +%1 +. +MessageId=4238 +Language=English +%1 +. +MessageId=4239 +Language=English +%1 +. +MessageId=4240 +Language=English +%1 +. +MessageId=4241 +Language=English +%1 +. +MessageId=4242 +Language=English +%1 +. +MessageId=4243 +Language=English +%1 +. +MessageId=4244 +Language=English +%1 +. +MessageId=4245 +Language=English +%1 +. +MessageId=4246 +Language=English +%1 +. +MessageId=4247 +Language=English +%1 +. +MessageId=4248 +Language=English +%1 +. +MessageId=4249 +Language=English +%1 +. +MessageId=4250 +Language=English +%1 +. +MessageId=4251 +Language=English +%1 +. +MessageId=4252 +Language=English +%1 +. +MessageId=4253 +Language=English +%1 +. +MessageId=4254 +Language=English +%1 +. +MessageId=4255 +Language=English +%1 +. +MessageId=4256 +Language=English +%1 +. +MessageId=4257 +Language=English +%1 +. +MessageId=4258 +Language=English +%1 +. +MessageId=4259 +Language=English +%1 +. +MessageId=4260 +Language=English +%1 +. +MessageId=4261 +Language=English +%1 +. +MessageId=4262 +Language=English +%1 +. +MessageId=4263 +Language=English +%1 +. +MessageId=4264 +Language=English +%1 +. +MessageId=4265 +Language=English +%1 +. +MessageId=4266 +Language=English +%1 +. +MessageId=4267 +Language=English +%1 +. +MessageId=4268 +Language=English +%1 +. +MessageId=4269 +Language=English +%1 +. +MessageId=4270 +Language=English +%1 +. +MessageId=4271 +Language=English +%1 +. +MessageId=4272 +Language=English +%1 +. +MessageId=4273 +Language=English +%1 +. +MessageId=4274 +Language=English +%1 +. +MessageId=4275 +Language=English +%1 +. +MessageId=4276 +Language=English +%1 +. +MessageId=4277 +Language=English +%1 +. +MessageId=4278 +Language=English +%1 +. +MessageId=4279 +Language=English +%1 +. +MessageId=4280 +Language=English +%1 +. +MessageId=4281 +Language=English +%1 +. +MessageId=4282 +Language=English +%1 +. +MessageId=4283 +Language=English +%1 +. +MessageId=4284 +Language=English +%1 +. +MessageId=4285 +Language=English +%1 +. +MessageId=4286 +Language=English +%1 +. +MessageId=4287 +Language=English +%1 +. +MessageId=4288 +Language=English +%1 +. +MessageId=4289 +Language=English +%1 +. +MessageId=4290 +Language=English +%1 +. +MessageId=4291 +Language=English +%1 +. +MessageId=4292 +Language=English +%1 +. +MessageId=4293 +Language=English +%1 +. +MessageId=4294 +Language=English +%1 +. +MessageId=4295 +Language=English +%1 +. +MessageId=4296 +Language=English +%1 +. +MessageId=4297 +Language=English +%1 +. +MessageId=4298 +Language=English +%1 +. +MessageId=4299 +Language=English +%1 +. +MessageId=4300 +Language=English +%1 +. +MessageId=4301 +Language=English +%1 +. +MessageId=4302 +Language=English +%1 +. +MessageId=4303 +Language=English +%1 +. +MessageId=4304 +Language=English +%1 +. +MessageId=4305 +Language=English +%1 +. +MessageId=4306 +Language=English +%1 +. +MessageId=4307 +Language=English +%1 +. +MessageId=4308 +Language=English +%1 +. +MessageId=4309 +Language=English +%1 +. +MessageId=4310 +Language=English +%1 +. +MessageId=4311 +Language=English +%1 +. +MessageId=4312 +Language=English +%1 +. +MessageId=4313 +Language=English +%1 +. +MessageId=4314 +Language=English +%1 +. +MessageId=4315 +Language=English +%1 +. +MessageId=4316 +Language=English +%1 +. +MessageId=4317 +Language=English +%1 +. +MessageId=4318 +Language=English +%1 +. +MessageId=4319 +Language=English +%1 +. +MessageId=4320 +Language=English +%1 +. +MessageId=4321 +Language=English +%1 +. +MessageId=4322 +Language=English +%1 +. +MessageId=4323 +Language=English +%1 +. +MessageId=4324 +Language=English +%1 +. +MessageId=4325 +Language=English +%1 +. +MessageId=4326 +Language=English +%1 +. +MessageId=4327 +Language=English +%1 +. +MessageId=4328 +Language=English +%1 +. +MessageId=4329 +Language=English +%1 +. +MessageId=4330 +Language=English +%1 +. +MessageId=4331 +Language=English +%1 +. +MessageId=4332 +Language=English +%1 +. +MessageId=4333 +Language=English +%1 +. +MessageId=4334 +Language=English +%1 +. +MessageId=4335 +Language=English +%1 +. +MessageId=4336 +Language=English +%1 +. +MessageId=4337 +Language=English +%1 +. +MessageId=4338 +Language=English +%1 +. +MessageId=4339 +Language=English +%1 +. +MessageId=4340 +Language=English +%1 +. +MessageId=4341 +Language=English +%1 +. +MessageId=4342 +Language=English +%1 +. +MessageId=4343 +Language=English +%1 +. +MessageId=4344 +Language=English +%1 +. +MessageId=4345 +Language=English +%1 +. +MessageId=4346 +Language=English +%1 +. +MessageId=4347 +Language=English +%1 +. +MessageId=4348 +Language=English +%1 +. +MessageId=4349 +Language=English +%1 +. +MessageId=4350 +Language=English +%1 +. +MessageId=4351 +Language=English +%1 +. +MessageId=4352 +Language=English +%1 +. +MessageId=4353 +Language=English +%1 +. +MessageId=4354 +Language=English +%1 +. +MessageId=4355 +Language=English +%1 +. +MessageId=4356 +Language=English +%1 +. +MessageId=4357 +Language=English +%1 +. +MessageId=4358 +Language=English +%1 +. +MessageId=4359 +Language=English +%1 +. +MessageId=4360 +Language=English +%1 +. +MessageId=4361 +Language=English +%1 +. +MessageId=4362 +Language=English +%1 +. +MessageId=4363 +Language=English +%1 +. +MessageId=4364 +Language=English +%1 +. +MessageId=4365 +Language=English +%1 +. +MessageId=4366 +Language=English +%1 +. +MessageId=4367 +Language=English +%1 +. +MessageId=4368 +Language=English +%1 +. +MessageId=4369 +Language=English +%1 +. +MessageId=4370 +Language=English +%1 +. +MessageId=4371 +Language=English +%1 +. +MessageId=4372 +Language=English +%1 +. +MessageId=4373 +Language=English +%1 +. +MessageId=4374 +Language=English +%1 +. +MessageId=4375 +Language=English +%1 +. +MessageId=4376 +Language=English +%1 +. +MessageId=4377 +Language=English +%1 +. +MessageId=4378 +Language=English +%1 +. +MessageId=4379 +Language=English +%1 +. +MessageId=4380 +Language=English +%1 +. +MessageId=4381 +Language=English +%1 +. +MessageId=4382 +Language=English +%1 +. +MessageId=4383 +Language=English +%1 +. +MessageId=4384 +Language=English +%1 +. +MessageId=4385 +Language=English +%1 +. +MessageId=4386 +Language=English +%1 +. +MessageId=4387 +Language=English +%1 +. +MessageId=4388 +Language=English +%1 +. +MessageId=4389 +Language=English +%1 +. +MessageId=4390 +Language=English +%1 +. +MessageId=4391 +Language=English +%1 +. +MessageId=4392 +Language=English +%1 +. +MessageId=4393 +Language=English +%1 +. +MessageId=4394 +Language=English +%1 +. +MessageId=4395 +Language=English +%1 +. +MessageId=4396 +Language=English +%1 +. +MessageId=4397 +Language=English +%1 +. +MessageId=4398 +Language=English +%1 +. +MessageId=4399 +Language=English +%1 +. +MessageId=4400 +Language=English +%1 +. +MessageId=4401 +Language=English +%1 +. +MessageId=4402 +Language=English +%1 +. +MessageId=4403 +Language=English +%1 +. +MessageId=4404 +Language=English +%1 +. +MessageId=4405 +Language=English +%1 +. +MessageId=4406 +Language=English +%1 +. +MessageId=4407 +Language=English +%1 +. +MessageId=4408 +Language=English +%1 +. +MessageId=4409 +Language=English +%1 +. +MessageId=4410 +Language=English +%1 +. +MessageId=4411 +Language=English +%1 +. +MessageId=4412 +Language=English +%1 +. +MessageId=4413 +Language=English +%1 +. +MessageId=4414 +Language=English +%1 +. +MessageId=4415 +Language=English +%1 +. +MessageId=4416 +Language=English +%1 +. +MessageId=4417 +Language=English +%1 +. +MessageId=4418 +Language=English +%1 +. +MessageId=4419 +Language=English +%1 +. +MessageId=4420 +Language=English +%1 +. +MessageId=4421 +Language=English +%1 +. +MessageId=4422 +Language=English +%1 +. +MessageId=4423 +Language=English +%1 +. +MessageId=4424 +Language=English +%1 +. +MessageId=4425 +Language=English +%1 +. +MessageId=4426 +Language=English +%1 +. +MessageId=4427 +Language=English +%1 +. +MessageId=4428 +Language=English +%1 +. +MessageId=4429 +Language=English +%1 +. +MessageId=4430 +Language=English +%1 +. +MessageId=4431 +Language=English +%1 +. +MessageId=4432 +Language=English +%1 +. +MessageId=4433 +Language=English +%1 +. +MessageId=4434 +Language=English +%1 +. +MessageId=4435 +Language=English +%1 +. +MessageId=4436 +Language=English +%1 +. +MessageId=4437 +Language=English +%1 +. +MessageId=4438 +Language=English +%1 +. +MessageId=4439 +Language=English +%1 +. +MessageId=4440 +Language=English +%1 +. +MessageId=4441 +Language=English +%1 +. +MessageId=4442 +Language=English +%1 +. +MessageId=4443 +Language=English +%1 +. +MessageId=4444 +Language=English +%1 +. +MessageId=4445 +Language=English +%1 +. +MessageId=4446 +Language=English +%1 +. +MessageId=4447 +Language=English +%1 +. +MessageId=4448 +Language=English +%1 +. +MessageId=4449 +Language=English +%1 +. +MessageId=4450 +Language=English +%1 +. +MessageId=4451 +Language=English +%1 +. +MessageId=4452 +Language=English +%1 +. +MessageId=4453 +Language=English +%1 +. +MessageId=4454 +Language=English +%1 +. +MessageId=4455 +Language=English +%1 +. +MessageId=4456 +Language=English +%1 +. +MessageId=4457 +Language=English +%1 +. +MessageId=4458 +Language=English +%1 +. +MessageId=4459 +Language=English +%1 +. +MessageId=4460 +Language=English +%1 +. +MessageId=4461 +Language=English +%1 +. +MessageId=4462 +Language=English +%1 +. +MessageId=4463 +Language=English +%1 +. +MessageId=4464 +Language=English +%1 +. +MessageId=4465 +Language=English +%1 +. +MessageId=4466 +Language=English +%1 +. +MessageId=4467 +Language=English +%1 +. +MessageId=4468 +Language=English +%1 +. +MessageId=4469 +Language=English +%1 +. +MessageId=4470 +Language=English +%1 +. +MessageId=4471 +Language=English +%1 +. +MessageId=4472 +Language=English +%1 +. +MessageId=4473 +Language=English +%1 +. +MessageId=4474 +Language=English +%1 +. +MessageId=4475 +Language=English +%1 +. +MessageId=4476 +Language=English +%1 +. +MessageId=4477 +Language=English +%1 +. +MessageId=4478 +Language=English +%1 +. +MessageId=4479 +Language=English +%1 +. +MessageId=4480 +Language=English +%1 +. +MessageId=4481 +Language=English +%1 +. +MessageId=4482 +Language=English +%1 +. +MessageId=4483 +Language=English +%1 +. +MessageId=4484 +Language=English +%1 +. +MessageId=4485 +Language=English +%1 +. +MessageId=4486 +Language=English +%1 +. +MessageId=4487 +Language=English +%1 +. +MessageId=4488 +Language=English +%1 +. +MessageId=4489 +Language=English +%1 +. +MessageId=4490 +Language=English +%1 +. +MessageId=4491 +Language=English +%1 +. +MessageId=4492 +Language=English +%1 +. +MessageId=4493 +Language=English +%1 +. +MessageId=4494 +Language=English +%1 +. +MessageId=4495 +Language=English +%1 +. +MessageId=4496 +Language=English +%1 +. +MessageId=4497 +Language=English +%1 +. +MessageId=4498 +Language=English +%1 +. +MessageId=4499 +Language=English +%1 +. +MessageId=4500 +Language=English +%1 +. +MessageId=4501 +Language=English +%1 +. +MessageId=4502 +Language=English +%1 +. +MessageId=4503 +Language=English +%1 +. +MessageId=4504 +Language=English +%1 +. +MessageId=4505 +Language=English +%1 +. +MessageId=4506 +Language=English +%1 +. +MessageId=4507 +Language=English +%1 +. +MessageId=4508 +Language=English +%1 +. +MessageId=4509 +Language=English +%1 +. +MessageId=4510 +Language=English +%1 +. +MessageId=4511 +Language=English +%1 +. +MessageId=4512 +Language=English +%1 +. +MessageId=4513 +Language=English +%1 +. +MessageId=4514 +Language=English +%1 +. +MessageId=4515 +Language=English +%1 +. +MessageId=4516 +Language=English +%1 +. +MessageId=4517 +Language=English +%1 +. +MessageId=4518 +Language=English +%1 +. +MessageId=4519 +Language=English +%1 +. +MessageId=4520 +Language=English +%1 +. +MessageId=4521 +Language=English +%1 +. +MessageId=4522 +Language=English +%1 +. +MessageId=4523 +Language=English +%1 +. +MessageId=4524 +Language=English +%1 +. +MessageId=4525 +Language=English +%1 +. +MessageId=4526 +Language=English +%1 +. +MessageId=4527 +Language=English +%1 +. +MessageId=4528 +Language=English +%1 +. +MessageId=4529 +Language=English +%1 +. +MessageId=4530 +Language=English +%1 +. +MessageId=4531 +Language=English +%1 +. +MessageId=4532 +Language=English +%1 +. +MessageId=4533 +Language=English +%1 +. +MessageId=4534 +Language=English +%1 +. +MessageId=4535 +Language=English +%1 +. +MessageId=4536 +Language=English +%1 +. +MessageId=4537 +Language=English +%1 +. +MessageId=4538 +Language=English +%1 +. +MessageId=4539 +Language=English +%1 +. +MessageId=4540 +Language=English +%1 +. +MessageId=4541 +Language=English +%1 +. +MessageId=4542 +Language=English +%1 +. +MessageId=4543 +Language=English +%1 +. +MessageId=4544 +Language=English +%1 +. +MessageId=4545 +Language=English +%1 +. +MessageId=4546 +Language=English +%1 +. +MessageId=4547 +Language=English +%1 +. +MessageId=4548 +Language=English +%1 +. +MessageId=4549 +Language=English +%1 +. +MessageId=4550 +Language=English +%1 +. +MessageId=4551 +Language=English +%1 +. +MessageId=4552 +Language=English +%1 +. +MessageId=4553 +Language=English +%1 +. +MessageId=4554 +Language=English +%1 +. +MessageId=4555 +Language=English +%1 +. +MessageId=4556 +Language=English +%1 +. +MessageId=4557 +Language=English +%1 +. +MessageId=4558 +Language=English +%1 +. +MessageId=4559 +Language=English +%1 +. +MessageId=4560 +Language=English +%1 +. +MessageId=4561 +Language=English +%1 +. +MessageId=4562 +Language=English +%1 +. +MessageId=4563 +Language=English +%1 +. +MessageId=4564 +Language=English +%1 +. +MessageId=4565 +Language=English +%1 +. +MessageId=4566 +Language=English +%1 +. +MessageId=4567 +Language=English +%1 +. +MessageId=4568 +Language=English +%1 +. +MessageId=4569 +Language=English +%1 +. +MessageId=4570 +Language=English +%1 +. +MessageId=4571 +Language=English +%1 +. +MessageId=4572 +Language=English +%1 +. +MessageId=4573 +Language=English +%1 +. +MessageId=4574 +Language=English +%1 +. +MessageId=4575 +Language=English +%1 +. +MessageId=4576 +Language=English +%1 +. +MessageId=4577 +Language=English +%1 +. +MessageId=4578 +Language=English +%1 +. +MessageId=4579 +Language=English +%1 +. +MessageId=4580 +Language=English +%1 +. +MessageId=4581 +Language=English +%1 +. +MessageId=4582 +Language=English +%1 +. +MessageId=4583 +Language=English +%1 +. +MessageId=4584 +Language=English +%1 +. +MessageId=4585 +Language=English +%1 +. +MessageId=4586 +Language=English +%1 +. +MessageId=4587 +Language=English +%1 +. +MessageId=4588 +Language=English +%1 +. +MessageId=4589 +Language=English +%1 +. +MessageId=4590 +Language=English +%1 +. +MessageId=4591 +Language=English +%1 +. +MessageId=4592 +Language=English +%1 +. +MessageId=4593 +Language=English +%1 +. +MessageId=4594 +Language=English +%1 +. +MessageId=4595 +Language=English +%1 +. +MessageId=4596 +Language=English +%1 +. +MessageId=4597 +Language=English +%1 +. +MessageId=4598 +Language=English +%1 +. +MessageId=4599 +Language=English +%1 +. +MessageId=4600 +Language=English +%1 +. +MessageId=4601 +Language=English +%1 +. +MessageId=4602 +Language=English +%1 +. +MessageId=4603 +Language=English +%1 +. +MessageId=4604 +Language=English +%1 +. +MessageId=4605 +Language=English +%1 +. +MessageId=4606 +Language=English +%1 +. +MessageId=4607 +Language=English +%1 +. +MessageId=4608 +Language=English +%1 +. +MessageId=4609 +Language=English +%1 +. +MessageId=4610 +Language=English +%1 +. +MessageId=4611 +Language=English +%1 +. +MessageId=4612 +Language=English +%1 +. +MessageId=4613 +Language=English +%1 +. +MessageId=4614 +Language=English +%1 +. +MessageId=4615 +Language=English +%1 +. +MessageId=4616 +Language=English +%1 +. +MessageId=4617 +Language=English +%1 +. +MessageId=4618 +Language=English +%1 +. +MessageId=4619 +Language=English +%1 +. +MessageId=4620 +Language=English +%1 +. +MessageId=4621 +Language=English +%1 +. +MessageId=4622 +Language=English +%1 +. +MessageId=4623 +Language=English +%1 +. +MessageId=4624 +Language=English +%1 +. +MessageId=4625 +Language=English +%1 +. +MessageId=4626 +Language=English +%1 +. +MessageId=4627 +Language=English +%1 +. +MessageId=4628 +Language=English +%1 +. +MessageId=4629 +Language=English +%1 +. +MessageId=4630 +Language=English +%1 +. +MessageId=4631 +Language=English +%1 +. +MessageId=4632 +Language=English +%1 +. +MessageId=4633 +Language=English +%1 +. +MessageId=4634 +Language=English +%1 +. +MessageId=4635 +Language=English +%1 +. +MessageId=4636 +Language=English +%1 +. +MessageId=4637 +Language=English +%1 +. +MessageId=4638 +Language=English +%1 +. +MessageId=4639 +Language=English +%1 +. +MessageId=4640 +Language=English +%1 +. +MessageId=4641 +Language=English +%1 +. +MessageId=4642 +Language=English +%1 +. +MessageId=4643 +Language=English +%1 +. +MessageId=4644 +Language=English +%1 +. +MessageId=4645 +Language=English +%1 +. +MessageId=4646 +Language=English +%1 +. +MessageId=4647 +Language=English +%1 +. +MessageId=4648 +Language=English +%1 +. +MessageId=4649 +Language=English +%1 +. +MessageId=4650 +Language=English +%1 +. +MessageId=4651 +Language=English +%1 +. +MessageId=4652 +Language=English +%1 +. +MessageId=4653 +Language=English +%1 +. +MessageId=4654 +Language=English +%1 +. +MessageId=4655 +Language=English +%1 +. +MessageId=4656 +Language=English +%1 +. +MessageId=4657 +Language=English +%1 +. +MessageId=4658 +Language=English +%1 +. +MessageId=4659 +Language=English +%1 +. +MessageId=4660 +Language=English +%1 +. +MessageId=4661 +Language=English +%1 +. +MessageId=4662 +Language=English +%1 +. +MessageId=4663 +Language=English +%1 +. +MessageId=4664 +Language=English +%1 +. +MessageId=4665 +Language=English +%1 +. +MessageId=4666 +Language=English +%1 +. +MessageId=4667 +Language=English +%1 +. +MessageId=4668 +Language=English +%1 +. +MessageId=4669 +Language=English +%1 +. +MessageId=4670 +Language=English +%1 +. +MessageId=4671 +Language=English +%1 +. +MessageId=4672 +Language=English +%1 +. +MessageId=4673 +Language=English +%1 +. +MessageId=4674 +Language=English +%1 +. +MessageId=4675 +Language=English +%1 +. +MessageId=4676 +Language=English +%1 +. +MessageId=4677 +Language=English +%1 +. +MessageId=4678 +Language=English +%1 +. +MessageId=4679 +Language=English +%1 +. +MessageId=4680 +Language=English +%1 +. +MessageId=4681 +Language=English +%1 +. +MessageId=4682 +Language=English +%1 +. +MessageId=4683 +Language=English +%1 +. +MessageId=4684 +Language=English +%1 +. +MessageId=4685 +Language=English +%1 +. +MessageId=4686 +Language=English +%1 +. +MessageId=4687 +Language=English +%1 +. +MessageId=4688 +Language=English +%1 +. +MessageId=4689 +Language=English +%1 +. +MessageId=4690 +Language=English +%1 +. +MessageId=4691 +Language=English +%1 +. +MessageId=4692 +Language=English +%1 +. +MessageId=4693 +Language=English +%1 +. +MessageId=4694 +Language=English +%1 +. +MessageId=4695 +Language=English +%1 +. +MessageId=4696 +Language=English +%1 +. +MessageId=4697 +Language=English +%1 +. +MessageId=4698 +Language=English +%1 +. +MessageId=4699 +Language=English +%1 +. +MessageId=4700 +Language=English +%1 +. +MessageId=4701 +Language=English +%1 +. +MessageId=4702 +Language=English +%1 +. +MessageId=4703 +Language=English +%1 +. +MessageId=4704 +Language=English +%1 +. +MessageId=4705 +Language=English +%1 +. +MessageId=4706 +Language=English +%1 +. +MessageId=4707 +Language=English +%1 +. +MessageId=4708 +Language=English +%1 +. +MessageId=4709 +Language=English +%1 +. +MessageId=4710 +Language=English +%1 +. +MessageId=4711 +Language=English +%1 +. +MessageId=4712 +Language=English +%1 +. +MessageId=4713 +Language=English +%1 +. +MessageId=4714 +Language=English +%1 +. +MessageId=4715 +Language=English +%1 +. +MessageId=4716 +Language=English +%1 +. +MessageId=4717 +Language=English +%1 +. +MessageId=4718 +Language=English +%1 +. +MessageId=4719 +Language=English +%1 +. +MessageId=4720 +Language=English +%1 +. +MessageId=4721 +Language=English +%1 +. +MessageId=4722 +Language=English +%1 +. +MessageId=4723 +Language=English +%1 +. +MessageId=4724 +Language=English +%1 +. +MessageId=4725 +Language=English +%1 +. +MessageId=4726 +Language=English +%1 +. +MessageId=4727 +Language=English +%1 +. +MessageId=4728 +Language=English +%1 +. +MessageId=4729 +Language=English +%1 +. +MessageId=4730 +Language=English +%1 +. +MessageId=4731 +Language=English +%1 +. +MessageId=4732 +Language=English +%1 +. +MessageId=4733 +Language=English +%1 +. +MessageId=4734 +Language=English +%1 +. +MessageId=4735 +Language=English +%1 +. +MessageId=4736 +Language=English +%1 +. +MessageId=4737 +Language=English +%1 +. +MessageId=4738 +Language=English +%1 +. +MessageId=4739 +Language=English +%1 +. +MessageId=4740 +Language=English +%1 +. +MessageId=4741 +Language=English +%1 +. +MessageId=4742 +Language=English +%1 +. +MessageId=4743 +Language=English +%1 +. +MessageId=4744 +Language=English +%1 +. +MessageId=4745 +Language=English +%1 +. +MessageId=4746 +Language=English +%1 +. +MessageId=4747 +Language=English +%1 +. +MessageId=4748 +Language=English +%1 +. +MessageId=4749 +Language=English +%1 +. +MessageId=4750 +Language=English +%1 +. +MessageId=4751 +Language=English +%1 +. +MessageId=4752 +Language=English +%1 +. +MessageId=4753 +Language=English +%1 +. +MessageId=4754 +Language=English +%1 +. +MessageId=4755 +Language=English +%1 +. +MessageId=4756 +Language=English +%1 +. +MessageId=4757 +Language=English +%1 +. +MessageId=4758 +Language=English +%1 +. +MessageId=4759 +Language=English +%1 +. +MessageId=4760 +Language=English +%1 +. +MessageId=4761 +Language=English +%1 +. +MessageId=4762 +Language=English +%1 +. +MessageId=4763 +Language=English +%1 +. +MessageId=4764 +Language=English +%1 +. +MessageId=4765 +Language=English +%1 +. +MessageId=4766 +Language=English +%1 +. +MessageId=4767 +Language=English +%1 +. +MessageId=4768 +Language=English +%1 +. +MessageId=4769 +Language=English +%1 +. +MessageId=4770 +Language=English +%1 +. +MessageId=4771 +Language=English +%1 +. +MessageId=4772 +Language=English +%1 +. +MessageId=4773 +Language=English +%1 +. +MessageId=4774 +Language=English +%1 +. +MessageId=4775 +Language=English +%1 +. +MessageId=4776 +Language=English +%1 +. +MessageId=4777 +Language=English +%1 +. +MessageId=4778 +Language=English +%1 +. +MessageId=4779 +Language=English +%1 +. +MessageId=4780 +Language=English +%1 +. +MessageId=4781 +Language=English +%1 +. +MessageId=4782 +Language=English +%1 +. +MessageId=4783 +Language=English +%1 +. +MessageId=4784 +Language=English +%1 +. +MessageId=4785 +Language=English +%1 +. +MessageId=4786 +Language=English +%1 +. +MessageId=4787 +Language=English +%1 +. +MessageId=4788 +Language=English +%1 +. +MessageId=4789 +Language=English +%1 +. +MessageId=4790 +Language=English +%1 +. +MessageId=4791 +Language=English +%1 +. +MessageId=4792 +Language=English +%1 +. +MessageId=4793 +Language=English +%1 +. +MessageId=4794 +Language=English +%1 +. +MessageId=4795 +Language=English +%1 +. +MessageId=4796 +Language=English +%1 +. +MessageId=4797 +Language=English +%1 +. +MessageId=4798 +Language=English +%1 +. +MessageId=4799 +Language=English +%1 +. +MessageId=4800 +Language=English +%1 +. +MessageId=4801 +Language=English +%1 +. +MessageId=4802 +Language=English +%1 +. +MessageId=4803 +Language=English +%1 +. +MessageId=4804 +Language=English +%1 +. +MessageId=4805 +Language=English +%1 +. +MessageId=4806 +Language=English +%1 +. +MessageId=4807 +Language=English +%1 +. +MessageId=4808 +Language=English +%1 +. +MessageId=4809 +Language=English +%1 +. +MessageId=4810 +Language=English +%1 +. +MessageId=4811 +Language=English +%1 +. +MessageId=4812 +Language=English +%1 +. +MessageId=4813 +Language=English +%1 +. +MessageId=4814 +Language=English +%1 +. +MessageId=4815 +Language=English +%1 +. +MessageId=4816 +Language=English +%1 +. +MessageId=4817 +Language=English +%1 +. +MessageId=4818 +Language=English +%1 +. +MessageId=4819 +Language=English +%1 +. +MessageId=4820 +Language=English +%1 +. +MessageId=4821 +Language=English +%1 +. +MessageId=4822 +Language=English +%1 +. +MessageId=4823 +Language=English +%1 +. +MessageId=4824 +Language=English +%1 +. +MessageId=4825 +Language=English +%1 +. +MessageId=4826 +Language=English +%1 +. +MessageId=4827 +Language=English +%1 +. +MessageId=4828 +Language=English +%1 +. +MessageId=4829 +Language=English +%1 +. +MessageId=4830 +Language=English +%1 +. +MessageId=4831 +Language=English +%1 +. +MessageId=4832 +Language=English +%1 +. +MessageId=4833 +Language=English +%1 +. +MessageId=4834 +Language=English +%1 +. +MessageId=4835 +Language=English +%1 +. +MessageId=4836 +Language=English +%1 +. +MessageId=4837 +Language=English +%1 +. +MessageId=4838 +Language=English +%1 +. +MessageId=4839 +Language=English +%1 +. +MessageId=4840 +Language=English +%1 +. +MessageId=4841 +Language=English +%1 +. +MessageId=4842 +Language=English +%1 +. +MessageId=4843 +Language=English +%1 +. +MessageId=4844 +Language=English +%1 +. +MessageId=4845 +Language=English +%1 +. +MessageId=4846 +Language=English +%1 +. +MessageId=4847 +Language=English +%1 +. +MessageId=4848 +Language=English +%1 +. +MessageId=4849 +Language=English +%1 +. +MessageId=4850 +Language=English +%1 +. +MessageId=4851 +Language=English +%1 +. +MessageId=4852 +Language=English +%1 +. +MessageId=4853 +Language=English +%1 +. +MessageId=4854 +Language=English +%1 +. +MessageId=4855 +Language=English +%1 +. +MessageId=4856 +Language=English +%1 +. +MessageId=4857 +Language=English +%1 +. +MessageId=4858 +Language=English +%1 +. +MessageId=4859 +Language=English +%1 +. +MessageId=4860 +Language=English +%1 +. +MessageId=4861 +Language=English +%1 +. +MessageId=4862 +Language=English +%1 +. +MessageId=4863 +Language=English +%1 +. +MessageId=4864 +Language=English +%1 +. +MessageId=4865 +Language=English +%1 +. +MessageId=4866 +Language=English +%1 +. +MessageId=4867 +Language=English +%1 +. +MessageId=4868 +Language=English +%1 +. +MessageId=4869 +Language=English +%1 +. +MessageId=4870 +Language=English +%1 +. +MessageId=4871 +Language=English +%1 +. +MessageId=4872 +Language=English +%1 +. +MessageId=4873 +Language=English +%1 +. +MessageId=4874 +Language=English +%1 +. +MessageId=4875 +Language=English +%1 +. +MessageId=4876 +Language=English +%1 +. +MessageId=4877 +Language=English +%1 +. +MessageId=4878 +Language=English +%1 +. +MessageId=4879 +Language=English +%1 +. +MessageId=4880 +Language=English +%1 +. +MessageId=4881 +Language=English +%1 +. +MessageId=4882 +Language=English +%1 +. +MessageId=4883 +Language=English +%1 +. +MessageId=4884 +Language=English +%1 +. +MessageId=4885 +Language=English +%1 +. +MessageId=4886 +Language=English +%1 +. +MessageId=4887 +Language=English +%1 +. +MessageId=4888 +Language=English +%1 +. +MessageId=4889 +Language=English +%1 +. +MessageId=4890 +Language=English +%1 +. +MessageId=4891 +Language=English +%1 +. +MessageId=4892 +Language=English +%1 +. +MessageId=4893 +Language=English +%1 +. +MessageId=4894 +Language=English +%1 +. +MessageId=4895 +Language=English +%1 +. +MessageId=4896 +Language=English +%1 +. +MessageId=4897 +Language=English +%1 +. +MessageId=4898 +Language=English +%1 +. +MessageId=4899 +Language=English +%1 +. +MessageId=4900 +Language=English +%1 +. +MessageId=4901 +Language=English +%1 +. +MessageId=4902 +Language=English +%1 +. +MessageId=4903 +Language=English +%1 +. +MessageId=4904 +Language=English +%1 +. +MessageId=4905 +Language=English +%1 +. +MessageId=4906 +Language=English +%1 +. +MessageId=4907 +Language=English +%1 +. +MessageId=4908 +Language=English +%1 +. +MessageId=4909 +Language=English +%1 +. +MessageId=4910 +Language=English +%1 +. +MessageId=4911 +Language=English +%1 +. +MessageId=4912 +Language=English +%1 +. +MessageId=4913 +Language=English +%1 +. +MessageId=4914 +Language=English +%1 +. +MessageId=4915 +Language=English +%1 +. +MessageId=4916 +Language=English +%1 +. +MessageId=4917 +Language=English +%1 +. +MessageId=4918 +Language=English +%1 +. +MessageId=4919 +Language=English +%1 +. +MessageId=4920 +Language=English +%1 +. +MessageId=4921 +Language=English +%1 +. +MessageId=4922 +Language=English +%1 +. +MessageId=4923 +Language=English +%1 +. +MessageId=4924 +Language=English +%1 +. +MessageId=4925 +Language=English +%1 +. +MessageId=4926 +Language=English +%1 +. +MessageId=4927 +Language=English +%1 +. +MessageId=4928 +Language=English +%1 +. +MessageId=4929 +Language=English +%1 +. +MessageId=4930 +Language=English +%1 +. +MessageId=4931 +Language=English +%1 +. +MessageId=4932 +Language=English +%1 +. +MessageId=4933 +Language=English +%1 +. +MessageId=4934 +Language=English +%1 +. +MessageId=4935 +Language=English +%1 +. +MessageId=4936 +Language=English +%1 +. +MessageId=4937 +Language=English +%1 +. +MessageId=4938 +Language=English +%1 +. +MessageId=4939 +Language=English +%1 +. +MessageId=4940 +Language=English +%1 +. +MessageId=4941 +Language=English +%1 +. +MessageId=4942 +Language=English +%1 +. +MessageId=4943 +Language=English +%1 +. +MessageId=4944 +Language=English +%1 +. +MessageId=4945 +Language=English +%1 +. +MessageId=4946 +Language=English +%1 +. +MessageId=4947 +Language=English +%1 +. +MessageId=4948 +Language=English +%1 +. +MessageId=4949 +Language=English +%1 +. +MessageId=4950 +Language=English +%1 +. +MessageId=4951 +Language=English +%1 +. +MessageId=4952 +Language=English +%1 +. +MessageId=4953 +Language=English +%1 +. +MessageId=4954 +Language=English +%1 +. +MessageId=4955 +Language=English +%1 +. +MessageId=4956 +Language=English +%1 +. +MessageId=4957 +Language=English +%1 +. +MessageId=4958 +Language=English +%1 +. +MessageId=4959 +Language=English +%1 +. +MessageId=4960 +Language=English +%1 +. +MessageId=4961 +Language=English +%1 +. +MessageId=4962 +Language=English +%1 +. +MessageId=4963 +Language=English +%1 +. +MessageId=4964 +Language=English +%1 +. +MessageId=4965 +Language=English +%1 +. +MessageId=4966 +Language=English +%1 +. +MessageId=4967 +Language=English +%1 +. +MessageId=4968 +Language=English +%1 +. +MessageId=4969 +Language=English +%1 +. +MessageId=4970 +Language=English +%1 +. +MessageId=4971 +Language=English +%1 +. +MessageId=4972 +Language=English +%1 +. +MessageId=4973 +Language=English +%1 +. +MessageId=4974 +Language=English +%1 +. +MessageId=4975 +Language=English +%1 +. +MessageId=4976 +Language=English +%1 +. +MessageId=4977 +Language=English +%1 +. +MessageId=4978 +Language=English +%1 +. +MessageId=4979 +Language=English +%1 +. +MessageId=4980 +Language=English +%1 +. +MessageId=4981 +Language=English +%1 +. +MessageId=4982 +Language=English +%1 +. +MessageId=4983 +Language=English +%1 +. +MessageId=4984 +Language=English +%1 +. +MessageId=4985 +Language=English +%1 +. +MessageId=4986 +Language=English +%1 +. +MessageId=4987 +Language=English +%1 +. +MessageId=4988 +Language=English +%1 +. +MessageId=4989 +Language=English +%1 +. +MessageId=4990 +Language=English +%1 +. +MessageId=4991 +Language=English +%1 +. +MessageId=4992 +Language=English +%1 +. +MessageId=4993 +Language=English +%1 +. +MessageId=4994 +Language=English +%1 +. +MessageId=4995 +Language=English +%1 +. +MessageId=4996 +Language=English +%1 +. +MessageId=4997 +Language=English +%1 +. +MessageId=4998 +Language=English +%1 +. +MessageId=4999 +Language=English +%1 +. +MessageId=5000 +Language=English +%1 +. +MessageId=5001 +Language=English +%1 +. +MessageId=5002 +Language=English +%1 +. +MessageId=5003 +Language=English +%1 +. +MessageId=5004 +Language=English +%1 +. +MessageId=5005 +Language=English +%1 +. +MessageId=5006 +Language=English +%1 +. +MessageId=5007 +Language=English +%1 +. +MessageId=5008 +Language=English +%1 +. +MessageId=5009 +Language=English +%1 +. +MessageId=5010 +Language=English +%1 +. +MessageId=5011 +Language=English +%1 +. +MessageId=5012 +Language=English +%1 +. +MessageId=5013 +Language=English +%1 +. +MessageId=5014 +Language=English +%1 +. +MessageId=5015 +Language=English +%1 +. +MessageId=5016 +Language=English +%1 +. +MessageId=5017 +Language=English +%1 +. +MessageId=5018 +Language=English +%1 +. +MessageId=5019 +Language=English +%1 +. +MessageId=5020 +Language=English +%1 +. +MessageId=5021 +Language=English +%1 +. +MessageId=5022 +Language=English +%1 +. +MessageId=5023 +Language=English +%1 +. +MessageId=5024 +Language=English +%1 +. +MessageId=5025 +Language=English +%1 +. +MessageId=5026 +Language=English +%1 +. +MessageId=5027 +Language=English +%1 +. +MessageId=5028 +Language=English +%1 +. +MessageId=5029 +Language=English +%1 +. +MessageId=5030 +Language=English +%1 +. +MessageId=5031 +Language=English +%1 +. +MessageId=5032 +Language=English +%1 +. +MessageId=5033 +Language=English +%1 +. +MessageId=5034 +Language=English +%1 +. +MessageId=5035 +Language=English +%1 +. +MessageId=5036 +Language=English +%1 +. +MessageId=5037 +Language=English +%1 +. +MessageId=5038 +Language=English +%1 +. +MessageId=5039 +Language=English +%1 +. +MessageId=5040 +Language=English +%1 +. +MessageId=5041 +Language=English +%1 +. +MessageId=5042 +Language=English +%1 +. +MessageId=5043 +Language=English +%1 +. +MessageId=5044 +Language=English +%1 +. +MessageId=5045 +Language=English +%1 +. +MessageId=5046 +Language=English +%1 +. +MessageId=5047 +Language=English +%1 +. +MessageId=5048 +Language=English +%1 +. +MessageId=5049 +Language=English +%1 +. +MessageId=5050 +Language=English +%1 +. +MessageId=5051 +Language=English +%1 +. +MessageId=5052 +Language=English +%1 +. +MessageId=5053 +Language=English +%1 +. +MessageId=5054 +Language=English +%1 +. +MessageId=5055 +Language=English +%1 +. +MessageId=5056 +Language=English +%1 +. +MessageId=5057 +Language=English +%1 +. +MessageId=5058 +Language=English +%1 +. +MessageId=5059 +Language=English +%1 +. +MessageId=5060 +Language=English +%1 +. +MessageId=5061 +Language=English +%1 +. +MessageId=5062 +Language=English +%1 +. +MessageId=5063 +Language=English +%1 +. +MessageId=5064 +Language=English +%1 +. +MessageId=5065 +Language=English +%1 +. +MessageId=5066 +Language=English +%1 +. +MessageId=5067 +Language=English +%1 +. +MessageId=5068 +Language=English +%1 +. +MessageId=5069 +Language=English +%1 +. +MessageId=5070 +Language=English +%1 +. +MessageId=5071 +Language=English +%1 +. +MessageId=5072 +Language=English +%1 +. +MessageId=5073 +Language=English +%1 +. +MessageId=5074 +Language=English +%1 +. +MessageId=5075 +Language=English +%1 +. +MessageId=5076 +Language=English +%1 +. +MessageId=5077 +Language=English +%1 +. +MessageId=5078 +Language=English +%1 +. +MessageId=5079 +Language=English +%1 +. +MessageId=5080 +Language=English +%1 +. +MessageId=5081 +Language=English +%1 +. +MessageId=5082 +Language=English +%1 +. +MessageId=5083 +Language=English +%1 +. +MessageId=5084 +Language=English +%1 +. +MessageId=5085 +Language=English +%1 +. +MessageId=5086 +Language=English +%1 +. +MessageId=5087 +Language=English +%1 +. +MessageId=5088 +Language=English +%1 +. +MessageId=5089 +Language=English +%1 +. +MessageId=5090 +Language=English +%1 +. +MessageId=5091 +Language=English +%1 +. +MessageId=5092 +Language=English +%1 +. +MessageId=5093 +Language=English +%1 +. +MessageId=5094 +Language=English +%1 +. +MessageId=5095 +Language=English +%1 +. +MessageId=5096 +Language=English +%1 +. +MessageId=5097 +Language=English +%1 +. +MessageId=5098 +Language=English +%1 +. +MessageId=5099 +Language=English +%1 +. +MessageId=5100 +Language=English +%1 +. +MessageId=5101 +Language=English +%1 +. +MessageId=5102 +Language=English +%1 +. +MessageId=5103 +Language=English +%1 +. +MessageId=5104 +Language=English +%1 +. +MessageId=5105 +Language=English +%1 +. +MessageId=5106 +Language=English +%1 +. +MessageId=5107 +Language=English +%1 +. +MessageId=5108 +Language=English +%1 +. +MessageId=5109 +Language=English +%1 +. +MessageId=5110 +Language=English +%1 +. +MessageId=5111 +Language=English +%1 +. +MessageId=5112 +Language=English +%1 +. +MessageId=5113 +Language=English +%1 +. +MessageId=5114 +Language=English +%1 +. +MessageId=5115 +Language=English +%1 +. +MessageId=5116 +Language=English +%1 +. +MessageId=5117 +Language=English +%1 +. +MessageId=5118 +Language=English +%1 +. +MessageId=5119 +Language=English +%1 +. +MessageId=5120 +Language=English +%1 +. +MessageId=5121 +Language=English +%1 +. +MessageId=5122 +Language=English +%1 +. +MessageId=5123 +Language=English +%1 +. +MessageId=5124 +Language=English +%1 +. +MessageId=5125 +Language=English +%1 +. +MessageId=5126 +Language=English +%1 +. +MessageId=5127 +Language=English +%1 +. +MessageId=5128 +Language=English +%1 +. +MessageId=5129 +Language=English +%1 +. +MessageId=5130 +Language=English +%1 +. +MessageId=5131 +Language=English +%1 +. +MessageId=5132 +Language=English +%1 +. +MessageId=5133 +Language=English +%1 +. +MessageId=5134 +Language=English +%1 +. +MessageId=5135 +Language=English +%1 +. +MessageId=5136 +Language=English +%1 +. +MessageId=5137 +Language=English +%1 +. +MessageId=5138 +Language=English +%1 +. +MessageId=5139 +Language=English +%1 +. +MessageId=5140 +Language=English +%1 +. +MessageId=5141 +Language=English +%1 +. +MessageId=5142 +Language=English +%1 +. +MessageId=5143 +Language=English +%1 +. +MessageId=5144 +Language=English +%1 +. +MessageId=5145 +Language=English +%1 +. +MessageId=5146 +Language=English +%1 +. +MessageId=5147 +Language=English +%1 +. +MessageId=5148 +Language=English +%1 +. +MessageId=5149 +Language=English +%1 +. +MessageId=5150 +Language=English +%1 +. +MessageId=5151 +Language=English +%1 +. +MessageId=5152 +Language=English +%1 +. +MessageId=5153 +Language=English +%1 +. +MessageId=5154 +Language=English +%1 +. +MessageId=5155 +Language=English +%1 +. +MessageId=5156 +Language=English +%1 +. +MessageId=5157 +Language=English +%1 +. +MessageId=5158 +Language=English +%1 +. +MessageId=5159 +Language=English +%1 +. +MessageId=5160 +Language=English +%1 +. +MessageId=5161 +Language=English +%1 +. +MessageId=5162 +Language=English +%1 +. +MessageId=5163 +Language=English +%1 +. +MessageId=5164 +Language=English +%1 +. +MessageId=5165 +Language=English +%1 +. +MessageId=5166 +Language=English +%1 +. +MessageId=5167 +Language=English +%1 +. +MessageId=5168 +Language=English +%1 +. +MessageId=5169 +Language=English +%1 +. +MessageId=5170 +Language=English +%1 +. +MessageId=5171 +Language=English +%1 +. +MessageId=5172 +Language=English +%1 +. +MessageId=5173 +Language=English +%1 +. +MessageId=5174 +Language=English +%1 +. +MessageId=5175 +Language=English +%1 +. +MessageId=5176 +Language=English +%1 +. +MessageId=5177 +Language=English +%1 +. +MessageId=5178 +Language=English +%1 +. +MessageId=5179 +Language=English +%1 +. +MessageId=5180 +Language=English +%1 +. +MessageId=5181 +Language=English +%1 +. +MessageId=5182 +Language=English +%1 +. +MessageId=5183 +Language=English +%1 +. +MessageId=5184 +Language=English +%1 +. +MessageId=5185 +Language=English +%1 +. +MessageId=5186 +Language=English +%1 +. +MessageId=5187 +Language=English +%1 +. +MessageId=5188 +Language=English +%1 +. +MessageId=5189 +Language=English +%1 +. +MessageId=5190 +Language=English +%1 +. +MessageId=5191 +Language=English +%1 +. +MessageId=5192 +Language=English +%1 +. +MessageId=5193 +Language=English +%1 +. +MessageId=5194 +Language=English +%1 +. +MessageId=5195 +Language=English +%1 +. +MessageId=5196 +Language=English +%1 +. +MessageId=5197 +Language=English +%1 +. +MessageId=5198 +Language=English +%1 +. +MessageId=5199 +Language=English +%1 +. +MessageId=5200 +Language=English +%1 +. +MessageId=5201 +Language=English +%1 +. +MessageId=5202 +Language=English +%1 +. +MessageId=5203 +Language=English +%1 +. +MessageId=5204 +Language=English +%1 +. +MessageId=5205 +Language=English +%1 +. +MessageId=5206 +Language=English +%1 +. +MessageId=5207 +Language=English +%1 +. +MessageId=5208 +Language=English +%1 +. +MessageId=5209 +Language=English +%1 +. +MessageId=5210 +Language=English +%1 +. +MessageId=5211 +Language=English +%1 +. +MessageId=5212 +Language=English +%1 +. +MessageId=5213 +Language=English +%1 +. +MessageId=5214 +Language=English +%1 +. +MessageId=5215 +Language=English +%1 +. +MessageId=5216 +Language=English +%1 +. +MessageId=5217 +Language=English +%1 +. +MessageId=5218 +Language=English +%1 +. +MessageId=5219 +Language=English +%1 +. +MessageId=5220 +Language=English +%1 +. +MessageId=5221 +Language=English +%1 +. +MessageId=5222 +Language=English +%1 +. +MessageId=5223 +Language=English +%1 +. +MessageId=5224 +Language=English +%1 +. +MessageId=5225 +Language=English +%1 +. +MessageId=5226 +Language=English +%1 +. +MessageId=5227 +Language=English +%1 +. +MessageId=5228 +Language=English +%1 +. +MessageId=5229 +Language=English +%1 +. +MessageId=5230 +Language=English +%1 +. +MessageId=5231 +Language=English +%1 +. +MessageId=5232 +Language=English +%1 +. +MessageId=5233 +Language=English +%1 +. +MessageId=5234 +Language=English +%1 +. +MessageId=5235 +Language=English +%1 +. +MessageId=5236 +Language=English +%1 +. +MessageId=5237 +Language=English +%1 +. +MessageId=5238 +Language=English +%1 +. +MessageId=5239 +Language=English +%1 +. +MessageId=5240 +Language=English +%1 +. +MessageId=5241 +Language=English +%1 +. +MessageId=5242 +Language=English +%1 +. +MessageId=5243 +Language=English +%1 +. +MessageId=5244 +Language=English +%1 +. +MessageId=5245 +Language=English +%1 +. +MessageId=5246 +Language=English +%1 +. +MessageId=5247 +Language=English +%1 +. +MessageId=5248 +Language=English +%1 +. +MessageId=5249 +Language=English +%1 +. +MessageId=5250 +Language=English +%1 +. +MessageId=5251 +Language=English +%1 +. +MessageId=5252 +Language=English +%1 +. +MessageId=5253 +Language=English +%1 +. +MessageId=5254 +Language=English +%1 +. +MessageId=5255 +Language=English +%1 +. +MessageId=5256 +Language=English +%1 +. +MessageId=5257 +Language=English +%1 +. +MessageId=5258 +Language=English +%1 +. +MessageId=5259 +Language=English +%1 +. +MessageId=5260 +Language=English +%1 +. +MessageId=5261 +Language=English +%1 +. +MessageId=5262 +Language=English +%1 +. +MessageId=5263 +Language=English +%1 +. +MessageId=5264 +Language=English +%1 +. +MessageId=5265 +Language=English +%1 +. +MessageId=5266 +Language=English +%1 +. +MessageId=5267 +Language=English +%1 +. +MessageId=5268 +Language=English +%1 +. +MessageId=5269 +Language=English +%1 +. +MessageId=5270 +Language=English +%1 +. +MessageId=5271 +Language=English +%1 +. +MessageId=5272 +Language=English +%1 +. +MessageId=5273 +Language=English +%1 +. +MessageId=5274 +Language=English +%1 +. +MessageId=5275 +Language=English +%1 +. +MessageId=5276 +Language=English +%1 +. +MessageId=5277 +Language=English +%1 +. +MessageId=5278 +Language=English +%1 +. +MessageId=5279 +Language=English +%1 +. +MessageId=5280 +Language=English +%1 +. +MessageId=5281 +Language=English +%1 +. +MessageId=5282 +Language=English +%1 +. +MessageId=5283 +Language=English +%1 +. +MessageId=5284 +Language=English +%1 +. +MessageId=5285 +Language=English +%1 +. +MessageId=5286 +Language=English +%1 +. +MessageId=5287 +Language=English +%1 +. +MessageId=5288 +Language=English +%1 +. +MessageId=5289 +Language=English +%1 +. +MessageId=5290 +Language=English +%1 +. +MessageId=5291 +Language=English +%1 +. +MessageId=5292 +Language=English +%1 +. +MessageId=5293 +Language=English +%1 +. +MessageId=5294 +Language=English +%1 +. +MessageId=5295 +Language=English +%1 +. +MessageId=5296 +Language=English +%1 +. +MessageId=5297 +Language=English +%1 +. +MessageId=5298 +Language=English +%1 +. +MessageId=5299 +Language=English +%1 +. +MessageId=5300 +Language=English +%1 +. +MessageId=5301 +Language=English +%1 +. +MessageId=5302 +Language=English +%1 +. +MessageId=5303 +Language=English +%1 +. +MessageId=5304 +Language=English +%1 +. +MessageId=5305 +Language=English +%1 +. +MessageId=5306 +Language=English +%1 +. +MessageId=5307 +Language=English +%1 +. +MessageId=5308 +Language=English +%1 +. +MessageId=5309 +Language=English +%1 +. +MessageId=5310 +Language=English +%1 +. +MessageId=5311 +Language=English +%1 +. +MessageId=5312 +Language=English +%1 +. +MessageId=5313 +Language=English +%1 +. +MessageId=5314 +Language=English +%1 +. +MessageId=5315 +Language=English +%1 +. +MessageId=5316 +Language=English +%1 +. +MessageId=5317 +Language=English +%1 +. +MessageId=5318 +Language=English +%1 +. +MessageId=5319 +Language=English +%1 +. +MessageId=5320 +Language=English +%1 +. +MessageId=5321 +Language=English +%1 +. +MessageId=5322 +Language=English +%1 +. +MessageId=5323 +Language=English +%1 +. +MessageId=5324 +Language=English +%1 +. +MessageId=5325 +Language=English +%1 +. +MessageId=5326 +Language=English +%1 +. +MessageId=5327 +Language=English +%1 +. +MessageId=5328 +Language=English +%1 +. +MessageId=5329 +Language=English +%1 +. +MessageId=5330 +Language=English +%1 +. +MessageId=5331 +Language=English +%1 +. +MessageId=5332 +Language=English +%1 +. +MessageId=5333 +Language=English +%1 +. +MessageId=5334 +Language=English +%1 +. +MessageId=5335 +Language=English +%1 +. +MessageId=5336 +Language=English +%1 +. +MessageId=5337 +Language=English +%1 +. +MessageId=5338 +Language=English +%1 +. +MessageId=5339 +Language=English +%1 +. +MessageId=5340 +Language=English +%1 +. +MessageId=5341 +Language=English +%1 +. +MessageId=5342 +Language=English +%1 +. +MessageId=5343 +Language=English +%1 +. +MessageId=5344 +Language=English +%1 +. +MessageId=5345 +Language=English +%1 +. +MessageId=5346 +Language=English +%1 +. +MessageId=5347 +Language=English +%1 +. +MessageId=5348 +Language=English +%1 +. +MessageId=5349 +Language=English +%1 +. +MessageId=5350 +Language=English +%1 +. +MessageId=5351 +Language=English +%1 +. +MessageId=5352 +Language=English +%1 +. +MessageId=5353 +Language=English +%1 +. +MessageId=5354 +Language=English +%1 +. +MessageId=5355 +Language=English +%1 +. +MessageId=5356 +Language=English +%1 +. +MessageId=5357 +Language=English +%1 +. +MessageId=5358 +Language=English +%1 +. +MessageId=5359 +Language=English +%1 +. +MessageId=5360 +Language=English +%1 +. +MessageId=5361 +Language=English +%1 +. +MessageId=5362 +Language=English +%1 +. +MessageId=5363 +Language=English +%1 +. +MessageId=5364 +Language=English +%1 +. +MessageId=5365 +Language=English +%1 +. +MessageId=5366 +Language=English +%1 +. +MessageId=5367 +Language=English +%1 +. +MessageId=5368 +Language=English +%1 +. +MessageId=5369 +Language=English +%1 +. +MessageId=5370 +Language=English +%1 +. +MessageId=5371 +Language=English +%1 +. +MessageId=5372 +Language=English +%1 +. +MessageId=5373 +Language=English +%1 +. +MessageId=5374 +Language=English +%1 +. +MessageId=5375 +Language=English +%1 +. +MessageId=5376 +Language=English +%1 +. +MessageId=5377 +Language=English +%1 +. +MessageId=5378 +Language=English +%1 +. +MessageId=5379 +Language=English +%1 +. +MessageId=5380 +Language=English +%1 +. +MessageId=5381 +Language=English +%1 +. +MessageId=5382 +Language=English +%1 +. +MessageId=5383 +Language=English +%1 +. +MessageId=5384 +Language=English +%1 +. +MessageId=5385 +Language=English +%1 +. +MessageId=5386 +Language=English +%1 +. +MessageId=5387 +Language=English +%1 +. +MessageId=5388 +Language=English +%1 +. +MessageId=5389 +Language=English +%1 +. +MessageId=5390 +Language=English +%1 +. +MessageId=5391 +Language=English +%1 +. +MessageId=5392 +Language=English +%1 +. +MessageId=5393 +Language=English +%1 +. +MessageId=5394 +Language=English +%1 +. +MessageId=5395 +Language=English +%1 +. +MessageId=5396 +Language=English +%1 +. +MessageId=5397 +Language=English +%1 +. +MessageId=5398 +Language=English +%1 +. +MessageId=5399 +Language=English +%1 +. +MessageId=5400 +Language=English +%1 +. +MessageId=5401 +Language=English +%1 +. +MessageId=5402 +Language=English +%1 +. +MessageId=5403 +Language=English +%1 +. +MessageId=5404 +Language=English +%1 +. +MessageId=5405 +Language=English +%1 +. +MessageId=5406 +Language=English +%1 +. +MessageId=5407 +Language=English +%1 +. +MessageId=5408 +Language=English +%1 +. +MessageId=5409 +Language=English +%1 +. +MessageId=5410 +Language=English +%1 +. +MessageId=5411 +Language=English +%1 +. +MessageId=5412 +Language=English +%1 +. +MessageId=5413 +Language=English +%1 +. +MessageId=5414 +Language=English +%1 +. +MessageId=5415 +Language=English +%1 +. +MessageId=5416 +Language=English +%1 +. +MessageId=5417 +Language=English +%1 +. +MessageId=5418 +Language=English +%1 +. +MessageId=5419 +Language=English +%1 +. +MessageId=5420 +Language=English +%1 +. +MessageId=5421 +Language=English +%1 +. +MessageId=5422 +Language=English +%1 +. +MessageId=5423 +Language=English +%1 +. +MessageId=5424 +Language=English +%1 +. +MessageId=5425 +Language=English +%1 +. +MessageId=5426 +Language=English +%1 +. +MessageId=5427 +Language=English +%1 +. +MessageId=5428 +Language=English +%1 +. +MessageId=5429 +Language=English +%1 +. +MessageId=5430 +Language=English +%1 +. +MessageId=5431 +Language=English +%1 +. +MessageId=5432 +Language=English +%1 +. +MessageId=5433 +Language=English +%1 +. +MessageId=5434 +Language=English +%1 +. +MessageId=5435 +Language=English +%1 +. +MessageId=5436 +Language=English +%1 +. +MessageId=5437 +Language=English +%1 +. +MessageId=5438 +Language=English +%1 +. +MessageId=5439 +Language=English +%1 +. +MessageId=5440 +Language=English +%1 +. +MessageId=5441 +Language=English +%1 +. +MessageId=5442 +Language=English +%1 +. +MessageId=5443 +Language=English +%1 +. +MessageId=5444 +Language=English +%1 +. +MessageId=5445 +Language=English +%1 +. +MessageId=5446 +Language=English +%1 +. +MessageId=5447 +Language=English +%1 +. +MessageId=5448 +Language=English +%1 +. +MessageId=5449 +Language=English +%1 +. +MessageId=5450 +Language=English +%1 +. +MessageId=5451 +Language=English +%1 +. +MessageId=5452 +Language=English +%1 +. +MessageId=5453 +Language=English +%1 +. +MessageId=5454 +Language=English +%1 +. +MessageId=5455 +Language=English +%1 +. +MessageId=5456 +Language=English +%1 +. +MessageId=5457 +Language=English +%1 +. +MessageId=5458 +Language=English +%1 +. +MessageId=5459 +Language=English +%1 +. +MessageId=5460 +Language=English +%1 +. +MessageId=5461 +Language=English +%1 +. +MessageId=5462 +Language=English +%1 +. +MessageId=5463 +Language=English +%1 +. +MessageId=5464 +Language=English +%1 +. +MessageId=5465 +Language=English +%1 +. +MessageId=5466 +Language=English +%1 +. +MessageId=5467 +Language=English +%1 +. +MessageId=5468 +Language=English +%1 +. +MessageId=5469 +Language=English +%1 +. +MessageId=5470 +Language=English +%1 +. +MessageId=5471 +Language=English +%1 +. +MessageId=5472 +Language=English +%1 +. +MessageId=5473 +Language=English +%1 +. +MessageId=5474 +Language=English +%1 +. +MessageId=5475 +Language=English +%1 +. +MessageId=5476 +Language=English +%1 +. +MessageId=5477 +Language=English +%1 +. +MessageId=5478 +Language=English +%1 +. +MessageId=5479 +Language=English +%1 +. +MessageId=5480 +Language=English +%1 +. +MessageId=5481 +Language=English +%1 +. +MessageId=5482 +Language=English +%1 +. +MessageId=5483 +Language=English +%1 +. +MessageId=5484 +Language=English +%1 +. +MessageId=5485 +Language=English +%1 +. +MessageId=5486 +Language=English +%1 +. +MessageId=5487 +Language=English +%1 +. +MessageId=5488 +Language=English +%1 +. +MessageId=5489 +Language=English +%1 +. +MessageId=5490 +Language=English +%1 +. +MessageId=5491 +Language=English +%1 +. +MessageId=5492 +Language=English +%1 +. +MessageId=5493 +Language=English +%1 +. +MessageId=5494 +Language=English +%1 +. +MessageId=5495 +Language=English +%1 +. +MessageId=5496 +Language=English +%1 +. +MessageId=5497 +Language=English +%1 +. +MessageId=5498 +Language=English +%1 +. +MessageId=5499 +Language=English +%1 +. +MessageId=5500 +Language=English +%1 +. +MessageId=5501 +Language=English +%1 +. +MessageId=5502 +Language=English +%1 +. +MessageId=5503 +Language=English +%1 +. +MessageId=5504 +Language=English +%1 +. +MessageId=5505 +Language=English +%1 +. +MessageId=5506 +Language=English +%1 +. +MessageId=5507 +Language=English +%1 +. +MessageId=5508 +Language=English +%1 +. +MessageId=5509 +Language=English +%1 +. +MessageId=5510 +Language=English +%1 +. +MessageId=5511 +Language=English +%1 +. +MessageId=5512 +Language=English +%1 +. +MessageId=5513 +Language=English +%1 +. +MessageId=5514 +Language=English +%1 +. +MessageId=5515 +Language=English +%1 +. +MessageId=5516 +Language=English +%1 +. +MessageId=5517 +Language=English +%1 +. +MessageId=5518 +Language=English +%1 +. +MessageId=5519 +Language=English +%1 +. +MessageId=5520 +Language=English +%1 +. +MessageId=5521 +Language=English +%1 +. +MessageId=5522 +Language=English +%1 +. +MessageId=5523 +Language=English +%1 +. +MessageId=5524 +Language=English +%1 +. +MessageId=5525 +Language=English +%1 +. +MessageId=5526 +Language=English +%1 +. +MessageId=5527 +Language=English +%1 +. +MessageId=5528 +Language=English +%1 +. +MessageId=5529 +Language=English +%1 +. +MessageId=5530 +Language=English +%1 +. +MessageId=5531 +Language=English +%1 +. +MessageId=5532 +Language=English +%1 +. +MessageId=5533 +Language=English +%1 +. +MessageId=5534 +Language=English +%1 +. +MessageId=5535 +Language=English +%1 +. +MessageId=5536 +Language=English +%1 +. +MessageId=5537 +Language=English +%1 +. +MessageId=5538 +Language=English +%1 +. +MessageId=5539 +Language=English +%1 +. +MessageId=5540 +Language=English +%1 +. +MessageId=5541 +Language=English +%1 +. +MessageId=5542 +Language=English +%1 +. +MessageId=5543 +Language=English +%1 +. +MessageId=5544 +Language=English +%1 +. +MessageId=5545 +Language=English +%1 +. +MessageId=5546 +Language=English +%1 +. +MessageId=5547 +Language=English +%1 +. +MessageId=5548 +Language=English +%1 +. +MessageId=5549 +Language=English +%1 +. +MessageId=5550 +Language=English +%1 +. +MessageId=5551 +Language=English +%1 +. +MessageId=5552 +Language=English +%1 +. +MessageId=5553 +Language=English +%1 +. +MessageId=5554 +Language=English +%1 +. +MessageId=5555 +Language=English +%1 +. +MessageId=5556 +Language=English +%1 +. +MessageId=5557 +Language=English +%1 +. +MessageId=5558 +Language=English +%1 +. +MessageId=5559 +Language=English +%1 +. +MessageId=5560 +Language=English +%1 +. +MessageId=5561 +Language=English +%1 +. +MessageId=5562 +Language=English +%1 +. +MessageId=5563 +Language=English +%1 +. +MessageId=5564 +Language=English +%1 +. +MessageId=5565 +Language=English +%1 +. +MessageId=5566 +Language=English +%1 +. +MessageId=5567 +Language=English +%1 +. +MessageId=5568 +Language=English +%1 +. +MessageId=5569 +Language=English +%1 +. +MessageId=5570 +Language=English +%1 +. +MessageId=5571 +Language=English +%1 +. +MessageId=5572 +Language=English +%1 +. +MessageId=5573 +Language=English +%1 +. +MessageId=5574 +Language=English +%1 +. +MessageId=5575 +Language=English +%1 +. +MessageId=5576 +Language=English +%1 +. +MessageId=5577 +Language=English +%1 +. +MessageId=5578 +Language=English +%1 +. +MessageId=5579 +Language=English +%1 +. +MessageId=5580 +Language=English +%1 +. +MessageId=5581 +Language=English +%1 +. +MessageId=5582 +Language=English +%1 +. +MessageId=5583 +Language=English +%1 +. +MessageId=5584 +Language=English +%1 +. +MessageId=5585 +Language=English +%1 +. +MessageId=5586 +Language=English +%1 +. +MessageId=5587 +Language=English +%1 +. +MessageId=5588 +Language=English +%1 +. +MessageId=5589 +Language=English +%1 +. +MessageId=5590 +Language=English +%1 +. +MessageId=5591 +Language=English +%1 +. +MessageId=5592 +Language=English +%1 +. +MessageId=5593 +Language=English +%1 +. +MessageId=5594 +Language=English +%1 +. +MessageId=5595 +Language=English +%1 +. +MessageId=5596 +Language=English +%1 +. +MessageId=5597 +Language=English +%1 +. +MessageId=5598 +Language=English +%1 +. +MessageId=5599 +Language=English +%1 +. +MessageId=5600 +Language=English +%1 +. +MessageId=5601 +Language=English +%1 +. +MessageId=5602 +Language=English +%1 +. +MessageId=5603 +Language=English +%1 +. +MessageId=5604 +Language=English +%1 +. +MessageId=5605 +Language=English +%1 +. +MessageId=5606 +Language=English +%1 +. +MessageId=5607 +Language=English +%1 +. +MessageId=5608 +Language=English +%1 +. +MessageId=5609 +Language=English +%1 +. +MessageId=5610 +Language=English +%1 +. +MessageId=5611 +Language=English +%1 +. +MessageId=5612 +Language=English +%1 +. +MessageId=5613 +Language=English +%1 +. +MessageId=5614 +Language=English +%1 +. +MessageId=5615 +Language=English +%1 +. +MessageId=5616 +Language=English +%1 +. +MessageId=5617 +Language=English +%1 +. +MessageId=5618 +Language=English +%1 +. +MessageId=5619 +Language=English +%1 +. +MessageId=5620 +Language=English +%1 +. +MessageId=5621 +Language=English +%1 +. +MessageId=5622 +Language=English +%1 +. +MessageId=5623 +Language=English +%1 +. +MessageId=5624 +Language=English +%1 +. +MessageId=5625 +Language=English +%1 +. +MessageId=5626 +Language=English +%1 +. +MessageId=5627 +Language=English +%1 +. +MessageId=5628 +Language=English +%1 +. +MessageId=5629 +Language=English +%1 +. +MessageId=5630 +Language=English +%1 +. +MessageId=5631 +Language=English +%1 +. +MessageId=5632 +Language=English +%1 +. +MessageId=5633 +Language=English +%1 +. +MessageId=5634 +Language=English +%1 +. +MessageId=5635 +Language=English +%1 +. +MessageId=5636 +Language=English +%1 +. +MessageId=5637 +Language=English +%1 +. +MessageId=5638 +Language=English +%1 +. +MessageId=5639 +Language=English +%1 +. +MessageId=5640 +Language=English +%1 +. +MessageId=5641 +Language=English +%1 +. +MessageId=5642 +Language=English +%1 +. +MessageId=5643 +Language=English +%1 +. +MessageId=5644 +Language=English +%1 +. +MessageId=5645 +Language=English +%1 +. +MessageId=5646 +Language=English +%1 +. +MessageId=5647 +Language=English +%1 +. +MessageId=5648 +Language=English +%1 +. +MessageId=5649 +Language=English +%1 +. +MessageId=5650 +Language=English +%1 +. +MessageId=5651 +Language=English +%1 +. +MessageId=5652 +Language=English +%1 +. +MessageId=5653 +Language=English +%1 +. +MessageId=5654 +Language=English +%1 +. +MessageId=5655 +Language=English +%1 +. +MessageId=5656 +Language=English +%1 +. +MessageId=5657 +Language=English +%1 +. +MessageId=5658 +Language=English +%1 +. +MessageId=5659 +Language=English +%1 +. +MessageId=5660 +Language=English +%1 +. +MessageId=5661 +Language=English +%1 +. +MessageId=5662 +Language=English +%1 +. +MessageId=5663 +Language=English +%1 +. +MessageId=5664 +Language=English +%1 +. +MessageId=5665 +Language=English +%1 +. +MessageId=5666 +Language=English +%1 +. +MessageId=5667 +Language=English +%1 +. +MessageId=5668 +Language=English +%1 +. +MessageId=5669 +Language=English +%1 +. +MessageId=5670 +Language=English +%1 +. +MessageId=5671 +Language=English +%1 +. +MessageId=5672 +Language=English +%1 +. +MessageId=5673 +Language=English +%1 +. +MessageId=5674 +Language=English +%1 +. +MessageId=5675 +Language=English +%1 +. +MessageId=5676 +Language=English +%1 +. +MessageId=5677 +Language=English +%1 +. +MessageId=5678 +Language=English +%1 +. +MessageId=5679 +Language=English +%1 +. +MessageId=5680 +Language=English +%1 +. +MessageId=5681 +Language=English +%1 +. +MessageId=5682 +Language=English +%1 +. +MessageId=5683 +Language=English +%1 +. +MessageId=5684 +Language=English +%1 +. +MessageId=5685 +Language=English +%1 +. +MessageId=5686 +Language=English +%1 +. +MessageId=5687 +Language=English +%1 +. +MessageId=5688 +Language=English +%1 +. +MessageId=5689 +Language=English +%1 +. +MessageId=5690 +Language=English +%1 +. +MessageId=5691 +Language=English +%1 +. +MessageId=5692 +Language=English +%1 +. +MessageId=5693 +Language=English +%1 +. +MessageId=5694 +Language=English +%1 +. +MessageId=5695 +Language=English +%1 +. +MessageId=5696 +Language=English +%1 +. +MessageId=5697 +Language=English +%1 +. +MessageId=5698 +Language=English +%1 +. +MessageId=5699 +Language=English +%1 +. +MessageId=5700 +Language=English +%1 +. +MessageId=5701 +Language=English +%1 +. +MessageId=5702 +Language=English +%1 +. +MessageId=5703 +Language=English +%1 +. +MessageId=5704 +Language=English +%1 +. +MessageId=5705 +Language=English +%1 +. +MessageId=5706 +Language=English +%1 +. +MessageId=5707 +Language=English +%1 +. +MessageId=5708 +Language=English +%1 +. +MessageId=5709 +Language=English +%1 +. +MessageId=5710 +Language=English +%1 +. +MessageId=5711 +Language=English +%1 +. +MessageId=5712 +Language=English +%1 +. +MessageId=5713 +Language=English +%1 +. +MessageId=5714 +Language=English +%1 +. +MessageId=5715 +Language=English +%1 +. +MessageId=5716 +Language=English +%1 +. +MessageId=5717 +Language=English +%1 +. +MessageId=5718 +Language=English +%1 +. +MessageId=5719 +Language=English +%1 +. +MessageId=5720 +Language=English +%1 +. +MessageId=5721 +Language=English +%1 +. +MessageId=5722 +Language=English +%1 +. +MessageId=5723 +Language=English +%1 +. +MessageId=5724 +Language=English +%1 +. +MessageId=5725 +Language=English +%1 +. +MessageId=5726 +Language=English +%1 +. +MessageId=5727 +Language=English +%1 +. +MessageId=5728 +Language=English +%1 +. +MessageId=5729 +Language=English +%1 +. +MessageId=5730 +Language=English +%1 +. +MessageId=5731 +Language=English +%1 +. +MessageId=5732 +Language=English +%1 +. +MessageId=5733 +Language=English +%1 +. +MessageId=5734 +Language=English +%1 +. +MessageId=5735 +Language=English +%1 +. +MessageId=5736 +Language=English +%1 +. +MessageId=5737 +Language=English +%1 +. +MessageId=5738 +Language=English +%1 +. +MessageId=5739 +Language=English +%1 +. +MessageId=5740 +Language=English +%1 +. +MessageId=5741 +Language=English +%1 +. +MessageId=5742 +Language=English +%1 +. +MessageId=5743 +Language=English +%1 +. +MessageId=5744 +Language=English +%1 +. +MessageId=5745 +Language=English +%1 +. +MessageId=5746 +Language=English +%1 +. +MessageId=5747 +Language=English +%1 +. +MessageId=5748 +Language=English +%1 +. +MessageId=5749 +Language=English +%1 +. +MessageId=5750 +Language=English +%1 +. +MessageId=5751 +Language=English +%1 +. +MessageId=5752 +Language=English +%1 +. +MessageId=5753 +Language=English +%1 +. +MessageId=5754 +Language=English +%1 +. +MessageId=5755 +Language=English +%1 +. +MessageId=5756 +Language=English +%1 +. +MessageId=5757 +Language=English +%1 +. +MessageId=5758 +Language=English +%1 +. +MessageId=5759 +Language=English +%1 +. +MessageId=5760 +Language=English +%1 +. +MessageId=5761 +Language=English +%1 +. +MessageId=5762 +Language=English +%1 +. +MessageId=5763 +Language=English +%1 +. +MessageId=5764 +Language=English +%1 +. +MessageId=5765 +Language=English +%1 +. +MessageId=5766 +Language=English +%1 +. +MessageId=5767 +Language=English +%1 +. +MessageId=5768 +Language=English +%1 +. +MessageId=5769 +Language=English +%1 +. +MessageId=5770 +Language=English +%1 +. +MessageId=5771 +Language=English +%1 +. +MessageId=5772 +Language=English +%1 +. +MessageId=5773 +Language=English +%1 +. +MessageId=5774 +Language=English +%1 +. +MessageId=5775 +Language=English +%1 +. +MessageId=5776 +Language=English +%1 +. +MessageId=5777 +Language=English +%1 +. +MessageId=5778 +Language=English +%1 +. +MessageId=5779 +Language=English +%1 +. +MessageId=5780 +Language=English +%1 +. +MessageId=5781 +Language=English +%1 +. +MessageId=5782 +Language=English +%1 +. +MessageId=5783 +Language=English +%1 +. +MessageId=5784 +Language=English +%1 +. +MessageId=5785 +Language=English +%1 +. +MessageId=5786 +Language=English +%1 +. +MessageId=5787 +Language=English +%1 +. +MessageId=5788 +Language=English +%1 +. +MessageId=5789 +Language=English +%1 +. +MessageId=5790 +Language=English +%1 +. +MessageId=5791 +Language=English +%1 +. +MessageId=5792 +Language=English +%1 +. +MessageId=5793 +Language=English +%1 +. +MessageId=5794 +Language=English +%1 +. +MessageId=5795 +Language=English +%1 +. +MessageId=5796 +Language=English +%1 +. +MessageId=5797 +Language=English +%1 +. +MessageId=5798 +Language=English +%1 +. +MessageId=5799 +Language=English +%1 +. +MessageId=5800 +Language=English +%1 +. +MessageId=5801 +Language=English +%1 +. +MessageId=5802 +Language=English +%1 +. +MessageId=5803 +Language=English +%1 +. +MessageId=5804 +Language=English +%1 +. +MessageId=5805 +Language=English +%1 +. +MessageId=5806 +Language=English +%1 +. +MessageId=5807 +Language=English +%1 +. +MessageId=5808 +Language=English +%1 +. +MessageId=5809 +Language=English +%1 +. +MessageId=5810 +Language=English +%1 +. +MessageId=5811 +Language=English +%1 +. +MessageId=5812 +Language=English +%1 +. +MessageId=5813 +Language=English +%1 +. +MessageId=5814 +Language=English +%1 +. +MessageId=5815 +Language=English +%1 +. +MessageId=5816 +Language=English +%1 +. +MessageId=5817 +Language=English +%1 +. +MessageId=5818 +Language=English +%1 +. +MessageId=5819 +Language=English +%1 +. +MessageId=5820 +Language=English +%1 +. +MessageId=5821 +Language=English +%1 +. +MessageId=5822 +Language=English +%1 +. +MessageId=5823 +Language=English +%1 +. +MessageId=5824 +Language=English +%1 +. +MessageId=5825 +Language=English +%1 +. +MessageId=5826 +Language=English +%1 +. +MessageId=5827 +Language=English +%1 +. +MessageId=5828 +Language=English +%1 +. +MessageId=5829 +Language=English +%1 +. +MessageId=5830 +Language=English +%1 +. +MessageId=5831 +Language=English +%1 +. +MessageId=5832 +Language=English +%1 +. +MessageId=5833 +Language=English +%1 +. +MessageId=5834 +Language=English +%1 +. +MessageId=5835 +Language=English +%1 +. +MessageId=5836 +Language=English +%1 +. +MessageId=5837 +Language=English +%1 +. +MessageId=5838 +Language=English +%1 +. +MessageId=5839 +Language=English +%1 +. +MessageId=5840 +Language=English +%1 +. +MessageId=5841 +Language=English +%1 +. +MessageId=5842 +Language=English +%1 +. +MessageId=5843 +Language=English +%1 +. +MessageId=5844 +Language=English +%1 +. +MessageId=5845 +Language=English +%1 +. +MessageId=5846 +Language=English +%1 +. +MessageId=5847 +Language=English +%1 +. +MessageId=5848 +Language=English +%1 +. +MessageId=5849 +Language=English +%1 +. +MessageId=5850 +Language=English +%1 +. +MessageId=5851 +Language=English +%1 +. +MessageId=5852 +Language=English +%1 +. +MessageId=5853 +Language=English +%1 +. +MessageId=5854 +Language=English +%1 +. +MessageId=5855 +Language=English +%1 +. +MessageId=5856 +Language=English +%1 +. +MessageId=5857 +Language=English +%1 +. +MessageId=5858 +Language=English +%1 +. +MessageId=5859 +Language=English +%1 +. +MessageId=5860 +Language=English +%1 +. +MessageId=5861 +Language=English +%1 +. +MessageId=5862 +Language=English +%1 +. +MessageId=5863 +Language=English +%1 +. +MessageId=5864 +Language=English +%1 +. +MessageId=5865 +Language=English +%1 +. +MessageId=5866 +Language=English +%1 +. +MessageId=5867 +Language=English +%1 +. +MessageId=5868 +Language=English +%1 +. +MessageId=5869 +Language=English +%1 +. +MessageId=5870 +Language=English +%1 +. +MessageId=5871 +Language=English +%1 +. +MessageId=5872 +Language=English +%1 +. +MessageId=5873 +Language=English +%1 +. +MessageId=5874 +Language=English +%1 +. +MessageId=5875 +Language=English +%1 +. +MessageId=5876 +Language=English +%1 +. +MessageId=5877 +Language=English +%1 +. +MessageId=5878 +Language=English +%1 +. +MessageId=5879 +Language=English +%1 +. +MessageId=5880 +Language=English +%1 +. +MessageId=5881 +Language=English +%1 +. +MessageId=5882 +Language=English +%1 +. +MessageId=5883 +Language=English +%1 +. +MessageId=5884 +Language=English +%1 +. +MessageId=5885 +Language=English +%1 +. +MessageId=5886 +Language=English +%1 +. +MessageId=5887 +Language=English +%1 +. +MessageId=5888 +Language=English +%1 +. +MessageId=5889 +Language=English +%1 +. +MessageId=5890 +Language=English +%1 +. +MessageId=5891 +Language=English +%1 +. +MessageId=5892 +Language=English +%1 +. +MessageId=5893 +Language=English +%1 +. +MessageId=5894 +Language=English +%1 +. +MessageId=5895 +Language=English +%1 +. +MessageId=5896 +Language=English +%1 +. +MessageId=5897 +Language=English +%1 +. +MessageId=5898 +Language=English +%1 +. +MessageId=5899 +Language=English +%1 +. +MessageId=5900 +Language=English +%1 +. +MessageId=5901 +Language=English +%1 +. +MessageId=5902 +Language=English +%1 +. +MessageId=5903 +Language=English +%1 +. +MessageId=5904 +Language=English +%1 +. +MessageId=5905 +Language=English +%1 +. +MessageId=5906 +Language=English +%1 +. +MessageId=5907 +Language=English +%1 +. +MessageId=5908 +Language=English +%1 +. +MessageId=5909 +Language=English +%1 +. +MessageId=5910 +Language=English +%1 +. +MessageId=5911 +Language=English +%1 +. +MessageId=5912 +Language=English +%1 +. +MessageId=5913 +Language=English +%1 +. +MessageId=5914 +Language=English +%1 +. +MessageId=5915 +Language=English +%1 +. +MessageId=5916 +Language=English +%1 +. +MessageId=5917 +Language=English +%1 +. +MessageId=5918 +Language=English +%1 +. +MessageId=5919 +Language=English +%1 +. +MessageId=5920 +Language=English +%1 +. +MessageId=5921 +Language=English +%1 +. +MessageId=5922 +Language=English +%1 +. +MessageId=5923 +Language=English +%1 +. +MessageId=5924 +Language=English +%1 +. +MessageId=5925 +Language=English +%1 +. +MessageId=5926 +Language=English +%1 +. +MessageId=5927 +Language=English +%1 +. +MessageId=5928 +Language=English +%1 +. +MessageId=5929 +Language=English +%1 +. +MessageId=5930 +Language=English +%1 +. +MessageId=5931 +Language=English +%1 +. +MessageId=5932 +Language=English +%1 +. +MessageId=5933 +Language=English +%1 +. +MessageId=5934 +Language=English +%1 +. +MessageId=5935 +Language=English +%1 +. +MessageId=5936 +Language=English +%1 +. +MessageId=5937 +Language=English +%1 +. +MessageId=5938 +Language=English +%1 +. +MessageId=5939 +Language=English +%1 +. +MessageId=5940 +Language=English +%1 +. +MessageId=5941 +Language=English +%1 +. +MessageId=5942 +Language=English +%1 +. +MessageId=5943 +Language=English +%1 +. +MessageId=5944 +Language=English +%1 +. +MessageId=5945 +Language=English +%1 +. +MessageId=5946 +Language=English +%1 +. +MessageId=5947 +Language=English +%1 +. +MessageId=5948 +Language=English +%1 +. +MessageId=5949 +Language=English +%1 +. +MessageId=5950 +Language=English +%1 +. +MessageId=5951 +Language=English +%1 +. +MessageId=5952 +Language=English +%1 +. +MessageId=5953 +Language=English +%1 +. +MessageId=5954 +Language=English +%1 +. +MessageId=5955 +Language=English +%1 +. +MessageId=5956 +Language=English +%1 +. +MessageId=5957 +Language=English +%1 +. +MessageId=5958 +Language=English +%1 +. +MessageId=5959 +Language=English +%1 +. +MessageId=5960 +Language=English +%1 +. +MessageId=5961 +Language=English +%1 +. +MessageId=5962 +Language=English +%1 +. +MessageId=5963 +Language=English +%1 +. +MessageId=5964 +Language=English +%1 +. +MessageId=5965 +Language=English +%1 +. +MessageId=5966 +Language=English +%1 +. +MessageId=5967 +Language=English +%1 +. +MessageId=5968 +Language=English +%1 +. +MessageId=5969 +Language=English +%1 +. +MessageId=5970 +Language=English +%1 +. +MessageId=5971 +Language=English +%1 +. +MessageId=5972 +Language=English +%1 +. +MessageId=5973 +Language=English +%1 +. +MessageId=5974 +Language=English +%1 +. +MessageId=5975 +Language=English +%1 +. +MessageId=5976 +Language=English +%1 +. +MessageId=5977 +Language=English +%1 +. +MessageId=5978 +Language=English +%1 +. +MessageId=5979 +Language=English +%1 +. +MessageId=5980 +Language=English +%1 +. +MessageId=5981 +Language=English +%1 +. +MessageId=5982 +Language=English +%1 +. +MessageId=5983 +Language=English +%1 +. +MessageId=5984 +Language=English +%1 +. +MessageId=5985 +Language=English +%1 +. +MessageId=5986 +Language=English +%1 +. +MessageId=5987 +Language=English +%1 +. +MessageId=5988 +Language=English +%1 +. +MessageId=5989 +Language=English +%1 +. +MessageId=5990 +Language=English +%1 +. +MessageId=5991 +Language=English +%1 +. +MessageId=5992 +Language=English +%1 +. +MessageId=5993 +Language=English +%1 +. +MessageId=5994 +Language=English +%1 +. +MessageId=5995 +Language=English +%1 +. +MessageId=5996 +Language=English +%1 +. +MessageId=5997 +Language=English +%1 +. +MessageId=5998 +Language=English +%1 +. +MessageId=5999 +Language=English +%1 +. +MessageId=6000 +Language=English +%1 +. +MessageId=6001 +Language=English +%1 +. +MessageId=6002 +Language=English +%1 +. +MessageId=6003 +Language=English +%1 +. +MessageId=6004 +Language=English +%1 +. +MessageId=6005 +Language=English +%1 +. +MessageId=6006 +Language=English +%1 +. +MessageId=6007 +Language=English +%1 +. +MessageId=6008 +Language=English +%1 +. +MessageId=6009 +Language=English +%1 +. +MessageId=6010 +Language=English +%1 +. +MessageId=6011 +Language=English +%1 +. +MessageId=6012 +Language=English +%1 +. +MessageId=6013 +Language=English +%1 +. +MessageId=6014 +Language=English +%1 +. +MessageId=6015 +Language=English +%1 +. +MessageId=6016 +Language=English +%1 +. +MessageId=6017 +Language=English +%1 +. +MessageId=6018 +Language=English +%1 +. +MessageId=6019 +Language=English +%1 +. +MessageId=6020 +Language=English +%1 +. +MessageId=6021 +Language=English +%1 +. +MessageId=6022 +Language=English +%1 +. +MessageId=6023 +Language=English +%1 +. +MessageId=6024 +Language=English +%1 +. +MessageId=6025 +Language=English +%1 +. +MessageId=6026 +Language=English +%1 +. +MessageId=6027 +Language=English +%1 +. +MessageId=6028 +Language=English +%1 +. +MessageId=6029 +Language=English +%1 +. +MessageId=6030 +Language=English +%1 +. +MessageId=6031 +Language=English +%1 +. +MessageId=6032 +Language=English +%1 +. +MessageId=6033 +Language=English +%1 +. +MessageId=6034 +Language=English +%1 +. +MessageId=6035 +Language=English +%1 +. +MessageId=6036 +Language=English +%1 +. +MessageId=6037 +Language=English +%1 +. +MessageId=6038 +Language=English +%1 +. +MessageId=6039 +Language=English +%1 +. +MessageId=6040 +Language=English +%1 +. +MessageId=6041 +Language=English +%1 +. +MessageId=6042 +Language=English +%1 +. +MessageId=6043 +Language=English +%1 +. +MessageId=6044 +Language=English +%1 +. +MessageId=6045 +Language=English +%1 +. +MessageId=6046 +Language=English +%1 +. +MessageId=6047 +Language=English +%1 +. +MessageId=6048 +Language=English +%1 +. +MessageId=6049 +Language=English +%1 +. +MessageId=6050 +Language=English +%1 +. +MessageId=6051 +Language=English +%1 +. +MessageId=6052 +Language=English +%1 +. +MessageId=6053 +Language=English +%1 +. +MessageId=6054 +Language=English +%1 +. +MessageId=6055 +Language=English +%1 +. +MessageId=6056 +Language=English +%1 +. +MessageId=6057 +Language=English +%1 +. +MessageId=6058 +Language=English +%1 +. +MessageId=6059 +Language=English +%1 +. +MessageId=6060 +Language=English +%1 +. +MessageId=6061 +Language=English +%1 +. +MessageId=6062 +Language=English +%1 +. +MessageId=6063 +Language=English +%1 +. +MessageId=6064 +Language=English +%1 +. +MessageId=6065 +Language=English +%1 +. +MessageId=6066 +Language=English +%1 +. +MessageId=6067 +Language=English +%1 +. +MessageId=6068 +Language=English +%1 +. +MessageId=6069 +Language=English +%1 +. +MessageId=6070 +Language=English +%1 +. +MessageId=6071 +Language=English +%1 +. +MessageId=6072 +Language=English +%1 +. +MessageId=6073 +Language=English +%1 +. +MessageId=6074 +Language=English +%1 +. +MessageId=6075 +Language=English +%1 +. +MessageId=6076 +Language=English +%1 +. +MessageId=6077 +Language=English +%1 +. +MessageId=6078 +Language=English +%1 +. +MessageId=6079 +Language=English +%1 +. +MessageId=6080 +Language=English +%1 +. +MessageId=6081 +Language=English +%1 +. +MessageId=6082 +Language=English +%1 +. +MessageId=6083 +Language=English +%1 +. +MessageId=6084 +Language=English +%1 +. +MessageId=6085 +Language=English +%1 +. +MessageId=6086 +Language=English +%1 +. +MessageId=6087 +Language=English +%1 +. +MessageId=6088 +Language=English +%1 +. +MessageId=6089 +Language=English +%1 +. +MessageId=6090 +Language=English +%1 +. +MessageId=6091 +Language=English +%1 +. +MessageId=6092 +Language=English +%1 +. +MessageId=6093 +Language=English +%1 +. +MessageId=6094 +Language=English +%1 +. +MessageId=6095 +Language=English +%1 +. +MessageId=6096 +Language=English +%1 +. +MessageId=6097 +Language=English +%1 +. +MessageId=6098 +Language=English +%1 +. +MessageId=6099 +Language=English +%1 +. +MessageId=6100 +Language=English +%1 +. +MessageId=6101 +Language=English +%1 +. +MessageId=6102 +Language=English +%1 +. +MessageId=6103 +Language=English +%1 +. +MessageId=6104 +Language=English +%1 +. +MessageId=6105 +Language=English +%1 +. +MessageId=6106 +Language=English +%1 +. +MessageId=6107 +Language=English +%1 +. +MessageId=6108 +Language=English +%1 +. +MessageId=6109 +Language=English +%1 +. +MessageId=6110 +Language=English +%1 +. +MessageId=6111 +Language=English +%1 +. +MessageId=6112 +Language=English +%1 +. +MessageId=6113 +Language=English +%1 +. +MessageId=6114 +Language=English +%1 +. +MessageId=6115 +Language=English +%1 +. +MessageId=6116 +Language=English +%1 +. +MessageId=6117 +Language=English +%1 +. +MessageId=6118 +Language=English +%1 +. +MessageId=6119 +Language=English +%1 +. +MessageId=6120 +Language=English +%1 +. +MessageId=6121 +Language=English +%1 +. +MessageId=6122 +Language=English +%1 +. +MessageId=6123 +Language=English +%1 +. +MessageId=6124 +Language=English +%1 +. +MessageId=6125 +Language=English +%1 +. +MessageId=6126 +Language=English +%1 +. +MessageId=6127 +Language=English +%1 +. +MessageId=6128 +Language=English +%1 +. +MessageId=6129 +Language=English +%1 +. +MessageId=6130 +Language=English +%1 +. +MessageId=6131 +Language=English +%1 +. +MessageId=6132 +Language=English +%1 +. +MessageId=6133 +Language=English +%1 +. +MessageId=6134 +Language=English +%1 +. +MessageId=6135 +Language=English +%1 +. +MessageId=6136 +Language=English +%1 +. +MessageId=6137 +Language=English +%1 +. +MessageId=6138 +Language=English +%1 +. +MessageId=6139 +Language=English +%1 +. +MessageId=6140 +Language=English +%1 +. +MessageId=6141 +Language=English +%1 +. +MessageId=6142 +Language=English +%1 +. +MessageId=6143 +Language=English +%1 +. +MessageId=6144 +Language=English +%1 +. +MessageId=6145 +Language=English +%1 +. +MessageId=6146 +Language=English +%1 +. +MessageId=6147 +Language=English +%1 +. +MessageId=6148 +Language=English +%1 +. +MessageId=6149 +Language=English +%1 +. +MessageId=6150 +Language=English +%1 +. +MessageId=6151 +Language=English +%1 +. +MessageId=6152 +Language=English +%1 +. +MessageId=6153 +Language=English +%1 +. +MessageId=6154 +Language=English +%1 +. +MessageId=6155 +Language=English +%1 +. +MessageId=6156 +Language=English +%1 +. +MessageId=6157 +Language=English +%1 +. +MessageId=6158 +Language=English +%1 +. +MessageId=6159 +Language=English +%1 +. +MessageId=6160 +Language=English +%1 +. +MessageId=6161 +Language=English +%1 +. +MessageId=6162 +Language=English +%1 +. +MessageId=6163 +Language=English +%1 +. +MessageId=6164 +Language=English +%1 +. +MessageId=6165 +Language=English +%1 +. +MessageId=6166 +Language=English +%1 +. +MessageId=6167 +Language=English +%1 +. +MessageId=6168 +Language=English +%1 +. +MessageId=6169 +Language=English +%1 +. +MessageId=6170 +Language=English +%1 +. +MessageId=6171 +Language=English +%1 +. +MessageId=6172 +Language=English +%1 +. +MessageId=6173 +Language=English +%1 +. +MessageId=6174 +Language=English +%1 +. +MessageId=6175 +Language=English +%1 +. +MessageId=6176 +Language=English +%1 +. +MessageId=6177 +Language=English +%1 +. +MessageId=6178 +Language=English +%1 +. +MessageId=6179 +Language=English +%1 +. +MessageId=6180 +Language=English +%1 +. +MessageId=6181 +Language=English +%1 +. +MessageId=6182 +Language=English +%1 +. +MessageId=6183 +Language=English +%1 +. +MessageId=6184 +Language=English +%1 +. +MessageId=6185 +Language=English +%1 +. +MessageId=6186 +Language=English +%1 +. +MessageId=6187 +Language=English +%1 +. +MessageId=6188 +Language=English +%1 +. +MessageId=6189 +Language=English +%1 +. +MessageId=6190 +Language=English +%1 +. +MessageId=6191 +Language=English +%1 +. +MessageId=6192 +Language=English +%1 +. +MessageId=6193 +Language=English +%1 +. +MessageId=6194 +Language=English +%1 +. +MessageId=6195 +Language=English +%1 +. +MessageId=6196 +Language=English +%1 +. +MessageId=6197 +Language=English +%1 +. +MessageId=6198 +Language=English +%1 +. +MessageId=6199 +Language=English +%1 +. +MessageId=6200 +Language=English +%1 +. +MessageId=6201 +Language=English +%1 +. +MessageId=6202 +Language=English +%1 +. +MessageId=6203 +Language=English +%1 +. +MessageId=6204 +Language=English +%1 +. +MessageId=6205 +Language=English +%1 +. +MessageId=6206 +Language=English +%1 +. +MessageId=6207 +Language=English +%1 +. +MessageId=6208 +Language=English +%1 +. +MessageId=6209 +Language=English +%1 +. +MessageId=6210 +Language=English +%1 +. +MessageId=6211 +Language=English +%1 +. +MessageId=6212 +Language=English +%1 +. +MessageId=6213 +Language=English +%1 +. +MessageId=6214 +Language=English +%1 +. +MessageId=6215 +Language=English +%1 +. +MessageId=6216 +Language=English +%1 +. +MessageId=6217 +Language=English +%1 +. +MessageId=6218 +Language=English +%1 +. +MessageId=6219 +Language=English +%1 +. +MessageId=6220 +Language=English +%1 +. +MessageId=6221 +Language=English +%1 +. +MessageId=6222 +Language=English +%1 +. +MessageId=6223 +Language=English +%1 +. +MessageId=6224 +Language=English +%1 +. +MessageId=6225 +Language=English +%1 +. +MessageId=6226 +Language=English +%1 +. +MessageId=6227 +Language=English +%1 +. +MessageId=6228 +Language=English +%1 +. +MessageId=6229 +Language=English +%1 +. +MessageId=6230 +Language=English +%1 +. +MessageId=6231 +Language=English +%1 +. +MessageId=6232 +Language=English +%1 +. +MessageId=6233 +Language=English +%1 +. +MessageId=6234 +Language=English +%1 +. +MessageId=6235 +Language=English +%1 +. +MessageId=6236 +Language=English +%1 +. +MessageId=6237 +Language=English +%1 +. +MessageId=6238 +Language=English +%1 +. +MessageId=6239 +Language=English +%1 +. +MessageId=6240 +Language=English +%1 +. +MessageId=6241 +Language=English +%1 +. +MessageId=6242 +Language=English +%1 +. +MessageId=6243 +Language=English +%1 +. +MessageId=6244 +Language=English +%1 +. +MessageId=6245 +Language=English +%1 +. +MessageId=6246 +Language=English +%1 +. +MessageId=6247 +Language=English +%1 +. +MessageId=6248 +Language=English +%1 +. +MessageId=6249 +Language=English +%1 +. +MessageId=6250 +Language=English +%1 +. +MessageId=6251 +Language=English +%1 +. +MessageId=6252 +Language=English +%1 +. +MessageId=6253 +Language=English +%1 +. +MessageId=6254 +Language=English +%1 +. +MessageId=6255 +Language=English +%1 +. +MessageId=6256 +Language=English +%1 +. +MessageId=6257 +Language=English +%1 +. +MessageId=6258 +Language=English +%1 +. +MessageId=6259 +Language=English +%1 +. +MessageId=6260 +Language=English +%1 +. +MessageId=6261 +Language=English +%1 +. +MessageId=6262 +Language=English +%1 +. +MessageId=6263 +Language=English +%1 +. +MessageId=6264 +Language=English +%1 +. +MessageId=6265 +Language=English +%1 +. +MessageId=6266 +Language=English +%1 +. +MessageId=6267 +Language=English +%1 +. +MessageId=6268 +Language=English +%1 +. +MessageId=6269 +Language=English +%1 +. +MessageId=6270 +Language=English +%1 +. +MessageId=6271 +Language=English +%1 +. +MessageId=6272 +Language=English +%1 +. +MessageId=6273 +Language=English +%1 +. +MessageId=6274 +Language=English +%1 +. +MessageId=6275 +Language=English +%1 +. +MessageId=6276 +Language=English +%1 +. +MessageId=6277 +Language=English +%1 +. +MessageId=6278 +Language=English +%1 +. +MessageId=6279 +Language=English +%1 +. +MessageId=6280 +Language=English +%1 +. +MessageId=6281 +Language=English +%1 +. +MessageId=6282 +Language=English +%1 +. +MessageId=6283 +Language=English +%1 +. +MessageId=6284 +Language=English +%1 +. +MessageId=6285 +Language=English +%1 +. +MessageId=6286 +Language=English +%1 +. +MessageId=6287 +Language=English +%1 +. +MessageId=6288 +Language=English +%1 +. +MessageId=6289 +Language=English +%1 +. +MessageId=6290 +Language=English +%1 +. +MessageId=6291 +Language=English +%1 +. +MessageId=6292 +Language=English +%1 +. +MessageId=6293 +Language=English +%1 +. +MessageId=6294 +Language=English +%1 +. +MessageId=6295 +Language=English +%1 +. +MessageId=6296 +Language=English +%1 +. +MessageId=6297 +Language=English +%1 +. +MessageId=6298 +Language=English +%1 +. +MessageId=6299 +Language=English +%1 +. +MessageId=6300 +Language=English +%1 +. +MessageId=6301 +Language=English +%1 +. +MessageId=6302 +Language=English +%1 +. +MessageId=6303 +Language=English +%1 +. +MessageId=6304 +Language=English +%1 +. +MessageId=6305 +Language=English +%1 +. +MessageId=6306 +Language=English +%1 +. +MessageId=6307 +Language=English +%1 +. +MessageId=6308 +Language=English +%1 +. +MessageId=6309 +Language=English +%1 +. +MessageId=6310 +Language=English +%1 +. +MessageId=6311 +Language=English +%1 +. +MessageId=6312 +Language=English +%1 +. +MessageId=6313 +Language=English +%1 +. +MessageId=6314 +Language=English +%1 +. +MessageId=6315 +Language=English +%1 +. +MessageId=6316 +Language=English +%1 +. +MessageId=6317 +Language=English +%1 +. +MessageId=6318 +Language=English +%1 +. +MessageId=6319 +Language=English +%1 +. +MessageId=6320 +Language=English +%1 +. +MessageId=6321 +Language=English +%1 +. +MessageId=6322 +Language=English +%1 +. +MessageId=6323 +Language=English +%1 +. +MessageId=6324 +Language=English +%1 +. +MessageId=6325 +Language=English +%1 +. +MessageId=6326 +Language=English +%1 +. +MessageId=6327 +Language=English +%1 +. +MessageId=6328 +Language=English +%1 +. +MessageId=6329 +Language=English +%1 +. +MessageId=6330 +Language=English +%1 +. +MessageId=6331 +Language=English +%1 +. +MessageId=6332 +Language=English +%1 +. +MessageId=6333 +Language=English +%1 +. +MessageId=6334 +Language=English +%1 +. +MessageId=6335 +Language=English +%1 +. +MessageId=6336 +Language=English +%1 +. +MessageId=6337 +Language=English +%1 +. +MessageId=6338 +Language=English +%1 +. +MessageId=6339 +Language=English +%1 +. +MessageId=6340 +Language=English +%1 +. +MessageId=6341 +Language=English +%1 +. +MessageId=6342 +Language=English +%1 +. +MessageId=6343 +Language=English +%1 +. +MessageId=6344 +Language=English +%1 +. +MessageId=6345 +Language=English +%1 +. +MessageId=6346 +Language=English +%1 +. +MessageId=6347 +Language=English +%1 +. +MessageId=6348 +Language=English +%1 +. +MessageId=6349 +Language=English +%1 +. +MessageId=6350 +Language=English +%1 +. +MessageId=6351 +Language=English +%1 +. +MessageId=6352 +Language=English +%1 +. +MessageId=6353 +Language=English +%1 +. +MessageId=6354 +Language=English +%1 +. +MessageId=6355 +Language=English +%1 +. +MessageId=6356 +Language=English +%1 +. +MessageId=6357 +Language=English +%1 +. +MessageId=6358 +Language=English +%1 +. +MessageId=6359 +Language=English +%1 +. +MessageId=6360 +Language=English +%1 +. +MessageId=6361 +Language=English +%1 +. +MessageId=6362 +Language=English +%1 +. +MessageId=6363 +Language=English +%1 +. +MessageId=6364 +Language=English +%1 +. +MessageId=6365 +Language=English +%1 +. +MessageId=6366 +Language=English +%1 +. +MessageId=6367 +Language=English +%1 +. +MessageId=6368 +Language=English +%1 +. +MessageId=6369 +Language=English +%1 +. +MessageId=6370 +Language=English +%1 +. +MessageId=6371 +Language=English +%1 +. +MessageId=6372 +Language=English +%1 +. +MessageId=6373 +Language=English +%1 +. +MessageId=6374 +Language=English +%1 +. +MessageId=6375 +Language=English +%1 +. +MessageId=6376 +Language=English +%1 +. +MessageId=6377 +Language=English +%1 +. +MessageId=6378 +Language=English +%1 +. +MessageId=6379 +Language=English +%1 +. +MessageId=6380 +Language=English +%1 +. +MessageId=6381 +Language=English +%1 +. +MessageId=6382 +Language=English +%1 +. +MessageId=6383 +Language=English +%1 +. +MessageId=6384 +Language=English +%1 +. +MessageId=6385 +Language=English +%1 +. +MessageId=6386 +Language=English +%1 +. +MessageId=6387 +Language=English +%1 +. +MessageId=6388 +Language=English +%1 +. +MessageId=6389 +Language=English +%1 +. +MessageId=6390 +Language=English +%1 +. +MessageId=6391 +Language=English +%1 +. +MessageId=6392 +Language=English +%1 +. +MessageId=6393 +Language=English +%1 +. +MessageId=6394 +Language=English +%1 +. +MessageId=6395 +Language=English +%1 +. +MessageId=6396 +Language=English +%1 +. +MessageId=6397 +Language=English +%1 +. +MessageId=6398 +Language=English +%1 +. +MessageId=6399 +Language=English +%1 +. +MessageId=6400 +Language=English +%1 +. +MessageId=6401 +Language=English +%1 +. +MessageId=6402 +Language=English +%1 +. +MessageId=6403 +Language=English +%1 +. +MessageId=6404 +Language=English +%1 +. +MessageId=6405 +Language=English +%1 +. +MessageId=6406 +Language=English +%1 +. +MessageId=6407 +Language=English +%1 +. +MessageId=6408 +Language=English +%1 +. +MessageId=6409 +Language=English +%1 +. +MessageId=6410 +Language=English +%1 +. +MessageId=6411 +Language=English +%1 +. +MessageId=6412 +Language=English +%1 +. +MessageId=6413 +Language=English +%1 +. +MessageId=6414 +Language=English +%1 +. +MessageId=6415 +Language=English +%1 +. +MessageId=6416 +Language=English +%1 +. +MessageId=6417 +Language=English +%1 +. +MessageId=6418 +Language=English +%1 +. +MessageId=6419 +Language=English +%1 +. +MessageId=6420 +Language=English +%1 +. +MessageId=6421 +Language=English +%1 +. +MessageId=6422 +Language=English +%1 +. +MessageId=6423 +Language=English +%1 +. +MessageId=6424 +Language=English +%1 +. +MessageId=6425 +Language=English +%1 +. +MessageId=6426 +Language=English +%1 +. +MessageId=6427 +Language=English +%1 +. +MessageId=6428 +Language=English +%1 +. +MessageId=6429 +Language=English +%1 +. +MessageId=6430 +Language=English +%1 +. +MessageId=6431 +Language=English +%1 +. +MessageId=6432 +Language=English +%1 +. +MessageId=6433 +Language=English +%1 +. +MessageId=6434 +Language=English +%1 +. +MessageId=6435 +Language=English +%1 +. +MessageId=6436 +Language=English +%1 +. +MessageId=6437 +Language=English +%1 +. +MessageId=6438 +Language=English +%1 +. +MessageId=6439 +Language=English +%1 +. +MessageId=6440 +Language=English +%1 +. +MessageId=6441 +Language=English +%1 +. +MessageId=6442 +Language=English +%1 +. +MessageId=6443 +Language=English +%1 +. +MessageId=6444 +Language=English +%1 +. +MessageId=6445 +Language=English +%1 +. +MessageId=6446 +Language=English +%1 +. +MessageId=6447 +Language=English +%1 +. +MessageId=6448 +Language=English +%1 +. +MessageId=6449 +Language=English +%1 +. +MessageId=6450 +Language=English +%1 +. +MessageId=6451 +Language=English +%1 +. +MessageId=6452 +Language=English +%1 +. +MessageId=6453 +Language=English +%1 +. +MessageId=6454 +Language=English +%1 +. +MessageId=6455 +Language=English +%1 +. +MessageId=6456 +Language=English +%1 +. +MessageId=6457 +Language=English +%1 +. +MessageId=6458 +Language=English +%1 +. +MessageId=6459 +Language=English +%1 +. +MessageId=6460 +Language=English +%1 +. +MessageId=6461 +Language=English +%1 +. +MessageId=6462 +Language=English +%1 +. +MessageId=6463 +Language=English +%1 +. +MessageId=6464 +Language=English +%1 +. +MessageId=6465 +Language=English +%1 +. +MessageId=6466 +Language=English +%1 +. +MessageId=6467 +Language=English +%1 +. +MessageId=6468 +Language=English +%1 +. +MessageId=6469 +Language=English +%1 +. +MessageId=6470 +Language=English +%1 +. +MessageId=6471 +Language=English +%1 +. +MessageId=6472 +Language=English +%1 +. +MessageId=6473 +Language=English +%1 +. +MessageId=6474 +Language=English +%1 +. +MessageId=6475 +Language=English +%1 +. +MessageId=6476 +Language=English +%1 +. +MessageId=6477 +Language=English +%1 +. +MessageId=6478 +Language=English +%1 +. +MessageId=6479 +Language=English +%1 +. +MessageId=6480 +Language=English +%1 +. +MessageId=6481 +Language=English +%1 +. +MessageId=6482 +Language=English +%1 +. +MessageId=6483 +Language=English +%1 +. +MessageId=6484 +Language=English +%1 +. +MessageId=6485 +Language=English +%1 +. +MessageId=6486 +Language=English +%1 +. +MessageId=6487 +Language=English +%1 +. +MessageId=6488 +Language=English +%1 +. +MessageId=6489 +Language=English +%1 +. +MessageId=6490 +Language=English +%1 +. +MessageId=6491 +Language=English +%1 +. +MessageId=6492 +Language=English +%1 +. +MessageId=6493 +Language=English +%1 +. +MessageId=6494 +Language=English +%1 +. +MessageId=6495 +Language=English +%1 +. +MessageId=6496 +Language=English +%1 +. +MessageId=6497 +Language=English +%1 +. +MessageId=6498 +Language=English +%1 +. +MessageId=6499 +Language=English +%1 +. +MessageId=6500 +Language=English +%1 +. +MessageId=6501 +Language=English +%1 +. +MessageId=6502 +Language=English +%1 +. +MessageId=6503 +Language=English +%1 +. +MessageId=6504 +Language=English +%1 +. +MessageId=6505 +Language=English +%1 +. +MessageId=6506 +Language=English +%1 +. +MessageId=6507 +Language=English +%1 +. +MessageId=6508 +Language=English +%1 +. +MessageId=6509 +Language=English +%1 +. +MessageId=6510 +Language=English +%1 +. +MessageId=6511 +Language=English +%1 +. +MessageId=6512 +Language=English +%1 +. +MessageId=6513 +Language=English +%1 +. +MessageId=6514 +Language=English +%1 +. +MessageId=6515 +Language=English +%1 +. +MessageId=6516 +Language=English +%1 +. +MessageId=6517 +Language=English +%1 +. +MessageId=6518 +Language=English +%1 +. +MessageId=6519 +Language=English +%1 +. +MessageId=6520 +Language=English +%1 +. +MessageId=6521 +Language=English +%1 +. +MessageId=6522 +Language=English +%1 +. +MessageId=6523 +Language=English +%1 +. +MessageId=6524 +Language=English +%1 +. +MessageId=6525 +Language=English +%1 +. +MessageId=6526 +Language=English +%1 +. +MessageId=6527 +Language=English +%1 +. +MessageId=6528 +Language=English +%1 +. +MessageId=6529 +Language=English +%1 +. +MessageId=6530 +Language=English +%1 +. +MessageId=6531 +Language=English +%1 +. +MessageId=6532 +Language=English +%1 +. +MessageId=6533 +Language=English +%1 +. +MessageId=6534 +Language=English +%1 +. +MessageId=6535 +Language=English +%1 +. +MessageId=6536 +Language=English +%1 +. +MessageId=6537 +Language=English +%1 +. +MessageId=6538 +Language=English +%1 +. +MessageId=6539 +Language=English +%1 +. +MessageId=6540 +Language=English +%1 +. +MessageId=6541 +Language=English +%1 +. +MessageId=6542 +Language=English +%1 +. +MessageId=6543 +Language=English +%1 +. +MessageId=6544 +Language=English +%1 +. +MessageId=6545 +Language=English +%1 +. +MessageId=6546 +Language=English +%1 +. +MessageId=6547 +Language=English +%1 +. +MessageId=6548 +Language=English +%1 +. +MessageId=6549 +Language=English +%1 +. +MessageId=6550 +Language=English +%1 +. +MessageId=6551 +Language=English +%1 +. +MessageId=6552 +Language=English +%1 +. +MessageId=6553 +Language=English +%1 +. +MessageId=6554 +Language=English +%1 +. +MessageId=6555 +Language=English +%1 +. +MessageId=6556 +Language=English +%1 +. +MessageId=6557 +Language=English +%1 +. +MessageId=6558 +Language=English +%1 +. +MessageId=6559 +Language=English +%1 +. +MessageId=6560 +Language=English +%1 +. +MessageId=6561 +Language=English +%1 +. +MessageId=6562 +Language=English +%1 +. +MessageId=6563 +Language=English +%1 +. +MessageId=6564 +Language=English +%1 +. +MessageId=6565 +Language=English +%1 +. +MessageId=6566 +Language=English +%1 +. +MessageId=6567 +Language=English +%1 +. +MessageId=6568 +Language=English +%1 +. +MessageId=6569 +Language=English +%1 +. +MessageId=6570 +Language=English +%1 +. +MessageId=6571 +Language=English +%1 +. +MessageId=6572 +Language=English +%1 +. +MessageId=6573 +Language=English +%1 +. +MessageId=6574 +Language=English +%1 +. +MessageId=6575 +Language=English +%1 +. +MessageId=6576 +Language=English +%1 +. +MessageId=6577 +Language=English +%1 +. +MessageId=6578 +Language=English +%1 +. +MessageId=6579 +Language=English +%1 +. +MessageId=6580 +Language=English +%1 +. +MessageId=6581 +Language=English +%1 +. +MessageId=6582 +Language=English +%1 +. +MessageId=6583 +Language=English +%1 +. +MessageId=6584 +Language=English +%1 +. +MessageId=6585 +Language=English +%1 +. +MessageId=6586 +Language=English +%1 +. +MessageId=6587 +Language=English +%1 +. +MessageId=6588 +Language=English +%1 +. +MessageId=6589 +Language=English +%1 +. +MessageId=6590 +Language=English +%1 +. +MessageId=6591 +Language=English +%1 +. +MessageId=6592 +Language=English +%1 +. +MessageId=6593 +Language=English +%1 +. +MessageId=6594 +Language=English +%1 +. +MessageId=6595 +Language=English +%1 +. +MessageId=6596 +Language=English +%1 +. +MessageId=6597 +Language=English +%1 +. +MessageId=6598 +Language=English +%1 +. +MessageId=6599 +Language=English +%1 +. +MessageId=6600 +Language=English +%1 +. +MessageId=6601 +Language=English +%1 +. +MessageId=6602 +Language=English +%1 +. +MessageId=6603 +Language=English +%1 +. +MessageId=6604 +Language=English +%1 +. +MessageId=6605 +Language=English +%1 +. +MessageId=6606 +Language=English +%1 +. +MessageId=6607 +Language=English +%1 +. +MessageId=6608 +Language=English +%1 +. +MessageId=6609 +Language=English +%1 +. +MessageId=6610 +Language=English +%1 +. +MessageId=6611 +Language=English +%1 +. +MessageId=6612 +Language=English +%1 +. +MessageId=6613 +Language=English +%1 +. +MessageId=6614 +Language=English +%1 +. +MessageId=6615 +Language=English +%1 +. +MessageId=6616 +Language=English +%1 +. +MessageId=6617 +Language=English +%1 +. +MessageId=6618 +Language=English +%1 +. +MessageId=6619 +Language=English +%1 +. +MessageId=6620 +Language=English +%1 +. +MessageId=6621 +Language=English +%1 +. +MessageId=6622 +Language=English +%1 +. +MessageId=6623 +Language=English +%1 +. +MessageId=6624 +Language=English +%1 +. +MessageId=6625 +Language=English +%1 +. +MessageId=6626 +Language=English +%1 +. +MessageId=6627 +Language=English +%1 +. +MessageId=6628 +Language=English +%1 +. +MessageId=6629 +Language=English +%1 +. +MessageId=6630 +Language=English +%1 +. +MessageId=6631 +Language=English +%1 +. +MessageId=6632 +Language=English +%1 +. +MessageId=6633 +Language=English +%1 +. +MessageId=6634 +Language=English +%1 +. +MessageId=6635 +Language=English +%1 +. +MessageId=6636 +Language=English +%1 +. +MessageId=6637 +Language=English +%1 +. +MessageId=6638 +Language=English +%1 +. +MessageId=6639 +Language=English +%1 +. +MessageId=6640 +Language=English +%1 +. +MessageId=6641 +Language=English +%1 +. +MessageId=6642 +Language=English +%1 +. +MessageId=6643 +Language=English +%1 +. +MessageId=6644 +Language=English +%1 +. +MessageId=6645 +Language=English +%1 +. +MessageId=6646 +Language=English +%1 +. +MessageId=6647 +Language=English +%1 +. +MessageId=6648 +Language=English +%1 +. +MessageId=6649 +Language=English +%1 +. +MessageId=6650 +Language=English +%1 +. +MessageId=6651 +Language=English +%1 +. +MessageId=6652 +Language=English +%1 +. +MessageId=6653 +Language=English +%1 +. +MessageId=6654 +Language=English +%1 +. +MessageId=6655 +Language=English +%1 +. +MessageId=6656 +Language=English +%1 +. +MessageId=6657 +Language=English +%1 +. +MessageId=6658 +Language=English +%1 +. +MessageId=6659 +Language=English +%1 +. +MessageId=6660 +Language=English +%1 +. +MessageId=6661 +Language=English +%1 +. +MessageId=6662 +Language=English +%1 +. +MessageId=6663 +Language=English +%1 +. +MessageId=6664 +Language=English +%1 +. +MessageId=6665 +Language=English +%1 +. +MessageId=6666 +Language=English +%1 +. +MessageId=6667 +Language=English +%1 +. +MessageId=6668 +Language=English +%1 +. +MessageId=6669 +Language=English +%1 +. +MessageId=6670 +Language=English +%1 +. +MessageId=6671 +Language=English +%1 +. +MessageId=6672 +Language=English +%1 +. +MessageId=6673 +Language=English +%1 +. +MessageId=6674 +Language=English +%1 +. +MessageId=6675 +Language=English +%1 +. +MessageId=6676 +Language=English +%1 +. +MessageId=6677 +Language=English +%1 +. +MessageId=6678 +Language=English +%1 +. +MessageId=6679 +Language=English +%1 +. +MessageId=6680 +Language=English +%1 +. +MessageId=6681 +Language=English +%1 +. +MessageId=6682 +Language=English +%1 +. +MessageId=6683 +Language=English +%1 +. +MessageId=6684 +Language=English +%1 +. +MessageId=6685 +Language=English +%1 +. +MessageId=6686 +Language=English +%1 +. +MessageId=6687 +Language=English +%1 +. +MessageId=6688 +Language=English +%1 +. +MessageId=6689 +Language=English +%1 +. +MessageId=6690 +Language=English +%1 +. +MessageId=6691 +Language=English +%1 +. +MessageId=6692 +Language=English +%1 +. +MessageId=6693 +Language=English +%1 +. +MessageId=6694 +Language=English +%1 +. +MessageId=6695 +Language=English +%1 +. +MessageId=6696 +Language=English +%1 +. +MessageId=6697 +Language=English +%1 +. +MessageId=6698 +Language=English +%1 +. +MessageId=6699 +Language=English +%1 +. +MessageId=6700 +Language=English +%1 +. +MessageId=6701 +Language=English +%1 +. +MessageId=6702 +Language=English +%1 +. +MessageId=6703 +Language=English +%1 +. +MessageId=6704 +Language=English +%1 +. +MessageId=6705 +Language=English +%1 +. +MessageId=6706 +Language=English +%1 +. +MessageId=6707 +Language=English +%1 +. +MessageId=6708 +Language=English +%1 +. +MessageId=6709 +Language=English +%1 +. +MessageId=6710 +Language=English +%1 +. +MessageId=6711 +Language=English +%1 +. +MessageId=6712 +Language=English +%1 +. +MessageId=6713 +Language=English +%1 +. +MessageId=6714 +Language=English +%1 +. +MessageId=6715 +Language=English +%1 +. +MessageId=6716 +Language=English +%1 +. +MessageId=6717 +Language=English +%1 +. +MessageId=6718 +Language=English +%1 +. +MessageId=6719 +Language=English +%1 +. +MessageId=6720 +Language=English +%1 +. +MessageId=6721 +Language=English +%1 +. +MessageId=6722 +Language=English +%1 +. +MessageId=6723 +Language=English +%1 +. +MessageId=6724 +Language=English +%1 +. +MessageId=6725 +Language=English +%1 +. +MessageId=6726 +Language=English +%1 +. +MessageId=6727 +Language=English +%1 +. +MessageId=6728 +Language=English +%1 +. +MessageId=6729 +Language=English +%1 +. +MessageId=6730 +Language=English +%1 +. +MessageId=6731 +Language=English +%1 +. +MessageId=6732 +Language=English +%1 +. +MessageId=6733 +Language=English +%1 +. +MessageId=6734 +Language=English +%1 +. +MessageId=6735 +Language=English +%1 +. +MessageId=6736 +Language=English +%1 +. +MessageId=6737 +Language=English +%1 +. +MessageId=6738 +Language=English +%1 +. +MessageId=6739 +Language=English +%1 +. +MessageId=6740 +Language=English +%1 +. +MessageId=6741 +Language=English +%1 +. +MessageId=6742 +Language=English +%1 +. +MessageId=6743 +Language=English +%1 +. +MessageId=6744 +Language=English +%1 +. +MessageId=6745 +Language=English +%1 +. +MessageId=6746 +Language=English +%1 +. +MessageId=6747 +Language=English +%1 +. +MessageId=6748 +Language=English +%1 +. +MessageId=6749 +Language=English +%1 +. +MessageId=6750 +Language=English +%1 +. +MessageId=6751 +Language=English +%1 +. +MessageId=6752 +Language=English +%1 +. +MessageId=6753 +Language=English +%1 +. +MessageId=6754 +Language=English +%1 +. +MessageId=6755 +Language=English +%1 +. +MessageId=6756 +Language=English +%1 +. +MessageId=6757 +Language=English +%1 +. +MessageId=6758 +Language=English +%1 +. +MessageId=6759 +Language=English +%1 +. +MessageId=6760 +Language=English +%1 +. +MessageId=6761 +Language=English +%1 +. +MessageId=6762 +Language=English +%1 +. +MessageId=6763 +Language=English +%1 +. +MessageId=6764 +Language=English +%1 +. +MessageId=6765 +Language=English +%1 +. +MessageId=6766 +Language=English +%1 +. +MessageId=6767 +Language=English +%1 +. +MessageId=6768 +Language=English +%1 +. +MessageId=6769 +Language=English +%1 +. +MessageId=6770 +Language=English +%1 +. +MessageId=6771 +Language=English +%1 +. +MessageId=6772 +Language=English +%1 +. +MessageId=6773 +Language=English +%1 +. +MessageId=6774 +Language=English +%1 +. +MessageId=6775 +Language=English +%1 +. +MessageId=6776 +Language=English +%1 +. +MessageId=6777 +Language=English +%1 +. +MessageId=6778 +Language=English +%1 +. +MessageId=6779 +Language=English +%1 +. +MessageId=6780 +Language=English +%1 +. +MessageId=6781 +Language=English +%1 +. +MessageId=6782 +Language=English +%1 +. +MessageId=6783 +Language=English +%1 +. +MessageId=6784 +Language=English +%1 +. +MessageId=6785 +Language=English +%1 +. +MessageId=6786 +Language=English +%1 +. +MessageId=6787 +Language=English +%1 +. +MessageId=6788 +Language=English +%1 +. +MessageId=6789 +Language=English +%1 +. +MessageId=6790 +Language=English +%1 +. +MessageId=6791 +Language=English +%1 +. +MessageId=6792 +Language=English +%1 +. +MessageId=6793 +Language=English +%1 +. +MessageId=6794 +Language=English +%1 +. +MessageId=6795 +Language=English +%1 +. +MessageId=6796 +Language=English +%1 +. +MessageId=6797 +Language=English +%1 +. +MessageId=6798 +Language=English +%1 +. +MessageId=6799 +Language=English +%1 +. +MessageId=6800 +Language=English +%1 +. +MessageId=6801 +Language=English +%1 +. +MessageId=6802 +Language=English +%1 +. +MessageId=6803 +Language=English +%1 +. +MessageId=6804 +Language=English +%1 +. +MessageId=6805 +Language=English +%1 +. +MessageId=6806 +Language=English +%1 +. +MessageId=6807 +Language=English +%1 +. +MessageId=6808 +Language=English +%1 +. +MessageId=6809 +Language=English +%1 +. +MessageId=6810 +Language=English +%1 +. +MessageId=6811 +Language=English +%1 +. +MessageId=6812 +Language=English +%1 +. +MessageId=6813 +Language=English +%1 +. +MessageId=6814 +Language=English +%1 +. +MessageId=6815 +Language=English +%1 +. +MessageId=6816 +Language=English +%1 +. +MessageId=6817 +Language=English +%1 +. +MessageId=6818 +Language=English +%1 +. +MessageId=6819 +Language=English +%1 +. +MessageId=6820 +Language=English +%1 +. +MessageId=6821 +Language=English +%1 +. +MessageId=6822 +Language=English +%1 +. +MessageId=6823 +Language=English +%1 +. +MessageId=6824 +Language=English +%1 +. +MessageId=6825 +Language=English +%1 +. +MessageId=6826 +Language=English +%1 +. +MessageId=6827 +Language=English +%1 +. +MessageId=6828 +Language=English +%1 +. +MessageId=6829 +Language=English +%1 +. +MessageId=6830 +Language=English +%1 +. +MessageId=6831 +Language=English +%1 +. +MessageId=6832 +Language=English +%1 +. +MessageId=6833 +Language=English +%1 +. +MessageId=6834 +Language=English +%1 +. +MessageId=6835 +Language=English +%1 +. +MessageId=6836 +Language=English +%1 +. +MessageId=6837 +Language=English +%1 +. +MessageId=6838 +Language=English +%1 +. +MessageId=6839 +Language=English +%1 +. +MessageId=6840 +Language=English +%1 +. +MessageId=6841 +Language=English +%1 +. +MessageId=6842 +Language=English +%1 +. +MessageId=6843 +Language=English +%1 +. +MessageId=6844 +Language=English +%1 +. +MessageId=6845 +Language=English +%1 +. +MessageId=6846 +Language=English +%1 +. +MessageId=6847 +Language=English +%1 +. +MessageId=6848 +Language=English +%1 +. +MessageId=6849 +Language=English +%1 +. +MessageId=6850 +Language=English +%1 +. +MessageId=6851 +Language=English +%1 +. +MessageId=6852 +Language=English +%1 +. +MessageId=6853 +Language=English +%1 +. +MessageId=6854 +Language=English +%1 +. +MessageId=6855 +Language=English +%1 +. +MessageId=6856 +Language=English +%1 +. +MessageId=6857 +Language=English +%1 +. +MessageId=6858 +Language=English +%1 +. +MessageId=6859 +Language=English +%1 +. +MessageId=6860 +Language=English +%1 +. +MessageId=6861 +Language=English +%1 +. +MessageId=6862 +Language=English +%1 +. +MessageId=6863 +Language=English +%1 +. +MessageId=6864 +Language=English +%1 +. +MessageId=6865 +Language=English +%1 +. +MessageId=6866 +Language=English +%1 +. +MessageId=6867 +Language=English +%1 +. +MessageId=6868 +Language=English +%1 +. +MessageId=6869 +Language=English +%1 +. +MessageId=6870 +Language=English +%1 +. +MessageId=6871 +Language=English +%1 +. +MessageId=6872 +Language=English +%1 +. +MessageId=6873 +Language=English +%1 +. +MessageId=6874 +Language=English +%1 +. +MessageId=6875 +Language=English +%1 +. +MessageId=6876 +Language=English +%1 +. +MessageId=6877 +Language=English +%1 +. +MessageId=6878 +Language=English +%1 +. +MessageId=6879 +Language=English +%1 +. +MessageId=6880 +Language=English +%1 +. +MessageId=6881 +Language=English +%1 +. +MessageId=6882 +Language=English +%1 +. +MessageId=6883 +Language=English +%1 +. +MessageId=6884 +Language=English +%1 +. +MessageId=6885 +Language=English +%1 +. +MessageId=6886 +Language=English +%1 +. +MessageId=6887 +Language=English +%1 +. +MessageId=6888 +Language=English +%1 +. +MessageId=6889 +Language=English +%1 +. +MessageId=6890 +Language=English +%1 +. +MessageId=6891 +Language=English +%1 +. +MessageId=6892 +Language=English +%1 +. +MessageId=6893 +Language=English +%1 +. +MessageId=6894 +Language=English +%1 +. +MessageId=6895 +Language=English +%1 +. +MessageId=6896 +Language=English +%1 +. +MessageId=6897 +Language=English +%1 +. +MessageId=6898 +Language=English +%1 +. +MessageId=6899 +Language=English +%1 +. +MessageId=6900 +Language=English +%1 +. +MessageId=6901 +Language=English +%1 +. +MessageId=6902 +Language=English +%1 +. +MessageId=6903 +Language=English +%1 +. +MessageId=6904 +Language=English +%1 +. +MessageId=6905 +Language=English +%1 +. +MessageId=6906 +Language=English +%1 +. +MessageId=6907 +Language=English +%1 +. +MessageId=6908 +Language=English +%1 +. +MessageId=6909 +Language=English +%1 +. +MessageId=6910 +Language=English +%1 +. +MessageId=6911 +Language=English +%1 +. +MessageId=6912 +Language=English +%1 +. +MessageId=6913 +Language=English +%1 +. +MessageId=6914 +Language=English +%1 +. +MessageId=6915 +Language=English +%1 +. +MessageId=6916 +Language=English +%1 +. +MessageId=6917 +Language=English +%1 +. +MessageId=6918 +Language=English +%1 +. +MessageId=6919 +Language=English +%1 +. +MessageId=6920 +Language=English +%1 +. +MessageId=6921 +Language=English +%1 +. +MessageId=6922 +Language=English +%1 +. +MessageId=6923 +Language=English +%1 +. +MessageId=6924 +Language=English +%1 +. +MessageId=6925 +Language=English +%1 +. +MessageId=6926 +Language=English +%1 +. +MessageId=6927 +Language=English +%1 +. +MessageId=6928 +Language=English +%1 +. +MessageId=6929 +Language=English +%1 +. +MessageId=6930 +Language=English +%1 +. +MessageId=6931 +Language=English +%1 +. +MessageId=6932 +Language=English +%1 +. +MessageId=6933 +Language=English +%1 +. +MessageId=6934 +Language=English +%1 +. +MessageId=6935 +Language=English +%1 +. +MessageId=6936 +Language=English +%1 +. +MessageId=6937 +Language=English +%1 +. +MessageId=6938 +Language=English +%1 +. +MessageId=6939 +Language=English +%1 +. +MessageId=6940 +Language=English +%1 +. +MessageId=6941 +Language=English +%1 +. +MessageId=6942 +Language=English +%1 +. +MessageId=6943 +Language=English +%1 +. +MessageId=6944 +Language=English +%1 +. +MessageId=6945 +Language=English +%1 +. +MessageId=6946 +Language=English +%1 +. +MessageId=6947 +Language=English +%1 +. +MessageId=6948 +Language=English +%1 +. +MessageId=6949 +Language=English +%1 +. +MessageId=6950 +Language=English +%1 +. +MessageId=6951 +Language=English +%1 +. +MessageId=6952 +Language=English +%1 +. +MessageId=6953 +Language=English +%1 +. +MessageId=6954 +Language=English +%1 +. +MessageId=6955 +Language=English +%1 +. +MessageId=6956 +Language=English +%1 +. +MessageId=6957 +Language=English +%1 +. +MessageId=6958 +Language=English +%1 +. +MessageId=6959 +Language=English +%1 +. +MessageId=6960 +Language=English +%1 +. +MessageId=6961 +Language=English +%1 +. +MessageId=6962 +Language=English +%1 +. +MessageId=6963 +Language=English +%1 +. +MessageId=6964 +Language=English +%1 +. +MessageId=6965 +Language=English +%1 +. +MessageId=6966 +Language=English +%1 +. +MessageId=6967 +Language=English +%1 +. +MessageId=6968 +Language=English +%1 +. +MessageId=6969 +Language=English +%1 +. +MessageId=6970 +Language=English +%1 +. +MessageId=6971 +Language=English +%1 +. +MessageId=6972 +Language=English +%1 +. +MessageId=6973 +Language=English +%1 +. +MessageId=6974 +Language=English +%1 +. +MessageId=6975 +Language=English +%1 +. +MessageId=6976 +Language=English +%1 +. +MessageId=6977 +Language=English +%1 +. +MessageId=6978 +Language=English +%1 +. +MessageId=6979 +Language=English +%1 +. +MessageId=6980 +Language=English +%1 +. +MessageId=6981 +Language=English +%1 +. +MessageId=6982 +Language=English +%1 +. +MessageId=6983 +Language=English +%1 +. +MessageId=6984 +Language=English +%1 +. +MessageId=6985 +Language=English +%1 +. +MessageId=6986 +Language=English +%1 +. +MessageId=6987 +Language=English +%1 +. +MessageId=6988 +Language=English +%1 +. +MessageId=6989 +Language=English +%1 +. +MessageId=6990 +Language=English +%1 +. +MessageId=6991 +Language=English +%1 +. +MessageId=6992 +Language=English +%1 +. +MessageId=6993 +Language=English +%1 +. +MessageId=6994 +Language=English +%1 +. +MessageId=6995 +Language=English +%1 +. +MessageId=6996 +Language=English +%1 +. +MessageId=6997 +Language=English +%1 +. +MessageId=6998 +Language=English +%1 +. +MessageId=6999 +Language=English +%1 +. +MessageId=7000 +Language=English +%1 +. +MessageId=7001 +Language=English +%1 +. +MessageId=7002 +Language=English +%1 +. +MessageId=7003 +Language=English +%1 +. +MessageId=7004 +Language=English +%1 +. +MessageId=7005 +Language=English +%1 +. +MessageId=7006 +Language=English +%1 +. +MessageId=7007 +Language=English +%1 +. +MessageId=7008 +Language=English +%1 +. +MessageId=7009 +Language=English +%1 +. +MessageId=7010 +Language=English +%1 +. +MessageId=7011 +Language=English +%1 +. +MessageId=7012 +Language=English +%1 +. +MessageId=7013 +Language=English +%1 +. +MessageId=7014 +Language=English +%1 +. +MessageId=7015 +Language=English +%1 +. +MessageId=7016 +Language=English +%1 +. +MessageId=7017 +Language=English +%1 +. +MessageId=7018 +Language=English +%1 +. +MessageId=7019 +Language=English +%1 +. +MessageId=7020 +Language=English +%1 +. +MessageId=7021 +Language=English +%1 +. +MessageId=7022 +Language=English +%1 +. +MessageId=7023 +Language=English +%1 +. +MessageId=7024 +Language=English +%1 +. +MessageId=7025 +Language=English +%1 +. +MessageId=7026 +Language=English +%1 +. +MessageId=7027 +Language=English +%1 +. +MessageId=7028 +Language=English +%1 +. +MessageId=7029 +Language=English +%1 +. +MessageId=7030 +Language=English +%1 +. +MessageId=7031 +Language=English +%1 +. +MessageId=7032 +Language=English +%1 +. +MessageId=7033 +Language=English +%1 +. +MessageId=7034 +Language=English +%1 +. +MessageId=7035 +Language=English +%1 +. +MessageId=7036 +Language=English +%1 +. +MessageId=7037 +Language=English +%1 +. +MessageId=7038 +Language=English +%1 +. +MessageId=7039 +Language=English +%1 +. +MessageId=7040 +Language=English +%1 +. +MessageId=7041 +Language=English +%1 +. +MessageId=7042 +Language=English +%1 +. +MessageId=7043 +Language=English +%1 +. +MessageId=7044 +Language=English +%1 +. +MessageId=7045 +Language=English +%1 +. +MessageId=7046 +Language=English +%1 +. +MessageId=7047 +Language=English +%1 +. +MessageId=7048 +Language=English +%1 +. +MessageId=7049 +Language=English +%1 +. +MessageId=7050 +Language=English +%1 +. +MessageId=7051 +Language=English +%1 +. +MessageId=7052 +Language=English +%1 +. +MessageId=7053 +Language=English +%1 +. +MessageId=7054 +Language=English +%1 +. +MessageId=7055 +Language=English +%1 +. +MessageId=7056 +Language=English +%1 +. +MessageId=7057 +Language=English +%1 +. +MessageId=7058 +Language=English +%1 +. +MessageId=7059 +Language=English +%1 +. +MessageId=7060 +Language=English +%1 +. +MessageId=7061 +Language=English +%1 +. +MessageId=7062 +Language=English +%1 +. +MessageId=7063 +Language=English +%1 +. +MessageId=7064 +Language=English +%1 +. +MessageId=7065 +Language=English +%1 +. +MessageId=7066 +Language=English +%1 +. +MessageId=7067 +Language=English +%1 +. +MessageId=7068 +Language=English +%1 +. +MessageId=7069 +Language=English +%1 +. +MessageId=7070 +Language=English +%1 +. +MessageId=7071 +Language=English +%1 +. +MessageId=7072 +Language=English +%1 +. +MessageId=7073 +Language=English +%1 +. +MessageId=7074 +Language=English +%1 +. +MessageId=7075 +Language=English +%1 +. +MessageId=7076 +Language=English +%1 +. +MessageId=7077 +Language=English +%1 +. +MessageId=7078 +Language=English +%1 +. +MessageId=7079 +Language=English +%1 +. +MessageId=7080 +Language=English +%1 +. +MessageId=7081 +Language=English +%1 +. +MessageId=7082 +Language=English +%1 +. +MessageId=7083 +Language=English +%1 +. +MessageId=7084 +Language=English +%1 +. +MessageId=7085 +Language=English +%1 +. +MessageId=7086 +Language=English +%1 +. +MessageId=7087 +Language=English +%1 +. +MessageId=7088 +Language=English +%1 +. +MessageId=7089 +Language=English +%1 +. +MessageId=7090 +Language=English +%1 +. +MessageId=7091 +Language=English +%1 +. +MessageId=7092 +Language=English +%1 +. +MessageId=7093 +Language=English +%1 +. +MessageId=7094 +Language=English +%1 +. +MessageId=7095 +Language=English +%1 +. +MessageId=7096 +Language=English +%1 +. +MessageId=7097 +Language=English +%1 +. +MessageId=7098 +Language=English +%1 +. +MessageId=7099 +Language=English +%1 +. +MessageId=7100 +Language=English +%1 +. +MessageId=7101 +Language=English +%1 +. +MessageId=7102 +Language=English +%1 +. +MessageId=7103 +Language=English +%1 +. +MessageId=7104 +Language=English +%1 +. +MessageId=7105 +Language=English +%1 +. +MessageId=7106 +Language=English +%1 +. +MessageId=7107 +Language=English +%1 +. +MessageId=7108 +Language=English +%1 +. +MessageId=7109 +Language=English +%1 +. +MessageId=7110 +Language=English +%1 +. +MessageId=7111 +Language=English +%1 +. +MessageId=7112 +Language=English +%1 +. +MessageId=7113 +Language=English +%1 +. +MessageId=7114 +Language=English +%1 +. +MessageId=7115 +Language=English +%1 +. +MessageId=7116 +Language=English +%1 +. +MessageId=7117 +Language=English +%1 +. +MessageId=7118 +Language=English +%1 +. +MessageId=7119 +Language=English +%1 +. +MessageId=7120 +Language=English +%1 +. +MessageId=7121 +Language=English +%1 +. +MessageId=7122 +Language=English +%1 +. +MessageId=7123 +Language=English +%1 +. +MessageId=7124 +Language=English +%1 +. +MessageId=7125 +Language=English +%1 +. +MessageId=7126 +Language=English +%1 +. +MessageId=7127 +Language=English +%1 +. +MessageId=7128 +Language=English +%1 +. +MessageId=7129 +Language=English +%1 +. +MessageId=7130 +Language=English +%1 +. +MessageId=7131 +Language=English +%1 +. +MessageId=7132 +Language=English +%1 +. +MessageId=7133 +Language=English +%1 +. +MessageId=7134 +Language=English +%1 +. +MessageId=7135 +Language=English +%1 +. +MessageId=7136 +Language=English +%1 +. +MessageId=7137 +Language=English +%1 +. +MessageId=7138 +Language=English +%1 +. +MessageId=7139 +Language=English +%1 +. +MessageId=7140 +Language=English +%1 +. +MessageId=7141 +Language=English +%1 +. +MessageId=7142 +Language=English +%1 +. +MessageId=7143 +Language=English +%1 +. +MessageId=7144 +Language=English +%1 +. +MessageId=7145 +Language=English +%1 +. +MessageId=7146 +Language=English +%1 +. +MessageId=7147 +Language=English +%1 +. +MessageId=7148 +Language=English +%1 +. +MessageId=7149 +Language=English +%1 +. +MessageId=7150 +Language=English +%1 +. +MessageId=7151 +Language=English +%1 +. +MessageId=7152 +Language=English +%1 +. +MessageId=7153 +Language=English +%1 +. +MessageId=7154 +Language=English +%1 +. +MessageId=7155 +Language=English +%1 +. +MessageId=7156 +Language=English +%1 +. +MessageId=7157 +Language=English +%1 +. +MessageId=7158 +Language=English +%1 +. +MessageId=7159 +Language=English +%1 +. +MessageId=7160 +Language=English +%1 +. +MessageId=7161 +Language=English +%1 +. +MessageId=7162 +Language=English +%1 +. +MessageId=7163 +Language=English +%1 +. +MessageId=7164 +Language=English +%1 +. +MessageId=7165 +Language=English +%1 +. +MessageId=7166 +Language=English +%1 +. +MessageId=7167 +Language=English +%1 +. +MessageId=7168 +Language=English +%1 +. +MessageId=7169 +Language=English +%1 +. +MessageId=7170 +Language=English +%1 +. +MessageId=7171 +Language=English +%1 +. +MessageId=7172 +Language=English +%1 +. +MessageId=7173 +Language=English +%1 +. +MessageId=7174 +Language=English +%1 +. +MessageId=7175 +Language=English +%1 +. +MessageId=7176 +Language=English +%1 +. +MessageId=7177 +Language=English +%1 +. +MessageId=7178 +Language=English +%1 +. +MessageId=7179 +Language=English +%1 +. +MessageId=7180 +Language=English +%1 +. +MessageId=7181 +Language=English +%1 +. +MessageId=7182 +Language=English +%1 +. +MessageId=7183 +Language=English +%1 +. +MessageId=7184 +Language=English +%1 +. +MessageId=7185 +Language=English +%1 +. +MessageId=7186 +Language=English +%1 +. +MessageId=7187 +Language=English +%1 +. +MessageId=7188 +Language=English +%1 +. +MessageId=7189 +Language=English +%1 +. +MessageId=7190 +Language=English +%1 +. +MessageId=7191 +Language=English +%1 +. +MessageId=7192 +Language=English +%1 +. +MessageId=7193 +Language=English +%1 +. +MessageId=7194 +Language=English +%1 +. +MessageId=7195 +Language=English +%1 +. +MessageId=7196 +Language=English +%1 +. +MessageId=7197 +Language=English +%1 +. +MessageId=7198 +Language=English +%1 +. +MessageId=7199 +Language=English +%1 +. +MessageId=7200 +Language=English +%1 +. +MessageId=7201 +Language=English +%1 +. +MessageId=7202 +Language=English +%1 +. +MessageId=7203 +Language=English +%1 +. +MessageId=7204 +Language=English +%1 +. +MessageId=7205 +Language=English +%1 +. +MessageId=7206 +Language=English +%1 +. +MessageId=7207 +Language=English +%1 +. +MessageId=7208 +Language=English +%1 +. +MessageId=7209 +Language=English +%1 +. +MessageId=7210 +Language=English +%1 +. +MessageId=7211 +Language=English +%1 +. +MessageId=7212 +Language=English +%1 +. +MessageId=7213 +Language=English +%1 +. +MessageId=7214 +Language=English +%1 +. +MessageId=7215 +Language=English +%1 +. +MessageId=7216 +Language=English +%1 +. +MessageId=7217 +Language=English +%1 +. +MessageId=7218 +Language=English +%1 +. +MessageId=7219 +Language=English +%1 +. +MessageId=7220 +Language=English +%1 +. +MessageId=7221 +Language=English +%1 +. +MessageId=7222 +Language=English +%1 +. +MessageId=7223 +Language=English +%1 +. +MessageId=7224 +Language=English +%1 +. +MessageId=7225 +Language=English +%1 +. +MessageId=7226 +Language=English +%1 +. +MessageId=7227 +Language=English +%1 +. +MessageId=7228 +Language=English +%1 +. +MessageId=7229 +Language=English +%1 +. +MessageId=7230 +Language=English +%1 +. +MessageId=7231 +Language=English +%1 +. +MessageId=7232 +Language=English +%1 +. +MessageId=7233 +Language=English +%1 +. +MessageId=7234 +Language=English +%1 +. +MessageId=7235 +Language=English +%1 +. +MessageId=7236 +Language=English +%1 +. +MessageId=7237 +Language=English +%1 +. +MessageId=7238 +Language=English +%1 +. +MessageId=7239 +Language=English +%1 +. +MessageId=7240 +Language=English +%1 +. +MessageId=7241 +Language=English +%1 +. +MessageId=7242 +Language=English +%1 +. +MessageId=7243 +Language=English +%1 +. +MessageId=7244 +Language=English +%1 +. +MessageId=7245 +Language=English +%1 +. +MessageId=7246 +Language=English +%1 +. +MessageId=7247 +Language=English +%1 +. +MessageId=7248 +Language=English +%1 +. +MessageId=7249 +Language=English +%1 +. +MessageId=7250 +Language=English +%1 +. +MessageId=7251 +Language=English +%1 +. +MessageId=7252 +Language=English +%1 +. +MessageId=7253 +Language=English +%1 +. +MessageId=7254 +Language=English +%1 +. +MessageId=7255 +Language=English +%1 +. +MessageId=7256 +Language=English +%1 +. +MessageId=7257 +Language=English +%1 +. +MessageId=7258 +Language=English +%1 +. +MessageId=7259 +Language=English +%1 +. +MessageId=7260 +Language=English +%1 +. +MessageId=7261 +Language=English +%1 +. +MessageId=7262 +Language=English +%1 +. +MessageId=7263 +Language=English +%1 +. +MessageId=7264 +Language=English +%1 +. +MessageId=7265 +Language=English +%1 +. +MessageId=7266 +Language=English +%1 +. +MessageId=7267 +Language=English +%1 +. +MessageId=7268 +Language=English +%1 +. +MessageId=7269 +Language=English +%1 +. +MessageId=7270 +Language=English +%1 +. +MessageId=7271 +Language=English +%1 +. +MessageId=7272 +Language=English +%1 +. +MessageId=7273 +Language=English +%1 +. +MessageId=7274 +Language=English +%1 +. +MessageId=7275 +Language=English +%1 +. +MessageId=7276 +Language=English +%1 +. +MessageId=7277 +Language=English +%1 +. +MessageId=7278 +Language=English +%1 +. +MessageId=7279 +Language=English +%1 +. +MessageId=7280 +Language=English +%1 +. +MessageId=7281 +Language=English +%1 +. +MessageId=7282 +Language=English +%1 +. +MessageId=7283 +Language=English +%1 +. +MessageId=7284 +Language=English +%1 +. +MessageId=7285 +Language=English +%1 +. +MessageId=7286 +Language=English +%1 +. +MessageId=7287 +Language=English +%1 +. +MessageId=7288 +Language=English +%1 +. +MessageId=7289 +Language=English +%1 +. +MessageId=7290 +Language=English +%1 +. +MessageId=7291 +Language=English +%1 +. +MessageId=7292 +Language=English +%1 +. +MessageId=7293 +Language=English +%1 +. +MessageId=7294 +Language=English +%1 +. +MessageId=7295 +Language=English +%1 +. +MessageId=7296 +Language=English +%1 +. +MessageId=7297 +Language=English +%1 +. +MessageId=7298 +Language=English +%1 +. +MessageId=7299 +Language=English +%1 +. +MessageId=7300 +Language=English +%1 +. +MessageId=7301 +Language=English +%1 +. +MessageId=7302 +Language=English +%1 +. +MessageId=7303 +Language=English +%1 +. +MessageId=7304 +Language=English +%1 +. +MessageId=7305 +Language=English +%1 +. +MessageId=7306 +Language=English +%1 +. +MessageId=7307 +Language=English +%1 +. +MessageId=7308 +Language=English +%1 +. +MessageId=7309 +Language=English +%1 +. +MessageId=7310 +Language=English +%1 +. +MessageId=7311 +Language=English +%1 +. +MessageId=7312 +Language=English +%1 +. +MessageId=7313 +Language=English +%1 +. +MessageId=7314 +Language=English +%1 +. +MessageId=7315 +Language=English +%1 +. +MessageId=7316 +Language=English +%1 +. +MessageId=7317 +Language=English +%1 +. +MessageId=7318 +Language=English +%1 +. +MessageId=7319 +Language=English +%1 +. +MessageId=7320 +Language=English +%1 +. +MessageId=7321 +Language=English +%1 +. +MessageId=7322 +Language=English +%1 +. +MessageId=7323 +Language=English +%1 +. +MessageId=7324 +Language=English +%1 +. +MessageId=7325 +Language=English +%1 +. +MessageId=7326 +Language=English +%1 +. +MessageId=7327 +Language=English +%1 +. +MessageId=7328 +Language=English +%1 +. +MessageId=7329 +Language=English +%1 +. +MessageId=7330 +Language=English +%1 +. +MessageId=7331 +Language=English +%1 +. +MessageId=7332 +Language=English +%1 +. +MessageId=7333 +Language=English +%1 +. +MessageId=7334 +Language=English +%1 +. +MessageId=7335 +Language=English +%1 +. +MessageId=7336 +Language=English +%1 +. +MessageId=7337 +Language=English +%1 +. +MessageId=7338 +Language=English +%1 +. +MessageId=7339 +Language=English +%1 +. +MessageId=7340 +Language=English +%1 +. +MessageId=7341 +Language=English +%1 +. +MessageId=7342 +Language=English +%1 +. +MessageId=7343 +Language=English +%1 +. +MessageId=7344 +Language=English +%1 +. +MessageId=7345 +Language=English +%1 +. +MessageId=7346 +Language=English +%1 +. +MessageId=7347 +Language=English +%1 +. +MessageId=7348 +Language=English +%1 +. +MessageId=7349 +Language=English +%1 +. +MessageId=7350 +Language=English +%1 +. +MessageId=7351 +Language=English +%1 +. +MessageId=7352 +Language=English +%1 +. +MessageId=7353 +Language=English +%1 +. +MessageId=7354 +Language=English +%1 +. +MessageId=7355 +Language=English +%1 +. +MessageId=7356 +Language=English +%1 +. +MessageId=7357 +Language=English +%1 +. +MessageId=7358 +Language=English +%1 +. +MessageId=7359 +Language=English +%1 +. +MessageId=7360 +Language=English +%1 +. +MessageId=7361 +Language=English +%1 +. +MessageId=7362 +Language=English +%1 +. +MessageId=7363 +Language=English +%1 +. +MessageId=7364 +Language=English +%1 +. +MessageId=7365 +Language=English +%1 +. +MessageId=7366 +Language=English +%1 +. +MessageId=7367 +Language=English +%1 +. +MessageId=7368 +Language=English +%1 +. +MessageId=7369 +Language=English +%1 +. +MessageId=7370 +Language=English +%1 +. +MessageId=7371 +Language=English +%1 +. +MessageId=7372 +Language=English +%1 +. +MessageId=7373 +Language=English +%1 +. +MessageId=7374 +Language=English +%1 +. +MessageId=7375 +Language=English +%1 +. +MessageId=7376 +Language=English +%1 +. +MessageId=7377 +Language=English +%1 +. +MessageId=7378 +Language=English +%1 +. +MessageId=7379 +Language=English +%1 +. +MessageId=7380 +Language=English +%1 +. +MessageId=7381 +Language=English +%1 +. +MessageId=7382 +Language=English +%1 +. +MessageId=7383 +Language=English +%1 +. +MessageId=7384 +Language=English +%1 +. +MessageId=7385 +Language=English +%1 +. +MessageId=7386 +Language=English +%1 +. +MessageId=7387 +Language=English +%1 +. +MessageId=7388 +Language=English +%1 +. +MessageId=7389 +Language=English +%1 +. +MessageId=7390 +Language=English +%1 +. +MessageId=7391 +Language=English +%1 +. +MessageId=7392 +Language=English +%1 +. +MessageId=7393 +Language=English +%1 +. +MessageId=7394 +Language=English +%1 +. +MessageId=7395 +Language=English +%1 +. +MessageId=7396 +Language=English +%1 +. +MessageId=7397 +Language=English +%1 +. +MessageId=7398 +Language=English +%1 +. +MessageId=7399 +Language=English +%1 +. +MessageId=7400 +Language=English +%1 +. +MessageId=7401 +Language=English +%1 +. +MessageId=7402 +Language=English +%1 +. +MessageId=7403 +Language=English +%1 +. +MessageId=7404 +Language=English +%1 +. +MessageId=7405 +Language=English +%1 +. +MessageId=7406 +Language=English +%1 +. +MessageId=7407 +Language=English +%1 +. +MessageId=7408 +Language=English +%1 +. +MessageId=7409 +Language=English +%1 +. +MessageId=7410 +Language=English +%1 +. +MessageId=7411 +Language=English +%1 +. +MessageId=7412 +Language=English +%1 +. +MessageId=7413 +Language=English +%1 +. +MessageId=7414 +Language=English +%1 +. +MessageId=7415 +Language=English +%1 +. +MessageId=7416 +Language=English +%1 +. +MessageId=7417 +Language=English +%1 +. +MessageId=7418 +Language=English +%1 +. +MessageId=7419 +Language=English +%1 +. +MessageId=7420 +Language=English +%1 +. +MessageId=7421 +Language=English +%1 +. +MessageId=7422 +Language=English +%1 +. +MessageId=7423 +Language=English +%1 +. +MessageId=7424 +Language=English +%1 +. +MessageId=7425 +Language=English +%1 +. +MessageId=7426 +Language=English +%1 +. +MessageId=7427 +Language=English +%1 +. +MessageId=7428 +Language=English +%1 +. +MessageId=7429 +Language=English +%1 +. +MessageId=7430 +Language=English +%1 +. +MessageId=7431 +Language=English +%1 +. +MessageId=7432 +Language=English +%1 +. +MessageId=7433 +Language=English +%1 +. +MessageId=7434 +Language=English +%1 +. +MessageId=7435 +Language=English +%1 +. +MessageId=7436 +Language=English +%1 +. +MessageId=7437 +Language=English +%1 +. +MessageId=7438 +Language=English +%1 +. +MessageId=7439 +Language=English +%1 +. +MessageId=7440 +Language=English +%1 +. +MessageId=7441 +Language=English +%1 +. +MessageId=7442 +Language=English +%1 +. +MessageId=7443 +Language=English +%1 +. +MessageId=7444 +Language=English +%1 +. +MessageId=7445 +Language=English +%1 +. +MessageId=7446 +Language=English +%1 +. +MessageId=7447 +Language=English +%1 +. +MessageId=7448 +Language=English +%1 +. +MessageId=7449 +Language=English +%1 +. +MessageId=7450 +Language=English +%1 +. +MessageId=7451 +Language=English +%1 +. +MessageId=7452 +Language=English +%1 +. +MessageId=7453 +Language=English +%1 +. +MessageId=7454 +Language=English +%1 +. +MessageId=7455 +Language=English +%1 +. +MessageId=7456 +Language=English +%1 +. +MessageId=7457 +Language=English +%1 +. +MessageId=7458 +Language=English +%1 +. +MessageId=7459 +Language=English +%1 +. +MessageId=7460 +Language=English +%1 +. +MessageId=7461 +Language=English +%1 +. +MessageId=7462 +Language=English +%1 +. +MessageId=7463 +Language=English +%1 +. +MessageId=7464 +Language=English +%1 +. +MessageId=7465 +Language=English +%1 +. +MessageId=7466 +Language=English +%1 +. +MessageId=7467 +Language=English +%1 +. +MessageId=7468 +Language=English +%1 +. +MessageId=7469 +Language=English +%1 +. +MessageId=7470 +Language=English +%1 +. +MessageId=7471 +Language=English +%1 +. +MessageId=7472 +Language=English +%1 +. +MessageId=7473 +Language=English +%1 +. +MessageId=7474 +Language=English +%1 +. +MessageId=7475 +Language=English +%1 +. +MessageId=7476 +Language=English +%1 +. +MessageId=7477 +Language=English +%1 +. +MessageId=7478 +Language=English +%1 +. +MessageId=7479 +Language=English +%1 +. +MessageId=7480 +Language=English +%1 +. +MessageId=7481 +Language=English +%1 +. +MessageId=7482 +Language=English +%1 +. +MessageId=7483 +Language=English +%1 +. +MessageId=7484 +Language=English +%1 +. +MessageId=7485 +Language=English +%1 +. +MessageId=7486 +Language=English +%1 +. +MessageId=7487 +Language=English +%1 +. +MessageId=7488 +Language=English +%1 +. +MessageId=7489 +Language=English +%1 +. +MessageId=7490 +Language=English +%1 +. +MessageId=7491 +Language=English +%1 +. +MessageId=7492 +Language=English +%1 +. +MessageId=7493 +Language=English +%1 +. +MessageId=7494 +Language=English +%1 +. +MessageId=7495 +Language=English +%1 +. +MessageId=7496 +Language=English +%1 +. +MessageId=7497 +Language=English +%1 +. +MessageId=7498 +Language=English +%1 +. +MessageId=7499 +Language=English +%1 +. +MessageId=7500 +Language=English +%1 +. +MessageId=7501 +Language=English +%1 +. +MessageId=7502 +Language=English +%1 +. +MessageId=7503 +Language=English +%1 +. +MessageId=7504 +Language=English +%1 +. +MessageId=7505 +Language=English +%1 +. +MessageId=7506 +Language=English +%1 +. +MessageId=7507 +Language=English +%1 +. +MessageId=7508 +Language=English +%1 +. +MessageId=7509 +Language=English +%1 +. +MessageId=7510 +Language=English +%1 +. +MessageId=7511 +Language=English +%1 +. +MessageId=7512 +Language=English +%1 +. +MessageId=7513 +Language=English +%1 +. +MessageId=7514 +Language=English +%1 +. +MessageId=7515 +Language=English +%1 +. +MessageId=7516 +Language=English +%1 +. +MessageId=7517 +Language=English +%1 +. +MessageId=7518 +Language=English +%1 +. +MessageId=7519 +Language=English +%1 +. +MessageId=7520 +Language=English +%1 +. +MessageId=7521 +Language=English +%1 +. +MessageId=7522 +Language=English +%1 +. +MessageId=7523 +Language=English +%1 +. +MessageId=7524 +Language=English +%1 +. +MessageId=7525 +Language=English +%1 +. +MessageId=7526 +Language=English +%1 +. +MessageId=7527 +Language=English +%1 +. +MessageId=7528 +Language=English +%1 +. +MessageId=7529 +Language=English +%1 +. +MessageId=7530 +Language=English +%1 +. +MessageId=7531 +Language=English +%1 +. +MessageId=7532 +Language=English +%1 +. +MessageId=7533 +Language=English +%1 +. +MessageId=7534 +Language=English +%1 +. +MessageId=7535 +Language=English +%1 +. +MessageId=7536 +Language=English +%1 +. +MessageId=7537 +Language=English +%1 +. +MessageId=7538 +Language=English +%1 +. +MessageId=7539 +Language=English +%1 +. +MessageId=7540 +Language=English +%1 +. +MessageId=7541 +Language=English +%1 +. +MessageId=7542 +Language=English +%1 +. +MessageId=7543 +Language=English +%1 +. +MessageId=7544 +Language=English +%1 +. +MessageId=7545 +Language=English +%1 +. +MessageId=7546 +Language=English +%1 +. +MessageId=7547 +Language=English +%1 +. +MessageId=7548 +Language=English +%1 +. +MessageId=7549 +Language=English +%1 +. +MessageId=7550 +Language=English +%1 +. +MessageId=7551 +Language=English +%1 +. +MessageId=7552 +Language=English +%1 +. +MessageId=7553 +Language=English +%1 +. +MessageId=7554 +Language=English +%1 +. +MessageId=7555 +Language=English +%1 +. +MessageId=7556 +Language=English +%1 +. +MessageId=7557 +Language=English +%1 +. +MessageId=7558 +Language=English +%1 +. +MessageId=7559 +Language=English +%1 +. +MessageId=7560 +Language=English +%1 +. +MessageId=7561 +Language=English +%1 +. +MessageId=7562 +Language=English +%1 +. +MessageId=7563 +Language=English +%1 +. +MessageId=7564 +Language=English +%1 +. +MessageId=7565 +Language=English +%1 +. +MessageId=7566 +Language=English +%1 +. +MessageId=7567 +Language=English +%1 +. +MessageId=7568 +Language=English +%1 +. +MessageId=7569 +Language=English +%1 +. +MessageId=7570 +Language=English +%1 +. +MessageId=7571 +Language=English +%1 +. +MessageId=7572 +Language=English +%1 +. +MessageId=7573 +Language=English +%1 +. +MessageId=7574 +Language=English +%1 +. +MessageId=7575 +Language=English +%1 +. +MessageId=7576 +Language=English +%1 +. +MessageId=7577 +Language=English +%1 +. +MessageId=7578 +Language=English +%1 +. +MessageId=7579 +Language=English +%1 +. +MessageId=7580 +Language=English +%1 +. +MessageId=7581 +Language=English +%1 +. +MessageId=7582 +Language=English +%1 +. +MessageId=7583 +Language=English +%1 +. +MessageId=7584 +Language=English +%1 +. +MessageId=7585 +Language=English +%1 +. +MessageId=7586 +Language=English +%1 +. +MessageId=7587 +Language=English +%1 +. +MessageId=7588 +Language=English +%1 +. +MessageId=7589 +Language=English +%1 +. +MessageId=7590 +Language=English +%1 +. +MessageId=7591 +Language=English +%1 +. +MessageId=7592 +Language=English +%1 +. +MessageId=7593 +Language=English +%1 +. +MessageId=7594 +Language=English +%1 +. +MessageId=7595 +Language=English +%1 +. +MessageId=7596 +Language=English +%1 +. +MessageId=7597 +Language=English +%1 +. +MessageId=7598 +Language=English +%1 +. +MessageId=7599 +Language=English +%1 +. +MessageId=7600 +Language=English +%1 +. +MessageId=7601 +Language=English +%1 +. +MessageId=7602 +Language=English +%1 +. +MessageId=7603 +Language=English +%1 +. +MessageId=7604 +Language=English +%1 +. +MessageId=7605 +Language=English +%1 +. +MessageId=7606 +Language=English +%1 +. +MessageId=7607 +Language=English +%1 +. +MessageId=7608 +Language=English +%1 +. +MessageId=7609 +Language=English +%1 +. +MessageId=7610 +Language=English +%1 +. +MessageId=7611 +Language=English +%1 +. +MessageId=7612 +Language=English +%1 +. +MessageId=7613 +Language=English +%1 +. +MessageId=7614 +Language=English +%1 +. +MessageId=7615 +Language=English +%1 +. +MessageId=7616 +Language=English +%1 +. +MessageId=7617 +Language=English +%1 +. +MessageId=7618 +Language=English +%1 +. +MessageId=7619 +Language=English +%1 +. +MessageId=7620 +Language=English +%1 +. +MessageId=7621 +Language=English +%1 +. +MessageId=7622 +Language=English +%1 +. +MessageId=7623 +Language=English +%1 +. +MessageId=7624 +Language=English +%1 +. +MessageId=7625 +Language=English +%1 +. +MessageId=7626 +Language=English +%1 +. +MessageId=7627 +Language=English +%1 +. +MessageId=7628 +Language=English +%1 +. +MessageId=7629 +Language=English +%1 +. +MessageId=7630 +Language=English +%1 +. +MessageId=7631 +Language=English +%1 +. +MessageId=7632 +Language=English +%1 +. +MessageId=7633 +Language=English +%1 +. +MessageId=7634 +Language=English +%1 +. +MessageId=7635 +Language=English +%1 +. +MessageId=7636 +Language=English +%1 +. +MessageId=7637 +Language=English +%1 +. +MessageId=7638 +Language=English +%1 +. +MessageId=7639 +Language=English +%1 +. +MessageId=7640 +Language=English +%1 +. +MessageId=7641 +Language=English +%1 +. +MessageId=7642 +Language=English +%1 +. +MessageId=7643 +Language=English +%1 +. +MessageId=7644 +Language=English +%1 +. +MessageId=7645 +Language=English +%1 +. +MessageId=7646 +Language=English +%1 +. +MessageId=7647 +Language=English +%1 +. +MessageId=7648 +Language=English +%1 +. +MessageId=7649 +Language=English +%1 +. +MessageId=7650 +Language=English +%1 +. +MessageId=7651 +Language=English +%1 +. +MessageId=7652 +Language=English +%1 +. +MessageId=7653 +Language=English +%1 +. +MessageId=7654 +Language=English +%1 +. +MessageId=7655 +Language=English +%1 +. +MessageId=7656 +Language=English +%1 +. +MessageId=7657 +Language=English +%1 +. +MessageId=7658 +Language=English +%1 +. +MessageId=7659 +Language=English +%1 +. +MessageId=7660 +Language=English +%1 +. +MessageId=7661 +Language=English +%1 +. +MessageId=7662 +Language=English +%1 +. +MessageId=7663 +Language=English +%1 +. +MessageId=7664 +Language=English +%1 +. +MessageId=7665 +Language=English +%1 +. +MessageId=7666 +Language=English +%1 +. +MessageId=7667 +Language=English +%1 +. +MessageId=7668 +Language=English +%1 +. +MessageId=7669 +Language=English +%1 +. +MessageId=7670 +Language=English +%1 +. +MessageId=7671 +Language=English +%1 +. +MessageId=7672 +Language=English +%1 +. +MessageId=7673 +Language=English +%1 +. +MessageId=7674 +Language=English +%1 +. +MessageId=7675 +Language=English +%1 +. +MessageId=7676 +Language=English +%1 +. +MessageId=7677 +Language=English +%1 +. +MessageId=7678 +Language=English +%1 +. +MessageId=7679 +Language=English +%1 +. +MessageId=7680 +Language=English +%1 +. +MessageId=7681 +Language=English +%1 +. +MessageId=7682 +Language=English +%1 +. +MessageId=7683 +Language=English +%1 +. +MessageId=7684 +Language=English +%1 +. +MessageId=7685 +Language=English +%1 +. +MessageId=7686 +Language=English +%1 +. +MessageId=7687 +Language=English +%1 +. +MessageId=7688 +Language=English +%1 +. +MessageId=7689 +Language=English +%1 +. +MessageId=7690 +Language=English +%1 +. +MessageId=7691 +Language=English +%1 +. +MessageId=7692 +Language=English +%1 +. +MessageId=7693 +Language=English +%1 +. +MessageId=7694 +Language=English +%1 +. +MessageId=7695 +Language=English +%1 +. +MessageId=7696 +Language=English +%1 +. +MessageId=7697 +Language=English +%1 +. +MessageId=7698 +Language=English +%1 +. +MessageId=7699 +Language=English +%1 +. +MessageId=7700 +Language=English +%1 +. +MessageId=7701 +Language=English +%1 +. +MessageId=7702 +Language=English +%1 +. +MessageId=7703 +Language=English +%1 +. +MessageId=7704 +Language=English +%1 +. +MessageId=7705 +Language=English +%1 +. +MessageId=7706 +Language=English +%1 +. +MessageId=7707 +Language=English +%1 +. +MessageId=7708 +Language=English +%1 +. +MessageId=7709 +Language=English +%1 +. +MessageId=7710 +Language=English +%1 +. +MessageId=7711 +Language=English +%1 +. +MessageId=7712 +Language=English +%1 +. +MessageId=7713 +Language=English +%1 +. +MessageId=7714 +Language=English +%1 +. +MessageId=7715 +Language=English +%1 +. +MessageId=7716 +Language=English +%1 +. +MessageId=7717 +Language=English +%1 +. +MessageId=7718 +Language=English +%1 +. +MessageId=7719 +Language=English +%1 +. +MessageId=7720 +Language=English +%1 +. +MessageId=7721 +Language=English +%1 +. +MessageId=7722 +Language=English +%1 +. +MessageId=7723 +Language=English +%1 +. +MessageId=7724 +Language=English +%1 +. +MessageId=7725 +Language=English +%1 +. +MessageId=7726 +Language=English +%1 +. +MessageId=7727 +Language=English +%1 +. +MessageId=7728 +Language=English +%1 +. +MessageId=7729 +Language=English +%1 +. +MessageId=7730 +Language=English +%1 +. +MessageId=7731 +Language=English +%1 +. +MessageId=7732 +Language=English +%1 +. +MessageId=7733 +Language=English +%1 +. +MessageId=7734 +Language=English +%1 +. +MessageId=7735 +Language=English +%1 +. +MessageId=7736 +Language=English +%1 +. +MessageId=7737 +Language=English +%1 +. +MessageId=7738 +Language=English +%1 +. +MessageId=7739 +Language=English +%1 +. +MessageId=7740 +Language=English +%1 +. +MessageId=7741 +Language=English +%1 +. +MessageId=7742 +Language=English +%1 +. +MessageId=7743 +Language=English +%1 +. +MessageId=7744 +Language=English +%1 +. +MessageId=7745 +Language=English +%1 +. +MessageId=7746 +Language=English +%1 +. +MessageId=7747 +Language=English +%1 +. +MessageId=7748 +Language=English +%1 +. +MessageId=7749 +Language=English +%1 +. +MessageId=7750 +Language=English +%1 +. +MessageId=7751 +Language=English +%1 +. +MessageId=7752 +Language=English +%1 +. +MessageId=7753 +Language=English +%1 +. +MessageId=7754 +Language=English +%1 +. +MessageId=7755 +Language=English +%1 +. +MessageId=7756 +Language=English +%1 +. +MessageId=7757 +Language=English +%1 +. +MessageId=7758 +Language=English +%1 +. +MessageId=7759 +Language=English +%1 +. +MessageId=7760 +Language=English +%1 +. +MessageId=7761 +Language=English +%1 +. +MessageId=7762 +Language=English +%1 +. +MessageId=7763 +Language=English +%1 +. +MessageId=7764 +Language=English +%1 +. +MessageId=7765 +Language=English +%1 +. +MessageId=7766 +Language=English +%1 +. +MessageId=7767 +Language=English +%1 +. +MessageId=7768 +Language=English +%1 +. +MessageId=7769 +Language=English +%1 +. +MessageId=7770 +Language=English +%1 +. +MessageId=7771 +Language=English +%1 +. +MessageId=7772 +Language=English +%1 +. +MessageId=7773 +Language=English +%1 +. +MessageId=7774 +Language=English +%1 +. +MessageId=7775 +Language=English +%1 +. +MessageId=7776 +Language=English +%1 +. +MessageId=7777 +Language=English +%1 +. +MessageId=7778 +Language=English +%1 +. +MessageId=7779 +Language=English +%1 +. +MessageId=7780 +Language=English +%1 +. +MessageId=7781 +Language=English +%1 +. +MessageId=7782 +Language=English +%1 +. +MessageId=7783 +Language=English +%1 +. +MessageId=7784 +Language=English +%1 +. +MessageId=7785 +Language=English +%1 +. +MessageId=7786 +Language=English +%1 +. +MessageId=7787 +Language=English +%1 +. +MessageId=7788 +Language=English +%1 +. +MessageId=7789 +Language=English +%1 +. +MessageId=7790 +Language=English +%1 +. +MessageId=7791 +Language=English +%1 +. +MessageId=7792 +Language=English +%1 +. +MessageId=7793 +Language=English +%1 +. +MessageId=7794 +Language=English +%1 +. +MessageId=7795 +Language=English +%1 +. +MessageId=7796 +Language=English +%1 +. +MessageId=7797 +Language=English +%1 +. +MessageId=7798 +Language=English +%1 +. +MessageId=7799 +Language=English +%1 +. +MessageId=7800 +Language=English +%1 +. +MessageId=7801 +Language=English +%1 +. +MessageId=7802 +Language=English +%1 +. +MessageId=7803 +Language=English +%1 +. +MessageId=7804 +Language=English +%1 +. +MessageId=7805 +Language=English +%1 +. +MessageId=7806 +Language=English +%1 +. +MessageId=7807 +Language=English +%1 +. +MessageId=7808 +Language=English +%1 +. +MessageId=7809 +Language=English +%1 +. +MessageId=7810 +Language=English +%1 +. +MessageId=7811 +Language=English +%1 +. +MessageId=7812 +Language=English +%1 +. +MessageId=7813 +Language=English +%1 +. +MessageId=7814 +Language=English +%1 +. +MessageId=7815 +Language=English +%1 +. +MessageId=7816 +Language=English +%1 +. +MessageId=7817 +Language=English +%1 +. +MessageId=7818 +Language=English +%1 +. +MessageId=7819 +Language=English +%1 +. +MessageId=7820 +Language=English +%1 +. +MessageId=7821 +Language=English +%1 +. +MessageId=7822 +Language=English +%1 +. +MessageId=7823 +Language=English +%1 +. +MessageId=7824 +Language=English +%1 +. +MessageId=7825 +Language=English +%1 +. +MessageId=7826 +Language=English +%1 +. +MessageId=7827 +Language=English +%1 +. +MessageId=7828 +Language=English +%1 +. +MessageId=7829 +Language=English +%1 +. +MessageId=7830 +Language=English +%1 +. +MessageId=7831 +Language=English +%1 +. +MessageId=7832 +Language=English +%1 +. +MessageId=7833 +Language=English +%1 +. +MessageId=7834 +Language=English +%1 +. +MessageId=7835 +Language=English +%1 +. +MessageId=7836 +Language=English +%1 +. +MessageId=7837 +Language=English +%1 +. +MessageId=7838 +Language=English +%1 +. +MessageId=7839 +Language=English +%1 +. +MessageId=7840 +Language=English +%1 +. +MessageId=7841 +Language=English +%1 +. +MessageId=7842 +Language=English +%1 +. +MessageId=7843 +Language=English +%1 +. +MessageId=7844 +Language=English +%1 +. +MessageId=7845 +Language=English +%1 +. +MessageId=7846 +Language=English +%1 +. +MessageId=7847 +Language=English +%1 +. +MessageId=7848 +Language=English +%1 +. +MessageId=7849 +Language=English +%1 +. +MessageId=7850 +Language=English +%1 +. +MessageId=7851 +Language=English +%1 +. +MessageId=7852 +Language=English +%1 +. +MessageId=7853 +Language=English +%1 +. +MessageId=7854 +Language=English +%1 +. +MessageId=7855 +Language=English +%1 +. +MessageId=7856 +Language=English +%1 +. +MessageId=7857 +Language=English +%1 +. +MessageId=7858 +Language=English +%1 +. +MessageId=7859 +Language=English +%1 +. +MessageId=7860 +Language=English +%1 +. +MessageId=7861 +Language=English +%1 +. +MessageId=7862 +Language=English +%1 +. +MessageId=7863 +Language=English +%1 +. +MessageId=7864 +Language=English +%1 +. +MessageId=7865 +Language=English +%1 +. +MessageId=7866 +Language=English +%1 +. +MessageId=7867 +Language=English +%1 +. +MessageId=7868 +Language=English +%1 +. +MessageId=7869 +Language=English +%1 +. +MessageId=7870 +Language=English +%1 +. +MessageId=7871 +Language=English +%1 +. +MessageId=7872 +Language=English +%1 +. +MessageId=7873 +Language=English +%1 +. +MessageId=7874 +Language=English +%1 +. +MessageId=7875 +Language=English +%1 +. +MessageId=7876 +Language=English +%1 +. +MessageId=7877 +Language=English +%1 +. +MessageId=7878 +Language=English +%1 +. +MessageId=7879 +Language=English +%1 +. +MessageId=7880 +Language=English +%1 +. +MessageId=7881 +Language=English +%1 +. +MessageId=7882 +Language=English +%1 +. +MessageId=7883 +Language=English +%1 +. +MessageId=7884 +Language=English +%1 +. +MessageId=7885 +Language=English +%1 +. +MessageId=7886 +Language=English +%1 +. +MessageId=7887 +Language=English +%1 +. +MessageId=7888 +Language=English +%1 +. +MessageId=7889 +Language=English +%1 +. +MessageId=7890 +Language=English +%1 +. +MessageId=7891 +Language=English +%1 +. +MessageId=7892 +Language=English +%1 +. +MessageId=7893 +Language=English +%1 +. +MessageId=7894 +Language=English +%1 +. +MessageId=7895 +Language=English +%1 +. +MessageId=7896 +Language=English +%1 +. +MessageId=7897 +Language=English +%1 +. +MessageId=7898 +Language=English +%1 +. +MessageId=7899 +Language=English +%1 +. +MessageId=7900 +Language=English +%1 +. +MessageId=7901 +Language=English +%1 +. +MessageId=7902 +Language=English +%1 +. +MessageId=7903 +Language=English +%1 +. +MessageId=7904 +Language=English +%1 +. +MessageId=7905 +Language=English +%1 +. +MessageId=7906 +Language=English +%1 +. +MessageId=7907 +Language=English +%1 +. +MessageId=7908 +Language=English +%1 +. +MessageId=7909 +Language=English +%1 +. +MessageId=7910 +Language=English +%1 +. +MessageId=7911 +Language=English +%1 +. +MessageId=7912 +Language=English +%1 +. +MessageId=7913 +Language=English +%1 +. +MessageId=7914 +Language=English +%1 +. +MessageId=7915 +Language=English +%1 +. +MessageId=7916 +Language=English +%1 +. +MessageId=7917 +Language=English +%1 +. +MessageId=7918 +Language=English +%1 +. +MessageId=7919 +Language=English +%1 +. +MessageId=7920 +Language=English +%1 +. +MessageId=7921 +Language=English +%1 +. +MessageId=7922 +Language=English +%1 +. +MessageId=7923 +Language=English +%1 +. +MessageId=7924 +Language=English +%1 +. +MessageId=7925 +Language=English +%1 +. +MessageId=7926 +Language=English +%1 +. +MessageId=7927 +Language=English +%1 +. +MessageId=7928 +Language=English +%1 +. +MessageId=7929 +Language=English +%1 +. +MessageId=7930 +Language=English +%1 +. +MessageId=7931 +Language=English +%1 +. +MessageId=7932 +Language=English +%1 +. +MessageId=7933 +Language=English +%1 +. +MessageId=7934 +Language=English +%1 +. +MessageId=7935 +Language=English +%1 +. +MessageId=7936 +Language=English +%1 +. +MessageId=7937 +Language=English +%1 +. +MessageId=7938 +Language=English +%1 +. +MessageId=7939 +Language=English +%1 +. +MessageId=7940 +Language=English +%1 +. +MessageId=7941 +Language=English +%1 +. +MessageId=7942 +Language=English +%1 +. +MessageId=7943 +Language=English +%1 +. +MessageId=7944 +Language=English +%1 +. +MessageId=7945 +Language=English +%1 +. +MessageId=7946 +Language=English +%1 +. +MessageId=7947 +Language=English +%1 +. +MessageId=7948 +Language=English +%1 +. +MessageId=7949 +Language=English +%1 +. +MessageId=7950 +Language=English +%1 +. +MessageId=7951 +Language=English +%1 +. +MessageId=7952 +Language=English +%1 +. +MessageId=7953 +Language=English +%1 +. +MessageId=7954 +Language=English +%1 +. +MessageId=7955 +Language=English +%1 +. +MessageId=7956 +Language=English +%1 +. +MessageId=7957 +Language=English +%1 +. +MessageId=7958 +Language=English +%1 +. +MessageId=7959 +Language=English +%1 +. +MessageId=7960 +Language=English +%1 +. +MessageId=7961 +Language=English +%1 +. +MessageId=7962 +Language=English +%1 +. +MessageId=7963 +Language=English +%1 +. +MessageId=7964 +Language=English +%1 +. +MessageId=7965 +Language=English +%1 +. +MessageId=7966 +Language=English +%1 +. +MessageId=7967 +Language=English +%1 +. +MessageId=7968 +Language=English +%1 +. +MessageId=7969 +Language=English +%1 +. +MessageId=7970 +Language=English +%1 +. +MessageId=7971 +Language=English +%1 +. +MessageId=7972 +Language=English +%1 +. +MessageId=7973 +Language=English +%1 +. +MessageId=7974 +Language=English +%1 +. +MessageId=7975 +Language=English +%1 +. +MessageId=7976 +Language=English +%1 +. +MessageId=7977 +Language=English +%1 +. +MessageId=7978 +Language=English +%1 +. +MessageId=7979 +Language=English +%1 +. +MessageId=7980 +Language=English +%1 +. +MessageId=7981 +Language=English +%1 +. +MessageId=7982 +Language=English +%1 +. +MessageId=7983 +Language=English +%1 +. +MessageId=7984 +Language=English +%1 +. +MessageId=7985 +Language=English +%1 +. +MessageId=7986 +Language=English +%1 +. +MessageId=7987 +Language=English +%1 +. +MessageId=7988 +Language=English +%1 +. +MessageId=7989 +Language=English +%1 +. +MessageId=7990 +Language=English +%1 +. +MessageId=7991 +Language=English +%1 +. +MessageId=7992 +Language=English +%1 +. +MessageId=7993 +Language=English +%1 +. +MessageId=7994 +Language=English +%1 +. +MessageId=7995 +Language=English +%1 +. +MessageId=7996 +Language=English +%1 +. +MessageId=7997 +Language=English +%1 +. +MessageId=7998 +Language=English +%1 +. +MessageId=7999 +Language=English +%1 +. +MessageId=8000 +Language=English +%1 +. +MessageId=8001 +Language=English +%1 +. +MessageId=8002 +Language=English +%1 +. +MessageId=8003 +Language=English +%1 +. +MessageId=8004 +Language=English +%1 +. +MessageId=8005 +Language=English +%1 +. +MessageId=8006 +Language=English +%1 +. +MessageId=8007 +Language=English +%1 +. +MessageId=8008 +Language=English +%1 +. +MessageId=8009 +Language=English +%1 +. +MessageId=8010 +Language=English +%1 +. +MessageId=8011 +Language=English +%1 +. +MessageId=8012 +Language=English +%1 +. +MessageId=8013 +Language=English +%1 +. +MessageId=8014 +Language=English +%1 +. +MessageId=8015 +Language=English +%1 +. +MessageId=8016 +Language=English +%1 +. +MessageId=8017 +Language=English +%1 +. +MessageId=8018 +Language=English +%1 +. +MessageId=8019 +Language=English +%1 +. +MessageId=8020 +Language=English +%1 +. +MessageId=8021 +Language=English +%1 +. +MessageId=8022 +Language=English +%1 +. +MessageId=8023 +Language=English +%1 +. +MessageId=8024 +Language=English +%1 +. +MessageId=8025 +Language=English +%1 +. +MessageId=8026 +Language=English +%1 +. +MessageId=8027 +Language=English +%1 +. +MessageId=8028 +Language=English +%1 +. +MessageId=8029 +Language=English +%1 +. +MessageId=8030 +Language=English +%1 +. +MessageId=8031 +Language=English +%1 +. +MessageId=8032 +Language=English +%1 +. +MessageId=8033 +Language=English +%1 +. +MessageId=8034 +Language=English +%1 +. +MessageId=8035 +Language=English +%1 +. +MessageId=8036 +Language=English +%1 +. +MessageId=8037 +Language=English +%1 +. +MessageId=8038 +Language=English +%1 +. +MessageId=8039 +Language=English +%1 +. +MessageId=8040 +Language=English +%1 +. +MessageId=8041 +Language=English +%1 +. +MessageId=8042 +Language=English +%1 +. +MessageId=8043 +Language=English +%1 +. +MessageId=8044 +Language=English +%1 +. +MessageId=8045 +Language=English +%1 +. +MessageId=8046 +Language=English +%1 +. +MessageId=8047 +Language=English +%1 +. +MessageId=8048 +Language=English +%1 +. +MessageId=8049 +Language=English +%1 +. +MessageId=8050 +Language=English +%1 +. +MessageId=8051 +Language=English +%1 +. +MessageId=8052 +Language=English +%1 +. +MessageId=8053 +Language=English +%1 +. +MessageId=8054 +Language=English +%1 +. +MessageId=8055 +Language=English +%1 +. +MessageId=8056 +Language=English +%1 +. +MessageId=8057 +Language=English +%1 +. +MessageId=8058 +Language=English +%1 +. +MessageId=8059 +Language=English +%1 +. +MessageId=8060 +Language=English +%1 +. +MessageId=8061 +Language=English +%1 +. +MessageId=8062 +Language=English +%1 +. +MessageId=8063 +Language=English +%1 +. +MessageId=8064 +Language=English +%1 +. +MessageId=8065 +Language=English +%1 +. +MessageId=8066 +Language=English +%1 +. +MessageId=8067 +Language=English +%1 +. +MessageId=8068 +Language=English +%1 +. +MessageId=8069 +Language=English +%1 +. +MessageId=8070 +Language=English +%1 +. +MessageId=8071 +Language=English +%1 +. +MessageId=8072 +Language=English +%1 +. +MessageId=8073 +Language=English +%1 +. +MessageId=8074 +Language=English +%1 +. +MessageId=8075 +Language=English +%1 +. +MessageId=8076 +Language=English +%1 +. +MessageId=8077 +Language=English +%1 +. +MessageId=8078 +Language=English +%1 +. +MessageId=8079 +Language=English +%1 +. +MessageId=8080 +Language=English +%1 +. +MessageId=8081 +Language=English +%1 +. +MessageId=8082 +Language=English +%1 +. +MessageId=8083 +Language=English +%1 +. +MessageId=8084 +Language=English +%1 +. +MessageId=8085 +Language=English +%1 +. +MessageId=8086 +Language=English +%1 +. +MessageId=8087 +Language=English +%1 +. +MessageId=8088 +Language=English +%1 +. +MessageId=8089 +Language=English +%1 +. +MessageId=8090 +Language=English +%1 +. +MessageId=8091 +Language=English +%1 +. +MessageId=8092 +Language=English +%1 +. +MessageId=8093 +Language=English +%1 +. +MessageId=8094 +Language=English +%1 +. +MessageId=8095 +Language=English +%1 +. +MessageId=8096 +Language=English +%1 +. +MessageId=8097 +Language=English +%1 +. +MessageId=8098 +Language=English +%1 +. +MessageId=8099 +Language=English +%1 +. +MessageId=8100 +Language=English +%1 +. +MessageId=8101 +Language=English +%1 +. +MessageId=8102 +Language=English +%1 +. +MessageId=8103 +Language=English +%1 +. +MessageId=8104 +Language=English +%1 +. +MessageId=8105 +Language=English +%1 +. +MessageId=8106 +Language=English +%1 +. +MessageId=8107 +Language=English +%1 +. +MessageId=8108 +Language=English +%1 +. +MessageId=8109 +Language=English +%1 +. +MessageId=8110 +Language=English +%1 +. +MessageId=8111 +Language=English +%1 +. +MessageId=8112 +Language=English +%1 +. +MessageId=8113 +Language=English +%1 +. +MessageId=8114 +Language=English +%1 +. +MessageId=8115 +Language=English +%1 +. +MessageId=8116 +Language=English +%1 +. +MessageId=8117 +Language=English +%1 +. +MessageId=8118 +Language=English +%1 +. +MessageId=8119 +Language=English +%1 +. +MessageId=8120 +Language=English +%1 +. +MessageId=8121 +Language=English +%1 +. +MessageId=8122 +Language=English +%1 +. +MessageId=8123 +Language=English +%1 +. +MessageId=8124 +Language=English +%1 +. +MessageId=8125 +Language=English +%1 +. +MessageId=8126 +Language=English +%1 +. +MessageId=8127 +Language=English +%1 +. +MessageId=8128 +Language=English +%1 +. +MessageId=8129 +Language=English +%1 +. +MessageId=8130 +Language=English +%1 +. +MessageId=8131 +Language=English +%1 +. +MessageId=8132 +Language=English +%1 +. +MessageId=8133 +Language=English +%1 +. +MessageId=8134 +Language=English +%1 +. +MessageId=8135 +Language=English +%1 +. +MessageId=8136 +Language=English +%1 +. +MessageId=8137 +Language=English +%1 +. +MessageId=8138 +Language=English +%1 +. +MessageId=8139 +Language=English +%1 +. +MessageId=8140 +Language=English +%1 +. +MessageId=8141 +Language=English +%1 +. +MessageId=8142 +Language=English +%1 +. +MessageId=8143 +Language=English +%1 +. +MessageId=8144 +Language=English +%1 +. +MessageId=8145 +Language=English +%1 +. +MessageId=8146 +Language=English +%1 +. +MessageId=8147 +Language=English +%1 +. +MessageId=8148 +Language=English +%1 +. +MessageId=8149 +Language=English +%1 +. +MessageId=8150 +Language=English +%1 +. +MessageId=8151 +Language=English +%1 +. +MessageId=8152 +Language=English +%1 +. +MessageId=8153 +Language=English +%1 +. +MessageId=8154 +Language=English +%1 +. +MessageId=8155 +Language=English +%1 +. +MessageId=8156 +Language=English +%1 +. +MessageId=8157 +Language=English +%1 +. +MessageId=8158 +Language=English +%1 +. +MessageId=8159 +Language=English +%1 +. +MessageId=8160 +Language=English +%1 +. +MessageId=8161 +Language=English +%1 +. +MessageId=8162 +Language=English +%1 +. +MessageId=8163 +Language=English +%1 +. +MessageId=8164 +Language=English +%1 +. +MessageId=8165 +Language=English +%1 +. +MessageId=8166 +Language=English +%1 +. +MessageId=8167 +Language=English +%1 +. +MessageId=8168 +Language=English +%1 +. +MessageId=8169 +Language=English +%1 +. +MessageId=8170 +Language=English +%1 +. +MessageId=8171 +Language=English +%1 +. +MessageId=8172 +Language=English +%1 +. +MessageId=8173 +Language=English +%1 +. +MessageId=8174 +Language=English +%1 +. +MessageId=8175 +Language=English +%1 +. +MessageId=8176 +Language=English +%1 +. +MessageId=8177 +Language=English +%1 +. +MessageId=8178 +Language=English +%1 +. +MessageId=8179 +Language=English +%1 +. +MessageId=8180 +Language=English +%1 +. +MessageId=8181 +Language=English +%1 +. +MessageId=8182 +Language=English +%1 +. +MessageId=8183 +Language=English +%1 +. +MessageId=8184 +Language=English +%1 +. +MessageId=8185 +Language=English +%1 +. +MessageId=8186 +Language=English +%1 +. +MessageId=8187 +Language=English +%1 +. +MessageId=8188 +Language=English +%1 +. +MessageId=8189 +Language=English +%1 +. +MessageId=8190 +Language=English +%1 +. +MessageId=8191 +Language=English +%1 +. +MessageId=8192 +Language=English +%1 +. +MessageId=8193 +Language=English +%1 +. +MessageId=8194 +Language=English +%1 +. +MessageId=8195 +Language=English +%1 +. +MessageId=8196 +Language=English +%1 +. +MessageId=8197 +Language=English +%1 +. +MessageId=8198 +Language=English +%1 +. +MessageId=8199 +Language=English +%1 +. +MessageId=8200 +Language=English +%1 +. +MessageId=8201 +Language=English +%1 +. +MessageId=8202 +Language=English +%1 +. +MessageId=8203 +Language=English +%1 +. +MessageId=8204 +Language=English +%1 +. +MessageId=8205 +Language=English +%1 +. +MessageId=8206 +Language=English +%1 +. +MessageId=8207 +Language=English +%1 +. +MessageId=8208 +Language=English +%1 +. +MessageId=8209 +Language=English +%1 +. +MessageId=8210 +Language=English +%1 +. +MessageId=8211 +Language=English +%1 +. +MessageId=8212 +Language=English +%1 +. +MessageId=8213 +Language=English +%1 +. +MessageId=8214 +Language=English +%1 +. +MessageId=8215 +Language=English +%1 +. +MessageId=8216 +Language=English +%1 +. +MessageId=8217 +Language=English +%1 +. +MessageId=8218 +Language=English +%1 +. +MessageId=8219 +Language=English +%1 +. +MessageId=8220 +Language=English +%1 +. +MessageId=8221 +Language=English +%1 +. +MessageId=8222 +Language=English +%1 +. +MessageId=8223 +Language=English +%1 +. +MessageId=8224 +Language=English +%1 +. +MessageId=8225 +Language=English +%1 +. +MessageId=8226 +Language=English +%1 +. +MessageId=8227 +Language=English +%1 +. +MessageId=8228 +Language=English +%1 +. +MessageId=8229 +Language=English +%1 +. +MessageId=8230 +Language=English +%1 +. +MessageId=8231 +Language=English +%1 +. +MessageId=8232 +Language=English +%1 +. +MessageId=8233 +Language=English +%1 +. +MessageId=8234 +Language=English +%1 +. +MessageId=8235 +Language=English +%1 +. +MessageId=8236 +Language=English +%1 +. +MessageId=8237 +Language=English +%1 +. +MessageId=8238 +Language=English +%1 +. +MessageId=8239 +Language=English +%1 +. +MessageId=8240 +Language=English +%1 +. +MessageId=8241 +Language=English +%1 +. +MessageId=8242 +Language=English +%1 +. +MessageId=8243 +Language=English +%1 +. +MessageId=8244 +Language=English +%1 +. +MessageId=8245 +Language=English +%1 +. +MessageId=8246 +Language=English +%1 +. +MessageId=8247 +Language=English +%1 +. +MessageId=8248 +Language=English +%1 +. +MessageId=8249 +Language=English +%1 +. +MessageId=8250 +Language=English +%1 +. +MessageId=8251 +Language=English +%1 +. +MessageId=8252 +Language=English +%1 +. +MessageId=8253 +Language=English +%1 +. +MessageId=8254 +Language=English +%1 +. +MessageId=8255 +Language=English +%1 +. +MessageId=8256 +Language=English +%1 +. +MessageId=8257 +Language=English +%1 +. +MessageId=8258 +Language=English +%1 +. +MessageId=8259 +Language=English +%1 +. +MessageId=8260 +Language=English +%1 +. +MessageId=8261 +Language=English +%1 +. +MessageId=8262 +Language=English +%1 +. +MessageId=8263 +Language=English +%1 +. +MessageId=8264 +Language=English +%1 +. +MessageId=8265 +Language=English +%1 +. +MessageId=8266 +Language=English +%1 +. +MessageId=8267 +Language=English +%1 +. +MessageId=8268 +Language=English +%1 +. +MessageId=8269 +Language=English +%1 +. +MessageId=8270 +Language=English +%1 +. +MessageId=8271 +Language=English +%1 +. +MessageId=8272 +Language=English +%1 +. +MessageId=8273 +Language=English +%1 +. +MessageId=8274 +Language=English +%1 +. +MessageId=8275 +Language=English +%1 +. +MessageId=8276 +Language=English +%1 +. +MessageId=8277 +Language=English +%1 +. +MessageId=8278 +Language=English +%1 +. +MessageId=8279 +Language=English +%1 +. +MessageId=8280 +Language=English +%1 +. +MessageId=8281 +Language=English +%1 +. +MessageId=8282 +Language=English +%1 +. +MessageId=8283 +Language=English +%1 +. +MessageId=8284 +Language=English +%1 +. +MessageId=8285 +Language=English +%1 +. +MessageId=8286 +Language=English +%1 +. +MessageId=8287 +Language=English +%1 +. +MessageId=8288 +Language=English +%1 +. +MessageId=8289 +Language=English +%1 +. +MessageId=8290 +Language=English +%1 +. +MessageId=8291 +Language=English +%1 +. +MessageId=8292 +Language=English +%1 +. +MessageId=8293 +Language=English +%1 +. +MessageId=8294 +Language=English +%1 +. +MessageId=8295 +Language=English +%1 +. +MessageId=8296 +Language=English +%1 +. +MessageId=8297 +Language=English +%1 +. +MessageId=8298 +Language=English +%1 +. +MessageId=8299 +Language=English +%1 +. +MessageId=8300 +Language=English +%1 +. +MessageId=8301 +Language=English +%1 +. +MessageId=8302 +Language=English +%1 +. +MessageId=8303 +Language=English +%1 +. +MessageId=8304 +Language=English +%1 +. +MessageId=8305 +Language=English +%1 +. +MessageId=8306 +Language=English +%1 +. +MessageId=8307 +Language=English +%1 +. +MessageId=8308 +Language=English +%1 +. +MessageId=8309 +Language=English +%1 +. +MessageId=8310 +Language=English +%1 +. +MessageId=8311 +Language=English +%1 +. +MessageId=8312 +Language=English +%1 +. +MessageId=8313 +Language=English +%1 +. +MessageId=8314 +Language=English +%1 +. +MessageId=8315 +Language=English +%1 +. +MessageId=8316 +Language=English +%1 +. +MessageId=8317 +Language=English +%1 +. +MessageId=8318 +Language=English +%1 +. +MessageId=8319 +Language=English +%1 +. +MessageId=8320 +Language=English +%1 +. +MessageId=8321 +Language=English +%1 +. +MessageId=8322 +Language=English +%1 +. +MessageId=8323 +Language=English +%1 +. +MessageId=8324 +Language=English +%1 +. +MessageId=8325 +Language=English +%1 +. +MessageId=8326 +Language=English +%1 +. +MessageId=8327 +Language=English +%1 +. +MessageId=8328 +Language=English +%1 +. +MessageId=8329 +Language=English +%1 +. +MessageId=8330 +Language=English +%1 +. +MessageId=8331 +Language=English +%1 +. +MessageId=8332 +Language=English +%1 +. +MessageId=8333 +Language=English +%1 +. +MessageId=8334 +Language=English +%1 +. +MessageId=8335 +Language=English +%1 +. +MessageId=8336 +Language=English +%1 +. +MessageId=8337 +Language=English +%1 +. +MessageId=8338 +Language=English +%1 +. +MessageId=8339 +Language=English +%1 +. +MessageId=8340 +Language=English +%1 +. +MessageId=8341 +Language=English +%1 +. +MessageId=8342 +Language=English +%1 +. +MessageId=8343 +Language=English +%1 +. +MessageId=8344 +Language=English +%1 +. +MessageId=8345 +Language=English +%1 +. +MessageId=8346 +Language=English +%1 +. +MessageId=8347 +Language=English +%1 +. +MessageId=8348 +Language=English +%1 +. +MessageId=8349 +Language=English +%1 +. +MessageId=8350 +Language=English +%1 +. +MessageId=8351 +Language=English +%1 +. +MessageId=8352 +Language=English +%1 +. +MessageId=8353 +Language=English +%1 +. +MessageId=8354 +Language=English +%1 +. +MessageId=8355 +Language=English +%1 +. +MessageId=8356 +Language=English +%1 +. +MessageId=8357 +Language=English +%1 +. +MessageId=8358 +Language=English +%1 +. +MessageId=8359 +Language=English +%1 +. +MessageId=8360 +Language=English +%1 +. +MessageId=8361 +Language=English +%1 +. +MessageId=8362 +Language=English +%1 +. +MessageId=8363 +Language=English +%1 +. +MessageId=8364 +Language=English +%1 +. +MessageId=8365 +Language=English +%1 +. +MessageId=8366 +Language=English +%1 +. +MessageId=8367 +Language=English +%1 +. +MessageId=8368 +Language=English +%1 +. +MessageId=8369 +Language=English +%1 +. +MessageId=8370 +Language=English +%1 +. +MessageId=8371 +Language=English +%1 +. +MessageId=8372 +Language=English +%1 +. +MessageId=8373 +Language=English +%1 +. +MessageId=8374 +Language=English +%1 +. +MessageId=8375 +Language=English +%1 +. +MessageId=8376 +Language=English +%1 +. +MessageId=8377 +Language=English +%1 +. +MessageId=8378 +Language=English +%1 +. +MessageId=8379 +Language=English +%1 +. +MessageId=8380 +Language=English +%1 +. +MessageId=8381 +Language=English +%1 +. +MessageId=8382 +Language=English +%1 +. +MessageId=8383 +Language=English +%1 +. +MessageId=8384 +Language=English +%1 +. +MessageId=8385 +Language=English +%1 +. +MessageId=8386 +Language=English +%1 +. +MessageId=8387 +Language=English +%1 +. +MessageId=8388 +Language=English +%1 +. +MessageId=8389 +Language=English +%1 +. +MessageId=8390 +Language=English +%1 +. +MessageId=8391 +Language=English +%1 +. +MessageId=8392 +Language=English +%1 +. +MessageId=8393 +Language=English +%1 +. +MessageId=8394 +Language=English +%1 +. +MessageId=8395 +Language=English +%1 +. +MessageId=8396 +Language=English +%1 +. +MessageId=8397 +Language=English +%1 +. +MessageId=8398 +Language=English +%1 +. +MessageId=8399 +Language=English +%1 +. +MessageId=8400 +Language=English +%1 +. +MessageId=8401 +Language=English +%1 +. +MessageId=8402 +Language=English +%1 +. +MessageId=8403 +Language=English +%1 +. +MessageId=8404 +Language=English +%1 +. +MessageId=8405 +Language=English +%1 +. +MessageId=8406 +Language=English +%1 +. +MessageId=8407 +Language=English +%1 +. +MessageId=8408 +Language=English +%1 +. +MessageId=8409 +Language=English +%1 +. +MessageId=8410 +Language=English +%1 +. +MessageId=8411 +Language=English +%1 +. +MessageId=8412 +Language=English +%1 +. +MessageId=8413 +Language=English +%1 +. +MessageId=8414 +Language=English +%1 +. +MessageId=8415 +Language=English +%1 +. +MessageId=8416 +Language=English +%1 +. +MessageId=8417 +Language=English +%1 +. +MessageId=8418 +Language=English +%1 +. +MessageId=8419 +Language=English +%1 +. +MessageId=8420 +Language=English +%1 +. +MessageId=8421 +Language=English +%1 +. +MessageId=8422 +Language=English +%1 +. +MessageId=8423 +Language=English +%1 +. +MessageId=8424 +Language=English +%1 +. +MessageId=8425 +Language=English +%1 +. +MessageId=8426 +Language=English +%1 +. +MessageId=8427 +Language=English +%1 +. +MessageId=8428 +Language=English +%1 +. +MessageId=8429 +Language=English +%1 +. +MessageId=8430 +Language=English +%1 +. +MessageId=8431 +Language=English +%1 +. +MessageId=8432 +Language=English +%1 +. +MessageId=8433 +Language=English +%1 +. +MessageId=8434 +Language=English +%1 +. +MessageId=8435 +Language=English +%1 +. +MessageId=8436 +Language=English +%1 +. +MessageId=8437 +Language=English +%1 +. +MessageId=8438 +Language=English +%1 +. +MessageId=8439 +Language=English +%1 +. +MessageId=8440 +Language=English +%1 +. +MessageId=8441 +Language=English +%1 +. +MessageId=8442 +Language=English +%1 +. +MessageId=8443 +Language=English +%1 +. +MessageId=8444 +Language=English +%1 +. +MessageId=8445 +Language=English +%1 +. +MessageId=8446 +Language=English +%1 +. +MessageId=8447 +Language=English +%1 +. +MessageId=8448 +Language=English +%1 +. +MessageId=8449 +Language=English +%1 +. +MessageId=8450 +Language=English +%1 +. +MessageId=8451 +Language=English +%1 +. +MessageId=8452 +Language=English +%1 +. +MessageId=8453 +Language=English +%1 +. +MessageId=8454 +Language=English +%1 +. +MessageId=8455 +Language=English +%1 +. +MessageId=8456 +Language=English +%1 +. +MessageId=8457 +Language=English +%1 +. +MessageId=8458 +Language=English +%1 +. +MessageId=8459 +Language=English +%1 +. +MessageId=8460 +Language=English +%1 +. +MessageId=8461 +Language=English +%1 +. +MessageId=8462 +Language=English +%1 +. +MessageId=8463 +Language=English +%1 +. +MessageId=8464 +Language=English +%1 +. +MessageId=8465 +Language=English +%1 +. +MessageId=8466 +Language=English +%1 +. +MessageId=8467 +Language=English +%1 +. +MessageId=8468 +Language=English +%1 +. +MessageId=8469 +Language=English +%1 +. +MessageId=8470 +Language=English +%1 +. +MessageId=8471 +Language=English +%1 +. +MessageId=8472 +Language=English +%1 +. +MessageId=8473 +Language=English +%1 +. +MessageId=8474 +Language=English +%1 +. +MessageId=8475 +Language=English +%1 +. +MessageId=8476 +Language=English +%1 +. +MessageId=8477 +Language=English +%1 +. +MessageId=8478 +Language=English +%1 +. +MessageId=8479 +Language=English +%1 +. +MessageId=8480 +Language=English +%1 +. +MessageId=8481 +Language=English +%1 +. +MessageId=8482 +Language=English +%1 +. +MessageId=8483 +Language=English +%1 +. +MessageId=8484 +Language=English +%1 +. +MessageId=8485 +Language=English +%1 +. +MessageId=8486 +Language=English +%1 +. +MessageId=8487 +Language=English +%1 +. +MessageId=8488 +Language=English +%1 +. +MessageId=8489 +Language=English +%1 +. +MessageId=8490 +Language=English +%1 +. +MessageId=8491 +Language=English +%1 +. +MessageId=8492 +Language=English +%1 +. +MessageId=8493 +Language=English +%1 +. +MessageId=8494 +Language=English +%1 +. +MessageId=8495 +Language=English +%1 +. +MessageId=8496 +Language=English +%1 +. +MessageId=8497 +Language=English +%1 +. +MessageId=8498 +Language=English +%1 +. +MessageId=8499 +Language=English +%1 +. +MessageId=8500 +Language=English +%1 +. +MessageId=8501 +Language=English +%1 +. +MessageId=8502 +Language=English +%1 +. +MessageId=8503 +Language=English +%1 +. +MessageId=8504 +Language=English +%1 +. +MessageId=8505 +Language=English +%1 +. +MessageId=8506 +Language=English +%1 +. +MessageId=8507 +Language=English +%1 +. +MessageId=8508 +Language=English +%1 +. +MessageId=8509 +Language=English +%1 +. +MessageId=8510 +Language=English +%1 +. +MessageId=8511 +Language=English +%1 +. +MessageId=8512 +Language=English +%1 +. +MessageId=8513 +Language=English +%1 +. +MessageId=8514 +Language=English +%1 +. +MessageId=8515 +Language=English +%1 +. +MessageId=8516 +Language=English +%1 +. +MessageId=8517 +Language=English +%1 +. +MessageId=8518 +Language=English +%1 +. +MessageId=8519 +Language=English +%1 +. +MessageId=8520 +Language=English +%1 +. +MessageId=8521 +Language=English +%1 +. +MessageId=8522 +Language=English +%1 +. +MessageId=8523 +Language=English +%1 +. +MessageId=8524 +Language=English +%1 +. +MessageId=8525 +Language=English +%1 +. +MessageId=8526 +Language=English +%1 +. +MessageId=8527 +Language=English +%1 +. +MessageId=8528 +Language=English +%1 +. +MessageId=8529 +Language=English +%1 +. +MessageId=8530 +Language=English +%1 +. +MessageId=8531 +Language=English +%1 +. +MessageId=8532 +Language=English +%1 +. +MessageId=8533 +Language=English +%1 +. +MessageId=8534 +Language=English +%1 +. +MessageId=8535 +Language=English +%1 +. +MessageId=8536 +Language=English +%1 +. +MessageId=8537 +Language=English +%1 +. +MessageId=8538 +Language=English +%1 +. +MessageId=8539 +Language=English +%1 +. +MessageId=8540 +Language=English +%1 +. +MessageId=8541 +Language=English +%1 +. +MessageId=8542 +Language=English +%1 +. +MessageId=8543 +Language=English +%1 +. +MessageId=8544 +Language=English +%1 +. +MessageId=8545 +Language=English +%1 +. +MessageId=8546 +Language=English +%1 +. +MessageId=8547 +Language=English +%1 +. +MessageId=8548 +Language=English +%1 +. +MessageId=8549 +Language=English +%1 +. +MessageId=8550 +Language=English +%1 +. +MessageId=8551 +Language=English +%1 +. +MessageId=8552 +Language=English +%1 +. +MessageId=8553 +Language=English +%1 +. +MessageId=8554 +Language=English +%1 +. +MessageId=8555 +Language=English +%1 +. +MessageId=8556 +Language=English +%1 +. +MessageId=8557 +Language=English +%1 +. +MessageId=8558 +Language=English +%1 +. +MessageId=8559 +Language=English +%1 +. +MessageId=8560 +Language=English +%1 +. +MessageId=8561 +Language=English +%1 +. +MessageId=8562 +Language=English +%1 +. +MessageId=8563 +Language=English +%1 +. +MessageId=8564 +Language=English +%1 +. +MessageId=8565 +Language=English +%1 +. +MessageId=8566 +Language=English +%1 +. +MessageId=8567 +Language=English +%1 +. +MessageId=8568 +Language=English +%1 +. +MessageId=8569 +Language=English +%1 +. +MessageId=8570 +Language=English +%1 +. +MessageId=8571 +Language=English +%1 +. +MessageId=8572 +Language=English +%1 +. +MessageId=8573 +Language=English +%1 +. +MessageId=8574 +Language=English +%1 +. +MessageId=8575 +Language=English +%1 +. +MessageId=8576 +Language=English +%1 +. +MessageId=8577 +Language=English +%1 +. +MessageId=8578 +Language=English +%1 +. +MessageId=8579 +Language=English +%1 +. +MessageId=8580 +Language=English +%1 +. +MessageId=8581 +Language=English +%1 +. +MessageId=8582 +Language=English +%1 +. +MessageId=8583 +Language=English +%1 +. +MessageId=8584 +Language=English +%1 +. +MessageId=8585 +Language=English +%1 +. +MessageId=8586 +Language=English +%1 +. +MessageId=8587 +Language=English +%1 +. +MessageId=8588 +Language=English +%1 +. +MessageId=8589 +Language=English +%1 +. +MessageId=8590 +Language=English +%1 +. +MessageId=8591 +Language=English +%1 +. +MessageId=8592 +Language=English +%1 +. +MessageId=8593 +Language=English +%1 +. +MessageId=8594 +Language=English +%1 +. +MessageId=8595 +Language=English +%1 +. +MessageId=8596 +Language=English +%1 +. +MessageId=8597 +Language=English +%1 +. +MessageId=8598 +Language=English +%1 +. +MessageId=8599 +Language=English +%1 +. +MessageId=8600 +Language=English +%1 +. +MessageId=8601 +Language=English +%1 +. +MessageId=8602 +Language=English +%1 +. +MessageId=8603 +Language=English +%1 +. +MessageId=8604 +Language=English +%1 +. +MessageId=8605 +Language=English +%1 +. +MessageId=8606 +Language=English +%1 +. +MessageId=8607 +Language=English +%1 +. +MessageId=8608 +Language=English +%1 +. +MessageId=8609 +Language=English +%1 +. +MessageId=8610 +Language=English +%1 +. +MessageId=8611 +Language=English +%1 +. +MessageId=8612 +Language=English +%1 +. +MessageId=8613 +Language=English +%1 +. +MessageId=8614 +Language=English +%1 +. +MessageId=8615 +Language=English +%1 +. +MessageId=8616 +Language=English +%1 +. +MessageId=8617 +Language=English +%1 +. +MessageId=8618 +Language=English +%1 +. +MessageId=8619 +Language=English +%1 +. +MessageId=8620 +Language=English +%1 +. +MessageId=8621 +Language=English +%1 +. +MessageId=8622 +Language=English +%1 +. +MessageId=8623 +Language=English +%1 +. +MessageId=8624 +Language=English +%1 +. +MessageId=8625 +Language=English +%1 +. +MessageId=8626 +Language=English +%1 +. +MessageId=8627 +Language=English +%1 +. +MessageId=8628 +Language=English +%1 +. +MessageId=8629 +Language=English +%1 +. +MessageId=8630 +Language=English +%1 +. +MessageId=8631 +Language=English +%1 +. +MessageId=8632 +Language=English +%1 +. +MessageId=8633 +Language=English +%1 +. +MessageId=8634 +Language=English +%1 +. +MessageId=8635 +Language=English +%1 +. +MessageId=8636 +Language=English +%1 +. +MessageId=8637 +Language=English +%1 +. +MessageId=8638 +Language=English +%1 +. +MessageId=8639 +Language=English +%1 +. +MessageId=8640 +Language=English +%1 +. +MessageId=8641 +Language=English +%1 +. +MessageId=8642 +Language=English +%1 +. +MessageId=8643 +Language=English +%1 +. +MessageId=8644 +Language=English +%1 +. +MessageId=8645 +Language=English +%1 +. +MessageId=8646 +Language=English +%1 +. +MessageId=8647 +Language=English +%1 +. +MessageId=8648 +Language=English +%1 +. +MessageId=8649 +Language=English +%1 +. +MessageId=8650 +Language=English +%1 +. +MessageId=8651 +Language=English +%1 +. +MessageId=8652 +Language=English +%1 +. +MessageId=8653 +Language=English +%1 +. +MessageId=8654 +Language=English +%1 +. +MessageId=8655 +Language=English +%1 +. +MessageId=8656 +Language=English +%1 +. +MessageId=8657 +Language=English +%1 +. +MessageId=8658 +Language=English +%1 +. +MessageId=8659 +Language=English +%1 +. +MessageId=8660 +Language=English +%1 +. +MessageId=8661 +Language=English +%1 +. +MessageId=8662 +Language=English +%1 +. +MessageId=8663 +Language=English +%1 +. +MessageId=8664 +Language=English +%1 +. +MessageId=8665 +Language=English +%1 +. +MessageId=8666 +Language=English +%1 +. +MessageId=8667 +Language=English +%1 +. +MessageId=8668 +Language=English +%1 +. +MessageId=8669 +Language=English +%1 +. +MessageId=8670 +Language=English +%1 +. +MessageId=8671 +Language=English +%1 +. +MessageId=8672 +Language=English +%1 +. +MessageId=8673 +Language=English +%1 +. +MessageId=8674 +Language=English +%1 +. +MessageId=8675 +Language=English +%1 +. +MessageId=8676 +Language=English +%1 +. +MessageId=8677 +Language=English +%1 +. +MessageId=8678 +Language=English +%1 +. +MessageId=8679 +Language=English +%1 +. +MessageId=8680 +Language=English +%1 +. +MessageId=8681 +Language=English +%1 +. +MessageId=8682 +Language=English +%1 +. +MessageId=8683 +Language=English +%1 +. +MessageId=8684 +Language=English +%1 +. +MessageId=8685 +Language=English +%1 +. +MessageId=8686 +Language=English +%1 +. +MessageId=8687 +Language=English +%1 +. +MessageId=8688 +Language=English +%1 +. +MessageId=8689 +Language=English +%1 +. +MessageId=8690 +Language=English +%1 +. +MessageId=8691 +Language=English +%1 +. +MessageId=8692 +Language=English +%1 +. +MessageId=8693 +Language=English +%1 +. +MessageId=8694 +Language=English +%1 +. +MessageId=8695 +Language=English +%1 +. +MessageId=8696 +Language=English +%1 +. +MessageId=8697 +Language=English +%1 +. +MessageId=8698 +Language=English +%1 +. +MessageId=8699 +Language=English +%1 +. +MessageId=8700 +Language=English +%1 +. +MessageId=8701 +Language=English +%1 +. +MessageId=8702 +Language=English +%1 +. +MessageId=8703 +Language=English +%1 +. +MessageId=8704 +Language=English +%1 +. +MessageId=8705 +Language=English +%1 +. +MessageId=8706 +Language=English +%1 +. +MessageId=8707 +Language=English +%1 +. +MessageId=8708 +Language=English +%1 +. +MessageId=8709 +Language=English +%1 +. +MessageId=8710 +Language=English +%1 +. +MessageId=8711 +Language=English +%1 +. +MessageId=8712 +Language=English +%1 +. +MessageId=8713 +Language=English +%1 +. +MessageId=8714 +Language=English +%1 +. +MessageId=8715 +Language=English +%1 +. +MessageId=8716 +Language=English +%1 +. +MessageId=8717 +Language=English +%1 +. +MessageId=8718 +Language=English +%1 +. +MessageId=8719 +Language=English +%1 +. +MessageId=8720 +Language=English +%1 +. +MessageId=8721 +Language=English +%1 +. +MessageId=8722 +Language=English +%1 +. +MessageId=8723 +Language=English +%1 +. +MessageId=8724 +Language=English +%1 +. +MessageId=8725 +Language=English +%1 +. +MessageId=8726 +Language=English +%1 +. +MessageId=8727 +Language=English +%1 +. +MessageId=8728 +Language=English +%1 +. +MessageId=8729 +Language=English +%1 +. +MessageId=8730 +Language=English +%1 +. +MessageId=8731 +Language=English +%1 +. +MessageId=8732 +Language=English +%1 +. +MessageId=8733 +Language=English +%1 +. +MessageId=8734 +Language=English +%1 +. +MessageId=8735 +Language=English +%1 +. +MessageId=8736 +Language=English +%1 +. +MessageId=8737 +Language=English +%1 +. +MessageId=8738 +Language=English +%1 +. +MessageId=8739 +Language=English +%1 +. +MessageId=8740 +Language=English +%1 +. +MessageId=8741 +Language=English +%1 +. +MessageId=8742 +Language=English +%1 +. +MessageId=8743 +Language=English +%1 +. +MessageId=8744 +Language=English +%1 +. +MessageId=8745 +Language=English +%1 +. +MessageId=8746 +Language=English +%1 +. +MessageId=8747 +Language=English +%1 +. +MessageId=8748 +Language=English +%1 +. +MessageId=8749 +Language=English +%1 +. +MessageId=8750 +Language=English +%1 +. +MessageId=8751 +Language=English +%1 +. +MessageId=8752 +Language=English +%1 +. +MessageId=8753 +Language=English +%1 +. +MessageId=8754 +Language=English +%1 +. +MessageId=8755 +Language=English +%1 +. +MessageId=8756 +Language=English +%1 +. +MessageId=8757 +Language=English +%1 +. +MessageId=8758 +Language=English +%1 +. +MessageId=8759 +Language=English +%1 +. +MessageId=8760 +Language=English +%1 +. +MessageId=8761 +Language=English +%1 +. +MessageId=8762 +Language=English +%1 +. +MessageId=8763 +Language=English +%1 +. +MessageId=8764 +Language=English +%1 +. +MessageId=8765 +Language=English +%1 +. +MessageId=8766 +Language=English +%1 +. +MessageId=8767 +Language=English +%1 +. +MessageId=8768 +Language=English +%1 +. +MessageId=8769 +Language=English +%1 +. +MessageId=8770 +Language=English +%1 +. +MessageId=8771 +Language=English +%1 +. +MessageId=8772 +Language=English +%1 +. +MessageId=8773 +Language=English +%1 +. +MessageId=8774 +Language=English +%1 +. +MessageId=8775 +Language=English +%1 +. +MessageId=8776 +Language=English +%1 +. +MessageId=8777 +Language=English +%1 +. +MessageId=8778 +Language=English +%1 +. +MessageId=8779 +Language=English +%1 +. +MessageId=8780 +Language=English +%1 +. +MessageId=8781 +Language=English +%1 +. +MessageId=8782 +Language=English +%1 +. +MessageId=8783 +Language=English +%1 +. +MessageId=8784 +Language=English +%1 +. +MessageId=8785 +Language=English +%1 +. +MessageId=8786 +Language=English +%1 +. +MessageId=8787 +Language=English +%1 +. +MessageId=8788 +Language=English +%1 +. +MessageId=8789 +Language=English +%1 +. +MessageId=8790 +Language=English +%1 +. +MessageId=8791 +Language=English +%1 +. +MessageId=8792 +Language=English +%1 +. +MessageId=8793 +Language=English +%1 +. +MessageId=8794 +Language=English +%1 +. +MessageId=8795 +Language=English +%1 +. +MessageId=8796 +Language=English +%1 +. +MessageId=8797 +Language=English +%1 +. +MessageId=8798 +Language=English +%1 +. +MessageId=8799 +Language=English +%1 +. +MessageId=8800 +Language=English +%1 +. +MessageId=8801 +Language=English +%1 +. +MessageId=8802 +Language=English +%1 +. +MessageId=8803 +Language=English +%1 +. +MessageId=8804 +Language=English +%1 +. +MessageId=8805 +Language=English +%1 +. +MessageId=8806 +Language=English +%1 +. +MessageId=8807 +Language=English +%1 +. +MessageId=8808 +Language=English +%1 +. +MessageId=8809 +Language=English +%1 +. +MessageId=8810 +Language=English +%1 +. +MessageId=8811 +Language=English +%1 +. +MessageId=8812 +Language=English +%1 +. +MessageId=8813 +Language=English +%1 +. +MessageId=8814 +Language=English +%1 +. +MessageId=8815 +Language=English +%1 +. +MessageId=8816 +Language=English +%1 +. +MessageId=8817 +Language=English +%1 +. +MessageId=8818 +Language=English +%1 +. +MessageId=8819 +Language=English +%1 +. +MessageId=8820 +Language=English +%1 +. +MessageId=8821 +Language=English +%1 +. +MessageId=8822 +Language=English +%1 +. +MessageId=8823 +Language=English +%1 +. +MessageId=8824 +Language=English +%1 +. +MessageId=8825 +Language=English +%1 +. +MessageId=8826 +Language=English +%1 +. +MessageId=8827 +Language=English +%1 +. +MessageId=8828 +Language=English +%1 +. +MessageId=8829 +Language=English +%1 +. +MessageId=8830 +Language=English +%1 +. +MessageId=8831 +Language=English +%1 +. +MessageId=8832 +Language=English +%1 +. +MessageId=8833 +Language=English +%1 +. +MessageId=8834 +Language=English +%1 +. +MessageId=8835 +Language=English +%1 +. +MessageId=8836 +Language=English +%1 +. +MessageId=8837 +Language=English +%1 +. +MessageId=8838 +Language=English +%1 +. +MessageId=8839 +Language=English +%1 +. +MessageId=8840 +Language=English +%1 +. +MessageId=8841 +Language=English +%1 +. +MessageId=8842 +Language=English +%1 +. +MessageId=8843 +Language=English +%1 +. +MessageId=8844 +Language=English +%1 +. +MessageId=8845 +Language=English +%1 +. +MessageId=8846 +Language=English +%1 +. +MessageId=8847 +Language=English +%1 +. +MessageId=8848 +Language=English +%1 +. +MessageId=8849 +Language=English +%1 +. +MessageId=8850 +Language=English +%1 +. +MessageId=8851 +Language=English +%1 +. +MessageId=8852 +Language=English +%1 +. +MessageId=8853 +Language=English +%1 +. +MessageId=8854 +Language=English +%1 +. +MessageId=8855 +Language=English +%1 +. +MessageId=8856 +Language=English +%1 +. +MessageId=8857 +Language=English +%1 +. +MessageId=8858 +Language=English +%1 +. +MessageId=8859 +Language=English +%1 +. +MessageId=8860 +Language=English +%1 +. +MessageId=8861 +Language=English +%1 +. +MessageId=8862 +Language=English +%1 +. +MessageId=8863 +Language=English +%1 +. +MessageId=8864 +Language=English +%1 +. +MessageId=8865 +Language=English +%1 +. +MessageId=8866 +Language=English +%1 +. +MessageId=8867 +Language=English +%1 +. +MessageId=8868 +Language=English +%1 +. +MessageId=8869 +Language=English +%1 +. +MessageId=8870 +Language=English +%1 +. +MessageId=8871 +Language=English +%1 +. +MessageId=8872 +Language=English +%1 +. +MessageId=8873 +Language=English +%1 +. +MessageId=8874 +Language=English +%1 +. +MessageId=8875 +Language=English +%1 +. +MessageId=8876 +Language=English +%1 +. +MessageId=8877 +Language=English +%1 +. +MessageId=8878 +Language=English +%1 +. +MessageId=8879 +Language=English +%1 +. +MessageId=8880 +Language=English +%1 +. +MessageId=8881 +Language=English +%1 +. +MessageId=8882 +Language=English +%1 +. +MessageId=8883 +Language=English +%1 +. +MessageId=8884 +Language=English +%1 +. +MessageId=8885 +Language=English +%1 +. +MessageId=8886 +Language=English +%1 +. +MessageId=8887 +Language=English +%1 +. +MessageId=8888 +Language=English +%1 +. +MessageId=8889 +Language=English +%1 +. +MessageId=8890 +Language=English +%1 +. +MessageId=8891 +Language=English +%1 +. +MessageId=8892 +Language=English +%1 +. +MessageId=8893 +Language=English +%1 +. +MessageId=8894 +Language=English +%1 +. +MessageId=8895 +Language=English +%1 +. +MessageId=8896 +Language=English +%1 +. +MessageId=8897 +Language=English +%1 +. +MessageId=8898 +Language=English +%1 +. +MessageId=8899 +Language=English +%1 +. +MessageId=8900 +Language=English +%1 +. +MessageId=8901 +Language=English +%1 +. +MessageId=8902 +Language=English +%1 +. +MessageId=8903 +Language=English +%1 +. +MessageId=8904 +Language=English +%1 +. +MessageId=8905 +Language=English +%1 +. +MessageId=8906 +Language=English +%1 +. +MessageId=8907 +Language=English +%1 +. +MessageId=8908 +Language=English +%1 +. +MessageId=8909 +Language=English +%1 +. +MessageId=8910 +Language=English +%1 +. +MessageId=8911 +Language=English +%1 +. +MessageId=8912 +Language=English +%1 +. +MessageId=8913 +Language=English +%1 +. +MessageId=8914 +Language=English +%1 +. +MessageId=8915 +Language=English +%1 +. +MessageId=8916 +Language=English +%1 +. +MessageId=8917 +Language=English +%1 +. +MessageId=8918 +Language=English +%1 +. +MessageId=8919 +Language=English +%1 +. +MessageId=8920 +Language=English +%1 +. +MessageId=8921 +Language=English +%1 +. +MessageId=8922 +Language=English +%1 +. +MessageId=8923 +Language=English +%1 +. +MessageId=8924 +Language=English +%1 +. +MessageId=8925 +Language=English +%1 +. +MessageId=8926 +Language=English +%1 +. +MessageId=8927 +Language=English +%1 +. +MessageId=8928 +Language=English +%1 +. +MessageId=8929 +Language=English +%1 +. +MessageId=8930 +Language=English +%1 +. +MessageId=8931 +Language=English +%1 +. +MessageId=8932 +Language=English +%1 +. +MessageId=8933 +Language=English +%1 +. +MessageId=8934 +Language=English +%1 +. +MessageId=8935 +Language=English +%1 +. +MessageId=8936 +Language=English +%1 +. +MessageId=8937 +Language=English +%1 +. +MessageId=8938 +Language=English +%1 +. +MessageId=8939 +Language=English +%1 +. +MessageId=8940 +Language=English +%1 +. +MessageId=8941 +Language=English +%1 +. +MessageId=8942 +Language=English +%1 +. +MessageId=8943 +Language=English +%1 +. +MessageId=8944 +Language=English +%1 +. +MessageId=8945 +Language=English +%1 +. +MessageId=8946 +Language=English +%1 +. +MessageId=8947 +Language=English +%1 +. +MessageId=8948 +Language=English +%1 +. +MessageId=8949 +Language=English +%1 +. +MessageId=8950 +Language=English +%1 +. +MessageId=8951 +Language=English +%1 +. +MessageId=8952 +Language=English +%1 +. +MessageId=8953 +Language=English +%1 +. +MessageId=8954 +Language=English +%1 +. +MessageId=8955 +Language=English +%1 +. +MessageId=8956 +Language=English +%1 +. +MessageId=8957 +Language=English +%1 +. +MessageId=8958 +Language=English +%1 +. +MessageId=8959 +Language=English +%1 +. +MessageId=8960 +Language=English +%1 +. +MessageId=8961 +Language=English +%1 +. +MessageId=8962 +Language=English +%1 +. +MessageId=8963 +Language=English +%1 +. +MessageId=8964 +Language=English +%1 +. +MessageId=8965 +Language=English +%1 +. +MessageId=8966 +Language=English +%1 +. +MessageId=8967 +Language=English +%1 +. +MessageId=8968 +Language=English +%1 +. +MessageId=8969 +Language=English +%1 +. +MessageId=8970 +Language=English +%1 +. +MessageId=8971 +Language=English +%1 +. +MessageId=8972 +Language=English +%1 +. +MessageId=8973 +Language=English +%1 +. +MessageId=8974 +Language=English +%1 +. +MessageId=8975 +Language=English +%1 +. +MessageId=8976 +Language=English +%1 +. +MessageId=8977 +Language=English +%1 +. +MessageId=8978 +Language=English +%1 +. +MessageId=8979 +Language=English +%1 +. +MessageId=8980 +Language=English +%1 +. +MessageId=8981 +Language=English +%1 +. +MessageId=8982 +Language=English +%1 +. +MessageId=8983 +Language=English +%1 +. +MessageId=8984 +Language=English +%1 +. +MessageId=8985 +Language=English +%1 +. +MessageId=8986 +Language=English +%1 +. +MessageId=8987 +Language=English +%1 +. +MessageId=8988 +Language=English +%1 +. +MessageId=8989 +Language=English +%1 +. +MessageId=8990 +Language=English +%1 +. +MessageId=8991 +Language=English +%1 +. +MessageId=8992 +Language=English +%1 +. +MessageId=8993 +Language=English +%1 +. +MessageId=8994 +Language=English +%1 +. +MessageId=8995 +Language=English +%1 +. +MessageId=8996 +Language=English +%1 +. +MessageId=8997 +Language=English +%1 +. +MessageId=8998 +Language=English +%1 +. +MessageId=8999 +Language=English +%1 +. +MessageId=9000 +Language=English +%1 +. +MessageId=9001 +Language=English +%1 +. +MessageId=9002 +Language=English +%1 +. +MessageId=9003 +Language=English +%1 +. +MessageId=9004 +Language=English +%1 +. +MessageId=9005 +Language=English +%1 +. +MessageId=9006 +Language=English +%1 +. +MessageId=9007 +Language=English +%1 +. +MessageId=9008 +Language=English +%1 +. +MessageId=9009 +Language=English +%1 +. +MessageId=9010 +Language=English +%1 +. +MessageId=9011 +Language=English +%1 +. +MessageId=9012 +Language=English +%1 +. +MessageId=9013 +Language=English +%1 +. +MessageId=9014 +Language=English +%1 +. +MessageId=9015 +Language=English +%1 +. +MessageId=9016 +Language=English +%1 +. +MessageId=9017 +Language=English +%1 +. +MessageId=9018 +Language=English +%1 +. +MessageId=9019 +Language=English +%1 +. +MessageId=9020 +Language=English +%1 +. +MessageId=9021 +Language=English +%1 +. +MessageId=9022 +Language=English +%1 +. +MessageId=9023 +Language=English +%1 +. +MessageId=9024 +Language=English +%1 +. +MessageId=9025 +Language=English +%1 +. +MessageId=9026 +Language=English +%1 +. +MessageId=9027 +Language=English +%1 +. +MessageId=9028 +Language=English +%1 +. +MessageId=9029 +Language=English +%1 +. +MessageId=9030 +Language=English +%1 +. +MessageId=9031 +Language=English +%1 +. +MessageId=9032 +Language=English +%1 +. +MessageId=9033 +Language=English +%1 +. +MessageId=9034 +Language=English +%1 +. +MessageId=9035 +Language=English +%1 +. +MessageId=9036 +Language=English +%1 +. +MessageId=9037 +Language=English +%1 +. +MessageId=9038 +Language=English +%1 +. +MessageId=9039 +Language=English +%1 +. +MessageId=9040 +Language=English +%1 +. +MessageId=9041 +Language=English +%1 +. +MessageId=9042 +Language=English +%1 +. +MessageId=9043 +Language=English +%1 +. +MessageId=9044 +Language=English +%1 +. +MessageId=9045 +Language=English +%1 +. +MessageId=9046 +Language=English +%1 +. +MessageId=9047 +Language=English +%1 +. +MessageId=9048 +Language=English +%1 +. +MessageId=9049 +Language=English +%1 +. +MessageId=9050 +Language=English +%1 +. +MessageId=9051 +Language=English +%1 +. +MessageId=9052 +Language=English +%1 +. +MessageId=9053 +Language=English +%1 +. +MessageId=9054 +Language=English +%1 +. +MessageId=9055 +Language=English +%1 +. +MessageId=9056 +Language=English +%1 +. +MessageId=9057 +Language=English +%1 +. +MessageId=9058 +Language=English +%1 +. +MessageId=9059 +Language=English +%1 +. +MessageId=9060 +Language=English +%1 +. +MessageId=9061 +Language=English +%1 +. +MessageId=9062 +Language=English +%1 +. +MessageId=9063 +Language=English +%1 +. +MessageId=9064 +Language=English +%1 +. +MessageId=9065 +Language=English +%1 +. +MessageId=9066 +Language=English +%1 +. +MessageId=9067 +Language=English +%1 +. +MessageId=9068 +Language=English +%1 +. +MessageId=9069 +Language=English +%1 +. +MessageId=9070 +Language=English +%1 +. +MessageId=9071 +Language=English +%1 +. +MessageId=9072 +Language=English +%1 +. +MessageId=9073 +Language=English +%1 +. +MessageId=9074 +Language=English +%1 +. +MessageId=9075 +Language=English +%1 +. +MessageId=9076 +Language=English +%1 +. +MessageId=9077 +Language=English +%1 +. +MessageId=9078 +Language=English +%1 +. +MessageId=9079 +Language=English +%1 +. +MessageId=9080 +Language=English +%1 +. +MessageId=9081 +Language=English +%1 +. +MessageId=9082 +Language=English +%1 +. +MessageId=9083 +Language=English +%1 +. +MessageId=9084 +Language=English +%1 +. +MessageId=9085 +Language=English +%1 +. +MessageId=9086 +Language=English +%1 +. +MessageId=9087 +Language=English +%1 +. +MessageId=9088 +Language=English +%1 +. +MessageId=9089 +Language=English +%1 +. +MessageId=9090 +Language=English +%1 +. +MessageId=9091 +Language=English +%1 +. +MessageId=9092 +Language=English +%1 +. +MessageId=9093 +Language=English +%1 +. +MessageId=9094 +Language=English +%1 +. +MessageId=9095 +Language=English +%1 +. +MessageId=9096 +Language=English +%1 +. +MessageId=9097 +Language=English +%1 +. +MessageId=9098 +Language=English +%1 +. +MessageId=9099 +Language=English +%1 +. +MessageId=9100 +Language=English +%1 +. +MessageId=9101 +Language=English +%1 +. +MessageId=9102 +Language=English +%1 +. +MessageId=9103 +Language=English +%1 +. +MessageId=9104 +Language=English +%1 +. +MessageId=9105 +Language=English +%1 +. +MessageId=9106 +Language=English +%1 +. +MessageId=9107 +Language=English +%1 +. +MessageId=9108 +Language=English +%1 +. +MessageId=9109 +Language=English +%1 +. +MessageId=9110 +Language=English +%1 +. +MessageId=9111 +Language=English +%1 +. +MessageId=9112 +Language=English +%1 +. +MessageId=9113 +Language=English +%1 +. +MessageId=9114 +Language=English +%1 +. +MessageId=9115 +Language=English +%1 +. +MessageId=9116 +Language=English +%1 +. +MessageId=9117 +Language=English +%1 +. +MessageId=9118 +Language=English +%1 +. +MessageId=9119 +Language=English +%1 +. +MessageId=9120 +Language=English +%1 +. +MessageId=9121 +Language=English +%1 +. +MessageId=9122 +Language=English +%1 +. +MessageId=9123 +Language=English +%1 +. +MessageId=9124 +Language=English +%1 +. +MessageId=9125 +Language=English +%1 +. +MessageId=9126 +Language=English +%1 +. +MessageId=9127 +Language=English +%1 +. +MessageId=9128 +Language=English +%1 +. +MessageId=9129 +Language=English +%1 +. +MessageId=9130 +Language=English +%1 +. +MessageId=9131 +Language=English +%1 +. +MessageId=9132 +Language=English +%1 +. +MessageId=9133 +Language=English +%1 +. +MessageId=9134 +Language=English +%1 +. +MessageId=9135 +Language=English +%1 +. +MessageId=9136 +Language=English +%1 +. +MessageId=9137 +Language=English +%1 +. +MessageId=9138 +Language=English +%1 +. +MessageId=9139 +Language=English +%1 +. +MessageId=9140 +Language=English +%1 +. +MessageId=9141 +Language=English +%1 +. +MessageId=9142 +Language=English +%1 +. +MessageId=9143 +Language=English +%1 +. +MessageId=9144 +Language=English +%1 +. +MessageId=9145 +Language=English +%1 +. +MessageId=9146 +Language=English +%1 +. +MessageId=9147 +Language=English +%1 +. +MessageId=9148 +Language=English +%1 +. +MessageId=9149 +Language=English +%1 +. +MessageId=9150 +Language=English +%1 +. +MessageId=9151 +Language=English +%1 +. +MessageId=9152 +Language=English +%1 +. +MessageId=9153 +Language=English +%1 +. +MessageId=9154 +Language=English +%1 +. +MessageId=9155 +Language=English +%1 +. +MessageId=9156 +Language=English +%1 +. +MessageId=9157 +Language=English +%1 +. +MessageId=9158 +Language=English +%1 +. +MessageId=9159 +Language=English +%1 +. +MessageId=9160 +Language=English +%1 +. +MessageId=9161 +Language=English +%1 +. +MessageId=9162 +Language=English +%1 +. +MessageId=9163 +Language=English +%1 +. +MessageId=9164 +Language=English +%1 +. +MessageId=9165 +Language=English +%1 +. +MessageId=9166 +Language=English +%1 +. +MessageId=9167 +Language=English +%1 +. +MessageId=9168 +Language=English +%1 +. +MessageId=9169 +Language=English +%1 +. +MessageId=9170 +Language=English +%1 +. +MessageId=9171 +Language=English +%1 +. +MessageId=9172 +Language=English +%1 +. +MessageId=9173 +Language=English +%1 +. +MessageId=9174 +Language=English +%1 +. +MessageId=9175 +Language=English +%1 +. +MessageId=9176 +Language=English +%1 +. +MessageId=9177 +Language=English +%1 +. +MessageId=9178 +Language=English +%1 +. +MessageId=9179 +Language=English +%1 +. +MessageId=9180 +Language=English +%1 +. +MessageId=9181 +Language=English +%1 +. +MessageId=9182 +Language=English +%1 +. +MessageId=9183 +Language=English +%1 +. +MessageId=9184 +Language=English +%1 +. +MessageId=9185 +Language=English +%1 +. +MessageId=9186 +Language=English +%1 +. +MessageId=9187 +Language=English +%1 +. +MessageId=9188 +Language=English +%1 +. +MessageId=9189 +Language=English +%1 +. +MessageId=9190 +Language=English +%1 +. +MessageId=9191 +Language=English +%1 +. +MessageId=9192 +Language=English +%1 +. +MessageId=9193 +Language=English +%1 +. +MessageId=9194 +Language=English +%1 +. +MessageId=9195 +Language=English +%1 +. +MessageId=9196 +Language=English +%1 +. +MessageId=9197 +Language=English +%1 +. +MessageId=9198 +Language=English +%1 +. +MessageId=9199 +Language=English +%1 +. +MessageId=9200 +Language=English +%1 +. +MessageId=9201 +Language=English +%1 +. +MessageId=9202 +Language=English +%1 +. +MessageId=9203 +Language=English +%1 +. +MessageId=9204 +Language=English +%1 +. +MessageId=9205 +Language=English +%1 +. +MessageId=9206 +Language=English +%1 +. +MessageId=9207 +Language=English +%1 +. +MessageId=9208 +Language=English +%1 +. +MessageId=9209 +Language=English +%1 +. +MessageId=9210 +Language=English +%1 +. +MessageId=9211 +Language=English +%1 +. +MessageId=9212 +Language=English +%1 +. +MessageId=9213 +Language=English +%1 +. +MessageId=9214 +Language=English +%1 +. +MessageId=9215 +Language=English +%1 +. +MessageId=9216 +Language=English +%1 +. +MessageId=9217 +Language=English +%1 +. +MessageId=9218 +Language=English +%1 +. +MessageId=9219 +Language=English +%1 +. +MessageId=9220 +Language=English +%1 +. +MessageId=9221 +Language=English +%1 +. +MessageId=9222 +Language=English +%1 +. +MessageId=9223 +Language=English +%1 +. +MessageId=9224 +Language=English +%1 +. +MessageId=9225 +Language=English +%1 +. +MessageId=9226 +Language=English +%1 +. +MessageId=9227 +Language=English +%1 +. +MessageId=9228 +Language=English +%1 +. +MessageId=9229 +Language=English +%1 +. +MessageId=9230 +Language=English +%1 +. +MessageId=9231 +Language=English +%1 +. +MessageId=9232 +Language=English +%1 +. +MessageId=9233 +Language=English +%1 +. +MessageId=9234 +Language=English +%1 +. +MessageId=9235 +Language=English +%1 +. +MessageId=9236 +Language=English +%1 +. +MessageId=9237 +Language=English +%1 +. +MessageId=9238 +Language=English +%1 +. +MessageId=9239 +Language=English +%1 +. +MessageId=9240 +Language=English +%1 +. +MessageId=9241 +Language=English +%1 +. +MessageId=9242 +Language=English +%1 +. +MessageId=9243 +Language=English +%1 +. +MessageId=9244 +Language=English +%1 +. +MessageId=9245 +Language=English +%1 +. +MessageId=9246 +Language=English +%1 +. +MessageId=9247 +Language=English +%1 +. +MessageId=9248 +Language=English +%1 +. +MessageId=9249 +Language=English +%1 +. +MessageId=9250 +Language=English +%1 +. +MessageId=9251 +Language=English +%1 +. +MessageId=9252 +Language=English +%1 +. +MessageId=9253 +Language=English +%1 +. +MessageId=9254 +Language=English +%1 +. +MessageId=9255 +Language=English +%1 +. +MessageId=9256 +Language=English +%1 +. +MessageId=9257 +Language=English +%1 +. +MessageId=9258 +Language=English +%1 +. +MessageId=9259 +Language=English +%1 +. +MessageId=9260 +Language=English +%1 +. +MessageId=9261 +Language=English +%1 +. +MessageId=9262 +Language=English +%1 +. +MessageId=9263 +Language=English +%1 +. +MessageId=9264 +Language=English +%1 +. +MessageId=9265 +Language=English +%1 +. +MessageId=9266 +Language=English +%1 +. +MessageId=9267 +Language=English +%1 +. +MessageId=9268 +Language=English +%1 +. +MessageId=9269 +Language=English +%1 +. +MessageId=9270 +Language=English +%1 +. +MessageId=9271 +Language=English +%1 +. +MessageId=9272 +Language=English +%1 +. +MessageId=9273 +Language=English +%1 +. +MessageId=9274 +Language=English +%1 +. +MessageId=9275 +Language=English +%1 +. +MessageId=9276 +Language=English +%1 +. +MessageId=9277 +Language=English +%1 +. +MessageId=9278 +Language=English +%1 +. +MessageId=9279 +Language=English +%1 +. +MessageId=9280 +Language=English +%1 +. +MessageId=9281 +Language=English +%1 +. +MessageId=9282 +Language=English +%1 +. +MessageId=9283 +Language=English +%1 +. +MessageId=9284 +Language=English +%1 +. +MessageId=9285 +Language=English +%1 +. +MessageId=9286 +Language=English +%1 +. +MessageId=9287 +Language=English +%1 +. +MessageId=9288 +Language=English +%1 +. +MessageId=9289 +Language=English +%1 +. +MessageId=9290 +Language=English +%1 +. +MessageId=9291 +Language=English +%1 +. +MessageId=9292 +Language=English +%1 +. +MessageId=9293 +Language=English +%1 +. +MessageId=9294 +Language=English +%1 +. +MessageId=9295 +Language=English +%1 +. +MessageId=9296 +Language=English +%1 +. +MessageId=9297 +Language=English +%1 +. +MessageId=9298 +Language=English +%1 +. +MessageId=9299 +Language=English +%1 +. +MessageId=9300 +Language=English +%1 +. +MessageId=9301 +Language=English +%1 +. +MessageId=9302 +Language=English +%1 +. +MessageId=9303 +Language=English +%1 +. +MessageId=9304 +Language=English +%1 +. +MessageId=9305 +Language=English +%1 +. +MessageId=9306 +Language=English +%1 +. +MessageId=9307 +Language=English +%1 +. +MessageId=9308 +Language=English +%1 +. +MessageId=9309 +Language=English +%1 +. +MessageId=9310 +Language=English +%1 +. +MessageId=9311 +Language=English +%1 +. +MessageId=9312 +Language=English +%1 +. +MessageId=9313 +Language=English +%1 +. +MessageId=9314 +Language=English +%1 +. +MessageId=9315 +Language=English +%1 +. +MessageId=9316 +Language=English +%1 +. +MessageId=9317 +Language=English +%1 +. +MessageId=9318 +Language=English +%1 +. +MessageId=9319 +Language=English +%1 +. +MessageId=9320 +Language=English +%1 +. +MessageId=9321 +Language=English +%1 +. +MessageId=9322 +Language=English +%1 +. +MessageId=9323 +Language=English +%1 +. +MessageId=9324 +Language=English +%1 +. +MessageId=9325 +Language=English +%1 +. +MessageId=9326 +Language=English +%1 +. +MessageId=9327 +Language=English +%1 +. +MessageId=9328 +Language=English +%1 +. +MessageId=9329 +Language=English +%1 +. +MessageId=9330 +Language=English +%1 +. +MessageId=9331 +Language=English +%1 +. +MessageId=9332 +Language=English +%1 +. +MessageId=9333 +Language=English +%1 +. +MessageId=9334 +Language=English +%1 +. +MessageId=9335 +Language=English +%1 +. +MessageId=9336 +Language=English +%1 +. +MessageId=9337 +Language=English +%1 +. +MessageId=9338 +Language=English +%1 +. +MessageId=9339 +Language=English +%1 +. +MessageId=9340 +Language=English +%1 +. +MessageId=9341 +Language=English +%1 +. +MessageId=9342 +Language=English +%1 +. +MessageId=9343 +Language=English +%1 +. +MessageId=9344 +Language=English +%1 +. +MessageId=9345 +Language=English +%1 +. +MessageId=9346 +Language=English +%1 +. +MessageId=9347 +Language=English +%1 +. +MessageId=9348 +Language=English +%1 +. +MessageId=9349 +Language=English +%1 +. +MessageId=9350 +Language=English +%1 +. +MessageId=9351 +Language=English +%1 +. +MessageId=9352 +Language=English +%1 +. +MessageId=9353 +Language=English +%1 +. +MessageId=9354 +Language=English +%1 +. +MessageId=9355 +Language=English +%1 +. +MessageId=9356 +Language=English +%1 +. +MessageId=9357 +Language=English +%1 +. +MessageId=9358 +Language=English +%1 +. +MessageId=9359 +Language=English +%1 +. +MessageId=9360 +Language=English +%1 +. +MessageId=9361 +Language=English +%1 +. +MessageId=9362 +Language=English +%1 +. +MessageId=9363 +Language=English +%1 +. +MessageId=9364 +Language=English +%1 +. +MessageId=9365 +Language=English +%1 +. +MessageId=9366 +Language=English +%1 +. +MessageId=9367 +Language=English +%1 +. +MessageId=9368 +Language=English +%1 +. +MessageId=9369 +Language=English +%1 +. +MessageId=9370 +Language=English +%1 +. +MessageId=9371 +Language=English +%1 +. +MessageId=9372 +Language=English +%1 +. +MessageId=9373 +Language=English +%1 +. +MessageId=9374 +Language=English +%1 +. +MessageId=9375 +Language=English +%1 +. +MessageId=9376 +Language=English +%1 +. +MessageId=9377 +Language=English +%1 +. +MessageId=9378 +Language=English +%1 +. +MessageId=9379 +Language=English +%1 +. +MessageId=9380 +Language=English +%1 +. +MessageId=9381 +Language=English +%1 +. +MessageId=9382 +Language=English +%1 +. +MessageId=9383 +Language=English +%1 +. +MessageId=9384 +Language=English +%1 +. +MessageId=9385 +Language=English +%1 +. +MessageId=9386 +Language=English +%1 +. +MessageId=9387 +Language=English +%1 +. +MessageId=9388 +Language=English +%1 +. +MessageId=9389 +Language=English +%1 +. +MessageId=9390 +Language=English +%1 +. +MessageId=9391 +Language=English +%1 +. +MessageId=9392 +Language=English +%1 +. +MessageId=9393 +Language=English +%1 +. +MessageId=9394 +Language=English +%1 +. +MessageId=9395 +Language=English +%1 +. +MessageId=9396 +Language=English +%1 +. +MessageId=9397 +Language=English +%1 +. +MessageId=9398 +Language=English +%1 +. +MessageId=9399 +Language=English +%1 +. +MessageId=9400 +Language=English +%1 +. +MessageId=9401 +Language=English +%1 +. +MessageId=9402 +Language=English +%1 +. +MessageId=9403 +Language=English +%1 +. +MessageId=9404 +Language=English +%1 +. +MessageId=9405 +Language=English +%1 +. +MessageId=9406 +Language=English +%1 +. +MessageId=9407 +Language=English +%1 +. +MessageId=9408 +Language=English +%1 +. +MessageId=9409 +Language=English +%1 +. +MessageId=9410 +Language=English +%1 +. +MessageId=9411 +Language=English +%1 +. +MessageId=9412 +Language=English +%1 +. +MessageId=9413 +Language=English +%1 +. +MessageId=9414 +Language=English +%1 +. +MessageId=9415 +Language=English +%1 +. +MessageId=9416 +Language=English +%1 +. +MessageId=9417 +Language=English +%1 +. +MessageId=9418 +Language=English +%1 +. +MessageId=9419 +Language=English +%1 +. +MessageId=9420 +Language=English +%1 +. +MessageId=9421 +Language=English +%1 +. +MessageId=9422 +Language=English +%1 +. +MessageId=9423 +Language=English +%1 +. +MessageId=9424 +Language=English +%1 +. +MessageId=9425 +Language=English +%1 +. +MessageId=9426 +Language=English +%1 +. +MessageId=9427 +Language=English +%1 +. +MessageId=9428 +Language=English +%1 +. +MessageId=9429 +Language=English +%1 +. +MessageId=9430 +Language=English +%1 +. +MessageId=9431 +Language=English +%1 +. +MessageId=9432 +Language=English +%1 +. +MessageId=9433 +Language=English +%1 +. +MessageId=9434 +Language=English +%1 +. +MessageId=9435 +Language=English +%1 +. +MessageId=9436 +Language=English +%1 +. +MessageId=9437 +Language=English +%1 +. +MessageId=9438 +Language=English +%1 +. +MessageId=9439 +Language=English +%1 +. +MessageId=9440 +Language=English +%1 +. +MessageId=9441 +Language=English +%1 +. +MessageId=9442 +Language=English +%1 +. +MessageId=9443 +Language=English +%1 +. +MessageId=9444 +Language=English +%1 +. +MessageId=9445 +Language=English +%1 +. +MessageId=9446 +Language=English +%1 +. +MessageId=9447 +Language=English +%1 +. +MessageId=9448 +Language=English +%1 +. +MessageId=9449 +Language=English +%1 +. +MessageId=9450 +Language=English +%1 +. +MessageId=9451 +Language=English +%1 +. +MessageId=9452 +Language=English +%1 +. +MessageId=9453 +Language=English +%1 +. +MessageId=9454 +Language=English +%1 +. +MessageId=9455 +Language=English +%1 +. +MessageId=9456 +Language=English +%1 +. +MessageId=9457 +Language=English +%1 +. +MessageId=9458 +Language=English +%1 +. +MessageId=9459 +Language=English +%1 +. +MessageId=9460 +Language=English +%1 +. +MessageId=9461 +Language=English +%1 +. +MessageId=9462 +Language=English +%1 +. +MessageId=9463 +Language=English +%1 +. +MessageId=9464 +Language=English +%1 +. +MessageId=9465 +Language=English +%1 +. +MessageId=9466 +Language=English +%1 +. +MessageId=9467 +Language=English +%1 +. +MessageId=9468 +Language=English +%1 +. +MessageId=9469 +Language=English +%1 +. +MessageId=9470 +Language=English +%1 +. +MessageId=9471 +Language=English +%1 +. +MessageId=9472 +Language=English +%1 +. +MessageId=9473 +Language=English +%1 +. +MessageId=9474 +Language=English +%1 +. +MessageId=9475 +Language=English +%1 +. +MessageId=9476 +Language=English +%1 +. +MessageId=9477 +Language=English +%1 +. +MessageId=9478 +Language=English +%1 +. +MessageId=9479 +Language=English +%1 +. +MessageId=9480 +Language=English +%1 +. +MessageId=9481 +Language=English +%1 +. +MessageId=9482 +Language=English +%1 +. +MessageId=9483 +Language=English +%1 +. +MessageId=9484 +Language=English +%1 +. +MessageId=9485 +Language=English +%1 +. +MessageId=9486 +Language=English +%1 +. +MessageId=9487 +Language=English +%1 +. +MessageId=9488 +Language=English +%1 +. +MessageId=9489 +Language=English +%1 +. +MessageId=9490 +Language=English +%1 +. +MessageId=9491 +Language=English +%1 +. +MessageId=9492 +Language=English +%1 +. +MessageId=9493 +Language=English +%1 +. +MessageId=9494 +Language=English +%1 +. +MessageId=9495 +Language=English +%1 +. +MessageId=9496 +Language=English +%1 +. +MessageId=9497 +Language=English +%1 +. +MessageId=9498 +Language=English +%1 +. +MessageId=9499 +Language=English +%1 +. +MessageId=9500 +Language=English +%1 +. +MessageId=9501 +Language=English +%1 +. +MessageId=9502 +Language=English +%1 +. +MessageId=9503 +Language=English +%1 +. +MessageId=9504 +Language=English +%1 +. +MessageId=9505 +Language=English +%1 +. +MessageId=9506 +Language=English +%1 +. +MessageId=9507 +Language=English +%1 +. +MessageId=9508 +Language=English +%1 +. +MessageId=9509 +Language=English +%1 +. +MessageId=9510 +Language=English +%1 +. +MessageId=9511 +Language=English +%1 +. +MessageId=9512 +Language=English +%1 +. +MessageId=9513 +Language=English +%1 +. +MessageId=9514 +Language=English +%1 +. +MessageId=9515 +Language=English +%1 +. +MessageId=9516 +Language=English +%1 +. +MessageId=9517 +Language=English +%1 +. +MessageId=9518 +Language=English +%1 +. +MessageId=9519 +Language=English +%1 +. +MessageId=9520 +Language=English +%1 +. +MessageId=9521 +Language=English +%1 +. +MessageId=9522 +Language=English +%1 +. +MessageId=9523 +Language=English +%1 +. +MessageId=9524 +Language=English +%1 +. +MessageId=9525 +Language=English +%1 +. +MessageId=9526 +Language=English +%1 +. +MessageId=9527 +Language=English +%1 +. +MessageId=9528 +Language=English +%1 +. +MessageId=9529 +Language=English +%1 +. +MessageId=9530 +Language=English +%1 +. +MessageId=9531 +Language=English +%1 +. +MessageId=9532 +Language=English +%1 +. +MessageId=9533 +Language=English +%1 +. +MessageId=9534 +Language=English +%1 +. +MessageId=9535 +Language=English +%1 +. +MessageId=9536 +Language=English +%1 +. +MessageId=9537 +Language=English +%1 +. +MessageId=9538 +Language=English +%1 +. +MessageId=9539 +Language=English +%1 +. +MessageId=9540 +Language=English +%1 +. +MessageId=9541 +Language=English +%1 +. +MessageId=9542 +Language=English +%1 +. +MessageId=9543 +Language=English +%1 +. +MessageId=9544 +Language=English +%1 +. +MessageId=9545 +Language=English +%1 +. +MessageId=9546 +Language=English +%1 +. +MessageId=9547 +Language=English +%1 +. +MessageId=9548 +Language=English +%1 +. +MessageId=9549 +Language=English +%1 +. +MessageId=9550 +Language=English +%1 +. +MessageId=9551 +Language=English +%1 +. +MessageId=9552 +Language=English +%1 +. +MessageId=9553 +Language=English +%1 +. +MessageId=9554 +Language=English +%1 +. +MessageId=9555 +Language=English +%1 +. +MessageId=9556 +Language=English +%1 +. +MessageId=9557 +Language=English +%1 +. +MessageId=9558 +Language=English +%1 +. +MessageId=9559 +Language=English +%1 +. +MessageId=9560 +Language=English +%1 +. +MessageId=9561 +Language=English +%1 +. +MessageId=9562 +Language=English +%1 +. +MessageId=9563 +Language=English +%1 +. +MessageId=9564 +Language=English +%1 +. +MessageId=9565 +Language=English +%1 +. +MessageId=9566 +Language=English +%1 +. +MessageId=9567 +Language=English +%1 +. +MessageId=9568 +Language=English +%1 +. +MessageId=9569 +Language=English +%1 +. +MessageId=9570 +Language=English +%1 +. +MessageId=9571 +Language=English +%1 +. +MessageId=9572 +Language=English +%1 +. +MessageId=9573 +Language=English +%1 +. +MessageId=9574 +Language=English +%1 +. +MessageId=9575 +Language=English +%1 +. +MessageId=9576 +Language=English +%1 +. +MessageId=9577 +Language=English +%1 +. +MessageId=9578 +Language=English +%1 +. +MessageId=9579 +Language=English +%1 +. +MessageId=9580 +Language=English +%1 +. +MessageId=9581 +Language=English +%1 +. +MessageId=9582 +Language=English +%1 +. +MessageId=9583 +Language=English +%1 +. +MessageId=9584 +Language=English +%1 +. +MessageId=9585 +Language=English +%1 +. +MessageId=9586 +Language=English +%1 +. +MessageId=9587 +Language=English +%1 +. +MessageId=9588 +Language=English +%1 +. +MessageId=9589 +Language=English +%1 +. +MessageId=9590 +Language=English +%1 +. +MessageId=9591 +Language=English +%1 +. +MessageId=9592 +Language=English +%1 +. +MessageId=9593 +Language=English +%1 +. +MessageId=9594 +Language=English +%1 +. +MessageId=9595 +Language=English +%1 +. +MessageId=9596 +Language=English +%1 +. +MessageId=9597 +Language=English +%1 +. +MessageId=9598 +Language=English +%1 +. +MessageId=9599 +Language=English +%1 +. +MessageId=9600 +Language=English +%1 +. +MessageId=9601 +Language=English +%1 +. +MessageId=9602 +Language=English +%1 +. +MessageId=9603 +Language=English +%1 +. +MessageId=9604 +Language=English +%1 +. +MessageId=9605 +Language=English +%1 +. +MessageId=9606 +Language=English +%1 +. +MessageId=9607 +Language=English +%1 +. +MessageId=9608 +Language=English +%1 +. +MessageId=9609 +Language=English +%1 +. +MessageId=9610 +Language=English +%1 +. +MessageId=9611 +Language=English +%1 +. +MessageId=9612 +Language=English +%1 +. +MessageId=9613 +Language=English +%1 +. +MessageId=9614 +Language=English +%1 +. +MessageId=9615 +Language=English +%1 +. +MessageId=9616 +Language=English +%1 +. +MessageId=9617 +Language=English +%1 +. +MessageId=9618 +Language=English +%1 +. +MessageId=9619 +Language=English +%1 +. +MessageId=9620 +Language=English +%1 +. +MessageId=9621 +Language=English +%1 +. +MessageId=9622 +Language=English +%1 +. +MessageId=9623 +Language=English +%1 +. +MessageId=9624 +Language=English +%1 +. +MessageId=9625 +Language=English +%1 +. +MessageId=9626 +Language=English +%1 +. +MessageId=9627 +Language=English +%1 +. +MessageId=9628 +Language=English +%1 +. +MessageId=9629 +Language=English +%1 +. +MessageId=9630 +Language=English +%1 +. +MessageId=9631 +Language=English +%1 +. +MessageId=9632 +Language=English +%1 +. +MessageId=9633 +Language=English +%1 +. +MessageId=9634 +Language=English +%1 +. +MessageId=9635 +Language=English +%1 +. +MessageId=9636 +Language=English +%1 +. +MessageId=9637 +Language=English +%1 +. +MessageId=9638 +Language=English +%1 +. +MessageId=9639 +Language=English +%1 +. +MessageId=9640 +Language=English +%1 +. +MessageId=9641 +Language=English +%1 +. +MessageId=9642 +Language=English +%1 +. +MessageId=9643 +Language=English +%1 +. +MessageId=9644 +Language=English +%1 +. +MessageId=9645 +Language=English +%1 +. +MessageId=9646 +Language=English +%1 +. +MessageId=9647 +Language=English +%1 +. +MessageId=9648 +Language=English +%1 +. +MessageId=9649 +Language=English +%1 +. +MessageId=9650 +Language=English +%1 +. +MessageId=9651 +Language=English +%1 +. +MessageId=9652 +Language=English +%1 +. +MessageId=9653 +Language=English +%1 +. +MessageId=9654 +Language=English +%1 +. +MessageId=9655 +Language=English +%1 +. +MessageId=9656 +Language=English +%1 +. +MessageId=9657 +Language=English +%1 +. +MessageId=9658 +Language=English +%1 +. +MessageId=9659 +Language=English +%1 +. +MessageId=9660 +Language=English +%1 +. +MessageId=9661 +Language=English +%1 +. +MessageId=9662 +Language=English +%1 +. +MessageId=9663 +Language=English +%1 +. +MessageId=9664 +Language=English +%1 +. +MessageId=9665 +Language=English +%1 +. +MessageId=9666 +Language=English +%1 +. +MessageId=9667 +Language=English +%1 +. +MessageId=9668 +Language=English +%1 +. +MessageId=9669 +Language=English +%1 +. +MessageId=9670 +Language=English +%1 +. +MessageId=9671 +Language=English +%1 +. +MessageId=9672 +Language=English +%1 +. +MessageId=9673 +Language=English +%1 +. +MessageId=9674 +Language=English +%1 +. +MessageId=9675 +Language=English +%1 +. +MessageId=9676 +Language=English +%1 +. +MessageId=9677 +Language=English +%1 +. +MessageId=9678 +Language=English +%1 +. +MessageId=9679 +Language=English +%1 +. +MessageId=9680 +Language=English +%1 +. +MessageId=9681 +Language=English +%1 +. +MessageId=9682 +Language=English +%1 +. +MessageId=9683 +Language=English +%1 +. +MessageId=9684 +Language=English +%1 +. +MessageId=9685 +Language=English +%1 +. +MessageId=9686 +Language=English +%1 +. +MessageId=9687 +Language=English +%1 +. +MessageId=9688 +Language=English +%1 +. +MessageId=9689 +Language=English +%1 +. +MessageId=9690 +Language=English +%1 +. +MessageId=9691 +Language=English +%1 +. +MessageId=9692 +Language=English +%1 +. +MessageId=9693 +Language=English +%1 +. +MessageId=9694 +Language=English +%1 +. +MessageId=9695 +Language=English +%1 +. +MessageId=9696 +Language=English +%1 +. +MessageId=9697 +Language=English +%1 +. +MessageId=9698 +Language=English +%1 +. +MessageId=9699 +Language=English +%1 +. +MessageId=9700 +Language=English +%1 +. +MessageId=9701 +Language=English +%1 +. +MessageId=9702 +Language=English +%1 +. +MessageId=9703 +Language=English +%1 +. +MessageId=9704 +Language=English +%1 +. +MessageId=9705 +Language=English +%1 +. +MessageId=9706 +Language=English +%1 +. +MessageId=9707 +Language=English +%1 +. +MessageId=9708 +Language=English +%1 +. +MessageId=9709 +Language=English +%1 +. +MessageId=9710 +Language=English +%1 +. +MessageId=9711 +Language=English +%1 +. +MessageId=9712 +Language=English +%1 +. +MessageId=9713 +Language=English +%1 +. +MessageId=9714 +Language=English +%1 +. +MessageId=9715 +Language=English +%1 +. +MessageId=9716 +Language=English +%1 +. +MessageId=9717 +Language=English +%1 +. +MessageId=9718 +Language=English +%1 +. +MessageId=9719 +Language=English +%1 +. +MessageId=9720 +Language=English +%1 +. +MessageId=9721 +Language=English +%1 +. +MessageId=9722 +Language=English +%1 +. +MessageId=9723 +Language=English +%1 +. +MessageId=9724 +Language=English +%1 +. +MessageId=9725 +Language=English +%1 +. +MessageId=9726 +Language=English +%1 +. +MessageId=9727 +Language=English +%1 +. +MessageId=9728 +Language=English +%1 +. +MessageId=9729 +Language=English +%1 +. +MessageId=9730 +Language=English +%1 +. +MessageId=9731 +Language=English +%1 +. +MessageId=9732 +Language=English +%1 +. +MessageId=9733 +Language=English +%1 +. +MessageId=9734 +Language=English +%1 +. +MessageId=9735 +Language=English +%1 +. +MessageId=9736 +Language=English +%1 +. +MessageId=9737 +Language=English +%1 +. +MessageId=9738 +Language=English +%1 +. +MessageId=9739 +Language=English +%1 +. +MessageId=9740 +Language=English +%1 +. +MessageId=9741 +Language=English +%1 +. +MessageId=9742 +Language=English +%1 +. +MessageId=9743 +Language=English +%1 +. +MessageId=9744 +Language=English +%1 +. +MessageId=9745 +Language=English +%1 +. +MessageId=9746 +Language=English +%1 +. +MessageId=9747 +Language=English +%1 +. +MessageId=9748 +Language=English +%1 +. +MessageId=9749 +Language=English +%1 +. +MessageId=9750 +Language=English +%1 +. +MessageId=9751 +Language=English +%1 +. +MessageId=9752 +Language=English +%1 +. +MessageId=9753 +Language=English +%1 +. +MessageId=9754 +Language=English +%1 +. +MessageId=9755 +Language=English +%1 +. +MessageId=9756 +Language=English +%1 +. +MessageId=9757 +Language=English +%1 +. +MessageId=9758 +Language=English +%1 +. +MessageId=9759 +Language=English +%1 +. +MessageId=9760 +Language=English +%1 +. +MessageId=9761 +Language=English +%1 +. +MessageId=9762 +Language=English +%1 +. +MessageId=9763 +Language=English +%1 +. +MessageId=9764 +Language=English +%1 +. +MessageId=9765 +Language=English +%1 +. +MessageId=9766 +Language=English +%1 +. +MessageId=9767 +Language=English +%1 +. +MessageId=9768 +Language=English +%1 +. +MessageId=9769 +Language=English +%1 +. +MessageId=9770 +Language=English +%1 +. +MessageId=9771 +Language=English +%1 +. +MessageId=9772 +Language=English +%1 +. +MessageId=9773 +Language=English +%1 +. +MessageId=9774 +Language=English +%1 +. +MessageId=9775 +Language=English +%1 +. +MessageId=9776 +Language=English +%1 +. +MessageId=9777 +Language=English +%1 +. +MessageId=9778 +Language=English +%1 +. +MessageId=9779 +Language=English +%1 +. +MessageId=9780 +Language=English +%1 +. +MessageId=9781 +Language=English +%1 +. +MessageId=9782 +Language=English +%1 +. +MessageId=9783 +Language=English +%1 +. +MessageId=9784 +Language=English +%1 +. +MessageId=9785 +Language=English +%1 +. +MessageId=9786 +Language=English +%1 +. +MessageId=9787 +Language=English +%1 +. +MessageId=9788 +Language=English +%1 +. +MessageId=9789 +Language=English +%1 +. +MessageId=9790 +Language=English +%1 +. +MessageId=9791 +Language=English +%1 +. +MessageId=9792 +Language=English +%1 +. +MessageId=9793 +Language=English +%1 +. +MessageId=9794 +Language=English +%1 +. +MessageId=9795 +Language=English +%1 +. +MessageId=9796 +Language=English +%1 +. +MessageId=9797 +Language=English +%1 +. +MessageId=9798 +Language=English +%1 +. +MessageId=9799 +Language=English +%1 +. +MessageId=9800 +Language=English +%1 +. +MessageId=9801 +Language=English +%1 +. +MessageId=9802 +Language=English +%1 +. +MessageId=9803 +Language=English +%1 +. +MessageId=9804 +Language=English +%1 +. +MessageId=9805 +Language=English +%1 +. +MessageId=9806 +Language=English +%1 +. +MessageId=9807 +Language=English +%1 +. +MessageId=9808 +Language=English +%1 +. +MessageId=9809 +Language=English +%1 +. +MessageId=9810 +Language=English +%1 +. +MessageId=9811 +Language=English +%1 +. +MessageId=9812 +Language=English +%1 +. +MessageId=9813 +Language=English +%1 +. +MessageId=9814 +Language=English +%1 +. +MessageId=9815 +Language=English +%1 +. +MessageId=9816 +Language=English +%1 +. +MessageId=9817 +Language=English +%1 +. +MessageId=9818 +Language=English +%1 +. +MessageId=9819 +Language=English +%1 +. +MessageId=9820 +Language=English +%1 +. +MessageId=9821 +Language=English +%1 +. +MessageId=9822 +Language=English +%1 +. +MessageId=9823 +Language=English +%1 +. +MessageId=9824 +Language=English +%1 +. +MessageId=9825 +Language=English +%1 +. +MessageId=9826 +Language=English +%1 +. +MessageId=9827 +Language=English +%1 +. +MessageId=9828 +Language=English +%1 +. +MessageId=9829 +Language=English +%1 +. +MessageId=9830 +Language=English +%1 +. +MessageId=9831 +Language=English +%1 +. +MessageId=9832 +Language=English +%1 +. +MessageId=9833 +Language=English +%1 +. +MessageId=9834 +Language=English +%1 +. +MessageId=9835 +Language=English +%1 +. +MessageId=9836 +Language=English +%1 +. +MessageId=9837 +Language=English +%1 +. +MessageId=9838 +Language=English +%1 +. +MessageId=9839 +Language=English +%1 +. +MessageId=9840 +Language=English +%1 +. +MessageId=9841 +Language=English +%1 +. +MessageId=9842 +Language=English +%1 +. +MessageId=9843 +Language=English +%1 +. +MessageId=9844 +Language=English +%1 +. +MessageId=9845 +Language=English +%1 +. +MessageId=9846 +Language=English +%1 +. +MessageId=9847 +Language=English +%1 +. +MessageId=9848 +Language=English +%1 +. +MessageId=9849 +Language=English +%1 +. +MessageId=9850 +Language=English +%1 +. +MessageId=9851 +Language=English +%1 +. +MessageId=9852 +Language=English +%1 +. +MessageId=9853 +Language=English +%1 +. +MessageId=9854 +Language=English +%1 +. +MessageId=9855 +Language=English +%1 +. +MessageId=9856 +Language=English +%1 +. +MessageId=9857 +Language=English +%1 +. +MessageId=9858 +Language=English +%1 +. +MessageId=9859 +Language=English +%1 +. +MessageId=9860 +Language=English +%1 +. +MessageId=9861 +Language=English +%1 +. +MessageId=9862 +Language=English +%1 +. +MessageId=9863 +Language=English +%1 +. +MessageId=9864 +Language=English +%1 +. +MessageId=9865 +Language=English +%1 +. +MessageId=9866 +Language=English +%1 +. +MessageId=9867 +Language=English +%1 +. +MessageId=9868 +Language=English +%1 +. +MessageId=9869 +Language=English +%1 +. +MessageId=9870 +Language=English +%1 +. +MessageId=9871 +Language=English +%1 +. +MessageId=9872 +Language=English +%1 +. +MessageId=9873 +Language=English +%1 +. +MessageId=9874 +Language=English +%1 +. +MessageId=9875 +Language=English +%1 +. +MessageId=9876 +Language=English +%1 +. +MessageId=9877 +Language=English +%1 +. +MessageId=9878 +Language=English +%1 +. +MessageId=9879 +Language=English +%1 +. +MessageId=9880 +Language=English +%1 +. +MessageId=9881 +Language=English +%1 +. +MessageId=9882 +Language=English +%1 +. +MessageId=9883 +Language=English +%1 +. +MessageId=9884 +Language=English +%1 +. +MessageId=9885 +Language=English +%1 +. +MessageId=9886 +Language=English +%1 +. +MessageId=9887 +Language=English +%1 +. +MessageId=9888 +Language=English +%1 +. +MessageId=9889 +Language=English +%1 +. +MessageId=9890 +Language=English +%1 +. +MessageId=9891 +Language=English +%1 +. +MessageId=9892 +Language=English +%1 +. +MessageId=9893 +Language=English +%1 +. +MessageId=9894 +Language=English +%1 +. +MessageId=9895 +Language=English +%1 +. +MessageId=9896 +Language=English +%1 +. +MessageId=9897 +Language=English +%1 +. +MessageId=9898 +Language=English +%1 +. +MessageId=9899 +Language=English +%1 +. +MessageId=9900 +Language=English +%1 +. +MessageId=9901 +Language=English +%1 +. +MessageId=9902 +Language=English +%1 +. +MessageId=9903 +Language=English +%1 +. +MessageId=9904 +Language=English +%1 +. +MessageId=9905 +Language=English +%1 +. +MessageId=9906 +Language=English +%1 +. +MessageId=9907 +Language=English +%1 +. +MessageId=9908 +Language=English +%1 +. +MessageId=9909 +Language=English +%1 +. +MessageId=9910 +Language=English +%1 +. +MessageId=9911 +Language=English +%1 +. +MessageId=9912 +Language=English +%1 +. +MessageId=9913 +Language=English +%1 +. +MessageId=9914 +Language=English +%1 +. +MessageId=9915 +Language=English +%1 +. +MessageId=9916 +Language=English +%1 +. +MessageId=9917 +Language=English +%1 +. +MessageId=9918 +Language=English +%1 +. +MessageId=9919 +Language=English +%1 +. +MessageId=9920 +Language=English +%1 +. +MessageId=9921 +Language=English +%1 +. +MessageId=9922 +Language=English +%1 +. +MessageId=9923 +Language=English +%1 +. +MessageId=9924 +Language=English +%1 +. +MessageId=9925 +Language=English +%1 +. +MessageId=9926 +Language=English +%1 +. +MessageId=9927 +Language=English +%1 +. +MessageId=9928 +Language=English +%1 +. +MessageId=9929 +Language=English +%1 +. +MessageId=9930 +Language=English +%1 +. +MessageId=9931 +Language=English +%1 +. +MessageId=9932 +Language=English +%1 +. +MessageId=9933 +Language=English +%1 +. +MessageId=9934 +Language=English +%1 +. +MessageId=9935 +Language=English +%1 +. +MessageId=9936 +Language=English +%1 +. +MessageId=9937 +Language=English +%1 +. +MessageId=9938 +Language=English +%1 +. +MessageId=9939 +Language=English +%1 +. +MessageId=9940 +Language=English +%1 +. +MessageId=9941 +Language=English +%1 +. +MessageId=9942 +Language=English +%1 +. +MessageId=9943 +Language=English +%1 +. +MessageId=9944 +Language=English +%1 +. +MessageId=9945 +Language=English +%1 +. +MessageId=9946 +Language=English +%1 +. +MessageId=9947 +Language=English +%1 +. +MessageId=9948 +Language=English +%1 +. +MessageId=9949 +Language=English +%1 +. +MessageId=9950 +Language=English +%1 +. +MessageId=9951 +Language=English +%1 +. +MessageId=9952 +Language=English +%1 +. +MessageId=9953 +Language=English +%1 +. +MessageId=9954 +Language=English +%1 +. +MessageId=9955 +Language=English +%1 +. +MessageId=9956 +Language=English +%1 +. +MessageId=9957 +Language=English +%1 +. +MessageId=9958 +Language=English +%1 +. +MessageId=9959 +Language=English +%1 +. +MessageId=9960 +Language=English +%1 +. +MessageId=9961 +Language=English +%1 +. +MessageId=9962 +Language=English +%1 +. +MessageId=9963 +Language=English +%1 +. +MessageId=9964 +Language=English +%1 +. +MessageId=9965 +Language=English +%1 +. +MessageId=9966 +Language=English +%1 +. +MessageId=9967 +Language=English +%1 +. +MessageId=9968 +Language=English +%1 +. +MessageId=9969 +Language=English +%1 +. +MessageId=9970 +Language=English +%1 +. +MessageId=9971 +Language=English +%1 +. +MessageId=9972 +Language=English +%1 +. +MessageId=9973 +Language=English +%1 +. +MessageId=9974 +Language=English +%1 +. +MessageId=9975 +Language=English +%1 +. +MessageId=9976 +Language=English +%1 +. +MessageId=9977 +Language=English +%1 +. +MessageId=9978 +Language=English +%1 +. +MessageId=9979 +Language=English +%1 +. +MessageId=9980 +Language=English +%1 +. +MessageId=9981 +Language=English +%1 +. +MessageId=9982 +Language=English +%1 +. +MessageId=9983 +Language=English +%1 +. +MessageId=9984 +Language=English +%1 +. +MessageId=9985 +Language=English +%1 +. +MessageId=9986 +Language=English +%1 +. +MessageId=9987 +Language=English +%1 +. +MessageId=9988 +Language=English +%1 +. +MessageId=9989 +Language=English +%1 +. +MessageId=9990 +Language=English +%1 +. +MessageId=9991 +Language=English +%1 +. +MessageId=9992 +Language=English +%1 +. +MessageId=9993 +Language=English +%1 +. +MessageId=9994 +Language=English +%1 +. +MessageId=9995 +Language=English +%1 +. +MessageId=9996 +Language=English +%1 +. +MessageId=9997 +Language=English +%1 +. +MessageId=9998 +Language=English +%1 +. +MessageId=9999 +Language=English +%1 +. +MessageId=10000 +Language=English +%1 +. +MessageId=10001 +Language=English +%1 +. +MessageId=10002 +Language=English +%1 +. +MessageId=10003 +Language=English +%1 +. +MessageId=10004 +Language=English +%1 +. +MessageId=10005 +Language=English +%1 +. +MessageId=10006 +Language=English +%1 +. +MessageId=10007 +Language=English +%1 +. +MessageId=10008 +Language=English +%1 +. +MessageId=10009 +Language=English +%1 +. +MessageId=10010 +Language=English +%1 +. +MessageId=10011 +Language=English +%1 +. +MessageId=10012 +Language=English +%1 +. +MessageId=10013 +Language=English +%1 +. +MessageId=10014 +Language=English +%1 +. +MessageId=10015 +Language=English +%1 +. +MessageId=10016 +Language=English +%1 +. +MessageId=10017 +Language=English +%1 +. +MessageId=10018 +Language=English +%1 +. +MessageId=10019 +Language=English +%1 +. +MessageId=10020 +Language=English +%1 +. +MessageId=10021 +Language=English +%1 +. +MessageId=10022 +Language=English +%1 +. +MessageId=10023 +Language=English +%1 +. +MessageId=10024 +Language=English +%1 +. +MessageId=10025 +Language=English +%1 +. +MessageId=10026 +Language=English +%1 +. +MessageId=10027 +Language=English +%1 +. +MessageId=10028 +Language=English +%1 +. +MessageId=10029 +Language=English +%1 +. +MessageId=10030 +Language=English +%1 +. +MessageId=10031 +Language=English +%1 +. +MessageId=10032 +Language=English +%1 +. +MessageId=10033 +Language=English +%1 +. +MessageId=10034 +Language=English +%1 +. +MessageId=10035 +Language=English +%1 +. +MessageId=10036 +Language=English +%1 +. +MessageId=10037 +Language=English +%1 +. +MessageId=10038 +Language=English +%1 +. +MessageId=10039 +Language=English +%1 +. +MessageId=10040 +Language=English +%1 +. +MessageId=10041 +Language=English +%1 +. +MessageId=10042 +Language=English +%1 +. +MessageId=10043 +Language=English +%1 +. +MessageId=10044 +Language=English +%1 +. +MessageId=10045 +Language=English +%1 +. +MessageId=10046 +Language=English +%1 +. +MessageId=10047 +Language=English +%1 +. +MessageId=10048 +Language=English +%1 +. +MessageId=10049 +Language=English +%1 +. +MessageId=10050 +Language=English +%1 +. +MessageId=10051 +Language=English +%1 +. +MessageId=10052 +Language=English +%1 +. +MessageId=10053 +Language=English +%1 +. +MessageId=10054 +Language=English +%1 +. +MessageId=10055 +Language=English +%1 +. +MessageId=10056 +Language=English +%1 +. +MessageId=10057 +Language=English +%1 +. +MessageId=10058 +Language=English +%1 +. +MessageId=10059 +Language=English +%1 +. +MessageId=10060 +Language=English +%1 +. +MessageId=10061 +Language=English +%1 +. +MessageId=10062 +Language=English +%1 +. +MessageId=10063 +Language=English +%1 +. +MessageId=10064 +Language=English +%1 +. +MessageId=10065 +Language=English +%1 +. +MessageId=10066 +Language=English +%1 +. +MessageId=10067 +Language=English +%1 +. +MessageId=10068 +Language=English +%1 +. +MessageId=10069 +Language=English +%1 +. +MessageId=10070 +Language=English +%1 +. +MessageId=10071 +Language=English +%1 +. +MessageId=10072 +Language=English +%1 +. +MessageId=10073 +Language=English +%1 +. +MessageId=10074 +Language=English +%1 +. +MessageId=10075 +Language=English +%1 +. +MessageId=10076 +Language=English +%1 +. +MessageId=10077 +Language=English +%1 +. +MessageId=10078 +Language=English +%1 +. +MessageId=10079 +Language=English +%1 +. +MessageId=10080 +Language=English +%1 +. +MessageId=10081 +Language=English +%1 +. +MessageId=10082 +Language=English +%1 +. +MessageId=10083 +Language=English +%1 +. +MessageId=10084 +Language=English +%1 +. +MessageId=10085 +Language=English +%1 +. +MessageId=10086 +Language=English +%1 +. +MessageId=10087 +Language=English +%1 +. +MessageId=10088 +Language=English +%1 +. +MessageId=10089 +Language=English +%1 +. +MessageId=10090 +Language=English +%1 +. +MessageId=10091 +Language=English +%1 +. +MessageId=10092 +Language=English +%1 +. +MessageId=10093 +Language=English +%1 +. +MessageId=10094 +Language=English +%1 +. +MessageId=10095 +Language=English +%1 +. +MessageId=10096 +Language=English +%1 +. +MessageId=10097 +Language=English +%1 +. +MessageId=10098 +Language=English +%1 +. +MessageId=10099 +Language=English +%1 +. +MessageId=10100 +Language=English +%1 +. +MessageId=10101 +Language=English +%1 +. +MessageId=10102 +Language=English +%1 +. +MessageId=10103 +Language=English +%1 +. +MessageId=10104 +Language=English +%1 +. +MessageId=10105 +Language=English +%1 +. +MessageId=10106 +Language=English +%1 +. +MessageId=10107 +Language=English +%1 +. +MessageId=10108 +Language=English +%1 +. +MessageId=10109 +Language=English +%1 +. +MessageId=10110 +Language=English +%1 +. +MessageId=10111 +Language=English +%1 +. +MessageId=10112 +Language=English +%1 +. +MessageId=10113 +Language=English +%1 +. +MessageId=10114 +Language=English +%1 +. +MessageId=10115 +Language=English +%1 +. +MessageId=10116 +Language=English +%1 +. +MessageId=10117 +Language=English +%1 +. +MessageId=10118 +Language=English +%1 +. +MessageId=10119 +Language=English +%1 +. +MessageId=10120 +Language=English +%1 +. +MessageId=10121 +Language=English +%1 +. +MessageId=10122 +Language=English +%1 +. +MessageId=10123 +Language=English +%1 +. +MessageId=10124 +Language=English +%1 +. +MessageId=10125 +Language=English +%1 +. +MessageId=10126 +Language=English +%1 +. +MessageId=10127 +Language=English +%1 +. +MessageId=10128 +Language=English +%1 +. +MessageId=10129 +Language=English +%1 +. +MessageId=10130 +Language=English +%1 +. +MessageId=10131 +Language=English +%1 +. +MessageId=10132 +Language=English +%1 +. +MessageId=10133 +Language=English +%1 +. +MessageId=10134 +Language=English +%1 +. +MessageId=10135 +Language=English +%1 +. +MessageId=10136 +Language=English +%1 +. +MessageId=10137 +Language=English +%1 +. +MessageId=10138 +Language=English +%1 +. +MessageId=10139 +Language=English +%1 +. +MessageId=10140 +Language=English +%1 +. +MessageId=10141 +Language=English +%1 +. +MessageId=10142 +Language=English +%1 +. +MessageId=10143 +Language=English +%1 +. +MessageId=10144 +Language=English +%1 +. +MessageId=10145 +Language=English +%1 +. +MessageId=10146 +Language=English +%1 +. +MessageId=10147 +Language=English +%1 +. +MessageId=10148 +Language=English +%1 +. +MessageId=10149 +Language=English +%1 +. +MessageId=10150 +Language=English +%1 +. +MessageId=10151 +Language=English +%1 +. +MessageId=10152 +Language=English +%1 +. +MessageId=10153 +Language=English +%1 +. +MessageId=10154 +Language=English +%1 +. +MessageId=10155 +Language=English +%1 +. +MessageId=10156 +Language=English +%1 +. +MessageId=10157 +Language=English +%1 +. +MessageId=10158 +Language=English +%1 +. +MessageId=10159 +Language=English +%1 +. +MessageId=10160 +Language=English +%1 +. +MessageId=10161 +Language=English +%1 +. +MessageId=10162 +Language=English +%1 +. +MessageId=10163 +Language=English +%1 +. +MessageId=10164 +Language=English +%1 +. +MessageId=10165 +Language=English +%1 +. +MessageId=10166 +Language=English +%1 +. +MessageId=10167 +Language=English +%1 +. +MessageId=10168 +Language=English +%1 +. +MessageId=10169 +Language=English +%1 +. +MessageId=10170 +Language=English +%1 +. +MessageId=10171 +Language=English +%1 +. +MessageId=10172 +Language=English +%1 +. +MessageId=10173 +Language=English +%1 +. +MessageId=10174 +Language=English +%1 +. +MessageId=10175 +Language=English +%1 +. +MessageId=10176 +Language=English +%1 +. +MessageId=10177 +Language=English +%1 +. +MessageId=10178 +Language=English +%1 +. +MessageId=10179 +Language=English +%1 +. +MessageId=10180 +Language=English +%1 +. +MessageId=10181 +Language=English +%1 +. +MessageId=10182 +Language=English +%1 +. +MessageId=10183 +Language=English +%1 +. +MessageId=10184 +Language=English +%1 +. +MessageId=10185 +Language=English +%1 +. +MessageId=10186 +Language=English +%1 +. +MessageId=10187 +Language=English +%1 +. +MessageId=10188 +Language=English +%1 +. +MessageId=10189 +Language=English +%1 +. +MessageId=10190 +Language=English +%1 +. +MessageId=10191 +Language=English +%1 +. +MessageId=10192 +Language=English +%1 +. +MessageId=10193 +Language=English +%1 +. +MessageId=10194 +Language=English +%1 +. +MessageId=10195 +Language=English +%1 +. +MessageId=10196 +Language=English +%1 +. +MessageId=10197 +Language=English +%1 +. +MessageId=10198 +Language=English +%1 +. +MessageId=10199 +Language=English +%1 +. +MessageId=10200 +Language=English +%1 +. +MessageId=10201 +Language=English +%1 +. +MessageId=10202 +Language=English +%1 +. +MessageId=10203 +Language=English +%1 +. +MessageId=10204 +Language=English +%1 +. +MessageId=10205 +Language=English +%1 +. +MessageId=10206 +Language=English +%1 +. +MessageId=10207 +Language=English +%1 +. +MessageId=10208 +Language=English +%1 +. +MessageId=10209 +Language=English +%1 +. +MessageId=10210 +Language=English +%1 +. +MessageId=10211 +Language=English +%1 +. +MessageId=10212 +Language=English +%1 +. +MessageId=10213 +Language=English +%1 +. +MessageId=10214 +Language=English +%1 +. +MessageId=10215 +Language=English +%1 +. +MessageId=10216 +Language=English +%1 +. +MessageId=10217 +Language=English +%1 +. +MessageId=10218 +Language=English +%1 +. +MessageId=10219 +Language=English +%1 +. +MessageId=10220 +Language=English +%1 +. +MessageId=10221 +Language=English +%1 +. +MessageId=10222 +Language=English +%1 +. +MessageId=10223 +Language=English +%1 +. +MessageId=10224 +Language=English +%1 +. +MessageId=10225 +Language=English +%1 +. +MessageId=10226 +Language=English +%1 +. +MessageId=10227 +Language=English +%1 +. +MessageId=10228 +Language=English +%1 +. +MessageId=10229 +Language=English +%1 +. +MessageId=10230 +Language=English +%1 +. +MessageId=10231 +Language=English +%1 +. +MessageId=10232 +Language=English +%1 +. +MessageId=10233 +Language=English +%1 +. +MessageId=10234 +Language=English +%1 +. +MessageId=10235 +Language=English +%1 +. +MessageId=10236 +Language=English +%1 +. +MessageId=10237 +Language=English +%1 +. +MessageId=10238 +Language=English +%1 +. +MessageId=10239 +Language=English +%1 +. +MessageId=10240 +Language=English +%1 +. +MessageId=10241 +Language=English +%1 +. +MessageId=10242 +Language=English +%1 +. +MessageId=10243 +Language=English +%1 +. +MessageId=10244 +Language=English +%1 +. +MessageId=10245 +Language=English +%1 +. +MessageId=10246 +Language=English +%1 +. +MessageId=10247 +Language=English +%1 +. +MessageId=10248 +Language=English +%1 +. +MessageId=10249 +Language=English +%1 +. +MessageId=10250 +Language=English +%1 +. +MessageId=10251 +Language=English +%1 +. +MessageId=10252 +Language=English +%1 +. +MessageId=10253 +Language=English +%1 +. +MessageId=10254 +Language=English +%1 +. +MessageId=10255 +Language=English +%1 +. +MessageId=10256 +Language=English +%1 +. +MessageId=10257 +Language=English +%1 +. +MessageId=10258 +Language=English +%1 +. +MessageId=10259 +Language=English +%1 +. +MessageId=10260 +Language=English +%1 +. +MessageId=10261 +Language=English +%1 +. +MessageId=10262 +Language=English +%1 +. +MessageId=10263 +Language=English +%1 +. +MessageId=10264 +Language=English +%1 +. +MessageId=10265 +Language=English +%1 +. +MessageId=10266 +Language=English +%1 +. +MessageId=10267 +Language=English +%1 +. +MessageId=10268 +Language=English +%1 +. +MessageId=10269 +Language=English +%1 +. +MessageId=10270 +Language=English +%1 +. +MessageId=10271 +Language=English +%1 +. +MessageId=10272 +Language=English +%1 +. +MessageId=10273 +Language=English +%1 +. +MessageId=10274 +Language=English +%1 +. +MessageId=10275 +Language=English +%1 +. +MessageId=10276 +Language=English +%1 +. +MessageId=10277 +Language=English +%1 +. +MessageId=10278 +Language=English +%1 +. +MessageId=10279 +Language=English +%1 +. +MessageId=10280 +Language=English +%1 +. +MessageId=10281 +Language=English +%1 +. +MessageId=10282 +Language=English +%1 +. +MessageId=10283 +Language=English +%1 +. +MessageId=10284 +Language=English +%1 +. +MessageId=10285 +Language=English +%1 +. +MessageId=10286 +Language=English +%1 +. +MessageId=10287 +Language=English +%1 +. +MessageId=10288 +Language=English +%1 +. +MessageId=10289 +Language=English +%1 +. +MessageId=10290 +Language=English +%1 +. +MessageId=10291 +Language=English +%1 +. +MessageId=10292 +Language=English +%1 +. +MessageId=10293 +Language=English +%1 +. +MessageId=10294 +Language=English +%1 +. +MessageId=10295 +Language=English +%1 +. +MessageId=10296 +Language=English +%1 +. +MessageId=10297 +Language=English +%1 +. +MessageId=10298 +Language=English +%1 +. +MessageId=10299 +Language=English +%1 +. +MessageId=10300 +Language=English +%1 +. +MessageId=10301 +Language=English +%1 +. +MessageId=10302 +Language=English +%1 +. +MessageId=10303 +Language=English +%1 +. +MessageId=10304 +Language=English +%1 +. +MessageId=10305 +Language=English +%1 +. +MessageId=10306 +Language=English +%1 +. +MessageId=10307 +Language=English +%1 +. +MessageId=10308 +Language=English +%1 +. +MessageId=10309 +Language=English +%1 +. +MessageId=10310 +Language=English +%1 +. +MessageId=10311 +Language=English +%1 +. +MessageId=10312 +Language=English +%1 +. +MessageId=10313 +Language=English +%1 +. +MessageId=10314 +Language=English +%1 +. +MessageId=10315 +Language=English +%1 +. +MessageId=10316 +Language=English +%1 +. +MessageId=10317 +Language=English +%1 +. +MessageId=10318 +Language=English +%1 +. +MessageId=10319 +Language=English +%1 +. +MessageId=10320 +Language=English +%1 +. +MessageId=10321 +Language=English +%1 +. +MessageId=10322 +Language=English +%1 +. +MessageId=10323 +Language=English +%1 +. +MessageId=10324 +Language=English +%1 +. +MessageId=10325 +Language=English +%1 +. +MessageId=10326 +Language=English +%1 +. +MessageId=10327 +Language=English +%1 +. +MessageId=10328 +Language=English +%1 +. +MessageId=10329 +Language=English +%1 +. +MessageId=10330 +Language=English +%1 +. +MessageId=10331 +Language=English +%1 +. +MessageId=10332 +Language=English +%1 +. +MessageId=10333 +Language=English +%1 +. +MessageId=10334 +Language=English +%1 +. +MessageId=10335 +Language=English +%1 +. +MessageId=10336 +Language=English +%1 +. +MessageId=10337 +Language=English +%1 +. +MessageId=10338 +Language=English +%1 +. +MessageId=10339 +Language=English +%1 +. +MessageId=10340 +Language=English +%1 +. +MessageId=10341 +Language=English +%1 +. +MessageId=10342 +Language=English +%1 +. +MessageId=10343 +Language=English +%1 +. +MessageId=10344 +Language=English +%1 +. +MessageId=10345 +Language=English +%1 +. +MessageId=10346 +Language=English +%1 +. +MessageId=10347 +Language=English +%1 +. +MessageId=10348 +Language=English +%1 +. +MessageId=10349 +Language=English +%1 +. +MessageId=10350 +Language=English +%1 +. +MessageId=10351 +Language=English +%1 +. +MessageId=10352 +Language=English +%1 +. +MessageId=10353 +Language=English +%1 +. +MessageId=10354 +Language=English +%1 +. +MessageId=10355 +Language=English +%1 +. +MessageId=10356 +Language=English +%1 +. +MessageId=10357 +Language=English +%1 +. +MessageId=10358 +Language=English +%1 +. +MessageId=10359 +Language=English +%1 +. +MessageId=10360 +Language=English +%1 +. +MessageId=10361 +Language=English +%1 +. +MessageId=10362 +Language=English +%1 +. +MessageId=10363 +Language=English +%1 +. +MessageId=10364 +Language=English +%1 +. +MessageId=10365 +Language=English +%1 +. +MessageId=10366 +Language=English +%1 +. +MessageId=10367 +Language=English +%1 +. +MessageId=10368 +Language=English +%1 +. +MessageId=10369 +Language=English +%1 +. +MessageId=10370 +Language=English +%1 +. +MessageId=10371 +Language=English +%1 +. +MessageId=10372 +Language=English +%1 +. +MessageId=10373 +Language=English +%1 +. +MessageId=10374 +Language=English +%1 +. +MessageId=10375 +Language=English +%1 +. +MessageId=10376 +Language=English +%1 +. +MessageId=10377 +Language=English +%1 +. +MessageId=10378 +Language=English +%1 +. +MessageId=10379 +Language=English +%1 +. +MessageId=10380 +Language=English +%1 +. +MessageId=10381 +Language=English +%1 +. +MessageId=10382 +Language=English +%1 +. +MessageId=10383 +Language=English +%1 +. +MessageId=10384 +Language=English +%1 +. +MessageId=10385 +Language=English +%1 +. +MessageId=10386 +Language=English +%1 +. +MessageId=10387 +Language=English +%1 +. +MessageId=10388 +Language=English +%1 +. +MessageId=10389 +Language=English +%1 +. +MessageId=10390 +Language=English +%1 +. +MessageId=10391 +Language=English +%1 +. +MessageId=10392 +Language=English +%1 +. +MessageId=10393 +Language=English +%1 +. +MessageId=10394 +Language=English +%1 +. +MessageId=10395 +Language=English +%1 +. +MessageId=10396 +Language=English +%1 +. +MessageId=10397 +Language=English +%1 +. +MessageId=10398 +Language=English +%1 +. +MessageId=10399 +Language=English +%1 +. +MessageId=10400 +Language=English +%1 +. +MessageId=10401 +Language=English +%1 +. +MessageId=10402 +Language=English +%1 +. +MessageId=10403 +Language=English +%1 +. +MessageId=10404 +Language=English +%1 +. +MessageId=10405 +Language=English +%1 +. +MessageId=10406 +Language=English +%1 +. +MessageId=10407 +Language=English +%1 +. +MessageId=10408 +Language=English +%1 +. +MessageId=10409 +Language=English +%1 +. +MessageId=10410 +Language=English +%1 +. +MessageId=10411 +Language=English +%1 +. +MessageId=10412 +Language=English +%1 +. +MessageId=10413 +Language=English +%1 +. +MessageId=10414 +Language=English +%1 +. +MessageId=10415 +Language=English +%1 +. +MessageId=10416 +Language=English +%1 +. +MessageId=10417 +Language=English +%1 +. +MessageId=10418 +Language=English +%1 +. +MessageId=10419 +Language=English +%1 +. +MessageId=10420 +Language=English +%1 +. +MessageId=10421 +Language=English +%1 +. +MessageId=10422 +Language=English +%1 +. +MessageId=10423 +Language=English +%1 +. +MessageId=10424 +Language=English +%1 +. +MessageId=10425 +Language=English +%1 +. +MessageId=10426 +Language=English +%1 +. +MessageId=10427 +Language=English +%1 +. +MessageId=10428 +Language=English +%1 +. +MessageId=10429 +Language=English +%1 +. +MessageId=10430 +Language=English +%1 +. +MessageId=10431 +Language=English +%1 +. +MessageId=10432 +Language=English +%1 +. +MessageId=10433 +Language=English +%1 +. +MessageId=10434 +Language=English +%1 +. +MessageId=10435 +Language=English +%1 +. +MessageId=10436 +Language=English +%1 +. +MessageId=10437 +Language=English +%1 +. +MessageId=10438 +Language=English +%1 +. +MessageId=10439 +Language=English +%1 +. +MessageId=10440 +Language=English +%1 +. +MessageId=10441 +Language=English +%1 +. +MessageId=10442 +Language=English +%1 +. +MessageId=10443 +Language=English +%1 +. +MessageId=10444 +Language=English +%1 +. +MessageId=10445 +Language=English +%1 +. +MessageId=10446 +Language=English +%1 +. +MessageId=10447 +Language=English +%1 +. +MessageId=10448 +Language=English +%1 +. +MessageId=10449 +Language=English +%1 +. +MessageId=10450 +Language=English +%1 +. +MessageId=10451 +Language=English +%1 +. +MessageId=10452 +Language=English +%1 +. +MessageId=10453 +Language=English +%1 +. +MessageId=10454 +Language=English +%1 +. +MessageId=10455 +Language=English +%1 +. +MessageId=10456 +Language=English +%1 +. +MessageId=10457 +Language=English +%1 +. +MessageId=10458 +Language=English +%1 +. +MessageId=10459 +Language=English +%1 +. +MessageId=10460 +Language=English +%1 +. +MessageId=10461 +Language=English +%1 +. +MessageId=10462 +Language=English +%1 +. +MessageId=10463 +Language=English +%1 +. +MessageId=10464 +Language=English +%1 +. +MessageId=10465 +Language=English +%1 +. +MessageId=10466 +Language=English +%1 +. +MessageId=10467 +Language=English +%1 +. +MessageId=10468 +Language=English +%1 +. +MessageId=10469 +Language=English +%1 +. +MessageId=10470 +Language=English +%1 +. +MessageId=10471 +Language=English +%1 +. +MessageId=10472 +Language=English +%1 +. +MessageId=10473 +Language=English +%1 +. +MessageId=10474 +Language=English +%1 +. +MessageId=10475 +Language=English +%1 +. +MessageId=10476 +Language=English +%1 +. +MessageId=10477 +Language=English +%1 +. +MessageId=10478 +Language=English +%1 +. +MessageId=10479 +Language=English +%1 +. +MessageId=10480 +Language=English +%1 +. +MessageId=10481 +Language=English +%1 +. +MessageId=10482 +Language=English +%1 +. +MessageId=10483 +Language=English +%1 +. +MessageId=10484 +Language=English +%1 +. +MessageId=10485 +Language=English +%1 +. +MessageId=10486 +Language=English +%1 +. +MessageId=10487 +Language=English +%1 +. +MessageId=10488 +Language=English +%1 +. +MessageId=10489 +Language=English +%1 +. +MessageId=10490 +Language=English +%1 +. +MessageId=10491 +Language=English +%1 +. +MessageId=10492 +Language=English +%1 +. +MessageId=10493 +Language=English +%1 +. +MessageId=10494 +Language=English +%1 +. +MessageId=10495 +Language=English +%1 +. +MessageId=10496 +Language=English +%1 +. +MessageId=10497 +Language=English +%1 +. +MessageId=10498 +Language=English +%1 +. +MessageId=10499 +Language=English +%1 +. +MessageId=10500 +Language=English +%1 +. +MessageId=10501 +Language=English +%1 +. +MessageId=10502 +Language=English +%1 +. +MessageId=10503 +Language=English +%1 +. +MessageId=10504 +Language=English +%1 +. +MessageId=10505 +Language=English +%1 +. +MessageId=10506 +Language=English +%1 +. +MessageId=10507 +Language=English +%1 +. +MessageId=10508 +Language=English +%1 +. +MessageId=10509 +Language=English +%1 +. +MessageId=10510 +Language=English +%1 +. +MessageId=10511 +Language=English +%1 +. +MessageId=10512 +Language=English +%1 +. +MessageId=10513 +Language=English +%1 +. +MessageId=10514 +Language=English +%1 +. +MessageId=10515 +Language=English +%1 +. +MessageId=10516 +Language=English +%1 +. +MessageId=10517 +Language=English +%1 +. +MessageId=10518 +Language=English +%1 +. +MessageId=10519 +Language=English +%1 +. +MessageId=10520 +Language=English +%1 +. +MessageId=10521 +Language=English +%1 +. +MessageId=10522 +Language=English +%1 +. +MessageId=10523 +Language=English +%1 +. +MessageId=10524 +Language=English +%1 +. +MessageId=10525 +Language=English +%1 +. +MessageId=10526 +Language=English +%1 +. +MessageId=10527 +Language=English +%1 +. +MessageId=10528 +Language=English +%1 +. +MessageId=10529 +Language=English +%1 +. +MessageId=10530 +Language=English +%1 +. +MessageId=10531 +Language=English +%1 +. +MessageId=10532 +Language=English +%1 +. +MessageId=10533 +Language=English +%1 +. +MessageId=10534 +Language=English +%1 +. +MessageId=10535 +Language=English +%1 +. +MessageId=10536 +Language=English +%1 +. +MessageId=10537 +Language=English +%1 +. +MessageId=10538 +Language=English +%1 +. +MessageId=10539 +Language=English +%1 +. +MessageId=10540 +Language=English +%1 +. +MessageId=10541 +Language=English +%1 +. +MessageId=10542 +Language=English +%1 +. +MessageId=10543 +Language=English +%1 +. +MessageId=10544 +Language=English +%1 +. +MessageId=10545 +Language=English +%1 +. +MessageId=10546 +Language=English +%1 +. +MessageId=10547 +Language=English +%1 +. +MessageId=10548 +Language=English +%1 +. +MessageId=10549 +Language=English +%1 +. +MessageId=10550 +Language=English +%1 +. +MessageId=10551 +Language=English +%1 +. +MessageId=10552 +Language=English +%1 +. +MessageId=10553 +Language=English +%1 +. +MessageId=10554 +Language=English +%1 +. +MessageId=10555 +Language=English +%1 +. +MessageId=10556 +Language=English +%1 +. +MessageId=10557 +Language=English +%1 +. +MessageId=10558 +Language=English +%1 +. +MessageId=10559 +Language=English +%1 +. +MessageId=10560 +Language=English +%1 +. +MessageId=10561 +Language=English +%1 +. +MessageId=10562 +Language=English +%1 +. +MessageId=10563 +Language=English +%1 +. +MessageId=10564 +Language=English +%1 +. +MessageId=10565 +Language=English +%1 +. +MessageId=10566 +Language=English +%1 +. +MessageId=10567 +Language=English +%1 +. +MessageId=10568 +Language=English +%1 +. +MessageId=10569 +Language=English +%1 +. +MessageId=10570 +Language=English +%1 +. +MessageId=10571 +Language=English +%1 +. +MessageId=10572 +Language=English +%1 +. +MessageId=10573 +Language=English +%1 +. +MessageId=10574 +Language=English +%1 +. +MessageId=10575 +Language=English +%1 +. +MessageId=10576 +Language=English +%1 +. +MessageId=10577 +Language=English +%1 +. +MessageId=10578 +Language=English +%1 +. +MessageId=10579 +Language=English +%1 +. +MessageId=10580 +Language=English +%1 +. +MessageId=10581 +Language=English +%1 +. +MessageId=10582 +Language=English +%1 +. +MessageId=10583 +Language=English +%1 +. +MessageId=10584 +Language=English +%1 +. +MessageId=10585 +Language=English +%1 +. +MessageId=10586 +Language=English +%1 +. +MessageId=10587 +Language=English +%1 +. +MessageId=10588 +Language=English +%1 +. +MessageId=10589 +Language=English +%1 +. +MessageId=10590 +Language=English +%1 +. +MessageId=10591 +Language=English +%1 +. +MessageId=10592 +Language=English +%1 +. +MessageId=10593 +Language=English +%1 +. +MessageId=10594 +Language=English +%1 +. +MessageId=10595 +Language=English +%1 +. +MessageId=10596 +Language=English +%1 +. +MessageId=10597 +Language=English +%1 +. +MessageId=10598 +Language=English +%1 +. +MessageId=10599 +Language=English +%1 +. +MessageId=10600 +Language=English +%1 +. +MessageId=10601 +Language=English +%1 +. +MessageId=10602 +Language=English +%1 +. +MessageId=10603 +Language=English +%1 +. +MessageId=10604 +Language=English +%1 +. +MessageId=10605 +Language=English +%1 +. +MessageId=10606 +Language=English +%1 +. +MessageId=10607 +Language=English +%1 +. +MessageId=10608 +Language=English +%1 +. +MessageId=10609 +Language=English +%1 +. +MessageId=10610 +Language=English +%1 +. +MessageId=10611 +Language=English +%1 +. +MessageId=10612 +Language=English +%1 +. +MessageId=10613 +Language=English +%1 +. +MessageId=10614 +Language=English +%1 +. +MessageId=10615 +Language=English +%1 +. +MessageId=10616 +Language=English +%1 +. +MessageId=10617 +Language=English +%1 +. +MessageId=10618 +Language=English +%1 +. +MessageId=10619 +Language=English +%1 +. +MessageId=10620 +Language=English +%1 +. +MessageId=10621 +Language=English +%1 +. +MessageId=10622 +Language=English +%1 +. +MessageId=10623 +Language=English +%1 +. +MessageId=10624 +Language=English +%1 +. +MessageId=10625 +Language=English +%1 +. +MessageId=10626 +Language=English +%1 +. +MessageId=10627 +Language=English +%1 +. +MessageId=10628 +Language=English +%1 +. +MessageId=10629 +Language=English +%1 +. +MessageId=10630 +Language=English +%1 +. +MessageId=10631 +Language=English +%1 +. +MessageId=10632 +Language=English +%1 +. +MessageId=10633 +Language=English +%1 +. +MessageId=10634 +Language=English +%1 +. +MessageId=10635 +Language=English +%1 +. +MessageId=10636 +Language=English +%1 +. +MessageId=10637 +Language=English +%1 +. +MessageId=10638 +Language=English +%1 +. +MessageId=10639 +Language=English +%1 +. +MessageId=10640 +Language=English +%1 +. +MessageId=10641 +Language=English +%1 +. +MessageId=10642 +Language=English +%1 +. +MessageId=10643 +Language=English +%1 +. +MessageId=10644 +Language=English +%1 +. +MessageId=10645 +Language=English +%1 +. +MessageId=10646 +Language=English +%1 +. +MessageId=10647 +Language=English +%1 +. +MessageId=10648 +Language=English +%1 +. +MessageId=10649 +Language=English +%1 +. +MessageId=10650 +Language=English +%1 +. +MessageId=10651 +Language=English +%1 +. +MessageId=10652 +Language=English +%1 +. +MessageId=10653 +Language=English +%1 +. +MessageId=10654 +Language=English +%1 +. +MessageId=10655 +Language=English +%1 +. +MessageId=10656 +Language=English +%1 +. +MessageId=10657 +Language=English +%1 +. +MessageId=10658 +Language=English +%1 +. +MessageId=10659 +Language=English +%1 +. +MessageId=10660 +Language=English +%1 +. +MessageId=10661 +Language=English +%1 +. +MessageId=10662 +Language=English +%1 +. +MessageId=10663 +Language=English +%1 +. +MessageId=10664 +Language=English +%1 +. +MessageId=10665 +Language=English +%1 +. +MessageId=10666 +Language=English +%1 +. +MessageId=10667 +Language=English +%1 +. +MessageId=10668 +Language=English +%1 +. +MessageId=10669 +Language=English +%1 +. +MessageId=10670 +Language=English +%1 +. +MessageId=10671 +Language=English +%1 +. +MessageId=10672 +Language=English +%1 +. +MessageId=10673 +Language=English +%1 +. +MessageId=10674 +Language=English +%1 +. +MessageId=10675 +Language=English +%1 +. +MessageId=10676 +Language=English +%1 +. +MessageId=10677 +Language=English +%1 +. +MessageId=10678 +Language=English +%1 +. +MessageId=10679 +Language=English +%1 +. +MessageId=10680 +Language=English +%1 +. +MessageId=10681 +Language=English +%1 +. +MessageId=10682 +Language=English +%1 +. +MessageId=10683 +Language=English +%1 +. +MessageId=10684 +Language=English +%1 +. +MessageId=10685 +Language=English +%1 +. +MessageId=10686 +Language=English +%1 +. +MessageId=10687 +Language=English +%1 +. +MessageId=10688 +Language=English +%1 +. +MessageId=10689 +Language=English +%1 +. +MessageId=10690 +Language=English +%1 +. +MessageId=10691 +Language=English +%1 +. +MessageId=10692 +Language=English +%1 +. +MessageId=10693 +Language=English +%1 +. +MessageId=10694 +Language=English +%1 +. +MessageId=10695 +Language=English +%1 +. +MessageId=10696 +Language=English +%1 +. +MessageId=10697 +Language=English +%1 +. +MessageId=10698 +Language=English +%1 +. +MessageId=10699 +Language=English +%1 +. +MessageId=10700 +Language=English +%1 +. +MessageId=10701 +Language=English +%1 +. +MessageId=10702 +Language=English +%1 +. +MessageId=10703 +Language=English +%1 +. +MessageId=10704 +Language=English +%1 +. +MessageId=10705 +Language=English +%1 +. +MessageId=10706 +Language=English +%1 +. +MessageId=10707 +Language=English +%1 +. +MessageId=10708 +Language=English +%1 +. +MessageId=10709 +Language=English +%1 +. +MessageId=10710 +Language=English +%1 +. +MessageId=10711 +Language=English +%1 +. +MessageId=10712 +Language=English +%1 +. +MessageId=10713 +Language=English +%1 +. +MessageId=10714 +Language=English +%1 +. +MessageId=10715 +Language=English +%1 +. +MessageId=10716 +Language=English +%1 +. +MessageId=10717 +Language=English +%1 +. +MessageId=10718 +Language=English +%1 +. +MessageId=10719 +Language=English +%1 +. +MessageId=10720 +Language=English +%1 +. +MessageId=10721 +Language=English +%1 +. +MessageId=10722 +Language=English +%1 +. +MessageId=10723 +Language=English +%1 +. +MessageId=10724 +Language=English +%1 +. +MessageId=10725 +Language=English +%1 +. +MessageId=10726 +Language=English +%1 +. +MessageId=10727 +Language=English +%1 +. +MessageId=10728 +Language=English +%1 +. +MessageId=10729 +Language=English +%1 +. +MessageId=10730 +Language=English +%1 +. +MessageId=10731 +Language=English +%1 +. +MessageId=10732 +Language=English +%1 +. +MessageId=10733 +Language=English +%1 +. +MessageId=10734 +Language=English +%1 +. +MessageId=10735 +Language=English +%1 +. +MessageId=10736 +Language=English +%1 +. +MessageId=10737 +Language=English +%1 +. +MessageId=10738 +Language=English +%1 +. +MessageId=10739 +Language=English +%1 +. +MessageId=10740 +Language=English +%1 +. +MessageId=10741 +Language=English +%1 +. +MessageId=10742 +Language=English +%1 +. +MessageId=10743 +Language=English +%1 +. +MessageId=10744 +Language=English +%1 +. +MessageId=10745 +Language=English +%1 +. +MessageId=10746 +Language=English +%1 +. +MessageId=10747 +Language=English +%1 +. +MessageId=10748 +Language=English +%1 +. +MessageId=10749 +Language=English +%1 +. +MessageId=10750 +Language=English +%1 +. +MessageId=10751 +Language=English +%1 +. +MessageId=10752 +Language=English +%1 +. +MessageId=10753 +Language=English +%1 +. +MessageId=10754 +Language=English +%1 +. +MessageId=10755 +Language=English +%1 +. +MessageId=10756 +Language=English +%1 +. +MessageId=10757 +Language=English +%1 +. +MessageId=10758 +Language=English +%1 +. +MessageId=10759 +Language=English +%1 +. +MessageId=10760 +Language=English +%1 +. +MessageId=10761 +Language=English +%1 +. +MessageId=10762 +Language=English +%1 +. +MessageId=10763 +Language=English +%1 +. +MessageId=10764 +Language=English +%1 +. +MessageId=10765 +Language=English +%1 +. +MessageId=10766 +Language=English +%1 +. +MessageId=10767 +Language=English +%1 +. +MessageId=10768 +Language=English +%1 +. +MessageId=10769 +Language=English +%1 +. +MessageId=10770 +Language=English +%1 +. +MessageId=10771 +Language=English +%1 +. +MessageId=10772 +Language=English +%1 +. +MessageId=10773 +Language=English +%1 +. +MessageId=10774 +Language=English +%1 +. +MessageId=10775 +Language=English +%1 +. +MessageId=10776 +Language=English +%1 +. +MessageId=10777 +Language=English +%1 +. +MessageId=10778 +Language=English +%1 +. +MessageId=10779 +Language=English +%1 +. +MessageId=10780 +Language=English +%1 +. +MessageId=10781 +Language=English +%1 +. +MessageId=10782 +Language=English +%1 +. +MessageId=10783 +Language=English +%1 +. +MessageId=10784 +Language=English +%1 +. +MessageId=10785 +Language=English +%1 +. +MessageId=10786 +Language=English +%1 +. +MessageId=10787 +Language=English +%1 +. +MessageId=10788 +Language=English +%1 +. +MessageId=10789 +Language=English +%1 +. +MessageId=10790 +Language=English +%1 +. +MessageId=10791 +Language=English +%1 +. +MessageId=10792 +Language=English +%1 +. +MessageId=10793 +Language=English +%1 +. +MessageId=10794 +Language=English +%1 +. +MessageId=10795 +Language=English +%1 +. +MessageId=10796 +Language=English +%1 +. +MessageId=10797 +Language=English +%1 +. +MessageId=10798 +Language=English +%1 +. +MessageId=10799 +Language=English +%1 +. +MessageId=10800 +Language=English +%1 +. +MessageId=10801 +Language=English +%1 +. +MessageId=10802 +Language=English +%1 +. +MessageId=10803 +Language=English +%1 +. +MessageId=10804 +Language=English +%1 +. +MessageId=10805 +Language=English +%1 +. +MessageId=10806 +Language=English +%1 +. +MessageId=10807 +Language=English +%1 +. +MessageId=10808 +Language=English +%1 +. +MessageId=10809 +Language=English +%1 +. +MessageId=10810 +Language=English +%1 +. +MessageId=10811 +Language=English +%1 +. +MessageId=10812 +Language=English +%1 +. +MessageId=10813 +Language=English +%1 +. +MessageId=10814 +Language=English +%1 +. +MessageId=10815 +Language=English +%1 +. +MessageId=10816 +Language=English +%1 +. +MessageId=10817 +Language=English +%1 +. +MessageId=10818 +Language=English +%1 +. +MessageId=10819 +Language=English +%1 +. +MessageId=10820 +Language=English +%1 +. +MessageId=10821 +Language=English +%1 +. +MessageId=10822 +Language=English +%1 +. +MessageId=10823 +Language=English +%1 +. +MessageId=10824 +Language=English +%1 +. +MessageId=10825 +Language=English +%1 +. +MessageId=10826 +Language=English +%1 +. +MessageId=10827 +Language=English +%1 +. +MessageId=10828 +Language=English +%1 +. +MessageId=10829 +Language=English +%1 +. +MessageId=10830 +Language=English +%1 +. +MessageId=10831 +Language=English +%1 +. +MessageId=10832 +Language=English +%1 +. +MessageId=10833 +Language=English +%1 +. +MessageId=10834 +Language=English +%1 +. +MessageId=10835 +Language=English +%1 +. +MessageId=10836 +Language=English +%1 +. +MessageId=10837 +Language=English +%1 +. +MessageId=10838 +Language=English +%1 +. +MessageId=10839 +Language=English +%1 +. +MessageId=10840 +Language=English +%1 +. +MessageId=10841 +Language=English +%1 +. +MessageId=10842 +Language=English +%1 +. +MessageId=10843 +Language=English +%1 +. +MessageId=10844 +Language=English +%1 +. +MessageId=10845 +Language=English +%1 +. +MessageId=10846 +Language=English +%1 +. +MessageId=10847 +Language=English +%1 +. +MessageId=10848 +Language=English +%1 +. +MessageId=10849 +Language=English +%1 +. +MessageId=10850 +Language=English +%1 +. +MessageId=10851 +Language=English +%1 +. +MessageId=10852 +Language=English +%1 +. +MessageId=10853 +Language=English +%1 +. +MessageId=10854 +Language=English +%1 +. +MessageId=10855 +Language=English +%1 +. +MessageId=10856 +Language=English +%1 +. +MessageId=10857 +Language=English +%1 +. +MessageId=10858 +Language=English +%1 +. +MessageId=10859 +Language=English +%1 +. +MessageId=10860 +Language=English +%1 +. +MessageId=10861 +Language=English +%1 +. +MessageId=10862 +Language=English +%1 +. +MessageId=10863 +Language=English +%1 +. +MessageId=10864 +Language=English +%1 +. +MessageId=10865 +Language=English +%1 +. +MessageId=10866 +Language=English +%1 +. +MessageId=10867 +Language=English +%1 +. +MessageId=10868 +Language=English +%1 +. +MessageId=10869 +Language=English +%1 +. +MessageId=10870 +Language=English +%1 +. +MessageId=10871 +Language=English +%1 +. +MessageId=10872 +Language=English +%1 +. +MessageId=10873 +Language=English +%1 +. +MessageId=10874 +Language=English +%1 +. +MessageId=10875 +Language=English +%1 +. +MessageId=10876 +Language=English +%1 +. +MessageId=10877 +Language=English +%1 +. +MessageId=10878 +Language=English +%1 +. +MessageId=10879 +Language=English +%1 +. +MessageId=10880 +Language=English +%1 +. +MessageId=10881 +Language=English +%1 +. +MessageId=10882 +Language=English +%1 +. +MessageId=10883 +Language=English +%1 +. +MessageId=10884 +Language=English +%1 +. +MessageId=10885 +Language=English +%1 +. +MessageId=10886 +Language=English +%1 +. +MessageId=10887 +Language=English +%1 +. +MessageId=10888 +Language=English +%1 +. +MessageId=10889 +Language=English +%1 +. +MessageId=10890 +Language=English +%1 +. +MessageId=10891 +Language=English +%1 +. +MessageId=10892 +Language=English +%1 +. +MessageId=10893 +Language=English +%1 +. +MessageId=10894 +Language=English +%1 +. +MessageId=10895 +Language=English +%1 +. +MessageId=10896 +Language=English +%1 +. +MessageId=10897 +Language=English +%1 +. +MessageId=10898 +Language=English +%1 +. +MessageId=10899 +Language=English +%1 +. +MessageId=10900 +Language=English +%1 +. +MessageId=10901 +Language=English +%1 +. +MessageId=10902 +Language=English +%1 +. +MessageId=10903 +Language=English +%1 +. +MessageId=10904 +Language=English +%1 +. +MessageId=10905 +Language=English +%1 +. +MessageId=10906 +Language=English +%1 +. +MessageId=10907 +Language=English +%1 +. +MessageId=10908 +Language=English +%1 +. +MessageId=10909 +Language=English +%1 +. +MessageId=10910 +Language=English +%1 +. +MessageId=10911 +Language=English +%1 +. +MessageId=10912 +Language=English +%1 +. +MessageId=10913 +Language=English +%1 +. +MessageId=10914 +Language=English +%1 +. +MessageId=10915 +Language=English +%1 +. +MessageId=10916 +Language=English +%1 +. +MessageId=10917 +Language=English +%1 +. +MessageId=10918 +Language=English +%1 +. +MessageId=10919 +Language=English +%1 +. +MessageId=10920 +Language=English +%1 +. +MessageId=10921 +Language=English +%1 +. +MessageId=10922 +Language=English +%1 +. +MessageId=10923 +Language=English +%1 +. +MessageId=10924 +Language=English +%1 +. +MessageId=10925 +Language=English +%1 +. +MessageId=10926 +Language=English +%1 +. +MessageId=10927 +Language=English +%1 +. +MessageId=10928 +Language=English +%1 +. +MessageId=10929 +Language=English +%1 +. +MessageId=10930 +Language=English +%1 +. +MessageId=10931 +Language=English +%1 +. +MessageId=10932 +Language=English +%1 +. +MessageId=10933 +Language=English +%1 +. +MessageId=10934 +Language=English +%1 +. +MessageId=10935 +Language=English +%1 +. +MessageId=10936 +Language=English +%1 +. +MessageId=10937 +Language=English +%1 +. +MessageId=10938 +Language=English +%1 +. +MessageId=10939 +Language=English +%1 +. +MessageId=10940 +Language=English +%1 +. +MessageId=10941 +Language=English +%1 +. +MessageId=10942 +Language=English +%1 +. +MessageId=10943 +Language=English +%1 +. +MessageId=10944 +Language=English +%1 +. +MessageId=10945 +Language=English +%1 +. +MessageId=10946 +Language=English +%1 +. +MessageId=10947 +Language=English +%1 +. +MessageId=10948 +Language=English +%1 +. +MessageId=10949 +Language=English +%1 +. +MessageId=10950 +Language=English +%1 +. +MessageId=10951 +Language=English +%1 +. +MessageId=10952 +Language=English +%1 +. +MessageId=10953 +Language=English +%1 +. +MessageId=10954 +Language=English +%1 +. +MessageId=10955 +Language=English +%1 +. +MessageId=10956 +Language=English +%1 +. +MessageId=10957 +Language=English +%1 +. +MessageId=10958 +Language=English +%1 +. +MessageId=10959 +Language=English +%1 +. +MessageId=10960 +Language=English +%1 +. +MessageId=10961 +Language=English +%1 +. +MessageId=10962 +Language=English +%1 +. +MessageId=10963 +Language=English +%1 +. +MessageId=10964 +Language=English +%1 +. +MessageId=10965 +Language=English +%1 +. +MessageId=10966 +Language=English +%1 +. +MessageId=10967 +Language=English +%1 +. +MessageId=10968 +Language=English +%1 +. +MessageId=10969 +Language=English +%1 +. +MessageId=10970 +Language=English +%1 +. +MessageId=10971 +Language=English +%1 +. +MessageId=10972 +Language=English +%1 +. +MessageId=10973 +Language=English +%1 +. +MessageId=10974 +Language=English +%1 +. +MessageId=10975 +Language=English +%1 +. +MessageId=10976 +Language=English +%1 +. +MessageId=10977 +Language=English +%1 +. +MessageId=10978 +Language=English +%1 +. +MessageId=10979 +Language=English +%1 +. +MessageId=10980 +Language=English +%1 +. +MessageId=10981 +Language=English +%1 +. +MessageId=10982 +Language=English +%1 +. +MessageId=10983 +Language=English +%1 +. +MessageId=10984 +Language=English +%1 +. +MessageId=10985 +Language=English +%1 +. +MessageId=10986 +Language=English +%1 +. +MessageId=10987 +Language=English +%1 +. +MessageId=10988 +Language=English +%1 +. +MessageId=10989 +Language=English +%1 +. +MessageId=10990 +Language=English +%1 +. +MessageId=10991 +Language=English +%1 +. +MessageId=10992 +Language=English +%1 +. +MessageId=10993 +Language=English +%1 +. +MessageId=10994 +Language=English +%1 +. +MessageId=10995 +Language=English +%1 +. +MessageId=10996 +Language=English +%1 +. +MessageId=10997 +Language=English +%1 +. +MessageId=10998 +Language=English +%1 +. +MessageId=10999 +Language=English +%1 +. +MessageId=11000 +Language=English +%1 +. +MessageId=11001 +Language=English +%1 +. +MessageId=11002 +Language=English +%1 +. +MessageId=11003 +Language=English +%1 +. +MessageId=11004 +Language=English +%1 +. +MessageId=11005 +Language=English +%1 +. +MessageId=11006 +Language=English +%1 +. +MessageId=11007 +Language=English +%1 +. +MessageId=11008 +Language=English +%1 +. +MessageId=11009 +Language=English +%1 +. +MessageId=11010 +Language=English +%1 +. +MessageId=11011 +Language=English +%1 +. +MessageId=11012 +Language=English +%1 +. +MessageId=11013 +Language=English +%1 +. +MessageId=11014 +Language=English +%1 +. +MessageId=11015 +Language=English +%1 +. +MessageId=11016 +Language=English +%1 +. +MessageId=11017 +Language=English +%1 +. +MessageId=11018 +Language=English +%1 +. +MessageId=11019 +Language=English +%1 +. +MessageId=11020 +Language=English +%1 +. +MessageId=11021 +Language=English +%1 +. +MessageId=11022 +Language=English +%1 +. +MessageId=11023 +Language=English +%1 +. +MessageId=11024 +Language=English +%1 +. +MessageId=11025 +Language=English +%1 +. +MessageId=11026 +Language=English +%1 +. +MessageId=11027 +Language=English +%1 +. +MessageId=11028 +Language=English +%1 +. +MessageId=11029 +Language=English +%1 +. +MessageId=11030 +Language=English +%1 +. +MessageId=11031 +Language=English +%1 +. +MessageId=11032 +Language=English +%1 +. +MessageId=11033 +Language=English +%1 +. +MessageId=11034 +Language=English +%1 +. +MessageId=11035 +Language=English +%1 +. +MessageId=11036 +Language=English +%1 +. +MessageId=11037 +Language=English +%1 +. +MessageId=11038 +Language=English +%1 +. +MessageId=11039 +Language=English +%1 +. +MessageId=11040 +Language=English +%1 +. +MessageId=11041 +Language=English +%1 +. +MessageId=11042 +Language=English +%1 +. +MessageId=11043 +Language=English +%1 +. +MessageId=11044 +Language=English +%1 +. +MessageId=11045 +Language=English +%1 +. +MessageId=11046 +Language=English +%1 +. +MessageId=11047 +Language=English +%1 +. +MessageId=11048 +Language=English +%1 +. +MessageId=11049 +Language=English +%1 +. +MessageId=11050 +Language=English +%1 +. +MessageId=11051 +Language=English +%1 +. +MessageId=11052 +Language=English +%1 +. +MessageId=11053 +Language=English +%1 +. +MessageId=11054 +Language=English +%1 +. +MessageId=11055 +Language=English +%1 +. +MessageId=11056 +Language=English +%1 +. +MessageId=11057 +Language=English +%1 +. +MessageId=11058 +Language=English +%1 +. +MessageId=11059 +Language=English +%1 +. +MessageId=11060 +Language=English +%1 +. +MessageId=11061 +Language=English +%1 +. +MessageId=11062 +Language=English +%1 +. +MessageId=11063 +Language=English +%1 +. +MessageId=11064 +Language=English +%1 +. +MessageId=11065 +Language=English +%1 +. +MessageId=11066 +Language=English +%1 +. +MessageId=11067 +Language=English +%1 +. +MessageId=11068 +Language=English +%1 +. +MessageId=11069 +Language=English +%1 +. +MessageId=11070 +Language=English +%1 +. +MessageId=11071 +Language=English +%1 +. +MessageId=11072 +Language=English +%1 +. +MessageId=11073 +Language=English +%1 +. +MessageId=11074 +Language=English +%1 +. +MessageId=11075 +Language=English +%1 +. +MessageId=11076 +Language=English +%1 +. +MessageId=11077 +Language=English +%1 +. +MessageId=11078 +Language=English +%1 +. +MessageId=11079 +Language=English +%1 +. +MessageId=11080 +Language=English +%1 +. +MessageId=11081 +Language=English +%1 +. +MessageId=11082 +Language=English +%1 +. +MessageId=11083 +Language=English +%1 +. +MessageId=11084 +Language=English +%1 +. +MessageId=11085 +Language=English +%1 +. +MessageId=11086 +Language=English +%1 +. +MessageId=11087 +Language=English +%1 +. +MessageId=11088 +Language=English +%1 +. +MessageId=11089 +Language=English +%1 +. +MessageId=11090 +Language=English +%1 +. +MessageId=11091 +Language=English +%1 +. +MessageId=11092 +Language=English +%1 +. +MessageId=11093 +Language=English +%1 +. +MessageId=11094 +Language=English +%1 +. +MessageId=11095 +Language=English +%1 +. +MessageId=11096 +Language=English +%1 +. +MessageId=11097 +Language=English +%1 +. +MessageId=11098 +Language=English +%1 +. +MessageId=11099 +Language=English +%1 +. +MessageId=11100 +Language=English +%1 +. +MessageId=11101 +Language=English +%1 +. +MessageId=11102 +Language=English +%1 +. +MessageId=11103 +Language=English +%1 +. +MessageId=11104 +Language=English +%1 +. +MessageId=11105 +Language=English +%1 +. +MessageId=11106 +Language=English +%1 +. +MessageId=11107 +Language=English +%1 +. +MessageId=11108 +Language=English +%1 +. +MessageId=11109 +Language=English +%1 +. +MessageId=11110 +Language=English +%1 +. +MessageId=11111 +Language=English +%1 +. +MessageId=11112 +Language=English +%1 +. +MessageId=11113 +Language=English +%1 +. +MessageId=11114 +Language=English +%1 +. +MessageId=11115 +Language=English +%1 +. +MessageId=11116 +Language=English +%1 +. +MessageId=11117 +Language=English +%1 +. +MessageId=11118 +Language=English +%1 +. +MessageId=11119 +Language=English +%1 +. +MessageId=11120 +Language=English +%1 +. +MessageId=11121 +Language=English +%1 +. +MessageId=11122 +Language=English +%1 +. +MessageId=11123 +Language=English +%1 +. +MessageId=11124 +Language=English +%1 +. +MessageId=11125 +Language=English +%1 +. +MessageId=11126 +Language=English +%1 +. +MessageId=11127 +Language=English +%1 +. +MessageId=11128 +Language=English +%1 +. +MessageId=11129 +Language=English +%1 +. +MessageId=11130 +Language=English +%1 +. +MessageId=11131 +Language=English +%1 +. +MessageId=11132 +Language=English +%1 +. +MessageId=11133 +Language=English +%1 +. +MessageId=11134 +Language=English +%1 +. +MessageId=11135 +Language=English +%1 +. +MessageId=11136 +Language=English +%1 +. +MessageId=11137 +Language=English +%1 +. +MessageId=11138 +Language=English +%1 +. +MessageId=11139 +Language=English +%1 +. +MessageId=11140 +Language=English +%1 +. +MessageId=11141 +Language=English +%1 +. +MessageId=11142 +Language=English +%1 +. +MessageId=11143 +Language=English +%1 +. +MessageId=11144 +Language=English +%1 +. +MessageId=11145 +Language=English +%1 +. +MessageId=11146 +Language=English +%1 +. +MessageId=11147 +Language=English +%1 +. +MessageId=11148 +Language=English +%1 +. +MessageId=11149 +Language=English +%1 +. +MessageId=11150 +Language=English +%1 +. +MessageId=11151 +Language=English +%1 +. +MessageId=11152 +Language=English +%1 +. +MessageId=11153 +Language=English +%1 +. +MessageId=11154 +Language=English +%1 +. +MessageId=11155 +Language=English +%1 +. +MessageId=11156 +Language=English +%1 +. +MessageId=11157 +Language=English +%1 +. +MessageId=11158 +Language=English +%1 +. +MessageId=11159 +Language=English +%1 +. +MessageId=11160 +Language=English +%1 +. +MessageId=11161 +Language=English +%1 +. +MessageId=11162 +Language=English +%1 +. +MessageId=11163 +Language=English +%1 +. +MessageId=11164 +Language=English +%1 +. +MessageId=11165 +Language=English +%1 +. +MessageId=11166 +Language=English +%1 +. +MessageId=11167 +Language=English +%1 +. +MessageId=11168 +Language=English +%1 +. +MessageId=11169 +Language=English +%1 +. +MessageId=11170 +Language=English +%1 +. +MessageId=11171 +Language=English +%1 +. +MessageId=11172 +Language=English +%1 +. +MessageId=11173 +Language=English +%1 +. +MessageId=11174 +Language=English +%1 +. +MessageId=11175 +Language=English +%1 +. +MessageId=11176 +Language=English +%1 +. +MessageId=11177 +Language=English +%1 +. +MessageId=11178 +Language=English +%1 +. +MessageId=11179 +Language=English +%1 +. +MessageId=11180 +Language=English +%1 +. +MessageId=11181 +Language=English +%1 +. +MessageId=11182 +Language=English +%1 +. +MessageId=11183 +Language=English +%1 +. +MessageId=11184 +Language=English +%1 +. +MessageId=11185 +Language=English +%1 +. +MessageId=11186 +Language=English +%1 +. +MessageId=11187 +Language=English +%1 +. +MessageId=11188 +Language=English +%1 +. +MessageId=11189 +Language=English +%1 +. +MessageId=11190 +Language=English +%1 +. +MessageId=11191 +Language=English +%1 +. +MessageId=11192 +Language=English +%1 +. +MessageId=11193 +Language=English +%1 +. +MessageId=11194 +Language=English +%1 +. +MessageId=11195 +Language=English +%1 +. +MessageId=11196 +Language=English +%1 +. +MessageId=11197 +Language=English +%1 +. +MessageId=11198 +Language=English +%1 +. +MessageId=11199 +Language=English +%1 +. +MessageId=11200 +Language=English +%1 +. +MessageId=11201 +Language=English +%1 +. +MessageId=11202 +Language=English +%1 +. +MessageId=11203 +Language=English +%1 +. +MessageId=11204 +Language=English +%1 +. +MessageId=11205 +Language=English +%1 +. +MessageId=11206 +Language=English +%1 +. +MessageId=11207 +Language=English +%1 +. +MessageId=11208 +Language=English +%1 +. +MessageId=11209 +Language=English +%1 +. +MessageId=11210 +Language=English +%1 +. +MessageId=11211 +Language=English +%1 +. +MessageId=11212 +Language=English +%1 +. +MessageId=11213 +Language=English +%1 +. +MessageId=11214 +Language=English +%1 +. +MessageId=11215 +Language=English +%1 +. +MessageId=11216 +Language=English +%1 +. +MessageId=11217 +Language=English +%1 +. +MessageId=11218 +Language=English +%1 +. +MessageId=11219 +Language=English +%1 +. +MessageId=11220 +Language=English +%1 +. +MessageId=11221 +Language=English +%1 +. +MessageId=11222 +Language=English +%1 +. +MessageId=11223 +Language=English +%1 +. +MessageId=11224 +Language=English +%1 +. +MessageId=11225 +Language=English +%1 +. +MessageId=11226 +Language=English +%1 +. +MessageId=11227 +Language=English +%1 +. +MessageId=11228 +Language=English +%1 +. +MessageId=11229 +Language=English +%1 +. +MessageId=11230 +Language=English +%1 +. +MessageId=11231 +Language=English +%1 +. +MessageId=11232 +Language=English +%1 +. +MessageId=11233 +Language=English +%1 +. +MessageId=11234 +Language=English +%1 +. +MessageId=11235 +Language=English +%1 +. +MessageId=11236 +Language=English +%1 +. +MessageId=11237 +Language=English +%1 +. +MessageId=11238 +Language=English +%1 +. +MessageId=11239 +Language=English +%1 +. +MessageId=11240 +Language=English +%1 +. +MessageId=11241 +Language=English +%1 +. +MessageId=11242 +Language=English +%1 +. +MessageId=11243 +Language=English +%1 +. +MessageId=11244 +Language=English +%1 +. +MessageId=11245 +Language=English +%1 +. +MessageId=11246 +Language=English +%1 +. +MessageId=11247 +Language=English +%1 +. +MessageId=11248 +Language=English +%1 +. +MessageId=11249 +Language=English +%1 +. +MessageId=11250 +Language=English +%1 +. +MessageId=11251 +Language=English +%1 +. +MessageId=11252 +Language=English +%1 +. +MessageId=11253 +Language=English +%1 +. +MessageId=11254 +Language=English +%1 +. +MessageId=11255 +Language=English +%1 +. +MessageId=11256 +Language=English +%1 +. +MessageId=11257 +Language=English +%1 +. +MessageId=11258 +Language=English +%1 +. +MessageId=11259 +Language=English +%1 +. +MessageId=11260 +Language=English +%1 +. +MessageId=11261 +Language=English +%1 +. +MessageId=11262 +Language=English +%1 +. +MessageId=11263 +Language=English +%1 +. +MessageId=11264 +Language=English +%1 +. +MessageId=11265 +Language=English +%1 +. +MessageId=11266 +Language=English +%1 +. +MessageId=11267 +Language=English +%1 +. +MessageId=11268 +Language=English +%1 +. +MessageId=11269 +Language=English +%1 +. +MessageId=11270 +Language=English +%1 +. +MessageId=11271 +Language=English +%1 +. +MessageId=11272 +Language=English +%1 +. +MessageId=11273 +Language=English +%1 +. +MessageId=11274 +Language=English +%1 +. +MessageId=11275 +Language=English +%1 +. +MessageId=11276 +Language=English +%1 +. +MessageId=11277 +Language=English +%1 +. +MessageId=11278 +Language=English +%1 +. +MessageId=11279 +Language=English +%1 +. +MessageId=11280 +Language=English +%1 +. +MessageId=11281 +Language=English +%1 +. +MessageId=11282 +Language=English +%1 +. +MessageId=11283 +Language=English +%1 +. +MessageId=11284 +Language=English +%1 +. +MessageId=11285 +Language=English +%1 +. +MessageId=11286 +Language=English +%1 +. +MessageId=11287 +Language=English +%1 +. +MessageId=11288 +Language=English +%1 +. +MessageId=11289 +Language=English +%1 +. +MessageId=11290 +Language=English +%1 +. +MessageId=11291 +Language=English +%1 +. +MessageId=11292 +Language=English +%1 +. +MessageId=11293 +Language=English +%1 +. +MessageId=11294 +Language=English +%1 +. +MessageId=11295 +Language=English +%1 +. +MessageId=11296 +Language=English +%1 +. +MessageId=11297 +Language=English +%1 +. +MessageId=11298 +Language=English +%1 +. +MessageId=11299 +Language=English +%1 +. +MessageId=11300 +Language=English +%1 +. +MessageId=11301 +Language=English +%1 +. +MessageId=11302 +Language=English +%1 +. +MessageId=11303 +Language=English +%1 +. +MessageId=11304 +Language=English +%1 +. +MessageId=11305 +Language=English +%1 +. +MessageId=11306 +Language=English +%1 +. +MessageId=11307 +Language=English +%1 +. +MessageId=11308 +Language=English +%1 +. +MessageId=11309 +Language=English +%1 +. +MessageId=11310 +Language=English +%1 +. +MessageId=11311 +Language=English +%1 +. +MessageId=11312 +Language=English +%1 +. +MessageId=11313 +Language=English +%1 +. +MessageId=11314 +Language=English +%1 +. +MessageId=11315 +Language=English +%1 +. +MessageId=11316 +Language=English +%1 +. +MessageId=11317 +Language=English +%1 +. +MessageId=11318 +Language=English +%1 +. +MessageId=11319 +Language=English +%1 +. +MessageId=11320 +Language=English +%1 +. +MessageId=11321 +Language=English +%1 +. +MessageId=11322 +Language=English +%1 +. +MessageId=11323 +Language=English +%1 +. +MessageId=11324 +Language=English +%1 +. +MessageId=11325 +Language=English +%1 +. +MessageId=11326 +Language=English +%1 +. +MessageId=11327 +Language=English +%1 +. +MessageId=11328 +Language=English +%1 +. +MessageId=11329 +Language=English +%1 +. +MessageId=11330 +Language=English +%1 +. +MessageId=11331 +Language=English +%1 +. +MessageId=11332 +Language=English +%1 +. +MessageId=11333 +Language=English +%1 +. +MessageId=11334 +Language=English +%1 +. +MessageId=11335 +Language=English +%1 +. +MessageId=11336 +Language=English +%1 +. +MessageId=11337 +Language=English +%1 +. +MessageId=11338 +Language=English +%1 +. +MessageId=11339 +Language=English +%1 +. +MessageId=11340 +Language=English +%1 +. +MessageId=11341 +Language=English +%1 +. +MessageId=11342 +Language=English +%1 +. +MessageId=11343 +Language=English +%1 +. +MessageId=11344 +Language=English +%1 +. +MessageId=11345 +Language=English +%1 +. +MessageId=11346 +Language=English +%1 +. +MessageId=11347 +Language=English +%1 +. +MessageId=11348 +Language=English +%1 +. +MessageId=11349 +Language=English +%1 +. +MessageId=11350 +Language=English +%1 +. +MessageId=11351 +Language=English +%1 +. +MessageId=11352 +Language=English +%1 +. +MessageId=11353 +Language=English +%1 +. +MessageId=11354 +Language=English +%1 +. +MessageId=11355 +Language=English +%1 +. +MessageId=11356 +Language=English +%1 +. +MessageId=11357 +Language=English +%1 +. +MessageId=11358 +Language=English +%1 +. +MessageId=11359 +Language=English +%1 +. +MessageId=11360 +Language=English +%1 +. +MessageId=11361 +Language=English +%1 +. +MessageId=11362 +Language=English +%1 +. +MessageId=11363 +Language=English +%1 +. +MessageId=11364 +Language=English +%1 +. +MessageId=11365 +Language=English +%1 +. +MessageId=11366 +Language=English +%1 +. +MessageId=11367 +Language=English +%1 +. +MessageId=11368 +Language=English +%1 +. +MessageId=11369 +Language=English +%1 +. +MessageId=11370 +Language=English +%1 +. +MessageId=11371 +Language=English +%1 +. +MessageId=11372 +Language=English +%1 +. +MessageId=11373 +Language=English +%1 +. +MessageId=11374 +Language=English +%1 +. +MessageId=11375 +Language=English +%1 +. +MessageId=11376 +Language=English +%1 +. +MessageId=11377 +Language=English +%1 +. +MessageId=11378 +Language=English +%1 +. +MessageId=11379 +Language=English +%1 +. +MessageId=11380 +Language=English +%1 +. +MessageId=11381 +Language=English +%1 +. +MessageId=11382 +Language=English +%1 +. +MessageId=11383 +Language=English +%1 +. +MessageId=11384 +Language=English +%1 +. +MessageId=11385 +Language=English +%1 +. +MessageId=11386 +Language=English +%1 +. +MessageId=11387 +Language=English +%1 +. +MessageId=11388 +Language=English +%1 +. +MessageId=11389 +Language=English +%1 +. +MessageId=11390 +Language=English +%1 +. +MessageId=11391 +Language=English +%1 +. +MessageId=11392 +Language=English +%1 +. +MessageId=11393 +Language=English +%1 +. +MessageId=11394 +Language=English +%1 +. +MessageId=11395 +Language=English +%1 +. +MessageId=11396 +Language=English +%1 +. +MessageId=11397 +Language=English +%1 +. +MessageId=11398 +Language=English +%1 +. +MessageId=11399 +Language=English +%1 +. +MessageId=11400 +Language=English +%1 +. +MessageId=11401 +Language=English +%1 +. +MessageId=11402 +Language=English +%1 +. +MessageId=11403 +Language=English +%1 +. +MessageId=11404 +Language=English +%1 +. +MessageId=11405 +Language=English +%1 +. +MessageId=11406 +Language=English +%1 +. +MessageId=11407 +Language=English +%1 +. +MessageId=11408 +Language=English +%1 +. +MessageId=11409 +Language=English +%1 +. +MessageId=11410 +Language=English +%1 +. +MessageId=11411 +Language=English +%1 +. +MessageId=11412 +Language=English +%1 +. +MessageId=11413 +Language=English +%1 +. +MessageId=11414 +Language=English +%1 +. +MessageId=11415 +Language=English +%1 +. +MessageId=11416 +Language=English +%1 +. +MessageId=11417 +Language=English +%1 +. +MessageId=11418 +Language=English +%1 +. +MessageId=11419 +Language=English +%1 +. +MessageId=11420 +Language=English +%1 +. +MessageId=11421 +Language=English +%1 +. +MessageId=11422 +Language=English +%1 +. +MessageId=11423 +Language=English +%1 +. +MessageId=11424 +Language=English +%1 +. +MessageId=11425 +Language=English +%1 +. +MessageId=11426 +Language=English +%1 +. +MessageId=11427 +Language=English +%1 +. +MessageId=11428 +Language=English +%1 +. +MessageId=11429 +Language=English +%1 +. +MessageId=11430 +Language=English +%1 +. +MessageId=11431 +Language=English +%1 +. +MessageId=11432 +Language=English +%1 +. +MessageId=11433 +Language=English +%1 +. +MessageId=11434 +Language=English +%1 +. +MessageId=11435 +Language=English +%1 +. +MessageId=11436 +Language=English +%1 +. +MessageId=11437 +Language=English +%1 +. +MessageId=11438 +Language=English +%1 +. +MessageId=11439 +Language=English +%1 +. +MessageId=11440 +Language=English +%1 +. +MessageId=11441 +Language=English +%1 +. +MessageId=11442 +Language=English +%1 +. +MessageId=11443 +Language=English +%1 +. +MessageId=11444 +Language=English +%1 +. +MessageId=11445 +Language=English +%1 +. +MessageId=11446 +Language=English +%1 +. +MessageId=11447 +Language=English +%1 +. +MessageId=11448 +Language=English +%1 +. +MessageId=11449 +Language=English +%1 +. +MessageId=11450 +Language=English +%1 +. +MessageId=11451 +Language=English +%1 +. +MessageId=11452 +Language=English +%1 +. +MessageId=11453 +Language=English +%1 +. +MessageId=11454 +Language=English +%1 +. +MessageId=11455 +Language=English +%1 +. +MessageId=11456 +Language=English +%1 +. +MessageId=11457 +Language=English +%1 +. +MessageId=11458 +Language=English +%1 +. +MessageId=11459 +Language=English +%1 +. +MessageId=11460 +Language=English +%1 +. +MessageId=11461 +Language=English +%1 +. +MessageId=11462 +Language=English +%1 +. +MessageId=11463 +Language=English +%1 +. +MessageId=11464 +Language=English +%1 +. +MessageId=11465 +Language=English +%1 +. +MessageId=11466 +Language=English +%1 +. +MessageId=11467 +Language=English +%1 +. +MessageId=11468 +Language=English +%1 +. +MessageId=11469 +Language=English +%1 +. +MessageId=11470 +Language=English +%1 +. +MessageId=11471 +Language=English +%1 +. +MessageId=11472 +Language=English +%1 +. +MessageId=11473 +Language=English +%1 +. +MessageId=11474 +Language=English +%1 +. +MessageId=11475 +Language=English +%1 +. +MessageId=11476 +Language=English +%1 +. +MessageId=11477 +Language=English +%1 +. +MessageId=11478 +Language=English +%1 +. +MessageId=11479 +Language=English +%1 +. +MessageId=11480 +Language=English +%1 +. +MessageId=11481 +Language=English +%1 +. +MessageId=11482 +Language=English +%1 +. +MessageId=11483 +Language=English +%1 +. +MessageId=11484 +Language=English +%1 +. +MessageId=11485 +Language=English +%1 +. +MessageId=11486 +Language=English +%1 +. +MessageId=11487 +Language=English +%1 +. +MessageId=11488 +Language=English +%1 +. +MessageId=11489 +Language=English +%1 +. +MessageId=11490 +Language=English +%1 +. +MessageId=11491 +Language=English +%1 +. +MessageId=11492 +Language=English +%1 +. +MessageId=11493 +Language=English +%1 +. +MessageId=11494 +Language=English +%1 +. +MessageId=11495 +Language=English +%1 +. +MessageId=11496 +Language=English +%1 +. +MessageId=11497 +Language=English +%1 +. +MessageId=11498 +Language=English +%1 +. +MessageId=11499 +Language=English +%1 +. +MessageId=11500 +Language=English +%1 +. +MessageId=11501 +Language=English +%1 +. +MessageId=11502 +Language=English +%1 +. +MessageId=11503 +Language=English +%1 +. +MessageId=11504 +Language=English +%1 +. +MessageId=11505 +Language=English +%1 +. +MessageId=11506 +Language=English +%1 +. +MessageId=11507 +Language=English +%1 +. +MessageId=11508 +Language=English +%1 +. +MessageId=11509 +Language=English +%1 +. +MessageId=11510 +Language=English +%1 +. +MessageId=11511 +Language=English +%1 +. +MessageId=11512 +Language=English +%1 +. +MessageId=11513 +Language=English +%1 +. +MessageId=11514 +Language=English +%1 +. +MessageId=11515 +Language=English +%1 +. +MessageId=11516 +Language=English +%1 +. +MessageId=11517 +Language=English +%1 +. +MessageId=11518 +Language=English +%1 +. +MessageId=11519 +Language=English +%1 +. +MessageId=11520 +Language=English +%1 +. +MessageId=11521 +Language=English +%1 +. +MessageId=11522 +Language=English +%1 +. +MessageId=11523 +Language=English +%1 +. +MessageId=11524 +Language=English +%1 +. +MessageId=11525 +Language=English +%1 +. +MessageId=11526 +Language=English +%1 +. +MessageId=11527 +Language=English +%1 +. +MessageId=11528 +Language=English +%1 +. +MessageId=11529 +Language=English +%1 +. +MessageId=11530 +Language=English +%1 +. +MessageId=11531 +Language=English +%1 +. +MessageId=11532 +Language=English +%1 +. +MessageId=11533 +Language=English +%1 +. +MessageId=11534 +Language=English +%1 +. +MessageId=11535 +Language=English +%1 +. +MessageId=11536 +Language=English +%1 +. +MessageId=11537 +Language=English +%1 +. +MessageId=11538 +Language=English +%1 +. +MessageId=11539 +Language=English +%1 +. +MessageId=11540 +Language=English +%1 +. +MessageId=11541 +Language=English +%1 +. +MessageId=11542 +Language=English +%1 +. +MessageId=11543 +Language=English +%1 +. +MessageId=11544 +Language=English +%1 +. +MessageId=11545 +Language=English +%1 +. +MessageId=11546 +Language=English +%1 +. +MessageId=11547 +Language=English +%1 +. +MessageId=11548 +Language=English +%1 +. +MessageId=11549 +Language=English +%1 +. +MessageId=11550 +Language=English +%1 +. +MessageId=11551 +Language=English +%1 +. +MessageId=11552 +Language=English +%1 +. +MessageId=11553 +Language=English +%1 +. +MessageId=11554 +Language=English +%1 +. +MessageId=11555 +Language=English +%1 +. +MessageId=11556 +Language=English +%1 +. +MessageId=11557 +Language=English +%1 +. +MessageId=11558 +Language=English +%1 +. +MessageId=11559 +Language=English +%1 +. +MessageId=11560 +Language=English +%1 +. +MessageId=11561 +Language=English +%1 +. +MessageId=11562 +Language=English +%1 +. +MessageId=11563 +Language=English +%1 +. +MessageId=11564 +Language=English +%1 +. +MessageId=11565 +Language=English +%1 +. +MessageId=11566 +Language=English +%1 +. +MessageId=11567 +Language=English +%1 +. +MessageId=11568 +Language=English +%1 +. +MessageId=11569 +Language=English +%1 +. +MessageId=11570 +Language=English +%1 +. +MessageId=11571 +Language=English +%1 +. +MessageId=11572 +Language=English +%1 +. +MessageId=11573 +Language=English +%1 +. +MessageId=11574 +Language=English +%1 +. +MessageId=11575 +Language=English +%1 +. +MessageId=11576 +Language=English +%1 +. +MessageId=11577 +Language=English +%1 +. +MessageId=11578 +Language=English +%1 +. +MessageId=11579 +Language=English +%1 +. +MessageId=11580 +Language=English +%1 +. +MessageId=11581 +Language=English +%1 +. +MessageId=11582 +Language=English +%1 +. +MessageId=11583 +Language=English +%1 +. +MessageId=11584 +Language=English +%1 +. +MessageId=11585 +Language=English +%1 +. +MessageId=11586 +Language=English +%1 +. +MessageId=11587 +Language=English +%1 +. +MessageId=11588 +Language=English +%1 +. +MessageId=11589 +Language=English +%1 +. +MessageId=11590 +Language=English +%1 +. +MessageId=11591 +Language=English +%1 +. +MessageId=11592 +Language=English +%1 +. +MessageId=11593 +Language=English +%1 +. +MessageId=11594 +Language=English +%1 +. +MessageId=11595 +Language=English +%1 +. +MessageId=11596 +Language=English +%1 +. +MessageId=11597 +Language=English +%1 +. +MessageId=11598 +Language=English +%1 +. +MessageId=11599 +Language=English +%1 +. +MessageId=11600 +Language=English +%1 +. +MessageId=11601 +Language=English +%1 +. +MessageId=11602 +Language=English +%1 +. +MessageId=11603 +Language=English +%1 +. +MessageId=11604 +Language=English +%1 +. +MessageId=11605 +Language=English +%1 +. +MessageId=11606 +Language=English +%1 +. +MessageId=11607 +Language=English +%1 +. +MessageId=11608 +Language=English +%1 +. +MessageId=11609 +Language=English +%1 +. +MessageId=11610 +Language=English +%1 +. +MessageId=11611 +Language=English +%1 +. +MessageId=11612 +Language=English +%1 +. +MessageId=11613 +Language=English +%1 +. +MessageId=11614 +Language=English +%1 +. +MessageId=11615 +Language=English +%1 +. +MessageId=11616 +Language=English +%1 +. +MessageId=11617 +Language=English +%1 +. +MessageId=11618 +Language=English +%1 +. +MessageId=11619 +Language=English +%1 +. +MessageId=11620 +Language=English +%1 +. +MessageId=11621 +Language=English +%1 +. +MessageId=11622 +Language=English +%1 +. +MessageId=11623 +Language=English +%1 +. +MessageId=11624 +Language=English +%1 +. +MessageId=11625 +Language=English +%1 +. +MessageId=11626 +Language=English +%1 +. +MessageId=11627 +Language=English +%1 +. +MessageId=11628 +Language=English +%1 +. +MessageId=11629 +Language=English +%1 +. +MessageId=11630 +Language=English +%1 +. +MessageId=11631 +Language=English +%1 +. +MessageId=11632 +Language=English +%1 +. +MessageId=11633 +Language=English +%1 +. +MessageId=11634 +Language=English +%1 +. +MessageId=11635 +Language=English +%1 +. +MessageId=11636 +Language=English +%1 +. +MessageId=11637 +Language=English +%1 +. +MessageId=11638 +Language=English +%1 +. +MessageId=11639 +Language=English +%1 +. +MessageId=11640 +Language=English +%1 +. +MessageId=11641 +Language=English +%1 +. +MessageId=11642 +Language=English +%1 +. +MessageId=11643 +Language=English +%1 +. +MessageId=11644 +Language=English +%1 +. +MessageId=11645 +Language=English +%1 +. +MessageId=11646 +Language=English +%1 +. +MessageId=11647 +Language=English +%1 +. +MessageId=11648 +Language=English +%1 +. +MessageId=11649 +Language=English +%1 +. +MessageId=11650 +Language=English +%1 +. +MessageId=11651 +Language=English +%1 +. +MessageId=11652 +Language=English +%1 +. +MessageId=11653 +Language=English +%1 +. +MessageId=11654 +Language=English +%1 +. +MessageId=11655 +Language=English +%1 +. +MessageId=11656 +Language=English +%1 +. +MessageId=11657 +Language=English +%1 +. +MessageId=11658 +Language=English +%1 +. +MessageId=11659 +Language=English +%1 +. +MessageId=11660 +Language=English +%1 +. +MessageId=11661 +Language=English +%1 +. +MessageId=11662 +Language=English +%1 +. +MessageId=11663 +Language=English +%1 +. +MessageId=11664 +Language=English +%1 +. +MessageId=11665 +Language=English +%1 +. +MessageId=11666 +Language=English +%1 +. +MessageId=11667 +Language=English +%1 +. +MessageId=11668 +Language=English +%1 +. +MessageId=11669 +Language=English +%1 +. +MessageId=11670 +Language=English +%1 +. +MessageId=11671 +Language=English +%1 +. +MessageId=11672 +Language=English +%1 +. +MessageId=11673 +Language=English +%1 +. +MessageId=11674 +Language=English +%1 +. +MessageId=11675 +Language=English +%1 +. +MessageId=11676 +Language=English +%1 +. +MessageId=11677 +Language=English +%1 +. +MessageId=11678 +Language=English +%1 +. +MessageId=11679 +Language=English +%1 +. +MessageId=11680 +Language=English +%1 +. +MessageId=11681 +Language=English +%1 +. +MessageId=11682 +Language=English +%1 +. +MessageId=11683 +Language=English +%1 +. +MessageId=11684 +Language=English +%1 +. +MessageId=11685 +Language=English +%1 +. +MessageId=11686 +Language=English +%1 +. +MessageId=11687 +Language=English +%1 +. +MessageId=11688 +Language=English +%1 +. +MessageId=11689 +Language=English +%1 +. +MessageId=11690 +Language=English +%1 +. +MessageId=11691 +Language=English +%1 +. +MessageId=11692 +Language=English +%1 +. +MessageId=11693 +Language=English +%1 +. +MessageId=11694 +Language=English +%1 +. +MessageId=11695 +Language=English +%1 +. +MessageId=11696 +Language=English +%1 +. +MessageId=11697 +Language=English +%1 +. +MessageId=11698 +Language=English +%1 +. +MessageId=11699 +Language=English +%1 +. +MessageId=11700 +Language=English +%1 +. +MessageId=11701 +Language=English +%1 +. +MessageId=11702 +Language=English +%1 +. +MessageId=11703 +Language=English +%1 +. +MessageId=11704 +Language=English +%1 +. +MessageId=11705 +Language=English +%1 +. +MessageId=11706 +Language=English +%1 +. +MessageId=11707 +Language=English +%1 +. +MessageId=11708 +Language=English +%1 +. +MessageId=11709 +Language=English +%1 +. +MessageId=11710 +Language=English +%1 +. +MessageId=11711 +Language=English +%1 +. +MessageId=11712 +Language=English +%1 +. +MessageId=11713 +Language=English +%1 +. +MessageId=11714 +Language=English +%1 +. +MessageId=11715 +Language=English +%1 +. +MessageId=11716 +Language=English +%1 +. +MessageId=11717 +Language=English +%1 +. +MessageId=11718 +Language=English +%1 +. +MessageId=11719 +Language=English +%1 +. +MessageId=11720 +Language=English +%1 +. +MessageId=11721 +Language=English +%1 +. +MessageId=11722 +Language=English +%1 +. +MessageId=11723 +Language=English +%1 +. +MessageId=11724 +Language=English +%1 +. +MessageId=11725 +Language=English +%1 +. +MessageId=11726 +Language=English +%1 +. +MessageId=11727 +Language=English +%1 +. +MessageId=11728 +Language=English +%1 +. +MessageId=11729 +Language=English +%1 +. +MessageId=11730 +Language=English +%1 +. +MessageId=11731 +Language=English +%1 +. +MessageId=11732 +Language=English +%1 +. +MessageId=11733 +Language=English +%1 +. +MessageId=11734 +Language=English +%1 +. +MessageId=11735 +Language=English +%1 +. +MessageId=11736 +Language=English +%1 +. +MessageId=11737 +Language=English +%1 +. +MessageId=11738 +Language=English +%1 +. +MessageId=11739 +Language=English +%1 +. +MessageId=11740 +Language=English +%1 +. +MessageId=11741 +Language=English +%1 +. +MessageId=11742 +Language=English +%1 +. +MessageId=11743 +Language=English +%1 +. +MessageId=11744 +Language=English +%1 +. +MessageId=11745 +Language=English +%1 +. +MessageId=11746 +Language=English +%1 +. +MessageId=11747 +Language=English +%1 +. +MessageId=11748 +Language=English +%1 +. +MessageId=11749 +Language=English +%1 +. +MessageId=11750 +Language=English +%1 +. +MessageId=11751 +Language=English +%1 +. +MessageId=11752 +Language=English +%1 +. +MessageId=11753 +Language=English +%1 +. +MessageId=11754 +Language=English +%1 +. +MessageId=11755 +Language=English +%1 +. +MessageId=11756 +Language=English +%1 +. +MessageId=11757 +Language=English +%1 +. +MessageId=11758 +Language=English +%1 +. +MessageId=11759 +Language=English +%1 +. +MessageId=11760 +Language=English +%1 +. +MessageId=11761 +Language=English +%1 +. +MessageId=11762 +Language=English +%1 +. +MessageId=11763 +Language=English +%1 +. +MessageId=11764 +Language=English +%1 +. +MessageId=11765 +Language=English +%1 +. +MessageId=11766 +Language=English +%1 +. +MessageId=11767 +Language=English +%1 +. +MessageId=11768 +Language=English +%1 +. +MessageId=11769 +Language=English +%1 +. +MessageId=11770 +Language=English +%1 +. +MessageId=11771 +Language=English +%1 +. +MessageId=11772 +Language=English +%1 +. +MessageId=11773 +Language=English +%1 +. +MessageId=11774 +Language=English +%1 +. +MessageId=11775 +Language=English +%1 +. +MessageId=11776 +Language=English +%1 +. +MessageId=11777 +Language=English +%1 +. +MessageId=11778 +Language=English +%1 +. +MessageId=11779 +Language=English +%1 +. +MessageId=11780 +Language=English +%1 +. +MessageId=11781 +Language=English +%1 +. +MessageId=11782 +Language=English +%1 +. +MessageId=11783 +Language=English +%1 +. +MessageId=11784 +Language=English +%1 +. +MessageId=11785 +Language=English +%1 +. +MessageId=11786 +Language=English +%1 +. +MessageId=11787 +Language=English +%1 +. +MessageId=11788 +Language=English +%1 +. +MessageId=11789 +Language=English +%1 +. +MessageId=11790 +Language=English +%1 +. +MessageId=11791 +Language=English +%1 +. +MessageId=11792 +Language=English +%1 +. +MessageId=11793 +Language=English +%1 +. +MessageId=11794 +Language=English +%1 +. +MessageId=11795 +Language=English +%1 +. +MessageId=11796 +Language=English +%1 +. +MessageId=11797 +Language=English +%1 +. +MessageId=11798 +Language=English +%1 +. +MessageId=11799 +Language=English +%1 +. +MessageId=11800 +Language=English +%1 +. +MessageId=11801 +Language=English +%1 +. +MessageId=11802 +Language=English +%1 +. +MessageId=11803 +Language=English +%1 +. +MessageId=11804 +Language=English +%1 +. +MessageId=11805 +Language=English +%1 +. +MessageId=11806 +Language=English +%1 +. +MessageId=11807 +Language=English +%1 +. +MessageId=11808 +Language=English +%1 +. +MessageId=11809 +Language=English +%1 +. +MessageId=11810 +Language=English +%1 +. +MessageId=11811 +Language=English +%1 +. +MessageId=11812 +Language=English +%1 +. +MessageId=11813 +Language=English +%1 +. +MessageId=11814 +Language=English +%1 +. +MessageId=11815 +Language=English +%1 +. +MessageId=11816 +Language=English +%1 +. +MessageId=11817 +Language=English +%1 +. +MessageId=11818 +Language=English +%1 +. +MessageId=11819 +Language=English +%1 +. +MessageId=11820 +Language=English +%1 +. +MessageId=11821 +Language=English +%1 +. +MessageId=11822 +Language=English +%1 +. +MessageId=11823 +Language=English +%1 +. +MessageId=11824 +Language=English +%1 +. +MessageId=11825 +Language=English +%1 +. +MessageId=11826 +Language=English +%1 +. +MessageId=11827 +Language=English +%1 +. +MessageId=11828 +Language=English +%1 +. +MessageId=11829 +Language=English +%1 +. +MessageId=11830 +Language=English +%1 +. +MessageId=11831 +Language=English +%1 +. +MessageId=11832 +Language=English +%1 +. +MessageId=11833 +Language=English +%1 +. +MessageId=11834 +Language=English +%1 +. +MessageId=11835 +Language=English +%1 +. +MessageId=11836 +Language=English +%1 +. +MessageId=11837 +Language=English +%1 +. +MessageId=11838 +Language=English +%1 +. +MessageId=11839 +Language=English +%1 +. +MessageId=11840 +Language=English +%1 +. +MessageId=11841 +Language=English +%1 +. +MessageId=11842 +Language=English +%1 +. +MessageId=11843 +Language=English +%1 +. +MessageId=11844 +Language=English +%1 +. +MessageId=11845 +Language=English +%1 +. +MessageId=11846 +Language=English +%1 +. +MessageId=11847 +Language=English +%1 +. +MessageId=11848 +Language=English +%1 +. +MessageId=11849 +Language=English +%1 +. +MessageId=11850 +Language=English +%1 +. +MessageId=11851 +Language=English +%1 +. +MessageId=11852 +Language=English +%1 +. +MessageId=11853 +Language=English +%1 +. +MessageId=11854 +Language=English +%1 +. +MessageId=11855 +Language=English +%1 +. +MessageId=11856 +Language=English +%1 +. +MessageId=11857 +Language=English +%1 +. +MessageId=11858 +Language=English +%1 +. +MessageId=11859 +Language=English +%1 +. +MessageId=11860 +Language=English +%1 +. +MessageId=11861 +Language=English +%1 +. +MessageId=11862 +Language=English +%1 +. +MessageId=11863 +Language=English +%1 +. +MessageId=11864 +Language=English +%1 +. +MessageId=11865 +Language=English +%1 +. +MessageId=11866 +Language=English +%1 +. +MessageId=11867 +Language=English +%1 +. +MessageId=11868 +Language=English +%1 +. +MessageId=11869 +Language=English +%1 +. +MessageId=11870 +Language=English +%1 +. +MessageId=11871 +Language=English +%1 +. +MessageId=11872 +Language=English +%1 +. +MessageId=11873 +Language=English +%1 +. +MessageId=11874 +Language=English +%1 +. +MessageId=11875 +Language=English +%1 +. +MessageId=11876 +Language=English +%1 +. +MessageId=11877 +Language=English +%1 +. +MessageId=11878 +Language=English +%1 +. +MessageId=11879 +Language=English +%1 +. +MessageId=11880 +Language=English +%1 +. +MessageId=11881 +Language=English +%1 +. +MessageId=11882 +Language=English +%1 +. +MessageId=11883 +Language=English +%1 +. +MessageId=11884 +Language=English +%1 +. +MessageId=11885 +Language=English +%1 +. +MessageId=11886 +Language=English +%1 +. +MessageId=11887 +Language=English +%1 +. +MessageId=11888 +Language=English +%1 +. +MessageId=11889 +Language=English +%1 +. +MessageId=11890 +Language=English +%1 +. +MessageId=11891 +Language=English +%1 +. +MessageId=11892 +Language=English +%1 +. +MessageId=11893 +Language=English +%1 +. +MessageId=11894 +Language=English +%1 +. +MessageId=11895 +Language=English +%1 +. +MessageId=11896 +Language=English +%1 +. +MessageId=11897 +Language=English +%1 +. +MessageId=11898 +Language=English +%1 +. +MessageId=11899 +Language=English +%1 +. +MessageId=11900 +Language=English +%1 +. +MessageId=11901 +Language=English +%1 +. +MessageId=11902 +Language=English +%1 +. +MessageId=11903 +Language=English +%1 +. +MessageId=11904 +Language=English +%1 +. +MessageId=11905 +Language=English +%1 +. +MessageId=11906 +Language=English +%1 +. +MessageId=11907 +Language=English +%1 +. +MessageId=11908 +Language=English +%1 +. +MessageId=11909 +Language=English +%1 +. +MessageId=11910 +Language=English +%1 +. +MessageId=11911 +Language=English +%1 +. +MessageId=11912 +Language=English +%1 +. +MessageId=11913 +Language=English +%1 +. +MessageId=11914 +Language=English +%1 +. +MessageId=11915 +Language=English +%1 +. +MessageId=11916 +Language=English +%1 +. +MessageId=11917 +Language=English +%1 +. +MessageId=11918 +Language=English +%1 +. +MessageId=11919 +Language=English +%1 +. +MessageId=11920 +Language=English +%1 +. +MessageId=11921 +Language=English +%1 +. +MessageId=11922 +Language=English +%1 +. +MessageId=11923 +Language=English +%1 +. +MessageId=11924 +Language=English +%1 +. +MessageId=11925 +Language=English +%1 +. +MessageId=11926 +Language=English +%1 +. +MessageId=11927 +Language=English +%1 +. +MessageId=11928 +Language=English +%1 +. +MessageId=11929 +Language=English +%1 +. +MessageId=11930 +Language=English +%1 +. +MessageId=11931 +Language=English +%1 +. +MessageId=11932 +Language=English +%1 +. +MessageId=11933 +Language=English +%1 +. +MessageId=11934 +Language=English +%1 +. +MessageId=11935 +Language=English +%1 +. +MessageId=11936 +Language=English +%1 +. +MessageId=11937 +Language=English +%1 +. +MessageId=11938 +Language=English +%1 +. +MessageId=11939 +Language=English +%1 +. +MessageId=11940 +Language=English +%1 +. +MessageId=11941 +Language=English +%1 +. +MessageId=11942 +Language=English +%1 +. +MessageId=11943 +Language=English +%1 +. +MessageId=11944 +Language=English +%1 +. +MessageId=11945 +Language=English +%1 +. +MessageId=11946 +Language=English +%1 +. +MessageId=11947 +Language=English +%1 +. +MessageId=11948 +Language=English +%1 +. +MessageId=11949 +Language=English +%1 +. +MessageId=11950 +Language=English +%1 +. +MessageId=11951 +Language=English +%1 +. +MessageId=11952 +Language=English +%1 +. +MessageId=11953 +Language=English +%1 +. +MessageId=11954 +Language=English +%1 +. +MessageId=11955 +Language=English +%1 +. +MessageId=11956 +Language=English +%1 +. +MessageId=11957 +Language=English +%1 +. +MessageId=11958 +Language=English +%1 +. +MessageId=11959 +Language=English +%1 +. +MessageId=11960 +Language=English +%1 +. +MessageId=11961 +Language=English +%1 +. +MessageId=11962 +Language=English +%1 +. +MessageId=11963 +Language=English +%1 +. +MessageId=11964 +Language=English +%1 +. +MessageId=11965 +Language=English +%1 +. +MessageId=11966 +Language=English +%1 +. +MessageId=11967 +Language=English +%1 +. +MessageId=11968 +Language=English +%1 +. +MessageId=11969 +Language=English +%1 +. +MessageId=11970 +Language=English +%1 +. +MessageId=11971 +Language=English +%1 +. +MessageId=11972 +Language=English +%1 +. +MessageId=11973 +Language=English +%1 +. +MessageId=11974 +Language=English +%1 +. +MessageId=11975 +Language=English +%1 +. +MessageId=11976 +Language=English +%1 +. +MessageId=11977 +Language=English +%1 +. +MessageId=11978 +Language=English +%1 +. +MessageId=11979 +Language=English +%1 +. +MessageId=11980 +Language=English +%1 +. +MessageId=11981 +Language=English +%1 +. +MessageId=11982 +Language=English +%1 +. +MessageId=11983 +Language=English +%1 +. +MessageId=11984 +Language=English +%1 +. +MessageId=11985 +Language=English +%1 +. +MessageId=11986 +Language=English +%1 +. +MessageId=11987 +Language=English +%1 +. +MessageId=11988 +Language=English +%1 +. +MessageId=11989 +Language=English +%1 +. +MessageId=11990 +Language=English +%1 +. +MessageId=11991 +Language=English +%1 +. +MessageId=11992 +Language=English +%1 +. +MessageId=11993 +Language=English +%1 +. +MessageId=11994 +Language=English +%1 +. +MessageId=11995 +Language=English +%1 +. +MessageId=11996 +Language=English +%1 +. +MessageId=11997 +Language=English +%1 +. +MessageId=11998 +Language=English +%1 +. +MessageId=11999 +Language=English +%1 +. +MessageId=12000 +Language=English +%1 +. +MessageId=12001 +Language=English +%1 +. +MessageId=12002 +Language=English +%1 +. +MessageId=12003 +Language=English +%1 +. +MessageId=12004 +Language=English +%1 +. +MessageId=12005 +Language=English +%1 +. +MessageId=12006 +Language=English +%1 +. +MessageId=12007 +Language=English +%1 +. +MessageId=12008 +Language=English +%1 +. +MessageId=12009 +Language=English +%1 +. +MessageId=12010 +Language=English +%1 +. +MessageId=12011 +Language=English +%1 +. +MessageId=12012 +Language=English +%1 +. +MessageId=12013 +Language=English +%1 +. +MessageId=12014 +Language=English +%1 +. +MessageId=12015 +Language=English +%1 +. +MessageId=12016 +Language=English +%1 +. +MessageId=12017 +Language=English +%1 +. +MessageId=12018 +Language=English +%1 +. +MessageId=12019 +Language=English +%1 +. +MessageId=12020 +Language=English +%1 +. +MessageId=12021 +Language=English +%1 +. +MessageId=12022 +Language=English +%1 +. +MessageId=12023 +Language=English +%1 +. +MessageId=12024 +Language=English +%1 +. +MessageId=12025 +Language=English +%1 +. +MessageId=12026 +Language=English +%1 +. +MessageId=12027 +Language=English +%1 +. +MessageId=12028 +Language=English +%1 +. +MessageId=12029 +Language=English +%1 +. +MessageId=12030 +Language=English +%1 +. +MessageId=12031 +Language=English +%1 +. +MessageId=12032 +Language=English +%1 +. +MessageId=12033 +Language=English +%1 +. +MessageId=12034 +Language=English +%1 +. +MessageId=12035 +Language=English +%1 +. +MessageId=12036 +Language=English +%1 +. +MessageId=12037 +Language=English +%1 +. +MessageId=12038 +Language=English +%1 +. +MessageId=12039 +Language=English +%1 +. +MessageId=12040 +Language=English +%1 +. +MessageId=12041 +Language=English +%1 +. +MessageId=12042 +Language=English +%1 +. +MessageId=12043 +Language=English +%1 +. +MessageId=12044 +Language=English +%1 +. +MessageId=12045 +Language=English +%1 +. +MessageId=12046 +Language=English +%1 +. +MessageId=12047 +Language=English +%1 +. +MessageId=12048 +Language=English +%1 +. +MessageId=12049 +Language=English +%1 +. +MessageId=12050 +Language=English +%1 +. +MessageId=12051 +Language=English +%1 +. +MessageId=12052 +Language=English +%1 +. +MessageId=12053 +Language=English +%1 +. +MessageId=12054 +Language=English +%1 +. +MessageId=12055 +Language=English +%1 +. +MessageId=12056 +Language=English +%1 +. +MessageId=12057 +Language=English +%1 +. +MessageId=12058 +Language=English +%1 +. +MessageId=12059 +Language=English +%1 +. +MessageId=12060 +Language=English +%1 +. +MessageId=12061 +Language=English +%1 +. +MessageId=12062 +Language=English +%1 +. +MessageId=12063 +Language=English +%1 +. +MessageId=12064 +Language=English +%1 +. +MessageId=12065 +Language=English +%1 +. +MessageId=12066 +Language=English +%1 +. +MessageId=12067 +Language=English +%1 +. +MessageId=12068 +Language=English +%1 +. +MessageId=12069 +Language=English +%1 +. +MessageId=12070 +Language=English +%1 +. +MessageId=12071 +Language=English +%1 +. +MessageId=12072 +Language=English +%1 +. +MessageId=12073 +Language=English +%1 +. +MessageId=12074 +Language=English +%1 +. +MessageId=12075 +Language=English +%1 +. +MessageId=12076 +Language=English +%1 +. +MessageId=12077 +Language=English +%1 +. +MessageId=12078 +Language=English +%1 +. +MessageId=12079 +Language=English +%1 +. +MessageId=12080 +Language=English +%1 +. +MessageId=12081 +Language=English +%1 +. +MessageId=12082 +Language=English +%1 +. +MessageId=12083 +Language=English +%1 +. +MessageId=12084 +Language=English +%1 +. +MessageId=12085 +Language=English +%1 +. +MessageId=12086 +Language=English +%1 +. +MessageId=12087 +Language=English +%1 +. +MessageId=12088 +Language=English +%1 +. +MessageId=12089 +Language=English +%1 +. +MessageId=12090 +Language=English +%1 +. +MessageId=12091 +Language=English +%1 +. +MessageId=12092 +Language=English +%1 +. +MessageId=12093 +Language=English +%1 +. +MessageId=12094 +Language=English +%1 +. +MessageId=12095 +Language=English +%1 +. +MessageId=12096 +Language=English +%1 +. +MessageId=12097 +Language=English +%1 +. +MessageId=12098 +Language=English +%1 +. +MessageId=12099 +Language=English +%1 +. +MessageId=12100 +Language=English +%1 +. +MessageId=12101 +Language=English +%1 +. +MessageId=12102 +Language=English +%1 +. +MessageId=12103 +Language=English +%1 +. +MessageId=12104 +Language=English +%1 +. +MessageId=12105 +Language=English +%1 +. +MessageId=12106 +Language=English +%1 +. +MessageId=12107 +Language=English +%1 +. +MessageId=12108 +Language=English +%1 +. +MessageId=12109 +Language=English +%1 +. +MessageId=12110 +Language=English +%1 +. +MessageId=12111 +Language=English +%1 +. +MessageId=12112 +Language=English +%1 +. +MessageId=12113 +Language=English +%1 +. +MessageId=12114 +Language=English +%1 +. +MessageId=12115 +Language=English +%1 +. +MessageId=12116 +Language=English +%1 +. +MessageId=12117 +Language=English +%1 +. +MessageId=12118 +Language=English +%1 +. +MessageId=12119 +Language=English +%1 +. +MessageId=12120 +Language=English +%1 +. +MessageId=12121 +Language=English +%1 +. +MessageId=12122 +Language=English +%1 +. +MessageId=12123 +Language=English +%1 +. +MessageId=12124 +Language=English +%1 +. +MessageId=12125 +Language=English +%1 +. +MessageId=12126 +Language=English +%1 +. +MessageId=12127 +Language=English +%1 +. +MessageId=12128 +Language=English +%1 +. +MessageId=12129 +Language=English +%1 +. +MessageId=12130 +Language=English +%1 +. +MessageId=12131 +Language=English +%1 +. +MessageId=12132 +Language=English +%1 +. +MessageId=12133 +Language=English +%1 +. +MessageId=12134 +Language=English +%1 +. +MessageId=12135 +Language=English +%1 +. +MessageId=12136 +Language=English +%1 +. +MessageId=12137 +Language=English +%1 +. +MessageId=12138 +Language=English +%1 +. +MessageId=12139 +Language=English +%1 +. +MessageId=12140 +Language=English +%1 +. +MessageId=12141 +Language=English +%1 +. +MessageId=12142 +Language=English +%1 +. +MessageId=12143 +Language=English +%1 +. +MessageId=12144 +Language=English +%1 +. +MessageId=12145 +Language=English +%1 +. +MessageId=12146 +Language=English +%1 +. +MessageId=12147 +Language=English +%1 +. +MessageId=12148 +Language=English +%1 +. +MessageId=12149 +Language=English +%1 +. +MessageId=12150 +Language=English +%1 +. +MessageId=12151 +Language=English +%1 +. +MessageId=12152 +Language=English +%1 +. +MessageId=12153 +Language=English +%1 +. +MessageId=12154 +Language=English +%1 +. +MessageId=12155 +Language=English +%1 +. +MessageId=12156 +Language=English +%1 +. +MessageId=12157 +Language=English +%1 +. +MessageId=12158 +Language=English +%1 +. +MessageId=12159 +Language=English +%1 +. +MessageId=12160 +Language=English +%1 +. +MessageId=12161 +Language=English +%1 +. +MessageId=12162 +Language=English +%1 +. +MessageId=12163 +Language=English +%1 +. +MessageId=12164 +Language=English +%1 +. +MessageId=12165 +Language=English +%1 +. +MessageId=12166 +Language=English +%1 +. +MessageId=12167 +Language=English +%1 +. +MessageId=12168 +Language=English +%1 +. +MessageId=12169 +Language=English +%1 +. +MessageId=12170 +Language=English +%1 +. +MessageId=12171 +Language=English +%1 +. +MessageId=12172 +Language=English +%1 +. +MessageId=12173 +Language=English +%1 +. +MessageId=12174 +Language=English +%1 +. +MessageId=12175 +Language=English +%1 +. +MessageId=12176 +Language=English +%1 +. +MessageId=12177 +Language=English +%1 +. +MessageId=12178 +Language=English +%1 +. +MessageId=12179 +Language=English +%1 +. +MessageId=12180 +Language=English +%1 +. +MessageId=12181 +Language=English +%1 +. +MessageId=12182 +Language=English +%1 +. +MessageId=12183 +Language=English +%1 +. +MessageId=12184 +Language=English +%1 +. +MessageId=12185 +Language=English +%1 +. +MessageId=12186 +Language=English +%1 +. +MessageId=12187 +Language=English +%1 +. +MessageId=12188 +Language=English +%1 +. +MessageId=12189 +Language=English +%1 +. +MessageId=12190 +Language=English +%1 +. +MessageId=12191 +Language=English +%1 +. +MessageId=12192 +Language=English +%1 +. +MessageId=12193 +Language=English +%1 +. +MessageId=12194 +Language=English +%1 +. +MessageId=12195 +Language=English +%1 +. +MessageId=12196 +Language=English +%1 +. +MessageId=12197 +Language=English +%1 +. +MessageId=12198 +Language=English +%1 +. +MessageId=12199 +Language=English +%1 +. +MessageId=12200 +Language=English +%1 +. +MessageId=12201 +Language=English +%1 +. +MessageId=12202 +Language=English +%1 +. +MessageId=12203 +Language=English +%1 +. +MessageId=12204 +Language=English +%1 +. +MessageId=12205 +Language=English +%1 +. +MessageId=12206 +Language=English +%1 +. +MessageId=12207 +Language=English +%1 +. +MessageId=12208 +Language=English +%1 +. +MessageId=12209 +Language=English +%1 +. +MessageId=12210 +Language=English +%1 +. +MessageId=12211 +Language=English +%1 +. +MessageId=12212 +Language=English +%1 +. +MessageId=12213 +Language=English +%1 +. +MessageId=12214 +Language=English +%1 +. +MessageId=12215 +Language=English +%1 +. +MessageId=12216 +Language=English +%1 +. +MessageId=12217 +Language=English +%1 +. +MessageId=12218 +Language=English +%1 +. +MessageId=12219 +Language=English +%1 +. +MessageId=12220 +Language=English +%1 +. +MessageId=12221 +Language=English +%1 +. +MessageId=12222 +Language=English +%1 +. +MessageId=12223 +Language=English +%1 +. +MessageId=12224 +Language=English +%1 +. +MessageId=12225 +Language=English +%1 +. +MessageId=12226 +Language=English +%1 +. +MessageId=12227 +Language=English +%1 +. +MessageId=12228 +Language=English +%1 +. +MessageId=12229 +Language=English +%1 +. +MessageId=12230 +Language=English +%1 +. +MessageId=12231 +Language=English +%1 +. +MessageId=12232 +Language=English +%1 +. +MessageId=12233 +Language=English +%1 +. +MessageId=12234 +Language=English +%1 +. +MessageId=12235 +Language=English +%1 +. +MessageId=12236 +Language=English +%1 +. +MessageId=12237 +Language=English +%1 +. +MessageId=12238 +Language=English +%1 +. +MessageId=12239 +Language=English +%1 +. +MessageId=12240 +Language=English +%1 +. +MessageId=12241 +Language=English +%1 +. +MessageId=12242 +Language=English +%1 +. +MessageId=12243 +Language=English +%1 +. +MessageId=12244 +Language=English +%1 +. +MessageId=12245 +Language=English +%1 +. +MessageId=12246 +Language=English +%1 +. +MessageId=12247 +Language=English +%1 +. +MessageId=12248 +Language=English +%1 +. +MessageId=12249 +Language=English +%1 +. +MessageId=12250 +Language=English +%1 +. +MessageId=12251 +Language=English +%1 +. +MessageId=12252 +Language=English +%1 +. +MessageId=12253 +Language=English +%1 +. +MessageId=12254 +Language=English +%1 +. +MessageId=12255 +Language=English +%1 +. +MessageId=12256 +Language=English +%1 +. +MessageId=12257 +Language=English +%1 +. +MessageId=12258 +Language=English +%1 +. +MessageId=12259 +Language=English +%1 +. +MessageId=12260 +Language=English +%1 +. +MessageId=12261 +Language=English +%1 +. +MessageId=12262 +Language=English +%1 +. +MessageId=12263 +Language=English +%1 +. +MessageId=12264 +Language=English +%1 +. +MessageId=12265 +Language=English +%1 +. +MessageId=12266 +Language=English +%1 +. +MessageId=12267 +Language=English +%1 +. +MessageId=12268 +Language=English +%1 +. +MessageId=12269 +Language=English +%1 +. +MessageId=12270 +Language=English +%1 +. +MessageId=12271 +Language=English +%1 +. +MessageId=12272 +Language=English +%1 +. +MessageId=12273 +Language=English +%1 +. +MessageId=12274 +Language=English +%1 +. +MessageId=12275 +Language=English +%1 +. +MessageId=12276 +Language=English +%1 +. +MessageId=12277 +Language=English +%1 +. +MessageId=12278 +Language=English +%1 +. +MessageId=12279 +Language=English +%1 +. +MessageId=12280 +Language=English +%1 +. +MessageId=12281 +Language=English +%1 +. +MessageId=12282 +Language=English +%1 +. +MessageId=12283 +Language=English +%1 +. +MessageId=12284 +Language=English +%1 +. +MessageId=12285 +Language=English +%1 +. +MessageId=12286 +Language=English +%1 +. +MessageId=12287 +Language=English +%1 +. +MessageId=12288 +Language=English +%1 +. +MessageId=12289 +Language=English +%1 +. +MessageId=12290 +Language=English +%1 +. +MessageId=12291 +Language=English +%1 +. +MessageId=12292 +Language=English +%1 +. +MessageId=12293 +Language=English +%1 +. +MessageId=12294 +Language=English +%1 +. +MessageId=12295 +Language=English +%1 +. +MessageId=12296 +Language=English +%1 +. +MessageId=12297 +Language=English +%1 +. +MessageId=12298 +Language=English +%1 +. +MessageId=12299 +Language=English +%1 +. +MessageId=12300 +Language=English +%1 +. +MessageId=12301 +Language=English +%1 +. +MessageId=12302 +Language=English +%1 +. +MessageId=12303 +Language=English +%1 +. +MessageId=12304 +Language=English +%1 +. +MessageId=12305 +Language=English +%1 +. +MessageId=12306 +Language=English +%1 +. +MessageId=12307 +Language=English +%1 +. +MessageId=12308 +Language=English +%1 +. +MessageId=12309 +Language=English +%1 +. +MessageId=12310 +Language=English +%1 +. +MessageId=12311 +Language=English +%1 +. +MessageId=12312 +Language=English +%1 +. +MessageId=12313 +Language=English +%1 +. +MessageId=12314 +Language=English +%1 +. +MessageId=12315 +Language=English +%1 +. +MessageId=12316 +Language=English +%1 +. +MessageId=12317 +Language=English +%1 +. +MessageId=12318 +Language=English +%1 +. +MessageId=12319 +Language=English +%1 +. +MessageId=12320 +Language=English +%1 +. +MessageId=12321 +Language=English +%1 +. +MessageId=12322 +Language=English +%1 +. +MessageId=12323 +Language=English +%1 +. +MessageId=12324 +Language=English +%1 +. +MessageId=12325 +Language=English +%1 +. +MessageId=12326 +Language=English +%1 +. +MessageId=12327 +Language=English +%1 +. +MessageId=12328 +Language=English +%1 +. +MessageId=12329 +Language=English +%1 +. +MessageId=12330 +Language=English +%1 +. +MessageId=12331 +Language=English +%1 +. +MessageId=12332 +Language=English +%1 +. +MessageId=12333 +Language=English +%1 +. +MessageId=12334 +Language=English +%1 +. +MessageId=12335 +Language=English +%1 +. +MessageId=12336 +Language=English +%1 +. +MessageId=12337 +Language=English +%1 +. +MessageId=12338 +Language=English +%1 +. +MessageId=12339 +Language=English +%1 +. +MessageId=12340 +Language=English +%1 +. +MessageId=12341 +Language=English +%1 +. +MessageId=12342 +Language=English +%1 +. +MessageId=12343 +Language=English +%1 +. +MessageId=12344 +Language=English +%1 +. +MessageId=12345 +Language=English +%1 +. +MessageId=12346 +Language=English +%1 +. +MessageId=12347 +Language=English +%1 +. +MessageId=12348 +Language=English +%1 +. +MessageId=12349 +Language=English +%1 +. +MessageId=12350 +Language=English +%1 +. +MessageId=12351 +Language=English +%1 +. +MessageId=12352 +Language=English +%1 +. +MessageId=12353 +Language=English +%1 +. +MessageId=12354 +Language=English +%1 +. +MessageId=12355 +Language=English +%1 +. +MessageId=12356 +Language=English +%1 +. +MessageId=12357 +Language=English +%1 +. +MessageId=12358 +Language=English +%1 +. +MessageId=12359 +Language=English +%1 +. +MessageId=12360 +Language=English +%1 +. +MessageId=12361 +Language=English +%1 +. +MessageId=12362 +Language=English +%1 +. +MessageId=12363 +Language=English +%1 +. +MessageId=12364 +Language=English +%1 +. +MessageId=12365 +Language=English +%1 +. +MessageId=12366 +Language=English +%1 +. +MessageId=12367 +Language=English +%1 +. +MessageId=12368 +Language=English +%1 +. +MessageId=12369 +Language=English +%1 +. +MessageId=12370 +Language=English +%1 +. +MessageId=12371 +Language=English +%1 +. +MessageId=12372 +Language=English +%1 +. +MessageId=12373 +Language=English +%1 +. +MessageId=12374 +Language=English +%1 +. +MessageId=12375 +Language=English +%1 +. +MessageId=12376 +Language=English +%1 +. +MessageId=12377 +Language=English +%1 +. +MessageId=12378 +Language=English +%1 +. +MessageId=12379 +Language=English +%1 +. +MessageId=12380 +Language=English +%1 +. +MessageId=12381 +Language=English +%1 +. +MessageId=12382 +Language=English +%1 +. +MessageId=12383 +Language=English +%1 +. +MessageId=12384 +Language=English +%1 +. +MessageId=12385 +Language=English +%1 +. +MessageId=12386 +Language=English +%1 +. +MessageId=12387 +Language=English +%1 +. +MessageId=12388 +Language=English +%1 +. +MessageId=12389 +Language=English +%1 +. +MessageId=12390 +Language=English +%1 +. +MessageId=12391 +Language=English +%1 +. +MessageId=12392 +Language=English +%1 +. +MessageId=12393 +Language=English +%1 +. +MessageId=12394 +Language=English +%1 +. +MessageId=12395 +Language=English +%1 +. +MessageId=12396 +Language=English +%1 +. +MessageId=12397 +Language=English +%1 +. +MessageId=12398 +Language=English +%1 +. +MessageId=12399 +Language=English +%1 +. +MessageId=12400 +Language=English +%1 +. +MessageId=12401 +Language=English +%1 +. +MessageId=12402 +Language=English +%1 +. +MessageId=12403 +Language=English +%1 +. +MessageId=12404 +Language=English +%1 +. +MessageId=12405 +Language=English +%1 +. +MessageId=12406 +Language=English +%1 +. +MessageId=12407 +Language=English +%1 +. +MessageId=12408 +Language=English +%1 +. +MessageId=12409 +Language=English +%1 +. +MessageId=12410 +Language=English +%1 +. +MessageId=12411 +Language=English +%1 +. +MessageId=12412 +Language=English +%1 +. +MessageId=12413 +Language=English +%1 +. +MessageId=12414 +Language=English +%1 +. +MessageId=12415 +Language=English +%1 +. +MessageId=12416 +Language=English +%1 +. +MessageId=12417 +Language=English +%1 +. +MessageId=12418 +Language=English +%1 +. +MessageId=12419 +Language=English +%1 +. +MessageId=12420 +Language=English +%1 +. +MessageId=12421 +Language=English +%1 +. +MessageId=12422 +Language=English +%1 +. +MessageId=12423 +Language=English +%1 +. +MessageId=12424 +Language=English +%1 +. +MessageId=12425 +Language=English +%1 +. +MessageId=12426 +Language=English +%1 +. +MessageId=12427 +Language=English +%1 +. +MessageId=12428 +Language=English +%1 +. +MessageId=12429 +Language=English +%1 +. +MessageId=12430 +Language=English +%1 +. +MessageId=12431 +Language=English +%1 +. +MessageId=12432 +Language=English +%1 +. +MessageId=12433 +Language=English +%1 +. +MessageId=12434 +Language=English +%1 +. +MessageId=12435 +Language=English +%1 +. +MessageId=12436 +Language=English +%1 +. +MessageId=12437 +Language=English +%1 +. +MessageId=12438 +Language=English +%1 +. +MessageId=12439 +Language=English +%1 +. +MessageId=12440 +Language=English +%1 +. +MessageId=12441 +Language=English +%1 +. +MessageId=12442 +Language=English +%1 +. +MessageId=12443 +Language=English +%1 +. +MessageId=12444 +Language=English +%1 +. +MessageId=12445 +Language=English +%1 +. +MessageId=12446 +Language=English +%1 +. +MessageId=12447 +Language=English +%1 +. +MessageId=12448 +Language=English +%1 +. +MessageId=12449 +Language=English +%1 +. +MessageId=12450 +Language=English +%1 +. +MessageId=12451 +Language=English +%1 +. +MessageId=12452 +Language=English +%1 +. +MessageId=12453 +Language=English +%1 +. +MessageId=12454 +Language=English +%1 +. +MessageId=12455 +Language=English +%1 +. +MessageId=12456 +Language=English +%1 +. +MessageId=12457 +Language=English +%1 +. +MessageId=12458 +Language=English +%1 +. +MessageId=12459 +Language=English +%1 +. +MessageId=12460 +Language=English +%1 +. +MessageId=12461 +Language=English +%1 +. +MessageId=12462 +Language=English +%1 +. +MessageId=12463 +Language=English +%1 +. +MessageId=12464 +Language=English +%1 +. +MessageId=12465 +Language=English +%1 +. +MessageId=12466 +Language=English +%1 +. +MessageId=12467 +Language=English +%1 +. +MessageId=12468 +Language=English +%1 +. +MessageId=12469 +Language=English +%1 +. +MessageId=12470 +Language=English +%1 +. +MessageId=12471 +Language=English +%1 +. +MessageId=12472 +Language=English +%1 +. +MessageId=12473 +Language=English +%1 +. +MessageId=12474 +Language=English +%1 +. +MessageId=12475 +Language=English +%1 +. +MessageId=12476 +Language=English +%1 +. +MessageId=12477 +Language=English +%1 +. +MessageId=12478 +Language=English +%1 +. +MessageId=12479 +Language=English +%1 +. +MessageId=12480 +Language=English +%1 +. +MessageId=12481 +Language=English +%1 +. +MessageId=12482 +Language=English +%1 +. +MessageId=12483 +Language=English +%1 +. +MessageId=12484 +Language=English +%1 +. +MessageId=12485 +Language=English +%1 +. +MessageId=12486 +Language=English +%1 +. +MessageId=12487 +Language=English +%1 +. +MessageId=12488 +Language=English +%1 +. +MessageId=12489 +Language=English +%1 +. +MessageId=12490 +Language=English +%1 +. +MessageId=12491 +Language=English +%1 +. +MessageId=12492 +Language=English +%1 +. +MessageId=12493 +Language=English +%1 +. +MessageId=12494 +Language=English +%1 +. +MessageId=12495 +Language=English +%1 +. +MessageId=12496 +Language=English +%1 +. +MessageId=12497 +Language=English +%1 +. +MessageId=12498 +Language=English +%1 +. +MessageId=12499 +Language=English +%1 +. +MessageId=12500 +Language=English +%1 +. +MessageId=12501 +Language=English +%1 +. +MessageId=12502 +Language=English +%1 +. +MessageId=12503 +Language=English +%1 +. +MessageId=12504 +Language=English +%1 +. +MessageId=12505 +Language=English +%1 +. +MessageId=12506 +Language=English +%1 +. +MessageId=12507 +Language=English +%1 +. +MessageId=12508 +Language=English +%1 +. +MessageId=12509 +Language=English +%1 +. +MessageId=12510 +Language=English +%1 +. +MessageId=12511 +Language=English +%1 +. +MessageId=12512 +Language=English +%1 +. +MessageId=12513 +Language=English +%1 +. +MessageId=12514 +Language=English +%1 +. +MessageId=12515 +Language=English +%1 +. +MessageId=12516 +Language=English +%1 +. +MessageId=12517 +Language=English +%1 +. +MessageId=12518 +Language=English +%1 +. +MessageId=12519 +Language=English +%1 +. +MessageId=12520 +Language=English +%1 +. +MessageId=12521 +Language=English +%1 +. +MessageId=12522 +Language=English +%1 +. +MessageId=12523 +Language=English +%1 +. +MessageId=12524 +Language=English +%1 +. +MessageId=12525 +Language=English +%1 +. +MessageId=12526 +Language=English +%1 +. +MessageId=12527 +Language=English +%1 +. +MessageId=12528 +Language=English +%1 +. +MessageId=12529 +Language=English +%1 +. +MessageId=12530 +Language=English +%1 +. +MessageId=12531 +Language=English +%1 +. +MessageId=12532 +Language=English +%1 +. +MessageId=12533 +Language=English +%1 +. +MessageId=12534 +Language=English +%1 +. +MessageId=12535 +Language=English +%1 +. +MessageId=12536 +Language=English +%1 +. +MessageId=12537 +Language=English +%1 +. +MessageId=12538 +Language=English +%1 +. +MessageId=12539 +Language=English +%1 +. +MessageId=12540 +Language=English +%1 +. +MessageId=12541 +Language=English +%1 +. +MessageId=12542 +Language=English +%1 +. +MessageId=12543 +Language=English +%1 +. +MessageId=12544 +Language=English +%1 +. +MessageId=12545 +Language=English +%1 +. +MessageId=12546 +Language=English +%1 +. +MessageId=12547 +Language=English +%1 +. +MessageId=12548 +Language=English +%1 +. +MessageId=12549 +Language=English +%1 +. +MessageId=12550 +Language=English +%1 +. +MessageId=12551 +Language=English +%1 +. +MessageId=12552 +Language=English +%1 +. +MessageId=12553 +Language=English +%1 +. +MessageId=12554 +Language=English +%1 +. +MessageId=12555 +Language=English +%1 +. +MessageId=12556 +Language=English +%1 +. +MessageId=12557 +Language=English +%1 +. +MessageId=12558 +Language=English +%1 +. +MessageId=12559 +Language=English +%1 +. +MessageId=12560 +Language=English +%1 +. +MessageId=12561 +Language=English +%1 +. +MessageId=12562 +Language=English +%1 +. +MessageId=12563 +Language=English +%1 +. +MessageId=12564 +Language=English +%1 +. +MessageId=12565 +Language=English +%1 +. +MessageId=12566 +Language=English +%1 +. +MessageId=12567 +Language=English +%1 +. +MessageId=12568 +Language=English +%1 +. +MessageId=12569 +Language=English +%1 +. +MessageId=12570 +Language=English +%1 +. +MessageId=12571 +Language=English +%1 +. +MessageId=12572 +Language=English +%1 +. +MessageId=12573 +Language=English +%1 +. +MessageId=12574 +Language=English +%1 +. +MessageId=12575 +Language=English +%1 +. +MessageId=12576 +Language=English +%1 +. +MessageId=12577 +Language=English +%1 +. +MessageId=12578 +Language=English +%1 +. +MessageId=12579 +Language=English +%1 +. +MessageId=12580 +Language=English +%1 +. +MessageId=12581 +Language=English +%1 +. +MessageId=12582 +Language=English +%1 +. +MessageId=12583 +Language=English +%1 +. +MessageId=12584 +Language=English +%1 +. +MessageId=12585 +Language=English +%1 +. +MessageId=12586 +Language=English +%1 +. +MessageId=12587 +Language=English +%1 +. +MessageId=12588 +Language=English +%1 +. +MessageId=12589 +Language=English +%1 +. +MessageId=12590 +Language=English +%1 +. +MessageId=12591 +Language=English +%1 +. +MessageId=12592 +Language=English +%1 +. +MessageId=12593 +Language=English +%1 +. +MessageId=12594 +Language=English +%1 +. +MessageId=12595 +Language=English +%1 +. +MessageId=12596 +Language=English +%1 +. +MessageId=12597 +Language=English +%1 +. +MessageId=12598 +Language=English +%1 +. +MessageId=12599 +Language=English +%1 +. +MessageId=12600 +Language=English +%1 +. +MessageId=12601 +Language=English +%1 +. +MessageId=12602 +Language=English +%1 +. +MessageId=12603 +Language=English +%1 +. +MessageId=12604 +Language=English +%1 +. +MessageId=12605 +Language=English +%1 +. +MessageId=12606 +Language=English +%1 +. +MessageId=12607 +Language=English +%1 +. +MessageId=12608 +Language=English +%1 +. +MessageId=12609 +Language=English +%1 +. +MessageId=12610 +Language=English +%1 +. +MessageId=12611 +Language=English +%1 +. +MessageId=12612 +Language=English +%1 +. +MessageId=12613 +Language=English +%1 +. +MessageId=12614 +Language=English +%1 +. +MessageId=12615 +Language=English +%1 +. +MessageId=12616 +Language=English +%1 +. +MessageId=12617 +Language=English +%1 +. +MessageId=12618 +Language=English +%1 +. +MessageId=12619 +Language=English +%1 +. +MessageId=12620 +Language=English +%1 +. +MessageId=12621 +Language=English +%1 +. +MessageId=12622 +Language=English +%1 +. +MessageId=12623 +Language=English +%1 +. +MessageId=12624 +Language=English +%1 +. +MessageId=12625 +Language=English +%1 +. +MessageId=12626 +Language=English +%1 +. +MessageId=12627 +Language=English +%1 +. +MessageId=12628 +Language=English +%1 +. +MessageId=12629 +Language=English +%1 +. +MessageId=12630 +Language=English +%1 +. +MessageId=12631 +Language=English +%1 +. +MessageId=12632 +Language=English +%1 +. +MessageId=12633 +Language=English +%1 +. +MessageId=12634 +Language=English +%1 +. +MessageId=12635 +Language=English +%1 +. +MessageId=12636 +Language=English +%1 +. +MessageId=12637 +Language=English +%1 +. +MessageId=12638 +Language=English +%1 +. +MessageId=12639 +Language=English +%1 +. +MessageId=12640 +Language=English +%1 +. +MessageId=12641 +Language=English +%1 +. +MessageId=12642 +Language=English +%1 +. +MessageId=12643 +Language=English +%1 +. +MessageId=12644 +Language=English +%1 +. +MessageId=12645 +Language=English +%1 +. +MessageId=12646 +Language=English +%1 +. +MessageId=12647 +Language=English +%1 +. +MessageId=12648 +Language=English +%1 +. +MessageId=12649 +Language=English +%1 +. +MessageId=12650 +Language=English +%1 +. +MessageId=12651 +Language=English +%1 +. +MessageId=12652 +Language=English +%1 +. +MessageId=12653 +Language=English +%1 +. +MessageId=12654 +Language=English +%1 +. +MessageId=12655 +Language=English +%1 +. +MessageId=12656 +Language=English +%1 +. +MessageId=12657 +Language=English +%1 +. +MessageId=12658 +Language=English +%1 +. +MessageId=12659 +Language=English +%1 +. +MessageId=12660 +Language=English +%1 +. +MessageId=12661 +Language=English +%1 +. +MessageId=12662 +Language=English +%1 +. +MessageId=12663 +Language=English +%1 +. +MessageId=12664 +Language=English +%1 +. +MessageId=12665 +Language=English +%1 +. +MessageId=12666 +Language=English +%1 +. +MessageId=12667 +Language=English +%1 +. +MessageId=12668 +Language=English +%1 +. +MessageId=12669 +Language=English +%1 +. +MessageId=12670 +Language=English +%1 +. +MessageId=12671 +Language=English +%1 +. +MessageId=12672 +Language=English +%1 +. +MessageId=12673 +Language=English +%1 +. +MessageId=12674 +Language=English +%1 +. +MessageId=12675 +Language=English +%1 +. +MessageId=12676 +Language=English +%1 +. +MessageId=12677 +Language=English +%1 +. +MessageId=12678 +Language=English +%1 +. +MessageId=12679 +Language=English +%1 +. +MessageId=12680 +Language=English +%1 +. +MessageId=12681 +Language=English +%1 +. +MessageId=12682 +Language=English +%1 +. +MessageId=12683 +Language=English +%1 +. +MessageId=12684 +Language=English +%1 +. +MessageId=12685 +Language=English +%1 +. +MessageId=12686 +Language=English +%1 +. +MessageId=12687 +Language=English +%1 +. +MessageId=12688 +Language=English +%1 +. +MessageId=12689 +Language=English +%1 +. +MessageId=12690 +Language=English +%1 +. +MessageId=12691 +Language=English +%1 +. +MessageId=12692 +Language=English +%1 +. +MessageId=12693 +Language=English +%1 +. +MessageId=12694 +Language=English +%1 +. +MessageId=12695 +Language=English +%1 +. +MessageId=12696 +Language=English +%1 +. +MessageId=12697 +Language=English +%1 +. +MessageId=12698 +Language=English +%1 +. +MessageId=12699 +Language=English +%1 +. +MessageId=12700 +Language=English +%1 +. +MessageId=12701 +Language=English +%1 +. +MessageId=12702 +Language=English +%1 +. +MessageId=12703 +Language=English +%1 +. +MessageId=12704 +Language=English +%1 +. +MessageId=12705 +Language=English +%1 +. +MessageId=12706 +Language=English +%1 +. +MessageId=12707 +Language=English +%1 +. +MessageId=12708 +Language=English +%1 +. +MessageId=12709 +Language=English +%1 +. +MessageId=12710 +Language=English +%1 +. +MessageId=12711 +Language=English +%1 +. +MessageId=12712 +Language=English +%1 +. +MessageId=12713 +Language=English +%1 +. +MessageId=12714 +Language=English +%1 +. +MessageId=12715 +Language=English +%1 +. +MessageId=12716 +Language=English +%1 +. +MessageId=12717 +Language=English +%1 +. +MessageId=12718 +Language=English +%1 +. +MessageId=12719 +Language=English +%1 +. +MessageId=12720 +Language=English +%1 +. +MessageId=12721 +Language=English +%1 +. +MessageId=12722 +Language=English +%1 +. +MessageId=12723 +Language=English +%1 +. +MessageId=12724 +Language=English +%1 +. +MessageId=12725 +Language=English +%1 +. +MessageId=12726 +Language=English +%1 +. +MessageId=12727 +Language=English +%1 +. +MessageId=12728 +Language=English +%1 +. +MessageId=12729 +Language=English +%1 +. +MessageId=12730 +Language=English +%1 +. +MessageId=12731 +Language=English +%1 +. +MessageId=12732 +Language=English +%1 +. +MessageId=12733 +Language=English +%1 +. +MessageId=12734 +Language=English +%1 +. +MessageId=12735 +Language=English +%1 +. +MessageId=12736 +Language=English +%1 +. +MessageId=12737 +Language=English +%1 +. +MessageId=12738 +Language=English +%1 +. +MessageId=12739 +Language=English +%1 +. +MessageId=12740 +Language=English +%1 +. +MessageId=12741 +Language=English +%1 +. +MessageId=12742 +Language=English +%1 +. +MessageId=12743 +Language=English +%1 +. +MessageId=12744 +Language=English +%1 +. +MessageId=12745 +Language=English +%1 +. +MessageId=12746 +Language=English +%1 +. +MessageId=12747 +Language=English +%1 +. +MessageId=12748 +Language=English +%1 +. +MessageId=12749 +Language=English +%1 +. +MessageId=12750 +Language=English +%1 +. +MessageId=12751 +Language=English +%1 +. +MessageId=12752 +Language=English +%1 +. +MessageId=12753 +Language=English +%1 +. +MessageId=12754 +Language=English +%1 +. +MessageId=12755 +Language=English +%1 +. +MessageId=12756 +Language=English +%1 +. +MessageId=12757 +Language=English +%1 +. +MessageId=12758 +Language=English +%1 +. +MessageId=12759 +Language=English +%1 +. +MessageId=12760 +Language=English +%1 +. +MessageId=12761 +Language=English +%1 +. +MessageId=12762 +Language=English +%1 +. +MessageId=12763 +Language=English +%1 +. +MessageId=12764 +Language=English +%1 +. +MessageId=12765 +Language=English +%1 +. +MessageId=12766 +Language=English +%1 +. +MessageId=12767 +Language=English +%1 +. +MessageId=12768 +Language=English +%1 +. +MessageId=12769 +Language=English +%1 +. +MessageId=12770 +Language=English +%1 +. +MessageId=12771 +Language=English +%1 +. +MessageId=12772 +Language=English +%1 +. +MessageId=12773 +Language=English +%1 +. +MessageId=12774 +Language=English +%1 +. +MessageId=12775 +Language=English +%1 +. +MessageId=12776 +Language=English +%1 +. +MessageId=12777 +Language=English +%1 +. +MessageId=12778 +Language=English +%1 +. +MessageId=12779 +Language=English +%1 +. +MessageId=12780 +Language=English +%1 +. +MessageId=12781 +Language=English +%1 +. +MessageId=12782 +Language=English +%1 +. +MessageId=12783 +Language=English +%1 +. +MessageId=12784 +Language=English +%1 +. +MessageId=12785 +Language=English +%1 +. +MessageId=12786 +Language=English +%1 +. +MessageId=12787 +Language=English +%1 +. +MessageId=12788 +Language=English +%1 +. +MessageId=12789 +Language=English +%1 +. +MessageId=12790 +Language=English +%1 +. +MessageId=12791 +Language=English +%1 +. +MessageId=12792 +Language=English +%1 +. +MessageId=12793 +Language=English +%1 +. +MessageId=12794 +Language=English +%1 +. +MessageId=12795 +Language=English +%1 +. +MessageId=12796 +Language=English +%1 +. +MessageId=12797 +Language=English +%1 +. +MessageId=12798 +Language=English +%1 +. +MessageId=12799 +Language=English +%1 +. +MessageId=12800 +Language=English +%1 +. +MessageId=12801 +Language=English +%1 +. +MessageId=12802 +Language=English +%1 +. +MessageId=12803 +Language=English +%1 +. +MessageId=12804 +Language=English +%1 +. +MessageId=12805 +Language=English +%1 +. +MessageId=12806 +Language=English +%1 +. +MessageId=12807 +Language=English +%1 +. +MessageId=12808 +Language=English +%1 +. +MessageId=12809 +Language=English +%1 +. +MessageId=12810 +Language=English +%1 +. +MessageId=12811 +Language=English +%1 +. +MessageId=12812 +Language=English +%1 +. +MessageId=12813 +Language=English +%1 +. +MessageId=12814 +Language=English +%1 +. +MessageId=12815 +Language=English +%1 +. +MessageId=12816 +Language=English +%1 +. +MessageId=12817 +Language=English +%1 +. +MessageId=12818 +Language=English +%1 +. +MessageId=12819 +Language=English +%1 +. +MessageId=12820 +Language=English +%1 +. +MessageId=12821 +Language=English +%1 +. +MessageId=12822 +Language=English +%1 +. +MessageId=12823 +Language=English +%1 +. +MessageId=12824 +Language=English +%1 +. +MessageId=12825 +Language=English +%1 +. +MessageId=12826 +Language=English +%1 +. +MessageId=12827 +Language=English +%1 +. +MessageId=12828 +Language=English +%1 +. +MessageId=12829 +Language=English +%1 +. +MessageId=12830 +Language=English +%1 +. +MessageId=12831 +Language=English +%1 +. +MessageId=12832 +Language=English +%1 +. +MessageId=12833 +Language=English +%1 +. +MessageId=12834 +Language=English +%1 +. +MessageId=12835 +Language=English +%1 +. +MessageId=12836 +Language=English +%1 +. +MessageId=12837 +Language=English +%1 +. +MessageId=12838 +Language=English +%1 +. +MessageId=12839 +Language=English +%1 +. +MessageId=12840 +Language=English +%1 +. +MessageId=12841 +Language=English +%1 +. +MessageId=12842 +Language=English +%1 +. +MessageId=12843 +Language=English +%1 +. +MessageId=12844 +Language=English +%1 +. +MessageId=12845 +Language=English +%1 +. +MessageId=12846 +Language=English +%1 +. +MessageId=12847 +Language=English +%1 +. +MessageId=12848 +Language=English +%1 +. +MessageId=12849 +Language=English +%1 +. +MessageId=12850 +Language=English +%1 +. +MessageId=12851 +Language=English +%1 +. +MessageId=12852 +Language=English +%1 +. +MessageId=12853 +Language=English +%1 +. +MessageId=12854 +Language=English +%1 +. +MessageId=12855 +Language=English +%1 +. +MessageId=12856 +Language=English +%1 +. +MessageId=12857 +Language=English +%1 +. +MessageId=12858 +Language=English +%1 +. +MessageId=12859 +Language=English +%1 +. +MessageId=12860 +Language=English +%1 +. +MessageId=12861 +Language=English +%1 +. +MessageId=12862 +Language=English +%1 +. +MessageId=12863 +Language=English +%1 +. +MessageId=12864 +Language=English +%1 +. +MessageId=12865 +Language=English +%1 +. +MessageId=12866 +Language=English +%1 +. +MessageId=12867 +Language=English +%1 +. +MessageId=12868 +Language=English +%1 +. +MessageId=12869 +Language=English +%1 +. +MessageId=12870 +Language=English +%1 +. +MessageId=12871 +Language=English +%1 +. +MessageId=12872 +Language=English +%1 +. +MessageId=12873 +Language=English +%1 +. +MessageId=12874 +Language=English +%1 +. +MessageId=12875 +Language=English +%1 +. +MessageId=12876 +Language=English +%1 +. +MessageId=12877 +Language=English +%1 +. +MessageId=12878 +Language=English +%1 +. +MessageId=12879 +Language=English +%1 +. +MessageId=12880 +Language=English +%1 +. +MessageId=12881 +Language=English +%1 +. +MessageId=12882 +Language=English +%1 +. +MessageId=12883 +Language=English +%1 +. +MessageId=12884 +Language=English +%1 +. +MessageId=12885 +Language=English +%1 +. +MessageId=12886 +Language=English +%1 +. +MessageId=12887 +Language=English +%1 +. +MessageId=12888 +Language=English +%1 +. +MessageId=12889 +Language=English +%1 +. +MessageId=12890 +Language=English +%1 +. +MessageId=12891 +Language=English +%1 +. +MessageId=12892 +Language=English +%1 +. +MessageId=12893 +Language=English +%1 +. +MessageId=12894 +Language=English +%1 +. +MessageId=12895 +Language=English +%1 +. +MessageId=12896 +Language=English +%1 +. +MessageId=12897 +Language=English +%1 +. +MessageId=12898 +Language=English +%1 +. +MessageId=12899 +Language=English +%1 +. +MessageId=12900 +Language=English +%1 +. +MessageId=12901 +Language=English +%1 +. +MessageId=12902 +Language=English +%1 +. +MessageId=12903 +Language=English +%1 +. +MessageId=12904 +Language=English +%1 +. +MessageId=12905 +Language=English +%1 +. +MessageId=12906 +Language=English +%1 +. +MessageId=12907 +Language=English +%1 +. +MessageId=12908 +Language=English +%1 +. +MessageId=12909 +Language=English +%1 +. +MessageId=12910 +Language=English +%1 +. +MessageId=12911 +Language=English +%1 +. +MessageId=12912 +Language=English +%1 +. +MessageId=12913 +Language=English +%1 +. +MessageId=12914 +Language=English +%1 +. +MessageId=12915 +Language=English +%1 +. +MessageId=12916 +Language=English +%1 +. +MessageId=12917 +Language=English +%1 +. +MessageId=12918 +Language=English +%1 +. +MessageId=12919 +Language=English +%1 +. +MessageId=12920 +Language=English +%1 +. +MessageId=12921 +Language=English +%1 +. +MessageId=12922 +Language=English +%1 +. +MessageId=12923 +Language=English +%1 +. +MessageId=12924 +Language=English +%1 +. +MessageId=12925 +Language=English +%1 +. +MessageId=12926 +Language=English +%1 +. +MessageId=12927 +Language=English +%1 +. +MessageId=12928 +Language=English +%1 +. +MessageId=12929 +Language=English +%1 +. +MessageId=12930 +Language=English +%1 +. +MessageId=12931 +Language=English +%1 +. +MessageId=12932 +Language=English +%1 +. +MessageId=12933 +Language=English +%1 +. +MessageId=12934 +Language=English +%1 +. +MessageId=12935 +Language=English +%1 +. +MessageId=12936 +Language=English +%1 +. +MessageId=12937 +Language=English +%1 +. +MessageId=12938 +Language=English +%1 +. +MessageId=12939 +Language=English +%1 +. +MessageId=12940 +Language=English +%1 +. +MessageId=12941 +Language=English +%1 +. +MessageId=12942 +Language=English +%1 +. +MessageId=12943 +Language=English +%1 +. +MessageId=12944 +Language=English +%1 +. +MessageId=12945 +Language=English +%1 +. +MessageId=12946 +Language=English +%1 +. +MessageId=12947 +Language=English +%1 +. +MessageId=12948 +Language=English +%1 +. +MessageId=12949 +Language=English +%1 +. +MessageId=12950 +Language=English +%1 +. +MessageId=12951 +Language=English +%1 +. +MessageId=12952 +Language=English +%1 +. +MessageId=12953 +Language=English +%1 +. +MessageId=12954 +Language=English +%1 +. +MessageId=12955 +Language=English +%1 +. +MessageId=12956 +Language=English +%1 +. +MessageId=12957 +Language=English +%1 +. +MessageId=12958 +Language=English +%1 +. +MessageId=12959 +Language=English +%1 +. +MessageId=12960 +Language=English +%1 +. +MessageId=12961 +Language=English +%1 +. +MessageId=12962 +Language=English +%1 +. +MessageId=12963 +Language=English +%1 +. +MessageId=12964 +Language=English +%1 +. +MessageId=12965 +Language=English +%1 +. +MessageId=12966 +Language=English +%1 +. +MessageId=12967 +Language=English +%1 +. +MessageId=12968 +Language=English +%1 +. +MessageId=12969 +Language=English +%1 +. +MessageId=12970 +Language=English +%1 +. +MessageId=12971 +Language=English +%1 +. +MessageId=12972 +Language=English +%1 +. +MessageId=12973 +Language=English +%1 +. +MessageId=12974 +Language=English +%1 +. +MessageId=12975 +Language=English +%1 +. +MessageId=12976 +Language=English +%1 +. +MessageId=12977 +Language=English +%1 +. +MessageId=12978 +Language=English +%1 +. +MessageId=12979 +Language=English +%1 +. +MessageId=12980 +Language=English +%1 +. +MessageId=12981 +Language=English +%1 +. +MessageId=12982 +Language=English +%1 +. +MessageId=12983 +Language=English +%1 +. +MessageId=12984 +Language=English +%1 +. +MessageId=12985 +Language=English +%1 +. +MessageId=12986 +Language=English +%1 +. +MessageId=12987 +Language=English +%1 +. +MessageId=12988 +Language=English +%1 +. +MessageId=12989 +Language=English +%1 +. +MessageId=12990 +Language=English +%1 +. +MessageId=12991 +Language=English +%1 +. +MessageId=12992 +Language=English +%1 +. +MessageId=12993 +Language=English +%1 +. +MessageId=12994 +Language=English +%1 +. +MessageId=12995 +Language=English +%1 +. +MessageId=12996 +Language=English +%1 +. +MessageId=12997 +Language=English +%1 +. +MessageId=12998 +Language=English +%1 +. +MessageId=12999 +Language=English +%1 +. +MessageId=13000 +Language=English +%1 +. +MessageId=13001 +Language=English +%1 +. +MessageId=13002 +Language=English +%1 +. +MessageId=13003 +Language=English +%1 +. +MessageId=13004 +Language=English +%1 +. +MessageId=13005 +Language=English +%1 +. +MessageId=13006 +Language=English +%1 +. +MessageId=13007 +Language=English +%1 +. +MessageId=13008 +Language=English +%1 +. +MessageId=13009 +Language=English +%1 +. +MessageId=13010 +Language=English +%1 +. +MessageId=13011 +Language=English +%1 +. +MessageId=13012 +Language=English +%1 +. +MessageId=13013 +Language=English +%1 +. +MessageId=13014 +Language=English +%1 +. +MessageId=13015 +Language=English +%1 +. +MessageId=13016 +Language=English +%1 +. +MessageId=13017 +Language=English +%1 +. +MessageId=13018 +Language=English +%1 +. +MessageId=13019 +Language=English +%1 +. +MessageId=13020 +Language=English +%1 +. +MessageId=13021 +Language=English +%1 +. +MessageId=13022 +Language=English +%1 +. +MessageId=13023 +Language=English +%1 +. +MessageId=13024 +Language=English +%1 +. +MessageId=13025 +Language=English +%1 +. +MessageId=13026 +Language=English +%1 +. +MessageId=13027 +Language=English +%1 +. +MessageId=13028 +Language=English +%1 +. +MessageId=13029 +Language=English +%1 +. +MessageId=13030 +Language=English +%1 +. +MessageId=13031 +Language=English +%1 +. +MessageId=13032 +Language=English +%1 +. +MessageId=13033 +Language=English +%1 +. +MessageId=13034 +Language=English +%1 +. +MessageId=13035 +Language=English +%1 +. +MessageId=13036 +Language=English +%1 +. +MessageId=13037 +Language=English +%1 +. +MessageId=13038 +Language=English +%1 +. +MessageId=13039 +Language=English +%1 +. +MessageId=13040 +Language=English +%1 +. +MessageId=13041 +Language=English +%1 +. +MessageId=13042 +Language=English +%1 +. +MessageId=13043 +Language=English +%1 +. +MessageId=13044 +Language=English +%1 +. +MessageId=13045 +Language=English +%1 +. +MessageId=13046 +Language=English +%1 +. +MessageId=13047 +Language=English +%1 +. +MessageId=13048 +Language=English +%1 +. +MessageId=13049 +Language=English +%1 +. +MessageId=13050 +Language=English +%1 +. +MessageId=13051 +Language=English +%1 +. +MessageId=13052 +Language=English +%1 +. +MessageId=13053 +Language=English +%1 +. +MessageId=13054 +Language=English +%1 +. +MessageId=13055 +Language=English +%1 +. +MessageId=13056 +Language=English +%1 +. +MessageId=13057 +Language=English +%1 +. +MessageId=13058 +Language=English +%1 +. +MessageId=13059 +Language=English +%1 +. +MessageId=13060 +Language=English +%1 +. +MessageId=13061 +Language=English +%1 +. +MessageId=13062 +Language=English +%1 +. +MessageId=13063 +Language=English +%1 +. +MessageId=13064 +Language=English +%1 +. +MessageId=13065 +Language=English +%1 +. +MessageId=13066 +Language=English +%1 +. +MessageId=13067 +Language=English +%1 +. +MessageId=13068 +Language=English +%1 +. +MessageId=13069 +Language=English +%1 +. +MessageId=13070 +Language=English +%1 +. +MessageId=13071 +Language=English +%1 +. +MessageId=13072 +Language=English +%1 +. +MessageId=13073 +Language=English +%1 +. +MessageId=13074 +Language=English +%1 +. +MessageId=13075 +Language=English +%1 +. +MessageId=13076 +Language=English +%1 +. +MessageId=13077 +Language=English +%1 +. +MessageId=13078 +Language=English +%1 +. +MessageId=13079 +Language=English +%1 +. +MessageId=13080 +Language=English +%1 +. +MessageId=13081 +Language=English +%1 +. +MessageId=13082 +Language=English +%1 +. +MessageId=13083 +Language=English +%1 +. +MessageId=13084 +Language=English +%1 +. +MessageId=13085 +Language=English +%1 +. +MessageId=13086 +Language=English +%1 +. +MessageId=13087 +Language=English +%1 +. +MessageId=13088 +Language=English +%1 +. +MessageId=13089 +Language=English +%1 +. +MessageId=13090 +Language=English +%1 +. +MessageId=13091 +Language=English +%1 +. +MessageId=13092 +Language=English +%1 +. +MessageId=13093 +Language=English +%1 +. +MessageId=13094 +Language=English +%1 +. +MessageId=13095 +Language=English +%1 +. +MessageId=13096 +Language=English +%1 +. +MessageId=13097 +Language=English +%1 +. +MessageId=13098 +Language=English +%1 +. +MessageId=13099 +Language=English +%1 +. +MessageId=13100 +Language=English +%1 +. +MessageId=13101 +Language=English +%1 +. +MessageId=13102 +Language=English +%1 +. +MessageId=13103 +Language=English +%1 +. +MessageId=13104 +Language=English +%1 +. +MessageId=13105 +Language=English +%1 +. +MessageId=13106 +Language=English +%1 +. +MessageId=13107 +Language=English +%1 +. +MessageId=13108 +Language=English +%1 +. +MessageId=13109 +Language=English +%1 +. +MessageId=13110 +Language=English +%1 +. +MessageId=13111 +Language=English +%1 +. +MessageId=13112 +Language=English +%1 +. +MessageId=13113 +Language=English +%1 +. +MessageId=13114 +Language=English +%1 +. +MessageId=13115 +Language=English +%1 +. +MessageId=13116 +Language=English +%1 +. +MessageId=13117 +Language=English +%1 +. +MessageId=13118 +Language=English +%1 +. +MessageId=13119 +Language=English +%1 +. +MessageId=13120 +Language=English +%1 +. +MessageId=13121 +Language=English +%1 +. +MessageId=13122 +Language=English +%1 +. +MessageId=13123 +Language=English +%1 +. +MessageId=13124 +Language=English +%1 +. +MessageId=13125 +Language=English +%1 +. +MessageId=13126 +Language=English +%1 +. +MessageId=13127 +Language=English +%1 +. +MessageId=13128 +Language=English +%1 +. +MessageId=13129 +Language=English +%1 +. +MessageId=13130 +Language=English +%1 +. +MessageId=13131 +Language=English +%1 +. +MessageId=13132 +Language=English +%1 +. +MessageId=13133 +Language=English +%1 +. +MessageId=13134 +Language=English +%1 +. +MessageId=13135 +Language=English +%1 +. +MessageId=13136 +Language=English +%1 +. +MessageId=13137 +Language=English +%1 +. +MessageId=13138 +Language=English +%1 +. +MessageId=13139 +Language=English +%1 +. +MessageId=13140 +Language=English +%1 +. +MessageId=13141 +Language=English +%1 +. +MessageId=13142 +Language=English +%1 +. +MessageId=13143 +Language=English +%1 +. +MessageId=13144 +Language=English +%1 +. +MessageId=13145 +Language=English +%1 +. +MessageId=13146 +Language=English +%1 +. +MessageId=13147 +Language=English +%1 +. +MessageId=13148 +Language=English +%1 +. +MessageId=13149 +Language=English +%1 +. +MessageId=13150 +Language=English +%1 +. +MessageId=13151 +Language=English +%1 +. +MessageId=13152 +Language=English +%1 +. +MessageId=13153 +Language=English +%1 +. +MessageId=13154 +Language=English +%1 +. +MessageId=13155 +Language=English +%1 +. +MessageId=13156 +Language=English +%1 +. +MessageId=13157 +Language=English +%1 +. +MessageId=13158 +Language=English +%1 +. +MessageId=13159 +Language=English +%1 +. +MessageId=13160 +Language=English +%1 +. +MessageId=13161 +Language=English +%1 +. +MessageId=13162 +Language=English +%1 +. +MessageId=13163 +Language=English +%1 +. +MessageId=13164 +Language=English +%1 +. +MessageId=13165 +Language=English +%1 +. +MessageId=13166 +Language=English +%1 +. +MessageId=13167 +Language=English +%1 +. +MessageId=13168 +Language=English +%1 +. +MessageId=13169 +Language=English +%1 +. +MessageId=13170 +Language=English +%1 +. +MessageId=13171 +Language=English +%1 +. +MessageId=13172 +Language=English +%1 +. +MessageId=13173 +Language=English +%1 +. +MessageId=13174 +Language=English +%1 +. +MessageId=13175 +Language=English +%1 +. +MessageId=13176 +Language=English +%1 +. +MessageId=13177 +Language=English +%1 +. +MessageId=13178 +Language=English +%1 +. +MessageId=13179 +Language=English +%1 +. +MessageId=13180 +Language=English +%1 +. +MessageId=13181 +Language=English +%1 +. +MessageId=13182 +Language=English +%1 +. +MessageId=13183 +Language=English +%1 +. +MessageId=13184 +Language=English +%1 +. +MessageId=13185 +Language=English +%1 +. +MessageId=13186 +Language=English +%1 +. +MessageId=13187 +Language=English +%1 +. +MessageId=13188 +Language=English +%1 +. +MessageId=13189 +Language=English +%1 +. +MessageId=13190 +Language=English +%1 +. +MessageId=13191 +Language=English +%1 +. +MessageId=13192 +Language=English +%1 +. +MessageId=13193 +Language=English +%1 +. +MessageId=13194 +Language=English +%1 +. +MessageId=13195 +Language=English +%1 +. +MessageId=13196 +Language=English +%1 +. +MessageId=13197 +Language=English +%1 +. +MessageId=13198 +Language=English +%1 +. +MessageId=13199 +Language=English +%1 +. +MessageId=13200 +Language=English +%1 +. +MessageId=13201 +Language=English +%1 +. +MessageId=13202 +Language=English +%1 +. +MessageId=13203 +Language=English +%1 +. +MessageId=13204 +Language=English +%1 +. +MessageId=13205 +Language=English +%1 +. +MessageId=13206 +Language=English +%1 +. +MessageId=13207 +Language=English +%1 +. +MessageId=13208 +Language=English +%1 +. +MessageId=13209 +Language=English +%1 +. +MessageId=13210 +Language=English +%1 +. +MessageId=13211 +Language=English +%1 +. +MessageId=13212 +Language=English +%1 +. +MessageId=13213 +Language=English +%1 +. +MessageId=13214 +Language=English +%1 +. +MessageId=13215 +Language=English +%1 +. +MessageId=13216 +Language=English +%1 +. +MessageId=13217 +Language=English +%1 +. +MessageId=13218 +Language=English +%1 +. +MessageId=13219 +Language=English +%1 +. +MessageId=13220 +Language=English +%1 +. +MessageId=13221 +Language=English +%1 +. +MessageId=13222 +Language=English +%1 +. +MessageId=13223 +Language=English +%1 +. +MessageId=13224 +Language=English +%1 +. +MessageId=13225 +Language=English +%1 +. +MessageId=13226 +Language=English +%1 +. +MessageId=13227 +Language=English +%1 +. +MessageId=13228 +Language=English +%1 +. +MessageId=13229 +Language=English +%1 +. +MessageId=13230 +Language=English +%1 +. +MessageId=13231 +Language=English +%1 +. +MessageId=13232 +Language=English +%1 +. +MessageId=13233 +Language=English +%1 +. +MessageId=13234 +Language=English +%1 +. +MessageId=13235 +Language=English +%1 +. +MessageId=13236 +Language=English +%1 +. +MessageId=13237 +Language=English +%1 +. +MessageId=13238 +Language=English +%1 +. +MessageId=13239 +Language=English +%1 +. +MessageId=13240 +Language=English +%1 +. +MessageId=13241 +Language=English +%1 +. +MessageId=13242 +Language=English +%1 +. +MessageId=13243 +Language=English +%1 +. +MessageId=13244 +Language=English +%1 +. +MessageId=13245 +Language=English +%1 +. +MessageId=13246 +Language=English +%1 +. +MessageId=13247 +Language=English +%1 +. +MessageId=13248 +Language=English +%1 +. +MessageId=13249 +Language=English +%1 +. +MessageId=13250 +Language=English +%1 +. +MessageId=13251 +Language=English +%1 +. +MessageId=13252 +Language=English +%1 +. +MessageId=13253 +Language=English +%1 +. +MessageId=13254 +Language=English +%1 +. +MessageId=13255 +Language=English +%1 +. +MessageId=13256 +Language=English +%1 +. +MessageId=13257 +Language=English +%1 +. +MessageId=13258 +Language=English +%1 +. +MessageId=13259 +Language=English +%1 +. +MessageId=13260 +Language=English +%1 +. +MessageId=13261 +Language=English +%1 +. +MessageId=13262 +Language=English +%1 +. +MessageId=13263 +Language=English +%1 +. +MessageId=13264 +Language=English +%1 +. +MessageId=13265 +Language=English +%1 +. +MessageId=13266 +Language=English +%1 +. +MessageId=13267 +Language=English +%1 +. +MessageId=13268 +Language=English +%1 +. +MessageId=13269 +Language=English +%1 +. +MessageId=13270 +Language=English +%1 +. +MessageId=13271 +Language=English +%1 +. +MessageId=13272 +Language=English +%1 +. +MessageId=13273 +Language=English +%1 +. +MessageId=13274 +Language=English +%1 +. +MessageId=13275 +Language=English +%1 +. +MessageId=13276 +Language=English +%1 +. +MessageId=13277 +Language=English +%1 +. +MessageId=13278 +Language=English +%1 +. +MessageId=13279 +Language=English +%1 +. +MessageId=13280 +Language=English +%1 +. +MessageId=13281 +Language=English +%1 +. +MessageId=13282 +Language=English +%1 +. +MessageId=13283 +Language=English +%1 +. +MessageId=13284 +Language=English +%1 +. +MessageId=13285 +Language=English +%1 +. +MessageId=13286 +Language=English +%1 +. +MessageId=13287 +Language=English +%1 +. +MessageId=13288 +Language=English +%1 +. +MessageId=13289 +Language=English +%1 +. +MessageId=13290 +Language=English +%1 +. +MessageId=13291 +Language=English +%1 +. +MessageId=13292 +Language=English +%1 +. +MessageId=13293 +Language=English +%1 +. +MessageId=13294 +Language=English +%1 +. +MessageId=13295 +Language=English +%1 +. +MessageId=13296 +Language=English +%1 +. +MessageId=13297 +Language=English +%1 +. +MessageId=13298 +Language=English +%1 +. +MessageId=13299 +Language=English +%1 +. +MessageId=13300 +Language=English +%1 +. +MessageId=13301 +Language=English +%1 +. +MessageId=13302 +Language=English +%1 +. +MessageId=13303 +Language=English +%1 +. +MessageId=13304 +Language=English +%1 +. +MessageId=13305 +Language=English +%1 +. +MessageId=13306 +Language=English +%1 +. +MessageId=13307 +Language=English +%1 +. +MessageId=13308 +Language=English +%1 +. +MessageId=13309 +Language=English +%1 +. +MessageId=13310 +Language=English +%1 +. +MessageId=13311 +Language=English +%1 +. +MessageId=13312 +Language=English +%1 +. +MessageId=13313 +Language=English +%1 +. +MessageId=13314 +Language=English +%1 +. +MessageId=13315 +Language=English +%1 +. +MessageId=13316 +Language=English +%1 +. +MessageId=13317 +Language=English +%1 +. +MessageId=13318 +Language=English +%1 +. +MessageId=13319 +Language=English +%1 +. +MessageId=13320 +Language=English +%1 +. +MessageId=13321 +Language=English +%1 +. +MessageId=13322 +Language=English +%1 +. +MessageId=13323 +Language=English +%1 +. +MessageId=13324 +Language=English +%1 +. +MessageId=13325 +Language=English +%1 +. +MessageId=13326 +Language=English +%1 +. +MessageId=13327 +Language=English +%1 +. +MessageId=13328 +Language=English +%1 +. +MessageId=13329 +Language=English +%1 +. +MessageId=13330 +Language=English +%1 +. +MessageId=13331 +Language=English +%1 +. +MessageId=13332 +Language=English +%1 +. +MessageId=13333 +Language=English +%1 +. +MessageId=13334 +Language=English +%1 +. +MessageId=13335 +Language=English +%1 +. +MessageId=13336 +Language=English +%1 +. +MessageId=13337 +Language=English +%1 +. +MessageId=13338 +Language=English +%1 +. +MessageId=13339 +Language=English +%1 +. +MessageId=13340 +Language=English +%1 +. +MessageId=13341 +Language=English +%1 +. +MessageId=13342 +Language=English +%1 +. +MessageId=13343 +Language=English +%1 +. +MessageId=13344 +Language=English +%1 +. +MessageId=13345 +Language=English +%1 +. +MessageId=13346 +Language=English +%1 +. +MessageId=13347 +Language=English +%1 +. +MessageId=13348 +Language=English +%1 +. +MessageId=13349 +Language=English +%1 +. +MessageId=13350 +Language=English +%1 +. +MessageId=13351 +Language=English +%1 +. +MessageId=13352 +Language=English +%1 +. +MessageId=13353 +Language=English +%1 +. +MessageId=13354 +Language=English +%1 +. +MessageId=13355 +Language=English +%1 +. +MessageId=13356 +Language=English +%1 +. +MessageId=13357 +Language=English +%1 +. +MessageId=13358 +Language=English +%1 +. +MessageId=13359 +Language=English +%1 +. +MessageId=13360 +Language=English +%1 +. +MessageId=13361 +Language=English +%1 +. +MessageId=13362 +Language=English +%1 +. +MessageId=13363 +Language=English +%1 +. +MessageId=13364 +Language=English +%1 +. +MessageId=13365 +Language=English +%1 +. +MessageId=13366 +Language=English +%1 +. +MessageId=13367 +Language=English +%1 +. +MessageId=13368 +Language=English +%1 +. +MessageId=13369 +Language=English +%1 +. +MessageId=13370 +Language=English +%1 +. +MessageId=13371 +Language=English +%1 +. +MessageId=13372 +Language=English +%1 +. +MessageId=13373 +Language=English +%1 +. +MessageId=13374 +Language=English +%1 +. +MessageId=13375 +Language=English +%1 +. +MessageId=13376 +Language=English +%1 +. +MessageId=13377 +Language=English +%1 +. +MessageId=13378 +Language=English +%1 +. +MessageId=13379 +Language=English +%1 +. +MessageId=13380 +Language=English +%1 +. +MessageId=13381 +Language=English +%1 +. +MessageId=13382 +Language=English +%1 +. +MessageId=13383 +Language=English +%1 +. +MessageId=13384 +Language=English +%1 +. +MessageId=13385 +Language=English +%1 +. +MessageId=13386 +Language=English +%1 +. +MessageId=13387 +Language=English +%1 +. +MessageId=13388 +Language=English +%1 +. +MessageId=13389 +Language=English +%1 +. +MessageId=13390 +Language=English +%1 +. +MessageId=13391 +Language=English +%1 +. +MessageId=13392 +Language=English +%1 +. +MessageId=13393 +Language=English +%1 +. +MessageId=13394 +Language=English +%1 +. +MessageId=13395 +Language=English +%1 +. +MessageId=13396 +Language=English +%1 +. +MessageId=13397 +Language=English +%1 +. +MessageId=13398 +Language=English +%1 +. +MessageId=13399 +Language=English +%1 +. +MessageId=13400 +Language=English +%1 +. +MessageId=13401 +Language=English +%1 +. +MessageId=13402 +Language=English +%1 +. +MessageId=13403 +Language=English +%1 +. +MessageId=13404 +Language=English +%1 +. +MessageId=13405 +Language=English +%1 +. +MessageId=13406 +Language=English +%1 +. +MessageId=13407 +Language=English +%1 +. +MessageId=13408 +Language=English +%1 +. +MessageId=13409 +Language=English +%1 +. +MessageId=13410 +Language=English +%1 +. +MessageId=13411 +Language=English +%1 +. +MessageId=13412 +Language=English +%1 +. +MessageId=13413 +Language=English +%1 +. +MessageId=13414 +Language=English +%1 +. +MessageId=13415 +Language=English +%1 +. +MessageId=13416 +Language=English +%1 +. +MessageId=13417 +Language=English +%1 +. +MessageId=13418 +Language=English +%1 +. +MessageId=13419 +Language=English +%1 +. +MessageId=13420 +Language=English +%1 +. +MessageId=13421 +Language=English +%1 +. +MessageId=13422 +Language=English +%1 +. +MessageId=13423 +Language=English +%1 +. +MessageId=13424 +Language=English +%1 +. +MessageId=13425 +Language=English +%1 +. +MessageId=13426 +Language=English +%1 +. +MessageId=13427 +Language=English +%1 +. +MessageId=13428 +Language=English +%1 +. +MessageId=13429 +Language=English +%1 +. +MessageId=13430 +Language=English +%1 +. +MessageId=13431 +Language=English +%1 +. +MessageId=13432 +Language=English +%1 +. +MessageId=13433 +Language=English +%1 +. +MessageId=13434 +Language=English +%1 +. +MessageId=13435 +Language=English +%1 +. +MessageId=13436 +Language=English +%1 +. +MessageId=13437 +Language=English +%1 +. +MessageId=13438 +Language=English +%1 +. +MessageId=13439 +Language=English +%1 +. +MessageId=13440 +Language=English +%1 +. +MessageId=13441 +Language=English +%1 +. +MessageId=13442 +Language=English +%1 +. +MessageId=13443 +Language=English +%1 +. +MessageId=13444 +Language=English +%1 +. +MessageId=13445 +Language=English +%1 +. +MessageId=13446 +Language=English +%1 +. +MessageId=13447 +Language=English +%1 +. +MessageId=13448 +Language=English +%1 +. +MessageId=13449 +Language=English +%1 +. +MessageId=13450 +Language=English +%1 +. +MessageId=13451 +Language=English +%1 +. +MessageId=13452 +Language=English +%1 +. +MessageId=13453 +Language=English +%1 +. +MessageId=13454 +Language=English +%1 +. +MessageId=13455 +Language=English +%1 +. +MessageId=13456 +Language=English +%1 +. +MessageId=13457 +Language=English +%1 +. +MessageId=13458 +Language=English +%1 +. +MessageId=13459 +Language=English +%1 +. +MessageId=13460 +Language=English +%1 +. +MessageId=13461 +Language=English +%1 +. +MessageId=13462 +Language=English +%1 +. +MessageId=13463 +Language=English +%1 +. +MessageId=13464 +Language=English +%1 +. +MessageId=13465 +Language=English +%1 +. +MessageId=13466 +Language=English +%1 +. +MessageId=13467 +Language=English +%1 +. +MessageId=13468 +Language=English +%1 +. +MessageId=13469 +Language=English +%1 +. +MessageId=13470 +Language=English +%1 +. +MessageId=13471 +Language=English +%1 +. +MessageId=13472 +Language=English +%1 +. +MessageId=13473 +Language=English +%1 +. +MessageId=13474 +Language=English +%1 +. +MessageId=13475 +Language=English +%1 +. +MessageId=13476 +Language=English +%1 +. +MessageId=13477 +Language=English +%1 +. +MessageId=13478 +Language=English +%1 +. +MessageId=13479 +Language=English +%1 +. +MessageId=13480 +Language=English +%1 +. +MessageId=13481 +Language=English +%1 +. +MessageId=13482 +Language=English +%1 +. +MessageId=13483 +Language=English +%1 +. +MessageId=13484 +Language=English +%1 +. +MessageId=13485 +Language=English +%1 +. +MessageId=13486 +Language=English +%1 +. +MessageId=13487 +Language=English +%1 +. +MessageId=13488 +Language=English +%1 +. +MessageId=13489 +Language=English +%1 +. +MessageId=13490 +Language=English +%1 +. +MessageId=13491 +Language=English +%1 +. +MessageId=13492 +Language=English +%1 +. +MessageId=13493 +Language=English +%1 +. +MessageId=13494 +Language=English +%1 +. +MessageId=13495 +Language=English +%1 +. +MessageId=13496 +Language=English +%1 +. +MessageId=13497 +Language=English +%1 +. +MessageId=13498 +Language=English +%1 +. +MessageId=13499 +Language=English +%1 +. +MessageId=13500 +Language=English +%1 +. +MessageId=13501 +Language=English +%1 +. +MessageId=13502 +Language=English +%1 +. +MessageId=13503 +Language=English +%1 +. +MessageId=13504 +Language=English +%1 +. +MessageId=13505 +Language=English +%1 +. +MessageId=13506 +Language=English +%1 +. +MessageId=13507 +Language=English +%1 +. +MessageId=13508 +Language=English +%1 +. +MessageId=13509 +Language=English +%1 +. +MessageId=13510 +Language=English +%1 +. +MessageId=13511 +Language=English +%1 +. +MessageId=13512 +Language=English +%1 +. +MessageId=13513 +Language=English +%1 +. +MessageId=13514 +Language=English +%1 +. +MessageId=13515 +Language=English +%1 +. +MessageId=13516 +Language=English +%1 +. +MessageId=13517 +Language=English +%1 +. +MessageId=13518 +Language=English +%1 +. +MessageId=13519 +Language=English +%1 +. +MessageId=13520 +Language=English +%1 +. +MessageId=13521 +Language=English +%1 +. +MessageId=13522 +Language=English +%1 +. +MessageId=13523 +Language=English +%1 +. +MessageId=13524 +Language=English +%1 +. +MessageId=13525 +Language=English +%1 +. +MessageId=13526 +Language=English +%1 +. +MessageId=13527 +Language=English +%1 +. +MessageId=13528 +Language=English +%1 +. +MessageId=13529 +Language=English +%1 +. +MessageId=13530 +Language=English +%1 +. +MessageId=13531 +Language=English +%1 +. +MessageId=13532 +Language=English +%1 +. +MessageId=13533 +Language=English +%1 +. +MessageId=13534 +Language=English +%1 +. +MessageId=13535 +Language=English +%1 +. +MessageId=13536 +Language=English +%1 +. +MessageId=13537 +Language=English +%1 +. +MessageId=13538 +Language=English +%1 +. +MessageId=13539 +Language=English +%1 +. +MessageId=13540 +Language=English +%1 +. +MessageId=13541 +Language=English +%1 +. +MessageId=13542 +Language=English +%1 +. +MessageId=13543 +Language=English +%1 +. +MessageId=13544 +Language=English +%1 +. +MessageId=13545 +Language=English +%1 +. +MessageId=13546 +Language=English +%1 +. +MessageId=13547 +Language=English +%1 +. +MessageId=13548 +Language=English +%1 +. +MessageId=13549 +Language=English +%1 +. +MessageId=13550 +Language=English +%1 +. +MessageId=13551 +Language=English +%1 +. +MessageId=13552 +Language=English +%1 +. +MessageId=13553 +Language=English +%1 +. +MessageId=13554 +Language=English +%1 +. +MessageId=13555 +Language=English +%1 +. +MessageId=13556 +Language=English +%1 +. +MessageId=13557 +Language=English +%1 +. +MessageId=13558 +Language=English +%1 +. +MessageId=13559 +Language=English +%1 +. +MessageId=13560 +Language=English +%1 +. +MessageId=13561 +Language=English +%1 +. +MessageId=13562 +Language=English +%1 +. +MessageId=13563 +Language=English +%1 +. +MessageId=13564 +Language=English +%1 +. +MessageId=13565 +Language=English +%1 +. +MessageId=13566 +Language=English +%1 +. +MessageId=13567 +Language=English +%1 +. +MessageId=13568 +Language=English +%1 +. +MessageId=13569 +Language=English +%1 +. +MessageId=13570 +Language=English +%1 +. +MessageId=13571 +Language=English +%1 +. +MessageId=13572 +Language=English +%1 +. +MessageId=13573 +Language=English +%1 +. +MessageId=13574 +Language=English +%1 +. +MessageId=13575 +Language=English +%1 +. +MessageId=13576 +Language=English +%1 +. +MessageId=13577 +Language=English +%1 +. +MessageId=13578 +Language=English +%1 +. +MessageId=13579 +Language=English +%1 +. +MessageId=13580 +Language=English +%1 +. +MessageId=13581 +Language=English +%1 +. +MessageId=13582 +Language=English +%1 +. +MessageId=13583 +Language=English +%1 +. +MessageId=13584 +Language=English +%1 +. +MessageId=13585 +Language=English +%1 +. +MessageId=13586 +Language=English +%1 +. +MessageId=13587 +Language=English +%1 +. +MessageId=13588 +Language=English +%1 +. +MessageId=13589 +Language=English +%1 +. +MessageId=13590 +Language=English +%1 +. +MessageId=13591 +Language=English +%1 +. +MessageId=13592 +Language=English +%1 +. +MessageId=13593 +Language=English +%1 +. +MessageId=13594 +Language=English +%1 +. +MessageId=13595 +Language=English +%1 +. +MessageId=13596 +Language=English +%1 +. +MessageId=13597 +Language=English +%1 +. +MessageId=13598 +Language=English +%1 +. +MessageId=13599 +Language=English +%1 +. +MessageId=13600 +Language=English +%1 +. +MessageId=13601 +Language=English +%1 +. +MessageId=13602 +Language=English +%1 +. +MessageId=13603 +Language=English +%1 +. +MessageId=13604 +Language=English +%1 +. +MessageId=13605 +Language=English +%1 +. +MessageId=13606 +Language=English +%1 +. +MessageId=13607 +Language=English +%1 +. +MessageId=13608 +Language=English +%1 +. +MessageId=13609 +Language=English +%1 +. +MessageId=13610 +Language=English +%1 +. +MessageId=13611 +Language=English +%1 +. +MessageId=13612 +Language=English +%1 +. +MessageId=13613 +Language=English +%1 +. +MessageId=13614 +Language=English +%1 +. +MessageId=13615 +Language=English +%1 +. +MessageId=13616 +Language=English +%1 +. +MessageId=13617 +Language=English +%1 +. +MessageId=13618 +Language=English +%1 +. +MessageId=13619 +Language=English +%1 +. +MessageId=13620 +Language=English +%1 +. +MessageId=13621 +Language=English +%1 +. +MessageId=13622 +Language=English +%1 +. +MessageId=13623 +Language=English +%1 +. +MessageId=13624 +Language=English +%1 +. +MessageId=13625 +Language=English +%1 +. +MessageId=13626 +Language=English +%1 +. +MessageId=13627 +Language=English +%1 +. +MessageId=13628 +Language=English +%1 +. +MessageId=13629 +Language=English +%1 +. +MessageId=13630 +Language=English +%1 +. +MessageId=13631 +Language=English +%1 +. +MessageId=13632 +Language=English +%1 +. +MessageId=13633 +Language=English +%1 +. +MessageId=13634 +Language=English +%1 +. +MessageId=13635 +Language=English +%1 +. +MessageId=13636 +Language=English +%1 +. +MessageId=13637 +Language=English +%1 +. +MessageId=13638 +Language=English +%1 +. +MessageId=13639 +Language=English +%1 +. +MessageId=13640 +Language=English +%1 +. +MessageId=13641 +Language=English +%1 +. +MessageId=13642 +Language=English +%1 +. +MessageId=13643 +Language=English +%1 +. +MessageId=13644 +Language=English +%1 +. +MessageId=13645 +Language=English +%1 +. +MessageId=13646 +Language=English +%1 +. +MessageId=13647 +Language=English +%1 +. +MessageId=13648 +Language=English +%1 +. +MessageId=13649 +Language=English +%1 +. +MessageId=13650 +Language=English +%1 +. +MessageId=13651 +Language=English +%1 +. +MessageId=13652 +Language=English +%1 +. +MessageId=13653 +Language=English +%1 +. +MessageId=13654 +Language=English +%1 +. +MessageId=13655 +Language=English +%1 +. +MessageId=13656 +Language=English +%1 +. +MessageId=13657 +Language=English +%1 +. +MessageId=13658 +Language=English +%1 +. +MessageId=13659 +Language=English +%1 +. +MessageId=13660 +Language=English +%1 +. +MessageId=13661 +Language=English +%1 +. +MessageId=13662 +Language=English +%1 +. +MessageId=13663 +Language=English +%1 +. +MessageId=13664 +Language=English +%1 +. +MessageId=13665 +Language=English +%1 +. +MessageId=13666 +Language=English +%1 +. +MessageId=13667 +Language=English +%1 +. +MessageId=13668 +Language=English +%1 +. +MessageId=13669 +Language=English +%1 +. +MessageId=13670 +Language=English +%1 +. +MessageId=13671 +Language=English +%1 +. +MessageId=13672 +Language=English +%1 +. +MessageId=13673 +Language=English +%1 +. +MessageId=13674 +Language=English +%1 +. +MessageId=13675 +Language=English +%1 +. +MessageId=13676 +Language=English +%1 +. +MessageId=13677 +Language=English +%1 +. +MessageId=13678 +Language=English +%1 +. +MessageId=13679 +Language=English +%1 +. +MessageId=13680 +Language=English +%1 +. +MessageId=13681 +Language=English +%1 +. +MessageId=13682 +Language=English +%1 +. +MessageId=13683 +Language=English +%1 +. +MessageId=13684 +Language=English +%1 +. +MessageId=13685 +Language=English +%1 +. +MessageId=13686 +Language=English +%1 +. +MessageId=13687 +Language=English +%1 +. +MessageId=13688 +Language=English +%1 +. +MessageId=13689 +Language=English +%1 +. +MessageId=13690 +Language=English +%1 +. +MessageId=13691 +Language=English +%1 +. +MessageId=13692 +Language=English +%1 +. +MessageId=13693 +Language=English +%1 +. +MessageId=13694 +Language=English +%1 +. +MessageId=13695 +Language=English +%1 +. +MessageId=13696 +Language=English +%1 +. +MessageId=13697 +Language=English +%1 +. +MessageId=13698 +Language=English +%1 +. +MessageId=13699 +Language=English +%1 +. +MessageId=13700 +Language=English +%1 +. +MessageId=13701 +Language=English +%1 +. +MessageId=13702 +Language=English +%1 +. +MessageId=13703 +Language=English +%1 +. +MessageId=13704 +Language=English +%1 +. +MessageId=13705 +Language=English +%1 +. +MessageId=13706 +Language=English +%1 +. +MessageId=13707 +Language=English +%1 +. +MessageId=13708 +Language=English +%1 +. +MessageId=13709 +Language=English +%1 +. +MessageId=13710 +Language=English +%1 +. +MessageId=13711 +Language=English +%1 +. +MessageId=13712 +Language=English +%1 +. +MessageId=13713 +Language=English +%1 +. +MessageId=13714 +Language=English +%1 +. +MessageId=13715 +Language=English +%1 +. +MessageId=13716 +Language=English +%1 +. +MessageId=13717 +Language=English +%1 +. +MessageId=13718 +Language=English +%1 +. +MessageId=13719 +Language=English +%1 +. +MessageId=13720 +Language=English +%1 +. +MessageId=13721 +Language=English +%1 +. +MessageId=13722 +Language=English +%1 +. +MessageId=13723 +Language=English +%1 +. +MessageId=13724 +Language=English +%1 +. +MessageId=13725 +Language=English +%1 +. +MessageId=13726 +Language=English +%1 +. +MessageId=13727 +Language=English +%1 +. +MessageId=13728 +Language=English +%1 +. +MessageId=13729 +Language=English +%1 +. +MessageId=13730 +Language=English +%1 +. +MessageId=13731 +Language=English +%1 +. +MessageId=13732 +Language=English +%1 +. +MessageId=13733 +Language=English +%1 +. +MessageId=13734 +Language=English +%1 +. +MessageId=13735 +Language=English +%1 +. +MessageId=13736 +Language=English +%1 +. +MessageId=13737 +Language=English +%1 +. +MessageId=13738 +Language=English +%1 +. +MessageId=13739 +Language=English +%1 +. +MessageId=13740 +Language=English +%1 +. +MessageId=13741 +Language=English +%1 +. +MessageId=13742 +Language=English +%1 +. +MessageId=13743 +Language=English +%1 +. +MessageId=13744 +Language=English +%1 +. +MessageId=13745 +Language=English +%1 +. +MessageId=13746 +Language=English +%1 +. +MessageId=13747 +Language=English +%1 +. +MessageId=13748 +Language=English +%1 +. +MessageId=13749 +Language=English +%1 +. +MessageId=13750 +Language=English +%1 +. +MessageId=13751 +Language=English +%1 +. +MessageId=13752 +Language=English +%1 +. +MessageId=13753 +Language=English +%1 +. +MessageId=13754 +Language=English +%1 +. +MessageId=13755 +Language=English +%1 +. +MessageId=13756 +Language=English +%1 +. +MessageId=13757 +Language=English +%1 +. +MessageId=13758 +Language=English +%1 +. +MessageId=13759 +Language=English +%1 +. +MessageId=13760 +Language=English +%1 +. +MessageId=13761 +Language=English +%1 +. +MessageId=13762 +Language=English +%1 +. +MessageId=13763 +Language=English +%1 +. +MessageId=13764 +Language=English +%1 +. +MessageId=13765 +Language=English +%1 +. +MessageId=13766 +Language=English +%1 +. +MessageId=13767 +Language=English +%1 +. +MessageId=13768 +Language=English +%1 +. +MessageId=13769 +Language=English +%1 +. +MessageId=13770 +Language=English +%1 +. +MessageId=13771 +Language=English +%1 +. +MessageId=13772 +Language=English +%1 +. +MessageId=13773 +Language=English +%1 +. +MessageId=13774 +Language=English +%1 +. +MessageId=13775 +Language=English +%1 +. +MessageId=13776 +Language=English +%1 +. +MessageId=13777 +Language=English +%1 +. +MessageId=13778 +Language=English +%1 +. +MessageId=13779 +Language=English +%1 +. +MessageId=13780 +Language=English +%1 +. +MessageId=13781 +Language=English +%1 +. +MessageId=13782 +Language=English +%1 +. +MessageId=13783 +Language=English +%1 +. +MessageId=13784 +Language=English +%1 +. +MessageId=13785 +Language=English +%1 +. +MessageId=13786 +Language=English +%1 +. +MessageId=13787 +Language=English +%1 +. +MessageId=13788 +Language=English +%1 +. +MessageId=13789 +Language=English +%1 +. +MessageId=13790 +Language=English +%1 +. +MessageId=13791 +Language=English +%1 +. +MessageId=13792 +Language=English +%1 +. +MessageId=13793 +Language=English +%1 +. +MessageId=13794 +Language=English +%1 +. +MessageId=13795 +Language=English +%1 +. +MessageId=13796 +Language=English +%1 +. +MessageId=13797 +Language=English +%1 +. +MessageId=13798 +Language=English +%1 +. +MessageId=13799 +Language=English +%1 +. +MessageId=13800 +Language=English +%1 +. +MessageId=13801 +Language=English +%1 +. +MessageId=13802 +Language=English +%1 +. +MessageId=13803 +Language=English +%1 +. +MessageId=13804 +Language=English +%1 +. +MessageId=13805 +Language=English +%1 +. +MessageId=13806 +Language=English +%1 +. +MessageId=13807 +Language=English +%1 +. +MessageId=13808 +Language=English +%1 +. +MessageId=13809 +Language=English +%1 +. +MessageId=13810 +Language=English +%1 +. +MessageId=13811 +Language=English +%1 +. +MessageId=13812 +Language=English +%1 +. +MessageId=13813 +Language=English +%1 +. +MessageId=13814 +Language=English +%1 +. +MessageId=13815 +Language=English +%1 +. +MessageId=13816 +Language=English +%1 +. +MessageId=13817 +Language=English +%1 +. +MessageId=13818 +Language=English +%1 +. +MessageId=13819 +Language=English +%1 +. +MessageId=13820 +Language=English +%1 +. +MessageId=13821 +Language=English +%1 +. +MessageId=13822 +Language=English +%1 +. +MessageId=13823 +Language=English +%1 +. +MessageId=13824 +Language=English +%1 +. +MessageId=13825 +Language=English +%1 +. +MessageId=13826 +Language=English +%1 +. +MessageId=13827 +Language=English +%1 +. +MessageId=13828 +Language=English +%1 +. +MessageId=13829 +Language=English +%1 +. +MessageId=13830 +Language=English +%1 +. +MessageId=13831 +Language=English +%1 +. +MessageId=13832 +Language=English +%1 +. +MessageId=13833 +Language=English +%1 +. +MessageId=13834 +Language=English +%1 +. +MessageId=13835 +Language=English +%1 +. +MessageId=13836 +Language=English +%1 +. +MessageId=13837 +Language=English +%1 +. +MessageId=13838 +Language=English +%1 +. +MessageId=13839 +Language=English +%1 +. +MessageId=13840 +Language=English +%1 +. +MessageId=13841 +Language=English +%1 +. +MessageId=13842 +Language=English +%1 +. +MessageId=13843 +Language=English +%1 +. +MessageId=13844 +Language=English +%1 +. +MessageId=13845 +Language=English +%1 +. +MessageId=13846 +Language=English +%1 +. +MessageId=13847 +Language=English +%1 +. +MessageId=13848 +Language=English +%1 +. +MessageId=13849 +Language=English +%1 +. +MessageId=13850 +Language=English +%1 +. +MessageId=13851 +Language=English +%1 +. +MessageId=13852 +Language=English +%1 +. +MessageId=13853 +Language=English +%1 +. +MessageId=13854 +Language=English +%1 +. +MessageId=13855 +Language=English +%1 +. +MessageId=13856 +Language=English +%1 +. +MessageId=13857 +Language=English +%1 +. +MessageId=13858 +Language=English +%1 +. +MessageId=13859 +Language=English +%1 +. +MessageId=13860 +Language=English +%1 +. +MessageId=13861 +Language=English +%1 +. +MessageId=13862 +Language=English +%1 +. +MessageId=13863 +Language=English +%1 +. +MessageId=13864 +Language=English +%1 +. +MessageId=13865 +Language=English +%1 +. +MessageId=13866 +Language=English +%1 +. +MessageId=13867 +Language=English +%1 +. +MessageId=13868 +Language=English +%1 +. +MessageId=13869 +Language=English +%1 +. +MessageId=13870 +Language=English +%1 +. +MessageId=13871 +Language=English +%1 +. +MessageId=13872 +Language=English +%1 +. +MessageId=13873 +Language=English +%1 +. +MessageId=13874 +Language=English +%1 +. +MessageId=13875 +Language=English +%1 +. +MessageId=13876 +Language=English +%1 +. +MessageId=13877 +Language=English +%1 +. +MessageId=13878 +Language=English +%1 +. +MessageId=13879 +Language=English +%1 +. +MessageId=13880 +Language=English +%1 +. +MessageId=13881 +Language=English +%1 +. +MessageId=13882 +Language=English +%1 +. +MessageId=13883 +Language=English +%1 +. +MessageId=13884 +Language=English +%1 +. +MessageId=13885 +Language=English +%1 +. +MessageId=13886 +Language=English +%1 +. +MessageId=13887 +Language=English +%1 +. +MessageId=13888 +Language=English +%1 +. +MessageId=13889 +Language=English +%1 +. +MessageId=13890 +Language=English +%1 +. +MessageId=13891 +Language=English +%1 +. +MessageId=13892 +Language=English +%1 +. +MessageId=13893 +Language=English +%1 +. +MessageId=13894 +Language=English +%1 +. +MessageId=13895 +Language=English +%1 +. +MessageId=13896 +Language=English +%1 +. +MessageId=13897 +Language=English +%1 +. +MessageId=13898 +Language=English +%1 +. +MessageId=13899 +Language=English +%1 +. +MessageId=13900 +Language=English +%1 +. +MessageId=13901 +Language=English +%1 +. +MessageId=13902 +Language=English +%1 +. +MessageId=13903 +Language=English +%1 +. +MessageId=13904 +Language=English +%1 +. +MessageId=13905 +Language=English +%1 +. +MessageId=13906 +Language=English +%1 +. +MessageId=13907 +Language=English +%1 +. +MessageId=13908 +Language=English +%1 +. +MessageId=13909 +Language=English +%1 +. +MessageId=13910 +Language=English +%1 +. +MessageId=13911 +Language=English +%1 +. +MessageId=13912 +Language=English +%1 +. +MessageId=13913 +Language=English +%1 +. +MessageId=13914 +Language=English +%1 +. +MessageId=13915 +Language=English +%1 +. +MessageId=13916 +Language=English +%1 +. +MessageId=13917 +Language=English +%1 +. +MessageId=13918 +Language=English +%1 +. +MessageId=13919 +Language=English +%1 +. +MessageId=13920 +Language=English +%1 +. +MessageId=13921 +Language=English +%1 +. +MessageId=13922 +Language=English +%1 +. +MessageId=13923 +Language=English +%1 +. +MessageId=13924 +Language=English +%1 +. +MessageId=13925 +Language=English +%1 +. +MessageId=13926 +Language=English +%1 +. +MessageId=13927 +Language=English +%1 +. +MessageId=13928 +Language=English +%1 +. +MessageId=13929 +Language=English +%1 +. +MessageId=13930 +Language=English +%1 +. +MessageId=13931 +Language=English +%1 +. +MessageId=13932 +Language=English +%1 +. +MessageId=13933 +Language=English +%1 +. +MessageId=13934 +Language=English +%1 +. +MessageId=13935 +Language=English +%1 +. +MessageId=13936 +Language=English +%1 +. +MessageId=13937 +Language=English +%1 +. +MessageId=13938 +Language=English +%1 +. +MessageId=13939 +Language=English +%1 +. +MessageId=13940 +Language=English +%1 +. +MessageId=13941 +Language=English +%1 +. +MessageId=13942 +Language=English +%1 +. +MessageId=13943 +Language=English +%1 +. +MessageId=13944 +Language=English +%1 +. +MessageId=13945 +Language=English +%1 +. +MessageId=13946 +Language=English +%1 +. +MessageId=13947 +Language=English +%1 +. +MessageId=13948 +Language=English +%1 +. +MessageId=13949 +Language=English +%1 +. +MessageId=13950 +Language=English +%1 +. +MessageId=13951 +Language=English +%1 +. +MessageId=13952 +Language=English +%1 +. +MessageId=13953 +Language=English +%1 +. +MessageId=13954 +Language=English +%1 +. +MessageId=13955 +Language=English +%1 +. +MessageId=13956 +Language=English +%1 +. +MessageId=13957 +Language=English +%1 +. +MessageId=13958 +Language=English +%1 +. +MessageId=13959 +Language=English +%1 +. +MessageId=13960 +Language=English +%1 +. +MessageId=13961 +Language=English +%1 +. +MessageId=13962 +Language=English +%1 +. +MessageId=13963 +Language=English +%1 +. +MessageId=13964 +Language=English +%1 +. +MessageId=13965 +Language=English +%1 +. +MessageId=13966 +Language=English +%1 +. +MessageId=13967 +Language=English +%1 +. +MessageId=13968 +Language=English +%1 +. +MessageId=13969 +Language=English +%1 +. +MessageId=13970 +Language=English +%1 +. +MessageId=13971 +Language=English +%1 +. +MessageId=13972 +Language=English +%1 +. +MessageId=13973 +Language=English +%1 +. +MessageId=13974 +Language=English +%1 +. +MessageId=13975 +Language=English +%1 +. +MessageId=13976 +Language=English +%1 +. +MessageId=13977 +Language=English +%1 +. +MessageId=13978 +Language=English +%1 +. +MessageId=13979 +Language=English +%1 +. +MessageId=13980 +Language=English +%1 +. +MessageId=13981 +Language=English +%1 +. +MessageId=13982 +Language=English +%1 +. +MessageId=13983 +Language=English +%1 +. +MessageId=13984 +Language=English +%1 +. +MessageId=13985 +Language=English +%1 +. +MessageId=13986 +Language=English +%1 +. +MessageId=13987 +Language=English +%1 +. +MessageId=13988 +Language=English +%1 +. +MessageId=13989 +Language=English +%1 +. +MessageId=13990 +Language=English +%1 +. +MessageId=13991 +Language=English +%1 +. +MessageId=13992 +Language=English +%1 +. +MessageId=13993 +Language=English +%1 +. +MessageId=13994 +Language=English +%1 +. +MessageId=13995 +Language=English +%1 +. +MessageId=13996 +Language=English +%1 +. +MessageId=13997 +Language=English +%1 +. +MessageId=13998 +Language=English +%1 +. +MessageId=13999 +Language=English +%1 +. +MessageId=14000 +Language=English +%1 +. +MessageId=14001 +Language=English +%1 +. +MessageId=14002 +Language=English +%1 +. +MessageId=14003 +Language=English +%1 +. +MessageId=14004 +Language=English +%1 +. +MessageId=14005 +Language=English +%1 +. +MessageId=14006 +Language=English +%1 +. +MessageId=14007 +Language=English +%1 +. +MessageId=14008 +Language=English +%1 +. +MessageId=14009 +Language=English +%1 +. +MessageId=14010 +Language=English +%1 +. +MessageId=14011 +Language=English +%1 +. +MessageId=14012 +Language=English +%1 +. +MessageId=14013 +Language=English +%1 +. +MessageId=14014 +Language=English +%1 +. +MessageId=14015 +Language=English +%1 +. +MessageId=14016 +Language=English +%1 +. +MessageId=14017 +Language=English +%1 +. +MessageId=14018 +Language=English +%1 +. +MessageId=14019 +Language=English +%1 +. +MessageId=14020 +Language=English +%1 +. +MessageId=14021 +Language=English +%1 +. +MessageId=14022 +Language=English +%1 +. +MessageId=14023 +Language=English +%1 +. +MessageId=14024 +Language=English +%1 +. +MessageId=14025 +Language=English +%1 +. +MessageId=14026 +Language=English +%1 +. +MessageId=14027 +Language=English +%1 +. +MessageId=14028 +Language=English +%1 +. +MessageId=14029 +Language=English +%1 +. +MessageId=14030 +Language=English +%1 +. +MessageId=14031 +Language=English +%1 +. +MessageId=14032 +Language=English +%1 +. +MessageId=14033 +Language=English +%1 +. +MessageId=14034 +Language=English +%1 +. +MessageId=14035 +Language=English +%1 +. +MessageId=14036 +Language=English +%1 +. +MessageId=14037 +Language=English +%1 +. +MessageId=14038 +Language=English +%1 +. +MessageId=14039 +Language=English +%1 +. +MessageId=14040 +Language=English +%1 +. +MessageId=14041 +Language=English +%1 +. +MessageId=14042 +Language=English +%1 +. +MessageId=14043 +Language=English +%1 +. +MessageId=14044 +Language=English +%1 +. +MessageId=14045 +Language=English +%1 +. +MessageId=14046 +Language=English +%1 +. +MessageId=14047 +Language=English +%1 +. +MessageId=14048 +Language=English +%1 +. +MessageId=14049 +Language=English +%1 +. +MessageId=14050 +Language=English +%1 +. +MessageId=14051 +Language=English +%1 +. +MessageId=14052 +Language=English +%1 +. +MessageId=14053 +Language=English +%1 +. +MessageId=14054 +Language=English +%1 +. +MessageId=14055 +Language=English +%1 +. +MessageId=14056 +Language=English +%1 +. +MessageId=14057 +Language=English +%1 +. +MessageId=14058 +Language=English +%1 +. +MessageId=14059 +Language=English +%1 +. +MessageId=14060 +Language=English +%1 +. +MessageId=14061 +Language=English +%1 +. +MessageId=14062 +Language=English +%1 +. +MessageId=14063 +Language=English +%1 +. +MessageId=14064 +Language=English +%1 +. +MessageId=14065 +Language=English +%1 +. +MessageId=14066 +Language=English +%1 +. +MessageId=14067 +Language=English +%1 +. +MessageId=14068 +Language=English +%1 +. +MessageId=14069 +Language=English +%1 +. +MessageId=14070 +Language=English +%1 +. +MessageId=14071 +Language=English +%1 +. +MessageId=14072 +Language=English +%1 +. +MessageId=14073 +Language=English +%1 +. +MessageId=14074 +Language=English +%1 +. +MessageId=14075 +Language=English +%1 +. +MessageId=14076 +Language=English +%1 +. +MessageId=14077 +Language=English +%1 +. +MessageId=14078 +Language=English +%1 +. +MessageId=14079 +Language=English +%1 +. +MessageId=14080 +Language=English +%1 +. +MessageId=14081 +Language=English +%1 +. +MessageId=14082 +Language=English +%1 +. +MessageId=14083 +Language=English +%1 +. +MessageId=14084 +Language=English +%1 +. +MessageId=14085 +Language=English +%1 +. +MessageId=14086 +Language=English +%1 +. +MessageId=14087 +Language=English +%1 +. +MessageId=14088 +Language=English +%1 +. +MessageId=14089 +Language=English +%1 +. +MessageId=14090 +Language=English +%1 +. +MessageId=14091 +Language=English +%1 +. +MessageId=14092 +Language=English +%1 +. +MessageId=14093 +Language=English +%1 +. +MessageId=14094 +Language=English +%1 +. +MessageId=14095 +Language=English +%1 +. +MessageId=14096 +Language=English +%1 +. +MessageId=14097 +Language=English +%1 +. +MessageId=14098 +Language=English +%1 +. +MessageId=14099 +Language=English +%1 +. +MessageId=14100 +Language=English +%1 +. +MessageId=14101 +Language=English +%1 +. +MessageId=14102 +Language=English +%1 +. +MessageId=14103 +Language=English +%1 +. +MessageId=14104 +Language=English +%1 +. +MessageId=14105 +Language=English +%1 +. +MessageId=14106 +Language=English +%1 +. +MessageId=14107 +Language=English +%1 +. +MessageId=14108 +Language=English +%1 +. +MessageId=14109 +Language=English +%1 +. +MessageId=14110 +Language=English +%1 +. +MessageId=14111 +Language=English +%1 +. +MessageId=14112 +Language=English +%1 +. +MessageId=14113 +Language=English +%1 +. +MessageId=14114 +Language=English +%1 +. +MessageId=14115 +Language=English +%1 +. +MessageId=14116 +Language=English +%1 +. +MessageId=14117 +Language=English +%1 +. +MessageId=14118 +Language=English +%1 +. +MessageId=14119 +Language=English +%1 +. +MessageId=14120 +Language=English +%1 +. +MessageId=14121 +Language=English +%1 +. +MessageId=14122 +Language=English +%1 +. +MessageId=14123 +Language=English +%1 +. +MessageId=14124 +Language=English +%1 +. +MessageId=14125 +Language=English +%1 +. +MessageId=14126 +Language=English +%1 +. +MessageId=14127 +Language=English +%1 +. +MessageId=14128 +Language=English +%1 +. +MessageId=14129 +Language=English +%1 +. +MessageId=14130 +Language=English +%1 +. +MessageId=14131 +Language=English +%1 +. +MessageId=14132 +Language=English +%1 +. +MessageId=14133 +Language=English +%1 +. +MessageId=14134 +Language=English +%1 +. +MessageId=14135 +Language=English +%1 +. +MessageId=14136 +Language=English +%1 +. +MessageId=14137 +Language=English +%1 +. +MessageId=14138 +Language=English +%1 +. +MessageId=14139 +Language=English +%1 +. +MessageId=14140 +Language=English +%1 +. +MessageId=14141 +Language=English +%1 +. +MessageId=14142 +Language=English +%1 +. +MessageId=14143 +Language=English +%1 +. +MessageId=14144 +Language=English +%1 +. +MessageId=14145 +Language=English +%1 +. +MessageId=14146 +Language=English +%1 +. +MessageId=14147 +Language=English +%1 +. +MessageId=14148 +Language=English +%1 +. +MessageId=14149 +Language=English +%1 +. +MessageId=14150 +Language=English +%1 +. +MessageId=14151 +Language=English +%1 +. +MessageId=14152 +Language=English +%1 +. +MessageId=14153 +Language=English +%1 +. +MessageId=14154 +Language=English +%1 +. +MessageId=14155 +Language=English +%1 +. +MessageId=14156 +Language=English +%1 +. +MessageId=14157 +Language=English +%1 +. +MessageId=14158 +Language=English +%1 +. +MessageId=14159 +Language=English +%1 +. +MessageId=14160 +Language=English +%1 +. +MessageId=14161 +Language=English +%1 +. +MessageId=14162 +Language=English +%1 +. +MessageId=14163 +Language=English +%1 +. +MessageId=14164 +Language=English +%1 +. +MessageId=14165 +Language=English +%1 +. +MessageId=14166 +Language=English +%1 +. +MessageId=14167 +Language=English +%1 +. +MessageId=14168 +Language=English +%1 +. +MessageId=14169 +Language=English +%1 +. +MessageId=14170 +Language=English +%1 +. +MessageId=14171 +Language=English +%1 +. +MessageId=14172 +Language=English +%1 +. +MessageId=14173 +Language=English +%1 +. +MessageId=14174 +Language=English +%1 +. +MessageId=14175 +Language=English +%1 +. +MessageId=14176 +Language=English +%1 +. +MessageId=14177 +Language=English +%1 +. +MessageId=14178 +Language=English +%1 +. +MessageId=14179 +Language=English +%1 +. +MessageId=14180 +Language=English +%1 +. +MessageId=14181 +Language=English +%1 +. +MessageId=14182 +Language=English +%1 +. +MessageId=14183 +Language=English +%1 +. +MessageId=14184 +Language=English +%1 +. +MessageId=14185 +Language=English +%1 +. +MessageId=14186 +Language=English +%1 +. +MessageId=14187 +Language=English +%1 +. +MessageId=14188 +Language=English +%1 +. +MessageId=14189 +Language=English +%1 +. +MessageId=14190 +Language=English +%1 +. +MessageId=14191 +Language=English +%1 +. +MessageId=14192 +Language=English +%1 +. +MessageId=14193 +Language=English +%1 +. +MessageId=14194 +Language=English +%1 +. +MessageId=14195 +Language=English +%1 +. +MessageId=14196 +Language=English +%1 +. +MessageId=14197 +Language=English +%1 +. +MessageId=14198 +Language=English +%1 +. +MessageId=14199 +Language=English +%1 +. +MessageId=14200 +Language=English +%1 +. +MessageId=14201 +Language=English +%1 +. +MessageId=14202 +Language=English +%1 +. +MessageId=14203 +Language=English +%1 +. +MessageId=14204 +Language=English +%1 +. +MessageId=14205 +Language=English +%1 +. +MessageId=14206 +Language=English +%1 +. +MessageId=14207 +Language=English +%1 +. +MessageId=14208 +Language=English +%1 +. +MessageId=14209 +Language=English +%1 +. +MessageId=14210 +Language=English +%1 +. +MessageId=14211 +Language=English +%1 +. +MessageId=14212 +Language=English +%1 +. +MessageId=14213 +Language=English +%1 +. +MessageId=14214 +Language=English +%1 +. +MessageId=14215 +Language=English +%1 +. +MessageId=14216 +Language=English +%1 +. +MessageId=14217 +Language=English +%1 +. +MessageId=14218 +Language=English +%1 +. +MessageId=14219 +Language=English +%1 +. +MessageId=14220 +Language=English +%1 +. +MessageId=14221 +Language=English +%1 +. +MessageId=14222 +Language=English +%1 +. +MessageId=14223 +Language=English +%1 +. +MessageId=14224 +Language=English +%1 +. +MessageId=14225 +Language=English +%1 +. +MessageId=14226 +Language=English +%1 +. +MessageId=14227 +Language=English +%1 +. +MessageId=14228 +Language=English +%1 +. +MessageId=14229 +Language=English +%1 +. +MessageId=14230 +Language=English +%1 +. +MessageId=14231 +Language=English +%1 +. +MessageId=14232 +Language=English +%1 +. +MessageId=14233 +Language=English +%1 +. +MessageId=14234 +Language=English +%1 +. +MessageId=14235 +Language=English +%1 +. +MessageId=14236 +Language=English +%1 +. +MessageId=14237 +Language=English +%1 +. +MessageId=14238 +Language=English +%1 +. +MessageId=14239 +Language=English +%1 +. +MessageId=14240 +Language=English +%1 +. +MessageId=14241 +Language=English +%1 +. +MessageId=14242 +Language=English +%1 +. +MessageId=14243 +Language=English +%1 +. +MessageId=14244 +Language=English +%1 +. +MessageId=14245 +Language=English +%1 +. +MessageId=14246 +Language=English +%1 +. +MessageId=14247 +Language=English +%1 +. +MessageId=14248 +Language=English +%1 +. +MessageId=14249 +Language=English +%1 +. +MessageId=14250 +Language=English +%1 +. +MessageId=14251 +Language=English +%1 +. +MessageId=14252 +Language=English +%1 +. +MessageId=14253 +Language=English +%1 +. +MessageId=14254 +Language=English +%1 +. +MessageId=14255 +Language=English +%1 +. +MessageId=14256 +Language=English +%1 +. +MessageId=14257 +Language=English +%1 +. +MessageId=14258 +Language=English +%1 +. +MessageId=14259 +Language=English +%1 +. +MessageId=14260 +Language=English +%1 +. +MessageId=14261 +Language=English +%1 +. +MessageId=14262 +Language=English +%1 +. +MessageId=14263 +Language=English +%1 +. +MessageId=14264 +Language=English +%1 +. +MessageId=14265 +Language=English +%1 +. +MessageId=14266 +Language=English +%1 +. +MessageId=14267 +Language=English +%1 +. +MessageId=14268 +Language=English +%1 +. +MessageId=14269 +Language=English +%1 +. +MessageId=14270 +Language=English +%1 +. +MessageId=14271 +Language=English +%1 +. +MessageId=14272 +Language=English +%1 +. +MessageId=14273 +Language=English +%1 +. +MessageId=14274 +Language=English +%1 +. +MessageId=14275 +Language=English +%1 +. +MessageId=14276 +Language=English +%1 +. +MessageId=14277 +Language=English +%1 +. +MessageId=14278 +Language=English +%1 +. +MessageId=14279 +Language=English +%1 +. +MessageId=14280 +Language=English +%1 +. +MessageId=14281 +Language=English +%1 +. +MessageId=14282 +Language=English +%1 +. +MessageId=14283 +Language=English +%1 +. +MessageId=14284 +Language=English +%1 +. +MessageId=14285 +Language=English +%1 +. +MessageId=14286 +Language=English +%1 +. +MessageId=14287 +Language=English +%1 +. +MessageId=14288 +Language=English +%1 +. +MessageId=14289 +Language=English +%1 +. +MessageId=14290 +Language=English +%1 +. +MessageId=14291 +Language=English +%1 +. +MessageId=14292 +Language=English +%1 +. +MessageId=14293 +Language=English +%1 +. +MessageId=14294 +Language=English +%1 +. +MessageId=14295 +Language=English +%1 +. +MessageId=14296 +Language=English +%1 +. +MessageId=14297 +Language=English +%1 +. +MessageId=14298 +Language=English +%1 +. +MessageId=14299 +Language=English +%1 +. +MessageId=14300 +Language=English +%1 +. +MessageId=14301 +Language=English +%1 +. +MessageId=14302 +Language=English +%1 +. +MessageId=14303 +Language=English +%1 +. +MessageId=14304 +Language=English +%1 +. +MessageId=14305 +Language=English +%1 +. +MessageId=14306 +Language=English +%1 +. +MessageId=14307 +Language=English +%1 +. +MessageId=14308 +Language=English +%1 +. +MessageId=14309 +Language=English +%1 +. +MessageId=14310 +Language=English +%1 +. +MessageId=14311 +Language=English +%1 +. +MessageId=14312 +Language=English +%1 +. +MessageId=14313 +Language=English +%1 +. +MessageId=14314 +Language=English +%1 +. +MessageId=14315 +Language=English +%1 +. +MessageId=14316 +Language=English +%1 +. +MessageId=14317 +Language=English +%1 +. +MessageId=14318 +Language=English +%1 +. +MessageId=14319 +Language=English +%1 +. +MessageId=14320 +Language=English +%1 +. +MessageId=14321 +Language=English +%1 +. +MessageId=14322 +Language=English +%1 +. +MessageId=14323 +Language=English +%1 +. +MessageId=14324 +Language=English +%1 +. +MessageId=14325 +Language=English +%1 +. +MessageId=14326 +Language=English +%1 +. +MessageId=14327 +Language=English +%1 +. +MessageId=14328 +Language=English +%1 +. +MessageId=14329 +Language=English +%1 +. +MessageId=14330 +Language=English +%1 +. +MessageId=14331 +Language=English +%1 +. +MessageId=14332 +Language=English +%1 +. +MessageId=14333 +Language=English +%1 +. +MessageId=14334 +Language=English +%1 +. +MessageId=14335 +Language=English +%1 +. +MessageId=14336 +Language=English +%1 +. +MessageId=14337 +Language=English +%1 +. +MessageId=14338 +Language=English +%1 +. +MessageId=14339 +Language=English +%1 +. +MessageId=14340 +Language=English +%1 +. +MessageId=14341 +Language=English +%1 +. +MessageId=14342 +Language=English +%1 +. +MessageId=14343 +Language=English +%1 +. +MessageId=14344 +Language=English +%1 +. +MessageId=14345 +Language=English +%1 +. +MessageId=14346 +Language=English +%1 +. +MessageId=14347 +Language=English +%1 +. +MessageId=14348 +Language=English +%1 +. +MessageId=14349 +Language=English +%1 +. +MessageId=14350 +Language=English +%1 +. +MessageId=14351 +Language=English +%1 +. +MessageId=14352 +Language=English +%1 +. +MessageId=14353 +Language=English +%1 +. +MessageId=14354 +Language=English +%1 +. +MessageId=14355 +Language=English +%1 +. +MessageId=14356 +Language=English +%1 +. +MessageId=14357 +Language=English +%1 +. +MessageId=14358 +Language=English +%1 +. +MessageId=14359 +Language=English +%1 +. +MessageId=14360 +Language=English +%1 +. +MessageId=14361 +Language=English +%1 +. +MessageId=14362 +Language=English +%1 +. +MessageId=14363 +Language=English +%1 +. +MessageId=14364 +Language=English +%1 +. +MessageId=14365 +Language=English +%1 +. +MessageId=14366 +Language=English +%1 +. +MessageId=14367 +Language=English +%1 +. +MessageId=14368 +Language=English +%1 +. +MessageId=14369 +Language=English +%1 +. +MessageId=14370 +Language=English +%1 +. +MessageId=14371 +Language=English +%1 +. +MessageId=14372 +Language=English +%1 +. +MessageId=14373 +Language=English +%1 +. +MessageId=14374 +Language=English +%1 +. +MessageId=14375 +Language=English +%1 +. +MessageId=14376 +Language=English +%1 +. +MessageId=14377 +Language=English +%1 +. +MessageId=14378 +Language=English +%1 +. +MessageId=14379 +Language=English +%1 +. +MessageId=14380 +Language=English +%1 +. +MessageId=14381 +Language=English +%1 +. +MessageId=14382 +Language=English +%1 +. +MessageId=14383 +Language=English +%1 +. +MessageId=14384 +Language=English +%1 +. +MessageId=14385 +Language=English +%1 +. +MessageId=14386 +Language=English +%1 +. +MessageId=14387 +Language=English +%1 +. +MessageId=14388 +Language=English +%1 +. +MessageId=14389 +Language=English +%1 +. +MessageId=14390 +Language=English +%1 +. +MessageId=14391 +Language=English +%1 +. +MessageId=14392 +Language=English +%1 +. +MessageId=14393 +Language=English +%1 +. +MessageId=14394 +Language=English +%1 +. +MessageId=14395 +Language=English +%1 +. +MessageId=14396 +Language=English +%1 +. +MessageId=14397 +Language=English +%1 +. +MessageId=14398 +Language=English +%1 +. +MessageId=14399 +Language=English +%1 +. +MessageId=14400 +Language=English +%1 +. +MessageId=14401 +Language=English +%1 +. +MessageId=14402 +Language=English +%1 +. +MessageId=14403 +Language=English +%1 +. +MessageId=14404 +Language=English +%1 +. +MessageId=14405 +Language=English +%1 +. +MessageId=14406 +Language=English +%1 +. +MessageId=14407 +Language=English +%1 +. +MessageId=14408 +Language=English +%1 +. +MessageId=14409 +Language=English +%1 +. +MessageId=14410 +Language=English +%1 +. +MessageId=14411 +Language=English +%1 +. +MessageId=14412 +Language=English +%1 +. +MessageId=14413 +Language=English +%1 +. +MessageId=14414 +Language=English +%1 +. +MessageId=14415 +Language=English +%1 +. +MessageId=14416 +Language=English +%1 +. +MessageId=14417 +Language=English +%1 +. +MessageId=14418 +Language=English +%1 +. +MessageId=14419 +Language=English +%1 +. +MessageId=14420 +Language=English +%1 +. +MessageId=14421 +Language=English +%1 +. +MessageId=14422 +Language=English +%1 +. +MessageId=14423 +Language=English +%1 +. +MessageId=14424 +Language=English +%1 +. +MessageId=14425 +Language=English +%1 +. +MessageId=14426 +Language=English +%1 +. +MessageId=14427 +Language=English +%1 +. +MessageId=14428 +Language=English +%1 +. +MessageId=14429 +Language=English +%1 +. +MessageId=14430 +Language=English +%1 +. +MessageId=14431 +Language=English +%1 +. +MessageId=14432 +Language=English +%1 +. +MessageId=14433 +Language=English +%1 +. +MessageId=14434 +Language=English +%1 +. +MessageId=14435 +Language=English +%1 +. +MessageId=14436 +Language=English +%1 +. +MessageId=14437 +Language=English +%1 +. +MessageId=14438 +Language=English +%1 +. +MessageId=14439 +Language=English +%1 +. +MessageId=14440 +Language=English +%1 +. +MessageId=14441 +Language=English +%1 +. +MessageId=14442 +Language=English +%1 +. +MessageId=14443 +Language=English +%1 +. +MessageId=14444 +Language=English +%1 +. +MessageId=14445 +Language=English +%1 +. +MessageId=14446 +Language=English +%1 +. +MessageId=14447 +Language=English +%1 +. +MessageId=14448 +Language=English +%1 +. +MessageId=14449 +Language=English +%1 +. +MessageId=14450 +Language=English +%1 +. +MessageId=14451 +Language=English +%1 +. +MessageId=14452 +Language=English +%1 +. +MessageId=14453 +Language=English +%1 +. +MessageId=14454 +Language=English +%1 +. +MessageId=14455 +Language=English +%1 +. +MessageId=14456 +Language=English +%1 +. +MessageId=14457 +Language=English +%1 +. +MessageId=14458 +Language=English +%1 +. +MessageId=14459 +Language=English +%1 +. +MessageId=14460 +Language=English +%1 +. +MessageId=14461 +Language=English +%1 +. +MessageId=14462 +Language=English +%1 +. +MessageId=14463 +Language=English +%1 +. +MessageId=14464 +Language=English +%1 +. +MessageId=14465 +Language=English +%1 +. +MessageId=14466 +Language=English +%1 +. +MessageId=14467 +Language=English +%1 +. +MessageId=14468 +Language=English +%1 +. +MessageId=14469 +Language=English +%1 +. +MessageId=14470 +Language=English +%1 +. +MessageId=14471 +Language=English +%1 +. +MessageId=14472 +Language=English +%1 +. +MessageId=14473 +Language=English +%1 +. +MessageId=14474 +Language=English +%1 +. +MessageId=14475 +Language=English +%1 +. +MessageId=14476 +Language=English +%1 +. +MessageId=14477 +Language=English +%1 +. +MessageId=14478 +Language=English +%1 +. +MessageId=14479 +Language=English +%1 +. +MessageId=14480 +Language=English +%1 +. +MessageId=14481 +Language=English +%1 +. +MessageId=14482 +Language=English +%1 +. +MessageId=14483 +Language=English +%1 +. +MessageId=14484 +Language=English +%1 +. +MessageId=14485 +Language=English +%1 +. +MessageId=14486 +Language=English +%1 +. +MessageId=14487 +Language=English +%1 +. +MessageId=14488 +Language=English +%1 +. +MessageId=14489 +Language=English +%1 +. +MessageId=14490 +Language=English +%1 +. +MessageId=14491 +Language=English +%1 +. +MessageId=14492 +Language=English +%1 +. +MessageId=14493 +Language=English +%1 +. +MessageId=14494 +Language=English +%1 +. +MessageId=14495 +Language=English +%1 +. +MessageId=14496 +Language=English +%1 +. +MessageId=14497 +Language=English +%1 +. +MessageId=14498 +Language=English +%1 +. +MessageId=14499 +Language=English +%1 +. +MessageId=14500 +Language=English +%1 +. +MessageId=14501 +Language=English +%1 +. +MessageId=14502 +Language=English +%1 +. +MessageId=14503 +Language=English +%1 +. +MessageId=14504 +Language=English +%1 +. +MessageId=14505 +Language=English +%1 +. +MessageId=14506 +Language=English +%1 +. +MessageId=14507 +Language=English +%1 +. +MessageId=14508 +Language=English +%1 +. +MessageId=14509 +Language=English +%1 +. +MessageId=14510 +Language=English +%1 +. +MessageId=14511 +Language=English +%1 +. +MessageId=14512 +Language=English +%1 +. +MessageId=14513 +Language=English +%1 +. +MessageId=14514 +Language=English +%1 +. +MessageId=14515 +Language=English +%1 +. +MessageId=14516 +Language=English +%1 +. +MessageId=14517 +Language=English +%1 +. +MessageId=14518 +Language=English +%1 +. +MessageId=14519 +Language=English +%1 +. +MessageId=14520 +Language=English +%1 +. +MessageId=14521 +Language=English +%1 +. +MessageId=14522 +Language=English +%1 +. +MessageId=14523 +Language=English +%1 +. +MessageId=14524 +Language=English +%1 +. +MessageId=14525 +Language=English +%1 +. +MessageId=14526 +Language=English +%1 +. +MessageId=14527 +Language=English +%1 +. +MessageId=14528 +Language=English +%1 +. +MessageId=14529 +Language=English +%1 +. +MessageId=14530 +Language=English +%1 +. +MessageId=14531 +Language=English +%1 +. +MessageId=14532 +Language=English +%1 +. +MessageId=14533 +Language=English +%1 +. +MessageId=14534 +Language=English +%1 +. +MessageId=14535 +Language=English +%1 +. +MessageId=14536 +Language=English +%1 +. +MessageId=14537 +Language=English +%1 +. +MessageId=14538 +Language=English +%1 +. +MessageId=14539 +Language=English +%1 +. +MessageId=14540 +Language=English +%1 +. +MessageId=14541 +Language=English +%1 +. +MessageId=14542 +Language=English +%1 +. +MessageId=14543 +Language=English +%1 +. +MessageId=14544 +Language=English +%1 +. +MessageId=14545 +Language=English +%1 +. +MessageId=14546 +Language=English +%1 +. +MessageId=14547 +Language=English +%1 +. +MessageId=14548 +Language=English +%1 +. +MessageId=14549 +Language=English +%1 +. +MessageId=14550 +Language=English +%1 +. +MessageId=14551 +Language=English +%1 +. +MessageId=14552 +Language=English +%1 +. +MessageId=14553 +Language=English +%1 +. +MessageId=14554 +Language=English +%1 +. +MessageId=14555 +Language=English +%1 +. +MessageId=14556 +Language=English +%1 +. +MessageId=14557 +Language=English +%1 +. +MessageId=14558 +Language=English +%1 +. +MessageId=14559 +Language=English +%1 +. +MessageId=14560 +Language=English +%1 +. +MessageId=14561 +Language=English +%1 +. +MessageId=14562 +Language=English +%1 +. +MessageId=14563 +Language=English +%1 +. +MessageId=14564 +Language=English +%1 +. +MessageId=14565 +Language=English +%1 +. +MessageId=14566 +Language=English +%1 +. +MessageId=14567 +Language=English +%1 +. +MessageId=14568 +Language=English +%1 +. +MessageId=14569 +Language=English +%1 +. +MessageId=14570 +Language=English +%1 +. +MessageId=14571 +Language=English +%1 +. +MessageId=14572 +Language=English +%1 +. +MessageId=14573 +Language=English +%1 +. +MessageId=14574 +Language=English +%1 +. +MessageId=14575 +Language=English +%1 +. +MessageId=14576 +Language=English +%1 +. +MessageId=14577 +Language=English +%1 +. +MessageId=14578 +Language=English +%1 +. +MessageId=14579 +Language=English +%1 +. +MessageId=14580 +Language=English +%1 +. +MessageId=14581 +Language=English +%1 +. +MessageId=14582 +Language=English +%1 +. +MessageId=14583 +Language=English +%1 +. +MessageId=14584 +Language=English +%1 +. +MessageId=14585 +Language=English +%1 +. +MessageId=14586 +Language=English +%1 +. +MessageId=14587 +Language=English +%1 +. +MessageId=14588 +Language=English +%1 +. +MessageId=14589 +Language=English +%1 +. +MessageId=14590 +Language=English +%1 +. +MessageId=14591 +Language=English +%1 +. +MessageId=14592 +Language=English +%1 +. +MessageId=14593 +Language=English +%1 +. +MessageId=14594 +Language=English +%1 +. +MessageId=14595 +Language=English +%1 +. +MessageId=14596 +Language=English +%1 +. +MessageId=14597 +Language=English +%1 +. +MessageId=14598 +Language=English +%1 +. +MessageId=14599 +Language=English +%1 +. +MessageId=14600 +Language=English +%1 +. +MessageId=14601 +Language=English +%1 +. +MessageId=14602 +Language=English +%1 +. +MessageId=14603 +Language=English +%1 +. +MessageId=14604 +Language=English +%1 +. +MessageId=14605 +Language=English +%1 +. +MessageId=14606 +Language=English +%1 +. +MessageId=14607 +Language=English +%1 +. +MessageId=14608 +Language=English +%1 +. +MessageId=14609 +Language=English +%1 +. +MessageId=14610 +Language=English +%1 +. +MessageId=14611 +Language=English +%1 +. +MessageId=14612 +Language=English +%1 +. +MessageId=14613 +Language=English +%1 +. +MessageId=14614 +Language=English +%1 +. +MessageId=14615 +Language=English +%1 +. +MessageId=14616 +Language=English +%1 +. +MessageId=14617 +Language=English +%1 +. +MessageId=14618 +Language=English +%1 +. +MessageId=14619 +Language=English +%1 +. +MessageId=14620 +Language=English +%1 +. +MessageId=14621 +Language=English +%1 +. +MessageId=14622 +Language=English +%1 +. +MessageId=14623 +Language=English +%1 +. +MessageId=14624 +Language=English +%1 +. +MessageId=14625 +Language=English +%1 +. +MessageId=14626 +Language=English +%1 +. +MessageId=14627 +Language=English +%1 +. +MessageId=14628 +Language=English +%1 +. +MessageId=14629 +Language=English +%1 +. +MessageId=14630 +Language=English +%1 +. +MessageId=14631 +Language=English +%1 +. +MessageId=14632 +Language=English +%1 +. +MessageId=14633 +Language=English +%1 +. +MessageId=14634 +Language=English +%1 +. +MessageId=14635 +Language=English +%1 +. +MessageId=14636 +Language=English +%1 +. +MessageId=14637 +Language=English +%1 +. +MessageId=14638 +Language=English +%1 +. +MessageId=14639 +Language=English +%1 +. +MessageId=14640 +Language=English +%1 +. +MessageId=14641 +Language=English +%1 +. +MessageId=14642 +Language=English +%1 +. +MessageId=14643 +Language=English +%1 +. +MessageId=14644 +Language=English +%1 +. +MessageId=14645 +Language=English +%1 +. +MessageId=14646 +Language=English +%1 +. +MessageId=14647 +Language=English +%1 +. +MessageId=14648 +Language=English +%1 +. +MessageId=14649 +Language=English +%1 +. +MessageId=14650 +Language=English +%1 +. +MessageId=14651 +Language=English +%1 +. +MessageId=14652 +Language=English +%1 +. +MessageId=14653 +Language=English +%1 +. +MessageId=14654 +Language=English +%1 +. +MessageId=14655 +Language=English +%1 +. +MessageId=14656 +Language=English +%1 +. +MessageId=14657 +Language=English +%1 +. +MessageId=14658 +Language=English +%1 +. +MessageId=14659 +Language=English +%1 +. +MessageId=14660 +Language=English +%1 +. +MessageId=14661 +Language=English +%1 +. +MessageId=14662 +Language=English +%1 +. +MessageId=14663 +Language=English +%1 +. +MessageId=14664 +Language=English +%1 +. +MessageId=14665 +Language=English +%1 +. +MessageId=14666 +Language=English +%1 +. +MessageId=14667 +Language=English +%1 +. +MessageId=14668 +Language=English +%1 +. +MessageId=14669 +Language=English +%1 +. +MessageId=14670 +Language=English +%1 +. +MessageId=14671 +Language=English +%1 +. +MessageId=14672 +Language=English +%1 +. +MessageId=14673 +Language=English +%1 +. +MessageId=14674 +Language=English +%1 +. +MessageId=14675 +Language=English +%1 +. +MessageId=14676 +Language=English +%1 +. +MessageId=14677 +Language=English +%1 +. +MessageId=14678 +Language=English +%1 +. +MessageId=14679 +Language=English +%1 +. +MessageId=14680 +Language=English +%1 +. +MessageId=14681 +Language=English +%1 +. +MessageId=14682 +Language=English +%1 +. +MessageId=14683 +Language=English +%1 +. +MessageId=14684 +Language=English +%1 +. +MessageId=14685 +Language=English +%1 +. +MessageId=14686 +Language=English +%1 +. +MessageId=14687 +Language=English +%1 +. +MessageId=14688 +Language=English +%1 +. +MessageId=14689 +Language=English +%1 +. +MessageId=14690 +Language=English +%1 +. +MessageId=14691 +Language=English +%1 +. +MessageId=14692 +Language=English +%1 +. +MessageId=14693 +Language=English +%1 +. +MessageId=14694 +Language=English +%1 +. +MessageId=14695 +Language=English +%1 +. +MessageId=14696 +Language=English +%1 +. +MessageId=14697 +Language=English +%1 +. +MessageId=14698 +Language=English +%1 +. +MessageId=14699 +Language=English +%1 +. +MessageId=14700 +Language=English +%1 +. +MessageId=14701 +Language=English +%1 +. +MessageId=14702 +Language=English +%1 +. +MessageId=14703 +Language=English +%1 +. +MessageId=14704 +Language=English +%1 +. +MessageId=14705 +Language=English +%1 +. +MessageId=14706 +Language=English +%1 +. +MessageId=14707 +Language=English +%1 +. +MessageId=14708 +Language=English +%1 +. +MessageId=14709 +Language=English +%1 +. +MessageId=14710 +Language=English +%1 +. +MessageId=14711 +Language=English +%1 +. +MessageId=14712 +Language=English +%1 +. +MessageId=14713 +Language=English +%1 +. +MessageId=14714 +Language=English +%1 +. +MessageId=14715 +Language=English +%1 +. +MessageId=14716 +Language=English +%1 +. +MessageId=14717 +Language=English +%1 +. +MessageId=14718 +Language=English +%1 +. +MessageId=14719 +Language=English +%1 +. +MessageId=14720 +Language=English +%1 +. +MessageId=14721 +Language=English +%1 +. +MessageId=14722 +Language=English +%1 +. +MessageId=14723 +Language=English +%1 +. +MessageId=14724 +Language=English +%1 +. +MessageId=14725 +Language=English +%1 +. +MessageId=14726 +Language=English +%1 +. +MessageId=14727 +Language=English +%1 +. +MessageId=14728 +Language=English +%1 +. +MessageId=14729 +Language=English +%1 +. +MessageId=14730 +Language=English +%1 +. +MessageId=14731 +Language=English +%1 +. +MessageId=14732 +Language=English +%1 +. +MessageId=14733 +Language=English +%1 +. +MessageId=14734 +Language=English +%1 +. +MessageId=14735 +Language=English +%1 +. +MessageId=14736 +Language=English +%1 +. +MessageId=14737 +Language=English +%1 +. +MessageId=14738 +Language=English +%1 +. +MessageId=14739 +Language=English +%1 +. +MessageId=14740 +Language=English +%1 +. +MessageId=14741 +Language=English +%1 +. +MessageId=14742 +Language=English +%1 +. +MessageId=14743 +Language=English +%1 +. +MessageId=14744 +Language=English +%1 +. +MessageId=14745 +Language=English +%1 +. +MessageId=14746 +Language=English +%1 +. +MessageId=14747 +Language=English +%1 +. +MessageId=14748 +Language=English +%1 +. +MessageId=14749 +Language=English +%1 +. +MessageId=14750 +Language=English +%1 +. +MessageId=14751 +Language=English +%1 +. +MessageId=14752 +Language=English +%1 +. +MessageId=14753 +Language=English +%1 +. +MessageId=14754 +Language=English +%1 +. +MessageId=14755 +Language=English +%1 +. +MessageId=14756 +Language=English +%1 +. +MessageId=14757 +Language=English +%1 +. +MessageId=14758 +Language=English +%1 +. +MessageId=14759 +Language=English +%1 +. +MessageId=14760 +Language=English +%1 +. +MessageId=14761 +Language=English +%1 +. +MessageId=14762 +Language=English +%1 +. +MessageId=14763 +Language=English +%1 +. +MessageId=14764 +Language=English +%1 +. +MessageId=14765 +Language=English +%1 +. +MessageId=14766 +Language=English +%1 +. +MessageId=14767 +Language=English +%1 +. +MessageId=14768 +Language=English +%1 +. +MessageId=14769 +Language=English +%1 +. +MessageId=14770 +Language=English +%1 +. +MessageId=14771 +Language=English +%1 +. +MessageId=14772 +Language=English +%1 +. +MessageId=14773 +Language=English +%1 +. +MessageId=14774 +Language=English +%1 +. +MessageId=14775 +Language=English +%1 +. +MessageId=14776 +Language=English +%1 +. +MessageId=14777 +Language=English +%1 +. +MessageId=14778 +Language=English +%1 +. +MessageId=14779 +Language=English +%1 +. +MessageId=14780 +Language=English +%1 +. +MessageId=14781 +Language=English +%1 +. +MessageId=14782 +Language=English +%1 +. +MessageId=14783 +Language=English +%1 +. +MessageId=14784 +Language=English +%1 +. +MessageId=14785 +Language=English +%1 +. +MessageId=14786 +Language=English +%1 +. +MessageId=14787 +Language=English +%1 +. +MessageId=14788 +Language=English +%1 +. +MessageId=14789 +Language=English +%1 +. +MessageId=14790 +Language=English +%1 +. +MessageId=14791 +Language=English +%1 +. +MessageId=14792 +Language=English +%1 +. +MessageId=14793 +Language=English +%1 +. +MessageId=14794 +Language=English +%1 +. +MessageId=14795 +Language=English +%1 +. +MessageId=14796 +Language=English +%1 +. +MessageId=14797 +Language=English +%1 +. +MessageId=14798 +Language=English +%1 +. +MessageId=14799 +Language=English +%1 +. +MessageId=14800 +Language=English +%1 +. +MessageId=14801 +Language=English +%1 +. +MessageId=14802 +Language=English +%1 +. +MessageId=14803 +Language=English +%1 +. +MessageId=14804 +Language=English +%1 +. +MessageId=14805 +Language=English +%1 +. +MessageId=14806 +Language=English +%1 +. +MessageId=14807 +Language=English +%1 +. +MessageId=14808 +Language=English +%1 +. +MessageId=14809 +Language=English +%1 +. +MessageId=14810 +Language=English +%1 +. +MessageId=14811 +Language=English +%1 +. +MessageId=14812 +Language=English +%1 +. +MessageId=14813 +Language=English +%1 +. +MessageId=14814 +Language=English +%1 +. +MessageId=14815 +Language=English +%1 +. +MessageId=14816 +Language=English +%1 +. +MessageId=14817 +Language=English +%1 +. +MessageId=14818 +Language=English +%1 +. +MessageId=14819 +Language=English +%1 +. +MessageId=14820 +Language=English +%1 +. +MessageId=14821 +Language=English +%1 +. +MessageId=14822 +Language=English +%1 +. +MessageId=14823 +Language=English +%1 +. +MessageId=14824 +Language=English +%1 +. +MessageId=14825 +Language=English +%1 +. +MessageId=14826 +Language=English +%1 +. +MessageId=14827 +Language=English +%1 +. +MessageId=14828 +Language=English +%1 +. +MessageId=14829 +Language=English +%1 +. +MessageId=14830 +Language=English +%1 +. +MessageId=14831 +Language=English +%1 +. +MessageId=14832 +Language=English +%1 +. +MessageId=14833 +Language=English +%1 +. +MessageId=14834 +Language=English +%1 +. +MessageId=14835 +Language=English +%1 +. +MessageId=14836 +Language=English +%1 +. +MessageId=14837 +Language=English +%1 +. +MessageId=14838 +Language=English +%1 +. +MessageId=14839 +Language=English +%1 +. +MessageId=14840 +Language=English +%1 +. +MessageId=14841 +Language=English +%1 +. +MessageId=14842 +Language=English +%1 +. +MessageId=14843 +Language=English +%1 +. +MessageId=14844 +Language=English +%1 +. +MessageId=14845 +Language=English +%1 +. +MessageId=14846 +Language=English +%1 +. +MessageId=14847 +Language=English +%1 +. +MessageId=14848 +Language=English +%1 +. +MessageId=14849 +Language=English +%1 +. +MessageId=14850 +Language=English +%1 +. +MessageId=14851 +Language=English +%1 +. +MessageId=14852 +Language=English +%1 +. +MessageId=14853 +Language=English +%1 +. +MessageId=14854 +Language=English +%1 +. +MessageId=14855 +Language=English +%1 +. +MessageId=14856 +Language=English +%1 +. +MessageId=14857 +Language=English +%1 +. +MessageId=14858 +Language=English +%1 +. +MessageId=14859 +Language=English +%1 +. +MessageId=14860 +Language=English +%1 +. +MessageId=14861 +Language=English +%1 +. +MessageId=14862 +Language=English +%1 +. +MessageId=14863 +Language=English +%1 +. +MessageId=14864 +Language=English +%1 +. +MessageId=14865 +Language=English +%1 +. +MessageId=14866 +Language=English +%1 +. +MessageId=14867 +Language=English +%1 +. +MessageId=14868 +Language=English +%1 +. +MessageId=14869 +Language=English +%1 +. +MessageId=14870 +Language=English +%1 +. +MessageId=14871 +Language=English +%1 +. +MessageId=14872 +Language=English +%1 +. +MessageId=14873 +Language=English +%1 +. +MessageId=14874 +Language=English +%1 +. +MessageId=14875 +Language=English +%1 +. +MessageId=14876 +Language=English +%1 +. +MessageId=14877 +Language=English +%1 +. +MessageId=14878 +Language=English +%1 +. +MessageId=14879 +Language=English +%1 +. +MessageId=14880 +Language=English +%1 +. +MessageId=14881 +Language=English +%1 +. +MessageId=14882 +Language=English +%1 +. +MessageId=14883 +Language=English +%1 +. +MessageId=14884 +Language=English +%1 +. +MessageId=14885 +Language=English +%1 +. +MessageId=14886 +Language=English +%1 +. +MessageId=14887 +Language=English +%1 +. +MessageId=14888 +Language=English +%1 +. +MessageId=14889 +Language=English +%1 +. +MessageId=14890 +Language=English +%1 +. +MessageId=14891 +Language=English +%1 +. +MessageId=14892 +Language=English +%1 +. +MessageId=14893 +Language=English +%1 +. +MessageId=14894 +Language=English +%1 +. +MessageId=14895 +Language=English +%1 +. +MessageId=14896 +Language=English +%1 +. +MessageId=14897 +Language=English +%1 +. +MessageId=14898 +Language=English +%1 +. +MessageId=14899 +Language=English +%1 +. +MessageId=14900 +Language=English +%1 +. +MessageId=14901 +Language=English +%1 +. +MessageId=14902 +Language=English +%1 +. +MessageId=14903 +Language=English +%1 +. +MessageId=14904 +Language=English +%1 +. +MessageId=14905 +Language=English +%1 +. +MessageId=14906 +Language=English +%1 +. +MessageId=14907 +Language=English +%1 +. +MessageId=14908 +Language=English +%1 +. +MessageId=14909 +Language=English +%1 +. +MessageId=14910 +Language=English +%1 +. +MessageId=14911 +Language=English +%1 +. +MessageId=14912 +Language=English +%1 +. +MessageId=14913 +Language=English +%1 +. +MessageId=14914 +Language=English +%1 +. +MessageId=14915 +Language=English +%1 +. +MessageId=14916 +Language=English +%1 +. +MessageId=14917 +Language=English +%1 +. +MessageId=14918 +Language=English +%1 +. +MessageId=14919 +Language=English +%1 +. +MessageId=14920 +Language=English +%1 +. +MessageId=14921 +Language=English +%1 +. +MessageId=14922 +Language=English +%1 +. +MessageId=14923 +Language=English +%1 +. +MessageId=14924 +Language=English +%1 +. +MessageId=14925 +Language=English +%1 +. +MessageId=14926 +Language=English +%1 +. +MessageId=14927 +Language=English +%1 +. +MessageId=14928 +Language=English +%1 +. +MessageId=14929 +Language=English +%1 +. +MessageId=14930 +Language=English +%1 +. +MessageId=14931 +Language=English +%1 +. +MessageId=14932 +Language=English +%1 +. +MessageId=14933 +Language=English +%1 +. +MessageId=14934 +Language=English +%1 +. +MessageId=14935 +Language=English +%1 +. +MessageId=14936 +Language=English +%1 +. +MessageId=14937 +Language=English +%1 +. +MessageId=14938 +Language=English +%1 +. +MessageId=14939 +Language=English +%1 +. +MessageId=14940 +Language=English +%1 +. +MessageId=14941 +Language=English +%1 +. +MessageId=14942 +Language=English +%1 +. +MessageId=14943 +Language=English +%1 +. +MessageId=14944 +Language=English +%1 +. +MessageId=14945 +Language=English +%1 +. +MessageId=14946 +Language=English +%1 +. +MessageId=14947 +Language=English +%1 +. +MessageId=14948 +Language=English +%1 +. +MessageId=14949 +Language=English +%1 +. +MessageId=14950 +Language=English +%1 +. +MessageId=14951 +Language=English +%1 +. +MessageId=14952 +Language=English +%1 +. +MessageId=14953 +Language=English +%1 +. +MessageId=14954 +Language=English +%1 +. +MessageId=14955 +Language=English +%1 +. +MessageId=14956 +Language=English +%1 +. +MessageId=14957 +Language=English +%1 +. +MessageId=14958 +Language=English +%1 +. +MessageId=14959 +Language=English +%1 +. +MessageId=14960 +Language=English +%1 +. +MessageId=14961 +Language=English +%1 +. +MessageId=14962 +Language=English +%1 +. +MessageId=14963 +Language=English +%1 +. +MessageId=14964 +Language=English +%1 +. +MessageId=14965 +Language=English +%1 +. +MessageId=14966 +Language=English +%1 +. +MessageId=14967 +Language=English +%1 +. +MessageId=14968 +Language=English +%1 +. +MessageId=14969 +Language=English +%1 +. +MessageId=14970 +Language=English +%1 +. +MessageId=14971 +Language=English +%1 +. +MessageId=14972 +Language=English +%1 +. +MessageId=14973 +Language=English +%1 +. +MessageId=14974 +Language=English +%1 +. +MessageId=14975 +Language=English +%1 +. +MessageId=14976 +Language=English +%1 +. +MessageId=14977 +Language=English +%1 +. +MessageId=14978 +Language=English +%1 +. +MessageId=14979 +Language=English +%1 +. +MessageId=14980 +Language=English +%1 +. +MessageId=14981 +Language=English +%1 +. +MessageId=14982 +Language=English +%1 +. +MessageId=14983 +Language=English +%1 +. +MessageId=14984 +Language=English +%1 +. +MessageId=14985 +Language=English +%1 +. +MessageId=14986 +Language=English +%1 +. +MessageId=14987 +Language=English +%1 +. +MessageId=14988 +Language=English +%1 +. +MessageId=14989 +Language=English +%1 +. +MessageId=14990 +Language=English +%1 +. +MessageId=14991 +Language=English +%1 +. +MessageId=14992 +Language=English +%1 +. +MessageId=14993 +Language=English +%1 +. +MessageId=14994 +Language=English +%1 +. +MessageId=14995 +Language=English +%1 +. +MessageId=14996 +Language=English +%1 +. +MessageId=14997 +Language=English +%1 +. +MessageId=14998 +Language=English +%1 +. +MessageId=14999 +Language=English +%1 +. +MessageId=15000 +Language=English +%1 +. +MessageId=15001 +Language=English +%1 +. +MessageId=15002 +Language=English +%1 +. +MessageId=15003 +Language=English +%1 +. +MessageId=15004 +Language=English +%1 +. +MessageId=15005 +Language=English +%1 +. +MessageId=15006 +Language=English +%1 +. +MessageId=15007 +Language=English +%1 +. +MessageId=15008 +Language=English +%1 +. +MessageId=15009 +Language=English +%1 +. +MessageId=15010 +Language=English +%1 +. +MessageId=15011 +Language=English +%1 +. +MessageId=15012 +Language=English +%1 +. +MessageId=15013 +Language=English +%1 +. +MessageId=15014 +Language=English +%1 +. +MessageId=15015 +Language=English +%1 +. +MessageId=15016 +Language=English +%1 +. +MessageId=15017 +Language=English +%1 +. +MessageId=15018 +Language=English +%1 +. +MessageId=15019 +Language=English +%1 +. +MessageId=15020 +Language=English +%1 +. +MessageId=15021 +Language=English +%1 +. +MessageId=15022 +Language=English +%1 +. +MessageId=15023 +Language=English +%1 +. +MessageId=15024 +Language=English +%1 +. +MessageId=15025 +Language=English +%1 +. +MessageId=15026 +Language=English +%1 +. +MessageId=15027 +Language=English +%1 +. +MessageId=15028 +Language=English +%1 +. +MessageId=15029 +Language=English +%1 +. +MessageId=15030 +Language=English +%1 +. +MessageId=15031 +Language=English +%1 +. +MessageId=15032 +Language=English +%1 +. +MessageId=15033 +Language=English +%1 +. +MessageId=15034 +Language=English +%1 +. +MessageId=15035 +Language=English +%1 +. +MessageId=15036 +Language=English +%1 +. +MessageId=15037 +Language=English +%1 +. +MessageId=15038 +Language=English +%1 +. +MessageId=15039 +Language=English +%1 +. +MessageId=15040 +Language=English +%1 +. +MessageId=15041 +Language=English +%1 +. +MessageId=15042 +Language=English +%1 +. +MessageId=15043 +Language=English +%1 +. +MessageId=15044 +Language=English +%1 +. +MessageId=15045 +Language=English +%1 +. +MessageId=15046 +Language=English +%1 +. +MessageId=15047 +Language=English +%1 +. +MessageId=15048 +Language=English +%1 +. +MessageId=15049 +Language=English +%1 +. +MessageId=15050 +Language=English +%1 +. +MessageId=15051 +Language=English +%1 +. +MessageId=15052 +Language=English +%1 +. +MessageId=15053 +Language=English +%1 +. +MessageId=15054 +Language=English +%1 +. +MessageId=15055 +Language=English +%1 +. +MessageId=15056 +Language=English +%1 +. +MessageId=15057 +Language=English +%1 +. +MessageId=15058 +Language=English +%1 +. +MessageId=15059 +Language=English +%1 +. +MessageId=15060 +Language=English +%1 +. +MessageId=15061 +Language=English +%1 +. +MessageId=15062 +Language=English +%1 +. +MessageId=15063 +Language=English +%1 +. +MessageId=15064 +Language=English +%1 +. +MessageId=15065 +Language=English +%1 +. +MessageId=15066 +Language=English +%1 +. +MessageId=15067 +Language=English +%1 +. +MessageId=15068 +Language=English +%1 +. +MessageId=15069 +Language=English +%1 +. +MessageId=15070 +Language=English +%1 +. +MessageId=15071 +Language=English +%1 +. +MessageId=15072 +Language=English +%1 +. +MessageId=15073 +Language=English +%1 +. +MessageId=15074 +Language=English +%1 +. +MessageId=15075 +Language=English +%1 +. +MessageId=15076 +Language=English +%1 +. +MessageId=15077 +Language=English +%1 +. +MessageId=15078 +Language=English +%1 +. +MessageId=15079 +Language=English +%1 +. +MessageId=15080 +Language=English +%1 +. +MessageId=15081 +Language=English +%1 +. +MessageId=15082 +Language=English +%1 +. +MessageId=15083 +Language=English +%1 +. +MessageId=15084 +Language=English +%1 +. +MessageId=15085 +Language=English +%1 +. +MessageId=15086 +Language=English +%1 +. +MessageId=15087 +Language=English +%1 +. +MessageId=15088 +Language=English +%1 +. +MessageId=15089 +Language=English +%1 +. +MessageId=15090 +Language=English +%1 +. +MessageId=15091 +Language=English +%1 +. +MessageId=15092 +Language=English +%1 +. +MessageId=15093 +Language=English +%1 +. +MessageId=15094 +Language=English +%1 +. +MessageId=15095 +Language=English +%1 +. +MessageId=15096 +Language=English +%1 +. +MessageId=15097 +Language=English +%1 +. +MessageId=15098 +Language=English +%1 +. +MessageId=15099 +Language=English +%1 +. +MessageId=15100 +Language=English +%1 +. +MessageId=15101 +Language=English +%1 +. +MessageId=15102 +Language=English +%1 +. +MessageId=15103 +Language=English +%1 +. +MessageId=15104 +Language=English +%1 +. +MessageId=15105 +Language=English +%1 +. +MessageId=15106 +Language=English +%1 +. +MessageId=15107 +Language=English +%1 +. +MessageId=15108 +Language=English +%1 +. +MessageId=15109 +Language=English +%1 +. +MessageId=15110 +Language=English +%1 +. +MessageId=15111 +Language=English +%1 +. +MessageId=15112 +Language=English +%1 +. +MessageId=15113 +Language=English +%1 +. +MessageId=15114 +Language=English +%1 +. +MessageId=15115 +Language=English +%1 +. +MessageId=15116 +Language=English +%1 +. +MessageId=15117 +Language=English +%1 +. +MessageId=15118 +Language=English +%1 +. +MessageId=15119 +Language=English +%1 +. +MessageId=15120 +Language=English +%1 +. +MessageId=15121 +Language=English +%1 +. +MessageId=15122 +Language=English +%1 +. +MessageId=15123 +Language=English +%1 +. +MessageId=15124 +Language=English +%1 +. +MessageId=15125 +Language=English +%1 +. +MessageId=15126 +Language=English +%1 +. +MessageId=15127 +Language=English +%1 +. +MessageId=15128 +Language=English +%1 +. +MessageId=15129 +Language=English +%1 +. +MessageId=15130 +Language=English +%1 +. +MessageId=15131 +Language=English +%1 +. +MessageId=15132 +Language=English +%1 +. +MessageId=15133 +Language=English +%1 +. +MessageId=15134 +Language=English +%1 +. +MessageId=15135 +Language=English +%1 +. +MessageId=15136 +Language=English +%1 +. +MessageId=15137 +Language=English +%1 +. +MessageId=15138 +Language=English +%1 +. +MessageId=15139 +Language=English +%1 +. +MessageId=15140 +Language=English +%1 +. +MessageId=15141 +Language=English +%1 +. +MessageId=15142 +Language=English +%1 +. +MessageId=15143 +Language=English +%1 +. +MessageId=15144 +Language=English +%1 +. +MessageId=15145 +Language=English +%1 +. +MessageId=15146 +Language=English +%1 +. +MessageId=15147 +Language=English +%1 +. +MessageId=15148 +Language=English +%1 +. +MessageId=15149 +Language=English +%1 +. +MessageId=15150 +Language=English +%1 +. +MessageId=15151 +Language=English +%1 +. +MessageId=15152 +Language=English +%1 +. +MessageId=15153 +Language=English +%1 +. +MessageId=15154 +Language=English +%1 +. +MessageId=15155 +Language=English +%1 +. +MessageId=15156 +Language=English +%1 +. +MessageId=15157 +Language=English +%1 +. +MessageId=15158 +Language=English +%1 +. +MessageId=15159 +Language=English +%1 +. +MessageId=15160 +Language=English +%1 +. +MessageId=15161 +Language=English +%1 +. +MessageId=15162 +Language=English +%1 +. +MessageId=15163 +Language=English +%1 +. +MessageId=15164 +Language=English +%1 +. +MessageId=15165 +Language=English +%1 +. +MessageId=15166 +Language=English +%1 +. +MessageId=15167 +Language=English +%1 +. +MessageId=15168 +Language=English +%1 +. +MessageId=15169 +Language=English +%1 +. +MessageId=15170 +Language=English +%1 +. +MessageId=15171 +Language=English +%1 +. +MessageId=15172 +Language=English +%1 +. +MessageId=15173 +Language=English +%1 +. +MessageId=15174 +Language=English +%1 +. +MessageId=15175 +Language=English +%1 +. +MessageId=15176 +Language=English +%1 +. +MessageId=15177 +Language=English +%1 +. +MessageId=15178 +Language=English +%1 +. +MessageId=15179 +Language=English +%1 +. +MessageId=15180 +Language=English +%1 +. +MessageId=15181 +Language=English +%1 +. +MessageId=15182 +Language=English +%1 +. +MessageId=15183 +Language=English +%1 +. +MessageId=15184 +Language=English +%1 +. +MessageId=15185 +Language=English +%1 +. +MessageId=15186 +Language=English +%1 +. +MessageId=15187 +Language=English +%1 +. +MessageId=15188 +Language=English +%1 +. +MessageId=15189 +Language=English +%1 +. +MessageId=15190 +Language=English +%1 +. +MessageId=15191 +Language=English +%1 +. +MessageId=15192 +Language=English +%1 +. +MessageId=15193 +Language=English +%1 +. +MessageId=15194 +Language=English +%1 +. +MessageId=15195 +Language=English +%1 +. +MessageId=15196 +Language=English +%1 +. +MessageId=15197 +Language=English +%1 +. +MessageId=15198 +Language=English +%1 +. +MessageId=15199 +Language=English +%1 +. +MessageId=15200 +Language=English +%1 +. +MessageId=15201 +Language=English +%1 +. +MessageId=15202 +Language=English +%1 +. +MessageId=15203 +Language=English +%1 +. +MessageId=15204 +Language=English +%1 +. +MessageId=15205 +Language=English +%1 +. +MessageId=15206 +Language=English +%1 +. +MessageId=15207 +Language=English +%1 +. +MessageId=15208 +Language=English +%1 +. +MessageId=15209 +Language=English +%1 +. +MessageId=15210 +Language=English +%1 +. +MessageId=15211 +Language=English +%1 +. +MessageId=15212 +Language=English +%1 +. +MessageId=15213 +Language=English +%1 +. +MessageId=15214 +Language=English +%1 +. +MessageId=15215 +Language=English +%1 +. +MessageId=15216 +Language=English +%1 +. +MessageId=15217 +Language=English +%1 +. +MessageId=15218 +Language=English +%1 +. +MessageId=15219 +Language=English +%1 +. +MessageId=15220 +Language=English +%1 +. +MessageId=15221 +Language=English +%1 +. +MessageId=15222 +Language=English +%1 +. +MessageId=15223 +Language=English +%1 +. +MessageId=15224 +Language=English +%1 +. +MessageId=15225 +Language=English +%1 +. +MessageId=15226 +Language=English +%1 +. +MessageId=15227 +Language=English +%1 +. +MessageId=15228 +Language=English +%1 +. +MessageId=15229 +Language=English +%1 +. +MessageId=15230 +Language=English +%1 +. +MessageId=15231 +Language=English +%1 +. +MessageId=15232 +Language=English +%1 +. +MessageId=15233 +Language=English +%1 +. +MessageId=15234 +Language=English +%1 +. +MessageId=15235 +Language=English +%1 +. +MessageId=15236 +Language=English +%1 +. +MessageId=15237 +Language=English +%1 +. +MessageId=15238 +Language=English +%1 +. +MessageId=15239 +Language=English +%1 +. +MessageId=15240 +Language=English +%1 +. +MessageId=15241 +Language=English +%1 +. +MessageId=15242 +Language=English +%1 +. +MessageId=15243 +Language=English +%1 +. +MessageId=15244 +Language=English +%1 +. +MessageId=15245 +Language=English +%1 +. +MessageId=15246 +Language=English +%1 +. +MessageId=15247 +Language=English +%1 +. +MessageId=15248 +Language=English +%1 +. +MessageId=15249 +Language=English +%1 +. +MessageId=15250 +Language=English +%1 +. +MessageId=15251 +Language=English +%1 +. +MessageId=15252 +Language=English +%1 +. +MessageId=15253 +Language=English +%1 +. +MessageId=15254 +Language=English +%1 +. +MessageId=15255 +Language=English +%1 +. +MessageId=15256 +Language=English +%1 +. +MessageId=15257 +Language=English +%1 +. +MessageId=15258 +Language=English +%1 +. +MessageId=15259 +Language=English +%1 +. +MessageId=15260 +Language=English +%1 +. +MessageId=15261 +Language=English +%1 +. +MessageId=15262 +Language=English +%1 +. +MessageId=15263 +Language=English +%1 +. +MessageId=15264 +Language=English +%1 +. +MessageId=15265 +Language=English +%1 +. +MessageId=15266 +Language=English +%1 +. +MessageId=15267 +Language=English +%1 +. +MessageId=15268 +Language=English +%1 +. +MessageId=15269 +Language=English +%1 +. +MessageId=15270 +Language=English +%1 +. +MessageId=15271 +Language=English +%1 +. +MessageId=15272 +Language=English +%1 +. +MessageId=15273 +Language=English +%1 +. +MessageId=15274 +Language=English +%1 +. +MessageId=15275 +Language=English +%1 +. +MessageId=15276 +Language=English +%1 +. +MessageId=15277 +Language=English +%1 +. +MessageId=15278 +Language=English +%1 +. +MessageId=15279 +Language=English +%1 +. +MessageId=15280 +Language=English +%1 +. +MessageId=15281 +Language=English +%1 +. +MessageId=15282 +Language=English +%1 +. +MessageId=15283 +Language=English +%1 +. +MessageId=15284 +Language=English +%1 +. +MessageId=15285 +Language=English +%1 +. +MessageId=15286 +Language=English +%1 +. +MessageId=15287 +Language=English +%1 +. +MessageId=15288 +Language=English +%1 +. +MessageId=15289 +Language=English +%1 +. +MessageId=15290 +Language=English +%1 +. +MessageId=15291 +Language=English +%1 +. +MessageId=15292 +Language=English +%1 +. +MessageId=15293 +Language=English +%1 +. +MessageId=15294 +Language=English +%1 +. +MessageId=15295 +Language=English +%1 +. +MessageId=15296 +Language=English +%1 +. +MessageId=15297 +Language=English +%1 +. +MessageId=15298 +Language=English +%1 +. +MessageId=15299 +Language=English +%1 +. +MessageId=15300 +Language=English +%1 +. +MessageId=15301 +Language=English +%1 +. +MessageId=15302 +Language=English +%1 +. +MessageId=15303 +Language=English +%1 +. +MessageId=15304 +Language=English +%1 +. +MessageId=15305 +Language=English +%1 +. +MessageId=15306 +Language=English +%1 +. +MessageId=15307 +Language=English +%1 +. +MessageId=15308 +Language=English +%1 +. +MessageId=15309 +Language=English +%1 +. +MessageId=15310 +Language=English +%1 +. +MessageId=15311 +Language=English +%1 +. +MessageId=15312 +Language=English +%1 +. +MessageId=15313 +Language=English +%1 +. +MessageId=15314 +Language=English +%1 +. +MessageId=15315 +Language=English +%1 +. +MessageId=15316 +Language=English +%1 +. +MessageId=15317 +Language=English +%1 +. +MessageId=15318 +Language=English +%1 +. +MessageId=15319 +Language=English +%1 +. +MessageId=15320 +Language=English +%1 +. +MessageId=15321 +Language=English +%1 +. +MessageId=15322 +Language=English +%1 +. +MessageId=15323 +Language=English +%1 +. +MessageId=15324 +Language=English +%1 +. +MessageId=15325 +Language=English +%1 +. +MessageId=15326 +Language=English +%1 +. +MessageId=15327 +Language=English +%1 +. +MessageId=15328 +Language=English +%1 +. +MessageId=15329 +Language=English +%1 +. +MessageId=15330 +Language=English +%1 +. +MessageId=15331 +Language=English +%1 +. +MessageId=15332 +Language=English +%1 +. +MessageId=15333 +Language=English +%1 +. +MessageId=15334 +Language=English +%1 +. +MessageId=15335 +Language=English +%1 +. +MessageId=15336 +Language=English +%1 +. +MessageId=15337 +Language=English +%1 +. +MessageId=15338 +Language=English +%1 +. +MessageId=15339 +Language=English +%1 +. +MessageId=15340 +Language=English +%1 +. +MessageId=15341 +Language=English +%1 +. +MessageId=15342 +Language=English +%1 +. +MessageId=15343 +Language=English +%1 +. +MessageId=15344 +Language=English +%1 +. +MessageId=15345 +Language=English +%1 +. +MessageId=15346 +Language=English +%1 +. +MessageId=15347 +Language=English +%1 +. +MessageId=15348 +Language=English +%1 +. +MessageId=15349 +Language=English +%1 +. +MessageId=15350 +Language=English +%1 +. +MessageId=15351 +Language=English +%1 +. +MessageId=15352 +Language=English +%1 +. +MessageId=15353 +Language=English +%1 +. +MessageId=15354 +Language=English +%1 +. +MessageId=15355 +Language=English +%1 +. +MessageId=15356 +Language=English +%1 +. +MessageId=15357 +Language=English +%1 +. +MessageId=15358 +Language=English +%1 +. +MessageId=15359 +Language=English +%1 +. +MessageId=15360 +Language=English +%1 +. +MessageId=15361 +Language=English +%1 +. +MessageId=15362 +Language=English +%1 +. +MessageId=15363 +Language=English +%1 +. +MessageId=15364 +Language=English +%1 +. +MessageId=15365 +Language=English +%1 +. +MessageId=15366 +Language=English +%1 +. +MessageId=15367 +Language=English +%1 +. +MessageId=15368 +Language=English +%1 +. +MessageId=15369 +Language=English +%1 +. +MessageId=15370 +Language=English +%1 +. +MessageId=15371 +Language=English +%1 +. +MessageId=15372 +Language=English +%1 +. +MessageId=15373 +Language=English +%1 +. +MessageId=15374 +Language=English +%1 +. +MessageId=15375 +Language=English +%1 +. +MessageId=15376 +Language=English +%1 +. +MessageId=15377 +Language=English +%1 +. +MessageId=15378 +Language=English +%1 +. +MessageId=15379 +Language=English +%1 +. +MessageId=15380 +Language=English +%1 +. +MessageId=15381 +Language=English +%1 +. +MessageId=15382 +Language=English +%1 +. +MessageId=15383 +Language=English +%1 +. +MessageId=15384 +Language=English +%1 +. +MessageId=15385 +Language=English +%1 +. +MessageId=15386 +Language=English +%1 +. +MessageId=15387 +Language=English +%1 +. +MessageId=15388 +Language=English +%1 +. +MessageId=15389 +Language=English +%1 +. +MessageId=15390 +Language=English +%1 +. +MessageId=15391 +Language=English +%1 +. +MessageId=15392 +Language=English +%1 +. +MessageId=15393 +Language=English +%1 +. +MessageId=15394 +Language=English +%1 +. +MessageId=15395 +Language=English +%1 +. +MessageId=15396 +Language=English +%1 +. +MessageId=15397 +Language=English +%1 +. +MessageId=15398 +Language=English +%1 +. +MessageId=15399 +Language=English +%1 +. +MessageId=15400 +Language=English +%1 +. +MessageId=15401 +Language=English +%1 +. +MessageId=15402 +Language=English +%1 +. +MessageId=15403 +Language=English +%1 +. +MessageId=15404 +Language=English +%1 +. +MessageId=15405 +Language=English +%1 +. +MessageId=15406 +Language=English +%1 +. +MessageId=15407 +Language=English +%1 +. +MessageId=15408 +Language=English +%1 +. +MessageId=15409 +Language=English +%1 +. +MessageId=15410 +Language=English +%1 +. +MessageId=15411 +Language=English +%1 +. +MessageId=15412 +Language=English +%1 +. +MessageId=15413 +Language=English +%1 +. +MessageId=15414 +Language=English +%1 +. +MessageId=15415 +Language=English +%1 +. +MessageId=15416 +Language=English +%1 +. +MessageId=15417 +Language=English +%1 +. +MessageId=15418 +Language=English +%1 +. +MessageId=15419 +Language=English +%1 +. +MessageId=15420 +Language=English +%1 +. +MessageId=15421 +Language=English +%1 +. +MessageId=15422 +Language=English +%1 +. +MessageId=15423 +Language=English +%1 +. +MessageId=15424 +Language=English +%1 +. +MessageId=15425 +Language=English +%1 +. +MessageId=15426 +Language=English +%1 +. +MessageId=15427 +Language=English +%1 +. +MessageId=15428 +Language=English +%1 +. +MessageId=15429 +Language=English +%1 +. +MessageId=15430 +Language=English +%1 +. +MessageId=15431 +Language=English +%1 +. +MessageId=15432 +Language=English +%1 +. +MessageId=15433 +Language=English +%1 +. +MessageId=15434 +Language=English +%1 +. +MessageId=15435 +Language=English +%1 +. +MessageId=15436 +Language=English +%1 +. +MessageId=15437 +Language=English +%1 +. +MessageId=15438 +Language=English +%1 +. +MessageId=15439 +Language=English +%1 +. +MessageId=15440 +Language=English +%1 +. +MessageId=15441 +Language=English +%1 +. +MessageId=15442 +Language=English +%1 +. +MessageId=15443 +Language=English +%1 +. +MessageId=15444 +Language=English +%1 +. +MessageId=15445 +Language=English +%1 +. +MessageId=15446 +Language=English +%1 +. +MessageId=15447 +Language=English +%1 +. +MessageId=15448 +Language=English +%1 +. +MessageId=15449 +Language=English +%1 +. +MessageId=15450 +Language=English +%1 +. +MessageId=15451 +Language=English +%1 +. +MessageId=15452 +Language=English +%1 +. +MessageId=15453 +Language=English +%1 +. +MessageId=15454 +Language=English +%1 +. +MessageId=15455 +Language=English +%1 +. +MessageId=15456 +Language=English +%1 +. +MessageId=15457 +Language=English +%1 +. +MessageId=15458 +Language=English +%1 +. +MessageId=15459 +Language=English +%1 +. +MessageId=15460 +Language=English +%1 +. +MessageId=15461 +Language=English +%1 +. +MessageId=15462 +Language=English +%1 +. +MessageId=15463 +Language=English +%1 +. +MessageId=15464 +Language=English +%1 +. +MessageId=15465 +Language=English +%1 +. +MessageId=15466 +Language=English +%1 +. +MessageId=15467 +Language=English +%1 +. +MessageId=15468 +Language=English +%1 +. +MessageId=15469 +Language=English +%1 +. +MessageId=15470 +Language=English +%1 +. +MessageId=15471 +Language=English +%1 +. +MessageId=15472 +Language=English +%1 +. +MessageId=15473 +Language=English +%1 +. +MessageId=15474 +Language=English +%1 +. +MessageId=15475 +Language=English +%1 +. +MessageId=15476 +Language=English +%1 +. +MessageId=15477 +Language=English +%1 +. +MessageId=15478 +Language=English +%1 +. +MessageId=15479 +Language=English +%1 +. +MessageId=15480 +Language=English +%1 +. +MessageId=15481 +Language=English +%1 +. +MessageId=15482 +Language=English +%1 +. +MessageId=15483 +Language=English +%1 +. +MessageId=15484 +Language=English +%1 +. +MessageId=15485 +Language=English +%1 +. +MessageId=15486 +Language=English +%1 +. +MessageId=15487 +Language=English +%1 +. +MessageId=15488 +Language=English +%1 +. +MessageId=15489 +Language=English +%1 +. +MessageId=15490 +Language=English +%1 +. +MessageId=15491 +Language=English +%1 +. +MessageId=15492 +Language=English +%1 +. +MessageId=15493 +Language=English +%1 +. +MessageId=15494 +Language=English +%1 +. +MessageId=15495 +Language=English +%1 +. +MessageId=15496 +Language=English +%1 +. +MessageId=15497 +Language=English +%1 +. +MessageId=15498 +Language=English +%1 +. +MessageId=15499 +Language=English +%1 +. +MessageId=15500 +Language=English +%1 +. +MessageId=15501 +Language=English +%1 +. +MessageId=15502 +Language=English +%1 +. +MessageId=15503 +Language=English +%1 +. +MessageId=15504 +Language=English +%1 +. +MessageId=15505 +Language=English +%1 +. +MessageId=15506 +Language=English +%1 +. +MessageId=15507 +Language=English +%1 +. +MessageId=15508 +Language=English +%1 +. +MessageId=15509 +Language=English +%1 +. +MessageId=15510 +Language=English +%1 +. +MessageId=15511 +Language=English +%1 +. +MessageId=15512 +Language=English +%1 +. +MessageId=15513 +Language=English +%1 +. +MessageId=15514 +Language=English +%1 +. +MessageId=15515 +Language=English +%1 +. +MessageId=15516 +Language=English +%1 +. +MessageId=15517 +Language=English +%1 +. +MessageId=15518 +Language=English +%1 +. +MessageId=15519 +Language=English +%1 +. +MessageId=15520 +Language=English +%1 +. +MessageId=15521 +Language=English +%1 +. +MessageId=15522 +Language=English +%1 +. +MessageId=15523 +Language=English +%1 +. +MessageId=15524 +Language=English +%1 +. +MessageId=15525 +Language=English +%1 +. +MessageId=15526 +Language=English +%1 +. +MessageId=15527 +Language=English +%1 +. +MessageId=15528 +Language=English +%1 +. +MessageId=15529 +Language=English +%1 +. +MessageId=15530 +Language=English +%1 +. +MessageId=15531 +Language=English +%1 +. +MessageId=15532 +Language=English +%1 +. +MessageId=15533 +Language=English +%1 +. +MessageId=15534 +Language=English +%1 +. +MessageId=15535 +Language=English +%1 +. +MessageId=15536 +Language=English +%1 +. +MessageId=15537 +Language=English +%1 +. +MessageId=15538 +Language=English +%1 +. +MessageId=15539 +Language=English +%1 +. +MessageId=15540 +Language=English +%1 +. +MessageId=15541 +Language=English +%1 +. +MessageId=15542 +Language=English +%1 +. +MessageId=15543 +Language=English +%1 +. +MessageId=15544 +Language=English +%1 +. +MessageId=15545 +Language=English +%1 +. +MessageId=15546 +Language=English +%1 +. +MessageId=15547 +Language=English +%1 +. +MessageId=15548 +Language=English +%1 +. +MessageId=15549 +Language=English +%1 +. +MessageId=15550 +Language=English +%1 +. +MessageId=15551 +Language=English +%1 +. +MessageId=15552 +Language=English +%1 +. +MessageId=15553 +Language=English +%1 +. +MessageId=15554 +Language=English +%1 +. +MessageId=15555 +Language=English +%1 +. +MessageId=15556 +Language=English +%1 +. +MessageId=15557 +Language=English +%1 +. +MessageId=15558 +Language=English +%1 +. +MessageId=15559 +Language=English +%1 +. +MessageId=15560 +Language=English +%1 +. +MessageId=15561 +Language=English +%1 +. +MessageId=15562 +Language=English +%1 +. +MessageId=15563 +Language=English +%1 +. +MessageId=15564 +Language=English +%1 +. +MessageId=15565 +Language=English +%1 +. +MessageId=15566 +Language=English +%1 +. +MessageId=15567 +Language=English +%1 +. +MessageId=15568 +Language=English +%1 +. +MessageId=15569 +Language=English +%1 +. +MessageId=15570 +Language=English +%1 +. +MessageId=15571 +Language=English +%1 +. +MessageId=15572 +Language=English +%1 +. +MessageId=15573 +Language=English +%1 +. +MessageId=15574 +Language=English +%1 +. +MessageId=15575 +Language=English +%1 +. +MessageId=15576 +Language=English +%1 +. +MessageId=15577 +Language=English +%1 +. +MessageId=15578 +Language=English +%1 +. +MessageId=15579 +Language=English +%1 +. +MessageId=15580 +Language=English +%1 +. +MessageId=15581 +Language=English +%1 +. +MessageId=15582 +Language=English +%1 +. +MessageId=15583 +Language=English +%1 +. +MessageId=15584 +Language=English +%1 +. +MessageId=15585 +Language=English +%1 +. +MessageId=15586 +Language=English +%1 +. +MessageId=15587 +Language=English +%1 +. +MessageId=15588 +Language=English +%1 +. +MessageId=15589 +Language=English +%1 +. +MessageId=15590 +Language=English +%1 +. +MessageId=15591 +Language=English +%1 +. +MessageId=15592 +Language=English +%1 +. +MessageId=15593 +Language=English +%1 +. +MessageId=15594 +Language=English +%1 +. +MessageId=15595 +Language=English +%1 +. +MessageId=15596 +Language=English +%1 +. +MessageId=15597 +Language=English +%1 +. +MessageId=15598 +Language=English +%1 +. +MessageId=15599 +Language=English +%1 +. +MessageId=15600 +Language=English +%1 +. +MessageId=15601 +Language=English +%1 +. +MessageId=15602 +Language=English +%1 +. +MessageId=15603 +Language=English +%1 +. +MessageId=15604 +Language=English +%1 +. +MessageId=15605 +Language=English +%1 +. +MessageId=15606 +Language=English +%1 +. +MessageId=15607 +Language=English +%1 +. +MessageId=15608 +Language=English +%1 +. +MessageId=15609 +Language=English +%1 +. +MessageId=15610 +Language=English +%1 +. +MessageId=15611 +Language=English +%1 +. +MessageId=15612 +Language=English +%1 +. +MessageId=15613 +Language=English +%1 +. +MessageId=15614 +Language=English +%1 +. +MessageId=15615 +Language=English +%1 +. +MessageId=15616 +Language=English +%1 +. +MessageId=15617 +Language=English +%1 +. +MessageId=15618 +Language=English +%1 +. +MessageId=15619 +Language=English +%1 +. +MessageId=15620 +Language=English +%1 +. +MessageId=15621 +Language=English +%1 +. +MessageId=15622 +Language=English +%1 +. +MessageId=15623 +Language=English +%1 +. +MessageId=15624 +Language=English +%1 +. +MessageId=15625 +Language=English +%1 +. +MessageId=15626 +Language=English +%1 +. +MessageId=15627 +Language=English +%1 +. +MessageId=15628 +Language=English +%1 +. +MessageId=15629 +Language=English +%1 +. +MessageId=15630 +Language=English +%1 +. +MessageId=15631 +Language=English +%1 +. +MessageId=15632 +Language=English +%1 +. +MessageId=15633 +Language=English +%1 +. +MessageId=15634 +Language=English +%1 +. +MessageId=15635 +Language=English +%1 +. +MessageId=15636 +Language=English +%1 +. +MessageId=15637 +Language=English +%1 +. +MessageId=15638 +Language=English +%1 +. +MessageId=15639 +Language=English +%1 +. +MessageId=15640 +Language=English +%1 +. +MessageId=15641 +Language=English +%1 +. +MessageId=15642 +Language=English +%1 +. +MessageId=15643 +Language=English +%1 +. +MessageId=15644 +Language=English +%1 +. +MessageId=15645 +Language=English +%1 +. +MessageId=15646 +Language=English +%1 +. +MessageId=15647 +Language=English +%1 +. +MessageId=15648 +Language=English +%1 +. +MessageId=15649 +Language=English +%1 +. +MessageId=15650 +Language=English +%1 +. +MessageId=15651 +Language=English +%1 +. +MessageId=15652 +Language=English +%1 +. +MessageId=15653 +Language=English +%1 +. +MessageId=15654 +Language=English +%1 +. +MessageId=15655 +Language=English +%1 +. +MessageId=15656 +Language=English +%1 +. +MessageId=15657 +Language=English +%1 +. +MessageId=15658 +Language=English +%1 +. +MessageId=15659 +Language=English +%1 +. +MessageId=15660 +Language=English +%1 +. +MessageId=15661 +Language=English +%1 +. +MessageId=15662 +Language=English +%1 +. +MessageId=15663 +Language=English +%1 +. +MessageId=15664 +Language=English +%1 +. +MessageId=15665 +Language=English +%1 +. +MessageId=15666 +Language=English +%1 +. +MessageId=15667 +Language=English +%1 +. +MessageId=15668 +Language=English +%1 +. +MessageId=15669 +Language=English +%1 +. +MessageId=15670 +Language=English +%1 +. +MessageId=15671 +Language=English +%1 +. +MessageId=15672 +Language=English +%1 +. +MessageId=15673 +Language=English +%1 +. +MessageId=15674 +Language=English +%1 +. +MessageId=15675 +Language=English +%1 +. +MessageId=15676 +Language=English +%1 +. +MessageId=15677 +Language=English +%1 +. +MessageId=15678 +Language=English +%1 +. +MessageId=15679 +Language=English +%1 +. +MessageId=15680 +Language=English +%1 +. +MessageId=15681 +Language=English +%1 +. +MessageId=15682 +Language=English +%1 +. +MessageId=15683 +Language=English +%1 +. +MessageId=15684 +Language=English +%1 +. +MessageId=15685 +Language=English +%1 +. +MessageId=15686 +Language=English +%1 +. +MessageId=15687 +Language=English +%1 +. +MessageId=15688 +Language=English +%1 +. +MessageId=15689 +Language=English +%1 +. +MessageId=15690 +Language=English +%1 +. +MessageId=15691 +Language=English +%1 +. +MessageId=15692 +Language=English +%1 +. +MessageId=15693 +Language=English +%1 +. +MessageId=15694 +Language=English +%1 +. +MessageId=15695 +Language=English +%1 +. +MessageId=15696 +Language=English +%1 +. +MessageId=15697 +Language=English +%1 +. +MessageId=15698 +Language=English +%1 +. +MessageId=15699 +Language=English +%1 +. +MessageId=15700 +Language=English +%1 +. +MessageId=15701 +Language=English +%1 +. +MessageId=15702 +Language=English +%1 +. +MessageId=15703 +Language=English +%1 +. +MessageId=15704 +Language=English +%1 +. +MessageId=15705 +Language=English +%1 +. +MessageId=15706 +Language=English +%1 +. +MessageId=15707 +Language=English +%1 +. +MessageId=15708 +Language=English +%1 +. +MessageId=15709 +Language=English +%1 +. +MessageId=15710 +Language=English +%1 +. +MessageId=15711 +Language=English +%1 +. +MessageId=15712 +Language=English +%1 +. +MessageId=15713 +Language=English +%1 +. +MessageId=15714 +Language=English +%1 +. +MessageId=15715 +Language=English +%1 +. +MessageId=15716 +Language=English +%1 +. +MessageId=15717 +Language=English +%1 +. +MessageId=15718 +Language=English +%1 +. +MessageId=15719 +Language=English +%1 +. +MessageId=15720 +Language=English +%1 +. +MessageId=15721 +Language=English +%1 +. +MessageId=15722 +Language=English +%1 +. +MessageId=15723 +Language=English +%1 +. +MessageId=15724 +Language=English +%1 +. +MessageId=15725 +Language=English +%1 +. +MessageId=15726 +Language=English +%1 +. +MessageId=15727 +Language=English +%1 +. +MessageId=15728 +Language=English +%1 +. +MessageId=15729 +Language=English +%1 +. +MessageId=15730 +Language=English +%1 +. +MessageId=15731 +Language=English +%1 +. +MessageId=15732 +Language=English +%1 +. +MessageId=15733 +Language=English +%1 +. +MessageId=15734 +Language=English +%1 +. +MessageId=15735 +Language=English +%1 +. +MessageId=15736 +Language=English +%1 +. +MessageId=15737 +Language=English +%1 +. +MessageId=15738 +Language=English +%1 +. +MessageId=15739 +Language=English +%1 +. +MessageId=15740 +Language=English +%1 +. +MessageId=15741 +Language=English +%1 +. +MessageId=15742 +Language=English +%1 +. +MessageId=15743 +Language=English +%1 +. +MessageId=15744 +Language=English +%1 +. +MessageId=15745 +Language=English +%1 +. +MessageId=15746 +Language=English +%1 +. +MessageId=15747 +Language=English +%1 +. +MessageId=15748 +Language=English +%1 +. +MessageId=15749 +Language=English +%1 +. +MessageId=15750 +Language=English +%1 +. +MessageId=15751 +Language=English +%1 +. +MessageId=15752 +Language=English +%1 +. +MessageId=15753 +Language=English +%1 +. +MessageId=15754 +Language=English +%1 +. +MessageId=15755 +Language=English +%1 +. +MessageId=15756 +Language=English +%1 +. +MessageId=15757 +Language=English +%1 +. +MessageId=15758 +Language=English +%1 +. +MessageId=15759 +Language=English +%1 +. +MessageId=15760 +Language=English +%1 +. +MessageId=15761 +Language=English +%1 +. +MessageId=15762 +Language=English +%1 +. +MessageId=15763 +Language=English +%1 +. +MessageId=15764 +Language=English +%1 +. +MessageId=15765 +Language=English +%1 +. +MessageId=15766 +Language=English +%1 +. +MessageId=15767 +Language=English +%1 +. +MessageId=15768 +Language=English +%1 +. +MessageId=15769 +Language=English +%1 +. +MessageId=15770 +Language=English +%1 +. +MessageId=15771 +Language=English +%1 +. +MessageId=15772 +Language=English +%1 +. +MessageId=15773 +Language=English +%1 +. +MessageId=15774 +Language=English +%1 +. +MessageId=15775 +Language=English +%1 +. +MessageId=15776 +Language=English +%1 +. +MessageId=15777 +Language=English +%1 +. +MessageId=15778 +Language=English +%1 +. +MessageId=15779 +Language=English +%1 +. +MessageId=15780 +Language=English +%1 +. +MessageId=15781 +Language=English +%1 +. +MessageId=15782 +Language=English +%1 +. +MessageId=15783 +Language=English +%1 +. +MessageId=15784 +Language=English +%1 +. +MessageId=15785 +Language=English +%1 +. +MessageId=15786 +Language=English +%1 +. +MessageId=15787 +Language=English +%1 +. +MessageId=15788 +Language=English +%1 +. +MessageId=15789 +Language=English +%1 +. +MessageId=15790 +Language=English +%1 +. +MessageId=15791 +Language=English +%1 +. +MessageId=15792 +Language=English +%1 +. +MessageId=15793 +Language=English +%1 +. +MessageId=15794 +Language=English +%1 +. +MessageId=15795 +Language=English +%1 +. +MessageId=15796 +Language=English +%1 +. +MessageId=15797 +Language=English +%1 +. +MessageId=15798 +Language=English +%1 +. +MessageId=15799 +Language=English +%1 +. +MessageId=15800 +Language=English +%1 +. +MessageId=15801 +Language=English +%1 +. +MessageId=15802 +Language=English +%1 +. +MessageId=15803 +Language=English +%1 +. +MessageId=15804 +Language=English +%1 +. +MessageId=15805 +Language=English +%1 +. +MessageId=15806 +Language=English +%1 +. +MessageId=15807 +Language=English +%1 +. +MessageId=15808 +Language=English +%1 +. +MessageId=15809 +Language=English +%1 +. +MessageId=15810 +Language=English +%1 +. +MessageId=15811 +Language=English +%1 +. +MessageId=15812 +Language=English +%1 +. +MessageId=15813 +Language=English +%1 +. +MessageId=15814 +Language=English +%1 +. +MessageId=15815 +Language=English +%1 +. +MessageId=15816 +Language=English +%1 +. +MessageId=15817 +Language=English +%1 +. +MessageId=15818 +Language=English +%1 +. +MessageId=15819 +Language=English +%1 +. +MessageId=15820 +Language=English +%1 +. +MessageId=15821 +Language=English +%1 +. +MessageId=15822 +Language=English +%1 +. +MessageId=15823 +Language=English +%1 +. +MessageId=15824 +Language=English +%1 +. +MessageId=15825 +Language=English +%1 +. +MessageId=15826 +Language=English +%1 +. +MessageId=15827 +Language=English +%1 +. +MessageId=15828 +Language=English +%1 +. +MessageId=15829 +Language=English +%1 +. +MessageId=15830 +Language=English +%1 +. +MessageId=15831 +Language=English +%1 +. +MessageId=15832 +Language=English +%1 +. +MessageId=15833 +Language=English +%1 +. +MessageId=15834 +Language=English +%1 +. +MessageId=15835 +Language=English +%1 +. +MessageId=15836 +Language=English +%1 +. +MessageId=15837 +Language=English +%1 +. +MessageId=15838 +Language=English +%1 +. +MessageId=15839 +Language=English +%1 +. +MessageId=15840 +Language=English +%1 +. +MessageId=15841 +Language=English +%1 +. +MessageId=15842 +Language=English +%1 +. +MessageId=15843 +Language=English +%1 +. +MessageId=15844 +Language=English +%1 +. +MessageId=15845 +Language=English +%1 +. +MessageId=15846 +Language=English +%1 +. +MessageId=15847 +Language=English +%1 +. +MessageId=15848 +Language=English +%1 +. +MessageId=15849 +Language=English +%1 +. +MessageId=15850 +Language=English +%1 +. +MessageId=15851 +Language=English +%1 +. +MessageId=15852 +Language=English +%1 +. +MessageId=15853 +Language=English +%1 +. +MessageId=15854 +Language=English +%1 +. +MessageId=15855 +Language=English +%1 +. +MessageId=15856 +Language=English +%1 +. +MessageId=15857 +Language=English +%1 +. +MessageId=15858 +Language=English +%1 +. +MessageId=15859 +Language=English +%1 +. +MessageId=15860 +Language=English +%1 +. +MessageId=15861 +Language=English +%1 +. +MessageId=15862 +Language=English +%1 +. +MessageId=15863 +Language=English +%1 +. +MessageId=15864 +Language=English +%1 +. +MessageId=15865 +Language=English +%1 +. +MessageId=15866 +Language=English +%1 +. +MessageId=15867 +Language=English +%1 +. +MessageId=15868 +Language=English +%1 +. +MessageId=15869 +Language=English +%1 +. +MessageId=15870 +Language=English +%1 +. +MessageId=15871 +Language=English +%1 +. +MessageId=15872 +Language=English +%1 +. +MessageId=15873 +Language=English +%1 +. +MessageId=15874 +Language=English +%1 +. +MessageId=15875 +Language=English +%1 +. +MessageId=15876 +Language=English +%1 +. +MessageId=15877 +Language=English +%1 +. +MessageId=15878 +Language=English +%1 +. +MessageId=15879 +Language=English +%1 +. +MessageId=15880 +Language=English +%1 +. +MessageId=15881 +Language=English +%1 +. +MessageId=15882 +Language=English +%1 +. +MessageId=15883 +Language=English +%1 +. +MessageId=15884 +Language=English +%1 +. +MessageId=15885 +Language=English +%1 +. +MessageId=15886 +Language=English +%1 +. +MessageId=15887 +Language=English +%1 +. +MessageId=15888 +Language=English +%1 +. +MessageId=15889 +Language=English +%1 +. +MessageId=15890 +Language=English +%1 +. +MessageId=15891 +Language=English +%1 +. +MessageId=15892 +Language=English +%1 +. +MessageId=15893 +Language=English +%1 +. +MessageId=15894 +Language=English +%1 +. +MessageId=15895 +Language=English +%1 +. +MessageId=15896 +Language=English +%1 +. +MessageId=15897 +Language=English +%1 +. +MessageId=15898 +Language=English +%1 +. +MessageId=15899 +Language=English +%1 +. +MessageId=15900 +Language=English +%1 +. +MessageId=15901 +Language=English +%1 +. +MessageId=15902 +Language=English +%1 +. +MessageId=15903 +Language=English +%1 +. +MessageId=15904 +Language=English +%1 +. +MessageId=15905 +Language=English +%1 +. +MessageId=15906 +Language=English +%1 +. +MessageId=15907 +Language=English +%1 +. +MessageId=15908 +Language=English +%1 +. +MessageId=15909 +Language=English +%1 +. +MessageId=15910 +Language=English +%1 +. +MessageId=15911 +Language=English +%1 +. +MessageId=15912 +Language=English +%1 +. +MessageId=15913 +Language=English +%1 +. +MessageId=15914 +Language=English +%1 +. +MessageId=15915 +Language=English +%1 +. +MessageId=15916 +Language=English +%1 +. +MessageId=15917 +Language=English +%1 +. +MessageId=15918 +Language=English +%1 +. +MessageId=15919 +Language=English +%1 +. +MessageId=15920 +Language=English +%1 +. +MessageId=15921 +Language=English +%1 +. +MessageId=15922 +Language=English +%1 +. +MessageId=15923 +Language=English +%1 +. +MessageId=15924 +Language=English +%1 +. +MessageId=15925 +Language=English +%1 +. +MessageId=15926 +Language=English +%1 +. +MessageId=15927 +Language=English +%1 +. +MessageId=15928 +Language=English +%1 +. +MessageId=15929 +Language=English +%1 +. +MessageId=15930 +Language=English +%1 +. +MessageId=15931 +Language=English +%1 +. +MessageId=15932 +Language=English +%1 +. +MessageId=15933 +Language=English +%1 +. +MessageId=15934 +Language=English +%1 +. +MessageId=15935 +Language=English +%1 +. +MessageId=15936 +Language=English +%1 +. +MessageId=15937 +Language=English +%1 +. +MessageId=15938 +Language=English +%1 +. +MessageId=15939 +Language=English +%1 +. +MessageId=15940 +Language=English +%1 +. +MessageId=15941 +Language=English +%1 +. +MessageId=15942 +Language=English +%1 +. +MessageId=15943 +Language=English +%1 +. +MessageId=15944 +Language=English +%1 +. +MessageId=15945 +Language=English +%1 +. +MessageId=15946 +Language=English +%1 +. +MessageId=15947 +Language=English +%1 +. +MessageId=15948 +Language=English +%1 +. +MessageId=15949 +Language=English +%1 +. +MessageId=15950 +Language=English +%1 +. +MessageId=15951 +Language=English +%1 +. +MessageId=15952 +Language=English +%1 +. +MessageId=15953 +Language=English +%1 +. +MessageId=15954 +Language=English +%1 +. +MessageId=15955 +Language=English +%1 +. +MessageId=15956 +Language=English +%1 +. +MessageId=15957 +Language=English +%1 +. +MessageId=15958 +Language=English +%1 +. +MessageId=15959 +Language=English +%1 +. +MessageId=15960 +Language=English +%1 +. +MessageId=15961 +Language=English +%1 +. +MessageId=15962 +Language=English +%1 +. +MessageId=15963 +Language=English +%1 +. +MessageId=15964 +Language=English +%1 +. +MessageId=15965 +Language=English +%1 +. +MessageId=15966 +Language=English +%1 +. +MessageId=15967 +Language=English +%1 +. +MessageId=15968 +Language=English +%1 +. +MessageId=15969 +Language=English +%1 +. +MessageId=15970 +Language=English +%1 +. +MessageId=15971 +Language=English +%1 +. +MessageId=15972 +Language=English +%1 +. +MessageId=15973 +Language=English +%1 +. +MessageId=15974 +Language=English +%1 +. +MessageId=15975 +Language=English +%1 +. +MessageId=15976 +Language=English +%1 +. +MessageId=15977 +Language=English +%1 +. +MessageId=15978 +Language=English +%1 +. +MessageId=15979 +Language=English +%1 +. +MessageId=15980 +Language=English +%1 +. +MessageId=15981 +Language=English +%1 +. +MessageId=15982 +Language=English +%1 +. +MessageId=15983 +Language=English +%1 +. +MessageId=15984 +Language=English +%1 +. +MessageId=15985 +Language=English +%1 +. +MessageId=15986 +Language=English +%1 +. +MessageId=15987 +Language=English +%1 +. +MessageId=15988 +Language=English +%1 +. +MessageId=15989 +Language=English +%1 +. +MessageId=15990 +Language=English +%1 +. +MessageId=15991 +Language=English +%1 +. +MessageId=15992 +Language=English +%1 +. +MessageId=15993 +Language=English +%1 +. +MessageId=15994 +Language=English +%1 +. +MessageId=15995 +Language=English +%1 +. +MessageId=15996 +Language=English +%1 +. +MessageId=15997 +Language=English +%1 +. +MessageId=15998 +Language=English +%1 +. +MessageId=15999 +Language=English +%1 +. +MessageId=16000 +Language=English +%1 +. +MessageId=16001 +Language=English +%1 +. +MessageId=16002 +Language=English +%1 +. +MessageId=16003 +Language=English +%1 +. +MessageId=16004 +Language=English +%1 +. +MessageId=16005 +Language=English +%1 +. +MessageId=16006 +Language=English +%1 +. +MessageId=16007 +Language=English +%1 +. +MessageId=16008 +Language=English +%1 +. +MessageId=16009 +Language=English +%1 +. +MessageId=16010 +Language=English +%1 +. +MessageId=16011 +Language=English +%1 +. +MessageId=16012 +Language=English +%1 +. +MessageId=16013 +Language=English +%1 +. +MessageId=16014 +Language=English +%1 +. +MessageId=16015 +Language=English +%1 +. +MessageId=16016 +Language=English +%1 +. +MessageId=16017 +Language=English +%1 +. +MessageId=16018 +Language=English +%1 +. +MessageId=16019 +Language=English +%1 +. +MessageId=16020 +Language=English +%1 +. +MessageId=16021 +Language=English +%1 +. +MessageId=16022 +Language=English +%1 +. +MessageId=16023 +Language=English +%1 +. +MessageId=16024 +Language=English +%1 +. +MessageId=16025 +Language=English +%1 +. +MessageId=16026 +Language=English +%1 +. +MessageId=16027 +Language=English +%1 +. +MessageId=16028 +Language=English +%1 +. +MessageId=16029 +Language=English +%1 +. +MessageId=16030 +Language=English +%1 +. +MessageId=16031 +Language=English +%1 +. +MessageId=16032 +Language=English +%1 +. +MessageId=16033 +Language=English +%1 +. +MessageId=16034 +Language=English +%1 +. +MessageId=16035 +Language=English +%1 +. +MessageId=16036 +Language=English +%1 +. +MessageId=16037 +Language=English +%1 +. +MessageId=16038 +Language=English +%1 +. +MessageId=16039 +Language=English +%1 +. +MessageId=16040 +Language=English +%1 +. +MessageId=16041 +Language=English +%1 +. +MessageId=16042 +Language=English +%1 +. +MessageId=16043 +Language=English +%1 +. +MessageId=16044 +Language=English +%1 +. +MessageId=16045 +Language=English +%1 +. +MessageId=16046 +Language=English +%1 +. +MessageId=16047 +Language=English +%1 +. +MessageId=16048 +Language=English +%1 +. +MessageId=16049 +Language=English +%1 +. +MessageId=16050 +Language=English +%1 +. +MessageId=16051 +Language=English +%1 +. +MessageId=16052 +Language=English +%1 +. +MessageId=16053 +Language=English +%1 +. +MessageId=16054 +Language=English +%1 +. +MessageId=16055 +Language=English +%1 +. +MessageId=16056 +Language=English +%1 +. +MessageId=16057 +Language=English +%1 +. +MessageId=16058 +Language=English +%1 +. +MessageId=16059 +Language=English +%1 +. +MessageId=16060 +Language=English +%1 +. +MessageId=16061 +Language=English +%1 +. +MessageId=16062 +Language=English +%1 +. +MessageId=16063 +Language=English +%1 +. +MessageId=16064 +Language=English +%1 +. +MessageId=16065 +Language=English +%1 +. +MessageId=16066 +Language=English +%1 +. +MessageId=16067 +Language=English +%1 +. +MessageId=16068 +Language=English +%1 +. +MessageId=16069 +Language=English +%1 +. +MessageId=16070 +Language=English +%1 +. +MessageId=16071 +Language=English +%1 +. +MessageId=16072 +Language=English +%1 +. +MessageId=16073 +Language=English +%1 +. +MessageId=16074 +Language=English +%1 +. +MessageId=16075 +Language=English +%1 +. +MessageId=16076 +Language=English +%1 +. +MessageId=16077 +Language=English +%1 +. +MessageId=16078 +Language=English +%1 +. +MessageId=16079 +Language=English +%1 +. +MessageId=16080 +Language=English +%1 +. +MessageId=16081 +Language=English +%1 +. +MessageId=16082 +Language=English +%1 +. +MessageId=16083 +Language=English +%1 +. +MessageId=16084 +Language=English +%1 +. +MessageId=16085 +Language=English +%1 +. +MessageId=16086 +Language=English +%1 +. +MessageId=16087 +Language=English +%1 +. +MessageId=16088 +Language=English +%1 +. +MessageId=16089 +Language=English +%1 +. +MessageId=16090 +Language=English +%1 +. +MessageId=16091 +Language=English +%1 +. +MessageId=16092 +Language=English +%1 +. +MessageId=16093 +Language=English +%1 +. +MessageId=16094 +Language=English +%1 +. +MessageId=16095 +Language=English +%1 +. +MessageId=16096 +Language=English +%1 +. +MessageId=16097 +Language=English +%1 +. +MessageId=16098 +Language=English +%1 +. +MessageId=16099 +Language=English +%1 +. +MessageId=16100 +Language=English +%1 +. +MessageId=16101 +Language=English +%1 +. +MessageId=16102 +Language=English +%1 +. +MessageId=16103 +Language=English +%1 +. +MessageId=16104 +Language=English +%1 +. +MessageId=16105 +Language=English +%1 +. +MessageId=16106 +Language=English +%1 +. +MessageId=16107 +Language=English +%1 +. +MessageId=16108 +Language=English +%1 +. +MessageId=16109 +Language=English +%1 +. +MessageId=16110 +Language=English +%1 +. +MessageId=16111 +Language=English +%1 +. +MessageId=16112 +Language=English +%1 +. +MessageId=16113 +Language=English +%1 +. +MessageId=16114 +Language=English +%1 +. +MessageId=16115 +Language=English +%1 +. +MessageId=16116 +Language=English +%1 +. +MessageId=16117 +Language=English +%1 +. +MessageId=16118 +Language=English +%1 +. +MessageId=16119 +Language=English +%1 +. +MessageId=16120 +Language=English +%1 +. +MessageId=16121 +Language=English +%1 +. +MessageId=16122 +Language=English +%1 +. +MessageId=16123 +Language=English +%1 +. +MessageId=16124 +Language=English +%1 +. +MessageId=16125 +Language=English +%1 +. +MessageId=16126 +Language=English +%1 +. +MessageId=16127 +Language=English +%1 +. +MessageId=16128 +Language=English +%1 +. +MessageId=16129 +Language=English +%1 +. +MessageId=16130 +Language=English +%1 +. +MessageId=16131 +Language=English +%1 +. +MessageId=16132 +Language=English +%1 +. +MessageId=16133 +Language=English +%1 +. +MessageId=16134 +Language=English +%1 +. +MessageId=16135 +Language=English +%1 +. +MessageId=16136 +Language=English +%1 +. +MessageId=16137 +Language=English +%1 +. +MessageId=16138 +Language=English +%1 +. +MessageId=16139 +Language=English +%1 +. +MessageId=16140 +Language=English +%1 +. +MessageId=16141 +Language=English +%1 +. +MessageId=16142 +Language=English +%1 +. +MessageId=16143 +Language=English +%1 +. +MessageId=16144 +Language=English +%1 +. +MessageId=16145 +Language=English +%1 +. +MessageId=16146 +Language=English +%1 +. +MessageId=16147 +Language=English +%1 +. +MessageId=16148 +Language=English +%1 +. +MessageId=16149 +Language=English +%1 +. +MessageId=16150 +Language=English +%1 +. +MessageId=16151 +Language=English +%1 +. +MessageId=16152 +Language=English +%1 +. +MessageId=16153 +Language=English +%1 +. +MessageId=16154 +Language=English +%1 +. +MessageId=16155 +Language=English +%1 +. +MessageId=16156 +Language=English +%1 +. +MessageId=16157 +Language=English +%1 +. +MessageId=16158 +Language=English +%1 +. +MessageId=16159 +Language=English +%1 +. +MessageId=16160 +Language=English +%1 +. +MessageId=16161 +Language=English +%1 +. +MessageId=16162 +Language=English +%1 +. +MessageId=16163 +Language=English +%1 +. +MessageId=16164 +Language=English +%1 +. +MessageId=16165 +Language=English +%1 +. +MessageId=16166 +Language=English +%1 +. +MessageId=16167 +Language=English +%1 +. +MessageId=16168 +Language=English +%1 +. +MessageId=16169 +Language=English +%1 +. +MessageId=16170 +Language=English +%1 +. +MessageId=16171 +Language=English +%1 +. +MessageId=16172 +Language=English +%1 +. +MessageId=16173 +Language=English +%1 +. +MessageId=16174 +Language=English +%1 +. +MessageId=16175 +Language=English +%1 +. +MessageId=16176 +Language=English +%1 +. +MessageId=16177 +Language=English +%1 +. +MessageId=16178 +Language=English +%1 +. +MessageId=16179 +Language=English +%1 +. +MessageId=16180 +Language=English +%1 +. +MessageId=16181 +Language=English +%1 +. +MessageId=16182 +Language=English +%1 +. +MessageId=16183 +Language=English +%1 +. +MessageId=16184 +Language=English +%1 +. +MessageId=16185 +Language=English +%1 +. +MessageId=16186 +Language=English +%1 +. +MessageId=16187 +Language=English +%1 +. +MessageId=16188 +Language=English +%1 +. +MessageId=16189 +Language=English +%1 +. +MessageId=16190 +Language=English +%1 +. +MessageId=16191 +Language=English +%1 +. +MessageId=16192 +Language=English +%1 +. +MessageId=16193 +Language=English +%1 +. +MessageId=16194 +Language=English +%1 +. +MessageId=16195 +Language=English +%1 +. +MessageId=16196 +Language=English +%1 +. +MessageId=16197 +Language=English +%1 +. +MessageId=16198 +Language=English +%1 +. +MessageId=16199 +Language=English +%1 +. +MessageId=16200 +Language=English +%1 +. +MessageId=16201 +Language=English +%1 +. +MessageId=16202 +Language=English +%1 +. +MessageId=16203 +Language=English +%1 +. +MessageId=16204 +Language=English +%1 +. +MessageId=16205 +Language=English +%1 +. +MessageId=16206 +Language=English +%1 +. +MessageId=16207 +Language=English +%1 +. +MessageId=16208 +Language=English +%1 +. +MessageId=16209 +Language=English +%1 +. +MessageId=16210 +Language=English +%1 +. +MessageId=16211 +Language=English +%1 +. +MessageId=16212 +Language=English +%1 +. +MessageId=16213 +Language=English +%1 +. +MessageId=16214 +Language=English +%1 +. +MessageId=16215 +Language=English +%1 +. +MessageId=16216 +Language=English +%1 +. +MessageId=16217 +Language=English +%1 +. +MessageId=16218 +Language=English +%1 +. +MessageId=16219 +Language=English +%1 +. +MessageId=16220 +Language=English +%1 +. +MessageId=16221 +Language=English +%1 +. +MessageId=16222 +Language=English +%1 +. +MessageId=16223 +Language=English +%1 +. +MessageId=16224 +Language=English +%1 +. +MessageId=16225 +Language=English +%1 +. +MessageId=16226 +Language=English +%1 +. +MessageId=16227 +Language=English +%1 +. +MessageId=16228 +Language=English +%1 +. +MessageId=16229 +Language=English +%1 +. +MessageId=16230 +Language=English +%1 +. +MessageId=16231 +Language=English +%1 +. +MessageId=16232 +Language=English +%1 +. +MessageId=16233 +Language=English +%1 +. +MessageId=16234 +Language=English +%1 +. +MessageId=16235 +Language=English +%1 +. +MessageId=16236 +Language=English +%1 +. +MessageId=16237 +Language=English +%1 +. +MessageId=16238 +Language=English +%1 +. +MessageId=16239 +Language=English +%1 +. +MessageId=16240 +Language=English +%1 +. +MessageId=16241 +Language=English +%1 +. +MessageId=16242 +Language=English +%1 +. +MessageId=16243 +Language=English +%1 +. +MessageId=16244 +Language=English +%1 +. +MessageId=16245 +Language=English +%1 +. +MessageId=16246 +Language=English +%1 +. +MessageId=16247 +Language=English +%1 +. +MessageId=16248 +Language=English +%1 +. +MessageId=16249 +Language=English +%1 +. +MessageId=16250 +Language=English +%1 +. +MessageId=16251 +Language=English +%1 +. +MessageId=16252 +Language=English +%1 +. +MessageId=16253 +Language=English +%1 +. +MessageId=16254 +Language=English +%1 +. +MessageId=16255 +Language=English +%1 +. +MessageId=16256 +Language=English +%1 +. +MessageId=16257 +Language=English +%1 +. +MessageId=16258 +Language=English +%1 +. +MessageId=16259 +Language=English +%1 +. +MessageId=16260 +Language=English +%1 +. +MessageId=16261 +Language=English +%1 +. +MessageId=16262 +Language=English +%1 +. +MessageId=16263 +Language=English +%1 +. +MessageId=16264 +Language=English +%1 +. +MessageId=16265 +Language=English +%1 +. +MessageId=16266 +Language=English +%1 +. +MessageId=16267 +Language=English +%1 +. +MessageId=16268 +Language=English +%1 +. +MessageId=16269 +Language=English +%1 +. +MessageId=16270 +Language=English +%1 +. +MessageId=16271 +Language=English +%1 +. +MessageId=16272 +Language=English +%1 +. +MessageId=16273 +Language=English +%1 +. +MessageId=16274 +Language=English +%1 +. +MessageId=16275 +Language=English +%1 +. +MessageId=16276 +Language=English +%1 +. +MessageId=16277 +Language=English +%1 +. +MessageId=16278 +Language=English +%1 +. +MessageId=16279 +Language=English +%1 +. +MessageId=16280 +Language=English +%1 +. +MessageId=16281 +Language=English +%1 +. +MessageId=16282 +Language=English +%1 +. +MessageId=16283 +Language=English +%1 +. +MessageId=16284 +Language=English +%1 +. +MessageId=16285 +Language=English +%1 +. +MessageId=16286 +Language=English +%1 +. +MessageId=16287 +Language=English +%1 +. +MessageId=16288 +Language=English +%1 +. +MessageId=16289 +Language=English +%1 +. +MessageId=16290 +Language=English +%1 +. +MessageId=16291 +Language=English +%1 +. +MessageId=16292 +Language=English +%1 +. +MessageId=16293 +Language=English +%1 +. +MessageId=16294 +Language=English +%1 +. +MessageId=16295 +Language=English +%1 +. +MessageId=16296 +Language=English +%1 +. +MessageId=16297 +Language=English +%1 +. +MessageId=16298 +Language=English +%1 +. +MessageId=16299 +Language=English +%1 +. +MessageId=16300 +Language=English +%1 +. +MessageId=16301 +Language=English +%1 +. +MessageId=16302 +Language=English +%1 +. +MessageId=16303 +Language=English +%1 +. +MessageId=16304 +Language=English +%1 +. +MessageId=16305 +Language=English +%1 +. +MessageId=16306 +Language=English +%1 +. +MessageId=16307 +Language=English +%1 +. +MessageId=16308 +Language=English +%1 +. +MessageId=16309 +Language=English +%1 +. +MessageId=16310 +Language=English +%1 +. +MessageId=16311 +Language=English +%1 +. +MessageId=16312 +Language=English +%1 +. +MessageId=16313 +Language=English +%1 +. +MessageId=16314 +Language=English +%1 +. +MessageId=16315 +Language=English +%1 +. +MessageId=16316 +Language=English +%1 +. +MessageId=16317 +Language=English +%1 +. +MessageId=16318 +Language=English +%1 +. +MessageId=16319 +Language=English +%1 +. +MessageId=16320 +Language=English +%1 +. +MessageId=16321 +Language=English +%1 +. +MessageId=16322 +Language=English +%1 +. +MessageId=16323 +Language=English +%1 +. +MessageId=16324 +Language=English +%1 +. +MessageId=16325 +Language=English +%1 +. +MessageId=16326 +Language=English +%1 +. +MessageId=16327 +Language=English +%1 +. +MessageId=16328 +Language=English +%1 +. +MessageId=16329 +Language=English +%1 +. +MessageId=16330 +Language=English +%1 +. +MessageId=16331 +Language=English +%1 +. +MessageId=16332 +Language=English +%1 +. +MessageId=16333 +Language=English +%1 +. +MessageId=16334 +Language=English +%1 +. +MessageId=16335 +Language=English +%1 +. +MessageId=16336 +Language=English +%1 +. +MessageId=16337 +Language=English +%1 +. +MessageId=16338 +Language=English +%1 +. +MessageId=16339 +Language=English +%1 +. +MessageId=16340 +Language=English +%1 +. +MessageId=16341 +Language=English +%1 +. +MessageId=16342 +Language=English +%1 +. +MessageId=16343 +Language=English +%1 +. +MessageId=16344 +Language=English +%1 +. +MessageId=16345 +Language=English +%1 +. +MessageId=16346 +Language=English +%1 +. +MessageId=16347 +Language=English +%1 +. +MessageId=16348 +Language=English +%1 +. +MessageId=16349 +Language=English +%1 +. +MessageId=16350 +Language=English +%1 +. +MessageId=16351 +Language=English +%1 +. +MessageId=16352 +Language=English +%1 +. +MessageId=16353 +Language=English +%1 +. +MessageId=16354 +Language=English +%1 +. +MessageId=16355 +Language=English +%1 +. +MessageId=16356 +Language=English +%1 +. +MessageId=16357 +Language=English +%1 +. +MessageId=16358 +Language=English +%1 +. +MessageId=16359 +Language=English +%1 +. +MessageId=16360 +Language=English +%1 +. +MessageId=16361 +Language=English +%1 +. +MessageId=16362 +Language=English +%1 +. +MessageId=16363 +Language=English +%1 +. +MessageId=16364 +Language=English +%1 +. +MessageId=16365 +Language=English +%1 +. +MessageId=16366 +Language=English +%1 +. +MessageId=16367 +Language=English +%1 +. +MessageId=16368 +Language=English +%1 +. +MessageId=16369 +Language=English +%1 +. +MessageId=16370 +Language=English +%1 +. +MessageId=16371 +Language=English +%1 +. +MessageId=16372 +Language=English +%1 +. +MessageId=16373 +Language=English +%1 +. +MessageId=16374 +Language=English +%1 +. +MessageId=16375 +Language=English +%1 +. +MessageId=16376 +Language=English +%1 +. +MessageId=16377 +Language=English +%1 +. +MessageId=16378 +Language=English +%1 +. +MessageId=16379 +Language=English +%1 +. +MessageId=16380 +Language=English +%1 +. +MessageId=16381 +Language=English +%1 +. +MessageId=16382 +Language=English +%1 +. +MessageId=16383 +Language=English +%1 +. +MessageId=16384 +Language=English +%1 +. +MessageId=16385 +Language=English +%1 +. +MessageId=16386 +Language=English +%1 +. +MessageId=16387 +Language=English +%1 +. +MessageId=16388 +Language=English +%1 +. +MessageId=16389 +Language=English +%1 +. +MessageId=16390 +Language=English +%1 +. +MessageId=16391 +Language=English +%1 +. +MessageId=16392 +Language=English +%1 +. +MessageId=16393 +Language=English +%1 +. +MessageId=16394 +Language=English +%1 +. +MessageId=16395 +Language=English +%1 +. +MessageId=16396 +Language=English +%1 +. +MessageId=16397 +Language=English +%1 +. +MessageId=16398 +Language=English +%1 +. +MessageId=16399 +Language=English +%1 +. +MessageId=16400 +Language=English +%1 +. +MessageId=16401 +Language=English +%1 +. +MessageId=16402 +Language=English +%1 +. +MessageId=16403 +Language=English +%1 +. +MessageId=16404 +Language=English +%1 +. +MessageId=16405 +Language=English +%1 +. +MessageId=16406 +Language=English +%1 +. +MessageId=16407 +Language=English +%1 +. +MessageId=16408 +Language=English +%1 +. +MessageId=16409 +Language=English +%1 +. +MessageId=16410 +Language=English +%1 +. +MessageId=16411 +Language=English +%1 +. +MessageId=16412 +Language=English +%1 +. +MessageId=16413 +Language=English +%1 +. +MessageId=16414 +Language=English +%1 +. +MessageId=16415 +Language=English +%1 +. +MessageId=16416 +Language=English +%1 +. +MessageId=16417 +Language=English +%1 +. +MessageId=16418 +Language=English +%1 +. +MessageId=16419 +Language=English +%1 +. +MessageId=16420 +Language=English +%1 +. +MessageId=16421 +Language=English +%1 +. +MessageId=16422 +Language=English +%1 +. +MessageId=16423 +Language=English +%1 +. +MessageId=16424 +Language=English +%1 +. +MessageId=16425 +Language=English +%1 +. +MessageId=16426 +Language=English +%1 +. +MessageId=16427 +Language=English +%1 +. +MessageId=16428 +Language=English +%1 +. +MessageId=16429 +Language=English +%1 +. +MessageId=16430 +Language=English +%1 +. +MessageId=16431 +Language=English +%1 +. +MessageId=16432 +Language=English +%1 +. +MessageId=16433 +Language=English +%1 +. +MessageId=16434 +Language=English +%1 +. +MessageId=16435 +Language=English +%1 +. +MessageId=16436 +Language=English +%1 +. +MessageId=16437 +Language=English +%1 +. +MessageId=16438 +Language=English +%1 +. +MessageId=16439 +Language=English +%1 +. +MessageId=16440 +Language=English +%1 +. +MessageId=16441 +Language=English +%1 +. +MessageId=16442 +Language=English +%1 +. +MessageId=16443 +Language=English +%1 +. +MessageId=16444 +Language=English +%1 +. +MessageId=16445 +Language=English +%1 +. +MessageId=16446 +Language=English +%1 +. +MessageId=16447 +Language=English +%1 +. +MessageId=16448 +Language=English +%1 +. +MessageId=16449 +Language=English +%1 +. +MessageId=16450 +Language=English +%1 +. +MessageId=16451 +Language=English +%1 +. +MessageId=16452 +Language=English +%1 +. +MessageId=16453 +Language=English +%1 +. +MessageId=16454 +Language=English +%1 +. +MessageId=16455 +Language=English +%1 +. +MessageId=16456 +Language=English +%1 +. +MessageId=16457 +Language=English +%1 +. +MessageId=16458 +Language=English +%1 +. +MessageId=16459 +Language=English +%1 +. +MessageId=16460 +Language=English +%1 +. +MessageId=16461 +Language=English +%1 +. +MessageId=16462 +Language=English +%1 +. +MessageId=16463 +Language=English +%1 +. +MessageId=16464 +Language=English +%1 +. +MessageId=16465 +Language=English +%1 +. +MessageId=16466 +Language=English +%1 +. +MessageId=16467 +Language=English +%1 +. +MessageId=16468 +Language=English +%1 +. +MessageId=16469 +Language=English +%1 +. +MessageId=16470 +Language=English +%1 +. +MessageId=16471 +Language=English +%1 +. +MessageId=16472 +Language=English +%1 +. +MessageId=16473 +Language=English +%1 +. +MessageId=16474 +Language=English +%1 +. +MessageId=16475 +Language=English +%1 +. +MessageId=16476 +Language=English +%1 +. +MessageId=16477 +Language=English +%1 +. +MessageId=16478 +Language=English +%1 +. +MessageId=16479 +Language=English +%1 +. +MessageId=16480 +Language=English +%1 +. +MessageId=16481 +Language=English +%1 +. +MessageId=16482 +Language=English +%1 +. +MessageId=16483 +Language=English +%1 +. +MessageId=16484 +Language=English +%1 +. +MessageId=16485 +Language=English +%1 +. +MessageId=16486 +Language=English +%1 +. +MessageId=16487 +Language=English +%1 +. +MessageId=16488 +Language=English +%1 +. +MessageId=16489 +Language=English +%1 +. +MessageId=16490 +Language=English +%1 +. +MessageId=16491 +Language=English +%1 +. +MessageId=16492 +Language=English +%1 +. +MessageId=16493 +Language=English +%1 +. +MessageId=16494 +Language=English +%1 +. +MessageId=16495 +Language=English +%1 +. +MessageId=16496 +Language=English +%1 +. +MessageId=16497 +Language=English +%1 +. +MessageId=16498 +Language=English +%1 +. +MessageId=16499 +Language=English +%1 +. +MessageId=16500 +Language=English +%1 +. +MessageId=16501 +Language=English +%1 +. +MessageId=16502 +Language=English +%1 +. +MessageId=16503 +Language=English +%1 +. +MessageId=16504 +Language=English +%1 +. +MessageId=16505 +Language=English +%1 +. +MessageId=16506 +Language=English +%1 +. +MessageId=16507 +Language=English +%1 +. +MessageId=16508 +Language=English +%1 +. +MessageId=16509 +Language=English +%1 +. +MessageId=16510 +Language=English +%1 +. +MessageId=16511 +Language=English +%1 +. +MessageId=16512 +Language=English +%1 +. +MessageId=16513 +Language=English +%1 +. +MessageId=16514 +Language=English +%1 +. +MessageId=16515 +Language=English +%1 +. +MessageId=16516 +Language=English +%1 +. +MessageId=16517 +Language=English +%1 +. +MessageId=16518 +Language=English +%1 +. +MessageId=16519 +Language=English +%1 +. +MessageId=16520 +Language=English +%1 +. +MessageId=16521 +Language=English +%1 +. +MessageId=16522 +Language=English +%1 +. +MessageId=16523 +Language=English +%1 +. +MessageId=16524 +Language=English +%1 +. +MessageId=16525 +Language=English +%1 +. +MessageId=16526 +Language=English +%1 +. +MessageId=16527 +Language=English +%1 +. +MessageId=16528 +Language=English +%1 +. +MessageId=16529 +Language=English +%1 +. +MessageId=16530 +Language=English +%1 +. +MessageId=16531 +Language=English +%1 +. +MessageId=16532 +Language=English +%1 +. +MessageId=16533 +Language=English +%1 +. +MessageId=16534 +Language=English +%1 +. +MessageId=16535 +Language=English +%1 +. +MessageId=16536 +Language=English +%1 +. +MessageId=16537 +Language=English +%1 +. +MessageId=16538 +Language=English +%1 +. +MessageId=16539 +Language=English +%1 +. +MessageId=16540 +Language=English +%1 +. +MessageId=16541 +Language=English +%1 +. +MessageId=16542 +Language=English +%1 +. +MessageId=16543 +Language=English +%1 +. +MessageId=16544 +Language=English +%1 +. +MessageId=16545 +Language=English +%1 +. +MessageId=16546 +Language=English +%1 +. +MessageId=16547 +Language=English +%1 +. +MessageId=16548 +Language=English +%1 +. +MessageId=16549 +Language=English +%1 +. +MessageId=16550 +Language=English +%1 +. +MessageId=16551 +Language=English +%1 +. +MessageId=16552 +Language=English +%1 +. +MessageId=16553 +Language=English +%1 +. +MessageId=16554 +Language=English +%1 +. +MessageId=16555 +Language=English +%1 +. +MessageId=16556 +Language=English +%1 +. +MessageId=16557 +Language=English +%1 +. +MessageId=16558 +Language=English +%1 +. +MessageId=16559 +Language=English +%1 +. +MessageId=16560 +Language=English +%1 +. +MessageId=16561 +Language=English +%1 +. +MessageId=16562 +Language=English +%1 +. +MessageId=16563 +Language=English +%1 +. +MessageId=16564 +Language=English +%1 +. +MessageId=16565 +Language=English +%1 +. +MessageId=16566 +Language=English +%1 +. +MessageId=16567 +Language=English +%1 +. +MessageId=16568 +Language=English +%1 +. +MessageId=16569 +Language=English +%1 +. +MessageId=16570 +Language=English +%1 +. +MessageId=16571 +Language=English +%1 +. +MessageId=16572 +Language=English +%1 +. +MessageId=16573 +Language=English +%1 +. +MessageId=16574 +Language=English +%1 +. +MessageId=16575 +Language=English +%1 +. +MessageId=16576 +Language=English +%1 +. +MessageId=16577 +Language=English +%1 +. +MessageId=16578 +Language=English +%1 +. +MessageId=16579 +Language=English +%1 +. +MessageId=16580 +Language=English +%1 +. +MessageId=16581 +Language=English +%1 +. +MessageId=16582 +Language=English +%1 +. +MessageId=16583 +Language=English +%1 +. +MessageId=16584 +Language=English +%1 +. +MessageId=16585 +Language=English +%1 +. +MessageId=16586 +Language=English +%1 +. +MessageId=16587 +Language=English +%1 +. +MessageId=16588 +Language=English +%1 +. +MessageId=16589 +Language=English +%1 +. +MessageId=16590 +Language=English +%1 +. +MessageId=16591 +Language=English +%1 +. +MessageId=16592 +Language=English +%1 +. +MessageId=16593 +Language=English +%1 +. +MessageId=16594 +Language=English +%1 +. +MessageId=16595 +Language=English +%1 +. +MessageId=16596 +Language=English +%1 +. +MessageId=16597 +Language=English +%1 +. +MessageId=16598 +Language=English +%1 +. +MessageId=16599 +Language=English +%1 +. +MessageId=16600 +Language=English +%1 +. +MessageId=16601 +Language=English +%1 +. +MessageId=16602 +Language=English +%1 +. +MessageId=16603 +Language=English +%1 +. +MessageId=16604 +Language=English +%1 +. +MessageId=16605 +Language=English +%1 +. +MessageId=16606 +Language=English +%1 +. +MessageId=16607 +Language=English +%1 +. +MessageId=16608 +Language=English +%1 +. +MessageId=16609 +Language=English +%1 +. +MessageId=16610 +Language=English +%1 +. +MessageId=16611 +Language=English +%1 +. +MessageId=16612 +Language=English +%1 +. +MessageId=16613 +Language=English +%1 +. +MessageId=16614 +Language=English +%1 +. +MessageId=16615 +Language=English +%1 +. +MessageId=16616 +Language=English +%1 +. +MessageId=16617 +Language=English +%1 +. +MessageId=16618 +Language=English +%1 +. +MessageId=16619 +Language=English +%1 +. +MessageId=16620 +Language=English +%1 +. +MessageId=16621 +Language=English +%1 +. +MessageId=16622 +Language=English +%1 +. +MessageId=16623 +Language=English +%1 +. +MessageId=16624 +Language=English +%1 +. +MessageId=16625 +Language=English +%1 +. +MessageId=16626 +Language=English +%1 +. +MessageId=16627 +Language=English +%1 +. +MessageId=16628 +Language=English +%1 +. +MessageId=16629 +Language=English +%1 +. +MessageId=16630 +Language=English +%1 +. +MessageId=16631 +Language=English +%1 +. +MessageId=16632 +Language=English +%1 +. +MessageId=16633 +Language=English +%1 +. +MessageId=16634 +Language=English +%1 +. +MessageId=16635 +Language=English +%1 +. +MessageId=16636 +Language=English +%1 +. +MessageId=16637 +Language=English +%1 +. +MessageId=16638 +Language=English +%1 +. +MessageId=16639 +Language=English +%1 +. +MessageId=16640 +Language=English +%1 +. +MessageId=16641 +Language=English +%1 +. +MessageId=16642 +Language=English +%1 +. +MessageId=16643 +Language=English +%1 +. +MessageId=16644 +Language=English +%1 +. +MessageId=16645 +Language=English +%1 +. +MessageId=16646 +Language=English +%1 +. +MessageId=16647 +Language=English +%1 +. +MessageId=16648 +Language=English +%1 +. +MessageId=16649 +Language=English +%1 +. +MessageId=16650 +Language=English +%1 +. +MessageId=16651 +Language=English +%1 +. +MessageId=16652 +Language=English +%1 +. +MessageId=16653 +Language=English +%1 +. +MessageId=16654 +Language=English +%1 +. +MessageId=16655 +Language=English +%1 +. +MessageId=16656 +Language=English +%1 +. +MessageId=16657 +Language=English +%1 +. +MessageId=16658 +Language=English +%1 +. +MessageId=16659 +Language=English +%1 +. +MessageId=16660 +Language=English +%1 +. +MessageId=16661 +Language=English +%1 +. +MessageId=16662 +Language=English +%1 +. +MessageId=16663 +Language=English +%1 +. +MessageId=16664 +Language=English +%1 +. +MessageId=16665 +Language=English +%1 +. +MessageId=16666 +Language=English +%1 +. +MessageId=16667 +Language=English +%1 +. +MessageId=16668 +Language=English +%1 +. +MessageId=16669 +Language=English +%1 +. +MessageId=16670 +Language=English +%1 +. +MessageId=16671 +Language=English +%1 +. +MessageId=16672 +Language=English +%1 +. +MessageId=16673 +Language=English +%1 +. +MessageId=16674 +Language=English +%1 +. +MessageId=16675 +Language=English +%1 +. +MessageId=16676 +Language=English +%1 +. +MessageId=16677 +Language=English +%1 +. +MessageId=16678 +Language=English +%1 +. +MessageId=16679 +Language=English +%1 +. +MessageId=16680 +Language=English +%1 +. +MessageId=16681 +Language=English +%1 +. +MessageId=16682 +Language=English +%1 +. +MessageId=16683 +Language=English +%1 +. +MessageId=16684 +Language=English +%1 +. +MessageId=16685 +Language=English +%1 +. +MessageId=16686 +Language=English +%1 +. +MessageId=16687 +Language=English +%1 +. +MessageId=16688 +Language=English +%1 +. +MessageId=16689 +Language=English +%1 +. +MessageId=16690 +Language=English +%1 +. +MessageId=16691 +Language=English +%1 +. +MessageId=16692 +Language=English +%1 +. +MessageId=16693 +Language=English +%1 +. +MessageId=16694 +Language=English +%1 +. +MessageId=16695 +Language=English +%1 +. +MessageId=16696 +Language=English +%1 +. +MessageId=16697 +Language=English +%1 +. +MessageId=16698 +Language=English +%1 +. +MessageId=16699 +Language=English +%1 +. +MessageId=16700 +Language=English +%1 +. +MessageId=16701 +Language=English +%1 +. +MessageId=16702 +Language=English +%1 +. +MessageId=16703 +Language=English +%1 +. +MessageId=16704 +Language=English +%1 +. +MessageId=16705 +Language=English +%1 +. +MessageId=16706 +Language=English +%1 +. +MessageId=16707 +Language=English +%1 +. +MessageId=16708 +Language=English +%1 +. +MessageId=16709 +Language=English +%1 +. +MessageId=16710 +Language=English +%1 +. +MessageId=16711 +Language=English +%1 +. +MessageId=16712 +Language=English +%1 +. +MessageId=16713 +Language=English +%1 +. +MessageId=16714 +Language=English +%1 +. +MessageId=16715 +Language=English +%1 +. +MessageId=16716 +Language=English +%1 +. +MessageId=16717 +Language=English +%1 +. +MessageId=16718 +Language=English +%1 +. +MessageId=16719 +Language=English +%1 +. +MessageId=16720 +Language=English +%1 +. +MessageId=16721 +Language=English +%1 +. +MessageId=16722 +Language=English +%1 +. +MessageId=16723 +Language=English +%1 +. +MessageId=16724 +Language=English +%1 +. +MessageId=16725 +Language=English +%1 +. +MessageId=16726 +Language=English +%1 +. +MessageId=16727 +Language=English +%1 +. +MessageId=16728 +Language=English +%1 +. +MessageId=16729 +Language=English +%1 +. +MessageId=16730 +Language=English +%1 +. +MessageId=16731 +Language=English +%1 +. +MessageId=16732 +Language=English +%1 +. +MessageId=16733 +Language=English +%1 +. +MessageId=16734 +Language=English +%1 +. +MessageId=16735 +Language=English +%1 +. +MessageId=16736 +Language=English +%1 +. +MessageId=16737 +Language=English +%1 +. +MessageId=16738 +Language=English +%1 +. +MessageId=16739 +Language=English +%1 +. +MessageId=16740 +Language=English +%1 +. +MessageId=16741 +Language=English +%1 +. +MessageId=16742 +Language=English +%1 +. +MessageId=16743 +Language=English +%1 +. +MessageId=16744 +Language=English +%1 +. +MessageId=16745 +Language=English +%1 +. +MessageId=16746 +Language=English +%1 +. +MessageId=16747 +Language=English +%1 +. +MessageId=16748 +Language=English +%1 +. +MessageId=16749 +Language=English +%1 +. +MessageId=16750 +Language=English +%1 +. +MessageId=16751 +Language=English +%1 +. +MessageId=16752 +Language=English +%1 +. +MessageId=16753 +Language=English +%1 +. +MessageId=16754 +Language=English +%1 +. +MessageId=16755 +Language=English +%1 +. +MessageId=16756 +Language=English +%1 +. +MessageId=16757 +Language=English +%1 +. +MessageId=16758 +Language=English +%1 +. +MessageId=16759 +Language=English +%1 +. +MessageId=16760 +Language=English +%1 +. +MessageId=16761 +Language=English +%1 +. +MessageId=16762 +Language=English +%1 +. +MessageId=16763 +Language=English +%1 +. +MessageId=16764 +Language=English +%1 +. +MessageId=16765 +Language=English +%1 +. +MessageId=16766 +Language=English +%1 +. +MessageId=16767 +Language=English +%1 +. +MessageId=16768 +Language=English +%1 +. +MessageId=16769 +Language=English +%1 +. +MessageId=16770 +Language=English +%1 +. +MessageId=16771 +Language=English +%1 +. +MessageId=16772 +Language=English +%1 +. +MessageId=16773 +Language=English +%1 +. +MessageId=16774 +Language=English +%1 +. +MessageId=16775 +Language=English +%1 +. +MessageId=16776 +Language=English +%1 +. +MessageId=16777 +Language=English +%1 +. +MessageId=16778 +Language=English +%1 +. +MessageId=16779 +Language=English +%1 +. +MessageId=16780 +Language=English +%1 +. +MessageId=16781 +Language=English +%1 +. +MessageId=16782 +Language=English +%1 +. +MessageId=16783 +Language=English +%1 +. +MessageId=16784 +Language=English +%1 +. +MessageId=16785 +Language=English +%1 +. +MessageId=16786 +Language=English +%1 +. +MessageId=16787 +Language=English +%1 +. +MessageId=16788 +Language=English +%1 +. +MessageId=16789 +Language=English +%1 +. +MessageId=16790 +Language=English +%1 +. +MessageId=16791 +Language=English +%1 +. +MessageId=16792 +Language=English +%1 +. +MessageId=16793 +Language=English +%1 +. +MessageId=16794 +Language=English +%1 +. +MessageId=16795 +Language=English +%1 +. +MessageId=16796 +Language=English +%1 +. +MessageId=16797 +Language=English +%1 +. +MessageId=16798 +Language=English +%1 +. +MessageId=16799 +Language=English +%1 +. +MessageId=16800 +Language=English +%1 +. +MessageId=16801 +Language=English +%1 +. +MessageId=16802 +Language=English +%1 +. +MessageId=16803 +Language=English +%1 +. +MessageId=16804 +Language=English +%1 +. +MessageId=16805 +Language=English +%1 +. +MessageId=16806 +Language=English +%1 +. +MessageId=16807 +Language=English +%1 +. +MessageId=16808 +Language=English +%1 +. +MessageId=16809 +Language=English +%1 +. +MessageId=16810 +Language=English +%1 +. +MessageId=16811 +Language=English +%1 +. +MessageId=16812 +Language=English +%1 +. +MessageId=16813 +Language=English +%1 +. +MessageId=16814 +Language=English +%1 +. +MessageId=16815 +Language=English +%1 +. +MessageId=16816 +Language=English +%1 +. +MessageId=16817 +Language=English +%1 +. +MessageId=16818 +Language=English +%1 +. +MessageId=16819 +Language=English +%1 +. +MessageId=16820 +Language=English +%1 +. +MessageId=16821 +Language=English +%1 +. +MessageId=16822 +Language=English +%1 +. +MessageId=16823 +Language=English +%1 +. +MessageId=16824 +Language=English +%1 +. +MessageId=16825 +Language=English +%1 +. +MessageId=16826 +Language=English +%1 +. +MessageId=16827 +Language=English +%1 +. +MessageId=16828 +Language=English +%1 +. +MessageId=16829 +Language=English +%1 +. +MessageId=16830 +Language=English +%1 +. +MessageId=16831 +Language=English +%1 +. +MessageId=16832 +Language=English +%1 +. +MessageId=16833 +Language=English +%1 +. +MessageId=16834 +Language=English +%1 +. +MessageId=16835 +Language=English +%1 +. +MessageId=16836 +Language=English +%1 +. +MessageId=16837 +Language=English +%1 +. +MessageId=16838 +Language=English +%1 +. +MessageId=16839 +Language=English +%1 +. +MessageId=16840 +Language=English +%1 +. +MessageId=16841 +Language=English +%1 +. +MessageId=16842 +Language=English +%1 +. +MessageId=16843 +Language=English +%1 +. +MessageId=16844 +Language=English +%1 +. +MessageId=16845 +Language=English +%1 +. +MessageId=16846 +Language=English +%1 +. +MessageId=16847 +Language=English +%1 +. +MessageId=16848 +Language=English +%1 +. +MessageId=16849 +Language=English +%1 +. +MessageId=16850 +Language=English +%1 +. +MessageId=16851 +Language=English +%1 +. +MessageId=16852 +Language=English +%1 +. +MessageId=16853 +Language=English +%1 +. +MessageId=16854 +Language=English +%1 +. +MessageId=16855 +Language=English +%1 +. +MessageId=16856 +Language=English +%1 +. +MessageId=16857 +Language=English +%1 +. +MessageId=16858 +Language=English +%1 +. +MessageId=16859 +Language=English +%1 +. +MessageId=16860 +Language=English +%1 +. +MessageId=16861 +Language=English +%1 +. +MessageId=16862 +Language=English +%1 +. +MessageId=16863 +Language=English +%1 +. +MessageId=16864 +Language=English +%1 +. +MessageId=16865 +Language=English +%1 +. +MessageId=16866 +Language=English +%1 +. +MessageId=16867 +Language=English +%1 +. +MessageId=16868 +Language=English +%1 +. +MessageId=16869 +Language=English +%1 +. +MessageId=16870 +Language=English +%1 +. +MessageId=16871 +Language=English +%1 +. +MessageId=16872 +Language=English +%1 +. +MessageId=16873 +Language=English +%1 +. +MessageId=16874 +Language=English +%1 +. +MessageId=16875 +Language=English +%1 +. +MessageId=16876 +Language=English +%1 +. +MessageId=16877 +Language=English +%1 +. +MessageId=16878 +Language=English +%1 +. +MessageId=16879 +Language=English +%1 +. +MessageId=16880 +Language=English +%1 +. +MessageId=16881 +Language=English +%1 +. +MessageId=16882 +Language=English +%1 +. +MessageId=16883 +Language=English +%1 +. +MessageId=16884 +Language=English +%1 +. +MessageId=16885 +Language=English +%1 +. +MessageId=16886 +Language=English +%1 +. +MessageId=16887 +Language=English +%1 +. +MessageId=16888 +Language=English +%1 +. +MessageId=16889 +Language=English +%1 +. +MessageId=16890 +Language=English +%1 +. +MessageId=16891 +Language=English +%1 +. +MessageId=16892 +Language=English +%1 +. +MessageId=16893 +Language=English +%1 +. +MessageId=16894 +Language=English +%1 +. +MessageId=16895 +Language=English +%1 +. +MessageId=16896 +Language=English +%1 +. +MessageId=16897 +Language=English +%1 +. +MessageId=16898 +Language=English +%1 +. +MessageId=16899 +Language=English +%1 +. +MessageId=16900 +Language=English +%1 +. +MessageId=16901 +Language=English +%1 +. +MessageId=16902 +Language=English +%1 +. +MessageId=16903 +Language=English +%1 +. +MessageId=16904 +Language=English +%1 +. +MessageId=16905 +Language=English +%1 +. +MessageId=16906 +Language=English +%1 +. +MessageId=16907 +Language=English +%1 +. +MessageId=16908 +Language=English +%1 +. +MessageId=16909 +Language=English +%1 +. +MessageId=16910 +Language=English +%1 +. +MessageId=16911 +Language=English +%1 +. +MessageId=16912 +Language=English +%1 +. +MessageId=16913 +Language=English +%1 +. +MessageId=16914 +Language=English +%1 +. +MessageId=16915 +Language=English +%1 +. +MessageId=16916 +Language=English +%1 +. +MessageId=16917 +Language=English +%1 +. +MessageId=16918 +Language=English +%1 +. +MessageId=16919 +Language=English +%1 +. +MessageId=16920 +Language=English +%1 +. +MessageId=16921 +Language=English +%1 +. +MessageId=16922 +Language=English +%1 +. +MessageId=16923 +Language=English +%1 +. +MessageId=16924 +Language=English +%1 +. +MessageId=16925 +Language=English +%1 +. +MessageId=16926 +Language=English +%1 +. +MessageId=16927 +Language=English +%1 +. +MessageId=16928 +Language=English +%1 +. +MessageId=16929 +Language=English +%1 +. +MessageId=16930 +Language=English +%1 +. +MessageId=16931 +Language=English +%1 +. +MessageId=16932 +Language=English +%1 +. +MessageId=16933 +Language=English +%1 +. +MessageId=16934 +Language=English +%1 +. +MessageId=16935 +Language=English +%1 +. +MessageId=16936 +Language=English +%1 +. +MessageId=16937 +Language=English +%1 +. +MessageId=16938 +Language=English +%1 +. +MessageId=16939 +Language=English +%1 +. +MessageId=16940 +Language=English +%1 +. +MessageId=16941 +Language=English +%1 +. +MessageId=16942 +Language=English +%1 +. +MessageId=16943 +Language=English +%1 +. +MessageId=16944 +Language=English +%1 +. +MessageId=16945 +Language=English +%1 +. +MessageId=16946 +Language=English +%1 +. +MessageId=16947 +Language=English +%1 +. +MessageId=16948 +Language=English +%1 +. +MessageId=16949 +Language=English +%1 +. +MessageId=16950 +Language=English +%1 +. +MessageId=16951 +Language=English +%1 +. +MessageId=16952 +Language=English +%1 +. +MessageId=16953 +Language=English +%1 +. +MessageId=16954 +Language=English +%1 +. +MessageId=16955 +Language=English +%1 +. +MessageId=16956 +Language=English +%1 +. +MessageId=16957 +Language=English +%1 +. +MessageId=16958 +Language=English +%1 +. +MessageId=16959 +Language=English +%1 +. +MessageId=16960 +Language=English +%1 +. +MessageId=16961 +Language=English +%1 +. +MessageId=16962 +Language=English +%1 +. +MessageId=16963 +Language=English +%1 +. +MessageId=16964 +Language=English +%1 +. +MessageId=16965 +Language=English +%1 +. +MessageId=16966 +Language=English +%1 +. +MessageId=16967 +Language=English +%1 +. +MessageId=16968 +Language=English +%1 +. +MessageId=16969 +Language=English +%1 +. +MessageId=16970 +Language=English +%1 +. +MessageId=16971 +Language=English +%1 +. +MessageId=16972 +Language=English +%1 +. +MessageId=16973 +Language=English +%1 +. +MessageId=16974 +Language=English +%1 +. +MessageId=16975 +Language=English +%1 +. +MessageId=16976 +Language=English +%1 +. +MessageId=16977 +Language=English +%1 +. +MessageId=16978 +Language=English +%1 +. +MessageId=16979 +Language=English +%1 +. +MessageId=16980 +Language=English +%1 +. +MessageId=16981 +Language=English +%1 +. +MessageId=16982 +Language=English +%1 +. +MessageId=16983 +Language=English +%1 +. +MessageId=16984 +Language=English +%1 +. +MessageId=16985 +Language=English +%1 +. +MessageId=16986 +Language=English +%1 +. +MessageId=16987 +Language=English +%1 +. +MessageId=16988 +Language=English +%1 +. +MessageId=16989 +Language=English +%1 +. +MessageId=16990 +Language=English +%1 +. +MessageId=16991 +Language=English +%1 +. +MessageId=16992 +Language=English +%1 +. +MessageId=16993 +Language=English +%1 +. +MessageId=16994 +Language=English +%1 +. +MessageId=16995 +Language=English +%1 +. +MessageId=16996 +Language=English +%1 +. +MessageId=16997 +Language=English +%1 +. +MessageId=16998 +Language=English +%1 +. +MessageId=16999 +Language=English +%1 +. +MessageId=17000 +Language=English +%1 +. +MessageId=17001 +Language=English +%1 +. +MessageId=17002 +Language=English +%1 +. +MessageId=17003 +Language=English +%1 +. +MessageId=17004 +Language=English +%1 +. +MessageId=17005 +Language=English +%1 +. +MessageId=17006 +Language=English +%1 +. +MessageId=17007 +Language=English +%1 +. +MessageId=17008 +Language=English +%1 +. +MessageId=17009 +Language=English +%1 +. +MessageId=17010 +Language=English +%1 +. +MessageId=17011 +Language=English +%1 +. +MessageId=17012 +Language=English +%1 +. +MessageId=17013 +Language=English +%1 +. +MessageId=17014 +Language=English +%1 +. +MessageId=17015 +Language=English +%1 +. +MessageId=17016 +Language=English +%1 +. +MessageId=17017 +Language=English +%1 +. +MessageId=17018 +Language=English +%1 +. +MessageId=17019 +Language=English +%1 +. +MessageId=17020 +Language=English +%1 +. +MessageId=17021 +Language=English +%1 +. +MessageId=17022 +Language=English +%1 +. +MessageId=17023 +Language=English +%1 +. +MessageId=17024 +Language=English +%1 +. +MessageId=17025 +Language=English +%1 +. +MessageId=17026 +Language=English +%1 +. +MessageId=17027 +Language=English +%1 +. +MessageId=17028 +Language=English +%1 +. +MessageId=17029 +Language=English +%1 +. +MessageId=17030 +Language=English +%1 +. +MessageId=17031 +Language=English +%1 +. +MessageId=17032 +Language=English +%1 +. +MessageId=17033 +Language=English +%1 +. +MessageId=17034 +Language=English +%1 +. +MessageId=17035 +Language=English +%1 +. +MessageId=17036 +Language=English +%1 +. +MessageId=17037 +Language=English +%1 +. +MessageId=17038 +Language=English +%1 +. +MessageId=17039 +Language=English +%1 +. +MessageId=17040 +Language=English +%1 +. +MessageId=17041 +Language=English +%1 +. +MessageId=17042 +Language=English +%1 +. +MessageId=17043 +Language=English +%1 +. +MessageId=17044 +Language=English +%1 +. +MessageId=17045 +Language=English +%1 +. +MessageId=17046 +Language=English +%1 +. +MessageId=17047 +Language=English +%1 +. +MessageId=17048 +Language=English +%1 +. +MessageId=17049 +Language=English +%1 +. +MessageId=17050 +Language=English +%1 +. +MessageId=17051 +Language=English +%1 +. +MessageId=17052 +Language=English +%1 +. +MessageId=17053 +Language=English +%1 +. +MessageId=17054 +Language=English +%1 +. +MessageId=17055 +Language=English +%1 +. +MessageId=17056 +Language=English +%1 +. +MessageId=17057 +Language=English +%1 +. +MessageId=17058 +Language=English +%1 +. +MessageId=17059 +Language=English +%1 +. +MessageId=17060 +Language=English +%1 +. +MessageId=17061 +Language=English +%1 +. +MessageId=17062 +Language=English +%1 +. +MessageId=17063 +Language=English +%1 +. +MessageId=17064 +Language=English +%1 +. +MessageId=17065 +Language=English +%1 +. +MessageId=17066 +Language=English +%1 +. +MessageId=17067 +Language=English +%1 +. +MessageId=17068 +Language=English +%1 +. +MessageId=17069 +Language=English +%1 +. +MessageId=17070 +Language=English +%1 +. +MessageId=17071 +Language=English +%1 +. +MessageId=17072 +Language=English +%1 +. +MessageId=17073 +Language=English +%1 +. +MessageId=17074 +Language=English +%1 +. +MessageId=17075 +Language=English +%1 +. +MessageId=17076 +Language=English +%1 +. +MessageId=17077 +Language=English +%1 +. +MessageId=17078 +Language=English +%1 +. +MessageId=17079 +Language=English +%1 +. +MessageId=17080 +Language=English +%1 +. +MessageId=17081 +Language=English +%1 +. +MessageId=17082 +Language=English +%1 +. +MessageId=17083 +Language=English +%1 +. +MessageId=17084 +Language=English +%1 +. +MessageId=17085 +Language=English +%1 +. +MessageId=17086 +Language=English +%1 +. +MessageId=17087 +Language=English +%1 +. +MessageId=17088 +Language=English +%1 +. +MessageId=17089 +Language=English +%1 +. +MessageId=17090 +Language=English +%1 +. +MessageId=17091 +Language=English +%1 +. +MessageId=17092 +Language=English +%1 +. +MessageId=17093 +Language=English +%1 +. +MessageId=17094 +Language=English +%1 +. +MessageId=17095 +Language=English +%1 +. +MessageId=17096 +Language=English +%1 +. +MessageId=17097 +Language=English +%1 +. +MessageId=17098 +Language=English +%1 +. +MessageId=17099 +Language=English +%1 +. +MessageId=17100 +Language=English +%1 +. +MessageId=17101 +Language=English +%1 +. +MessageId=17102 +Language=English +%1 +. +MessageId=17103 +Language=English +%1 +. +MessageId=17104 +Language=English +%1 +. +MessageId=17105 +Language=English +%1 +. +MessageId=17106 +Language=English +%1 +. +MessageId=17107 +Language=English +%1 +. +MessageId=17108 +Language=English +%1 +. +MessageId=17109 +Language=English +%1 +. +MessageId=17110 +Language=English +%1 +. +MessageId=17111 +Language=English +%1 +. +MessageId=17112 +Language=English +%1 +. +MessageId=17113 +Language=English +%1 +. +MessageId=17114 +Language=English +%1 +. +MessageId=17115 +Language=English +%1 +. +MessageId=17116 +Language=English +%1 +. +MessageId=17117 +Language=English +%1 +. +MessageId=17118 +Language=English +%1 +. +MessageId=17119 +Language=English +%1 +. +MessageId=17120 +Language=English +%1 +. +MessageId=17121 +Language=English +%1 +. +MessageId=17122 +Language=English +%1 +. +MessageId=17123 +Language=English +%1 +. +MessageId=17124 +Language=English +%1 +. +MessageId=17125 +Language=English +%1 +. +MessageId=17126 +Language=English +%1 +. +MessageId=17127 +Language=English +%1 +. +MessageId=17128 +Language=English +%1 +. +MessageId=17129 +Language=English +%1 +. +MessageId=17130 +Language=English +%1 +. +MessageId=17131 +Language=English +%1 +. +MessageId=17132 +Language=English +%1 +. +MessageId=17133 +Language=English +%1 +. +MessageId=17134 +Language=English +%1 +. +MessageId=17135 +Language=English +%1 +. +MessageId=17136 +Language=English +%1 +. +MessageId=17137 +Language=English +%1 +. +MessageId=17138 +Language=English +%1 +. +MessageId=17139 +Language=English +%1 +. +MessageId=17140 +Language=English +%1 +. +MessageId=17141 +Language=English +%1 +. +MessageId=17142 +Language=English +%1 +. +MessageId=17143 +Language=English +%1 +. +MessageId=17144 +Language=English +%1 +. +MessageId=17145 +Language=English +%1 +. +MessageId=17146 +Language=English +%1 +. +MessageId=17147 +Language=English +%1 +. +MessageId=17148 +Language=English +%1 +. +MessageId=17149 +Language=English +%1 +. +MessageId=17150 +Language=English +%1 +. +MessageId=17151 +Language=English +%1 +. +MessageId=17152 +Language=English +%1 +. +MessageId=17153 +Language=English +%1 +. +MessageId=17154 +Language=English +%1 +. +MessageId=17155 +Language=English +%1 +. +MessageId=17156 +Language=English +%1 +. +MessageId=17157 +Language=English +%1 +. +MessageId=17158 +Language=English +%1 +. +MessageId=17159 +Language=English +%1 +. +MessageId=17160 +Language=English +%1 +. +MessageId=17161 +Language=English +%1 +. +MessageId=17162 +Language=English +%1 +. +MessageId=17163 +Language=English +%1 +. +MessageId=17164 +Language=English +%1 +. +MessageId=17165 +Language=English +%1 +. +MessageId=17166 +Language=English +%1 +. +MessageId=17167 +Language=English +%1 +. +MessageId=17168 +Language=English +%1 +. +MessageId=17169 +Language=English +%1 +. +MessageId=17170 +Language=English +%1 +. +MessageId=17171 +Language=English +%1 +. +MessageId=17172 +Language=English +%1 +. +MessageId=17173 +Language=English +%1 +. +MessageId=17174 +Language=English +%1 +. +MessageId=17175 +Language=English +%1 +. +MessageId=17176 +Language=English +%1 +. +MessageId=17177 +Language=English +%1 +. +MessageId=17178 +Language=English +%1 +. +MessageId=17179 +Language=English +%1 +. +MessageId=17180 +Language=English +%1 +. +MessageId=17181 +Language=English +%1 +. +MessageId=17182 +Language=English +%1 +. +MessageId=17183 +Language=English +%1 +. +MessageId=17184 +Language=English +%1 +. +MessageId=17185 +Language=English +%1 +. +MessageId=17186 +Language=English +%1 +. +MessageId=17187 +Language=English +%1 +. +MessageId=17188 +Language=English +%1 +. +MessageId=17189 +Language=English +%1 +. +MessageId=17190 +Language=English +%1 +. +MessageId=17191 +Language=English +%1 +. +MessageId=17192 +Language=English +%1 +. +MessageId=17193 +Language=English +%1 +. +MessageId=17194 +Language=English +%1 +. +MessageId=17195 +Language=English +%1 +. +MessageId=17196 +Language=English +%1 +. +MessageId=17197 +Language=English +%1 +. +MessageId=17198 +Language=English +%1 +. +MessageId=17199 +Language=English +%1 +. +MessageId=17200 +Language=English +%1 +. +MessageId=17201 +Language=English +%1 +. +MessageId=17202 +Language=English +%1 +. +MessageId=17203 +Language=English +%1 +. +MessageId=17204 +Language=English +%1 +. +MessageId=17205 +Language=English +%1 +. +MessageId=17206 +Language=English +%1 +. +MessageId=17207 +Language=English +%1 +. +MessageId=17208 +Language=English +%1 +. +MessageId=17209 +Language=English +%1 +. +MessageId=17210 +Language=English +%1 +. +MessageId=17211 +Language=English +%1 +. +MessageId=17212 +Language=English +%1 +. +MessageId=17213 +Language=English +%1 +. +MessageId=17214 +Language=English +%1 +. +MessageId=17215 +Language=English +%1 +. +MessageId=17216 +Language=English +%1 +. +MessageId=17217 +Language=English +%1 +. +MessageId=17218 +Language=English +%1 +. +MessageId=17219 +Language=English +%1 +. +MessageId=17220 +Language=English +%1 +. +MessageId=17221 +Language=English +%1 +. +MessageId=17222 +Language=English +%1 +. +MessageId=17223 +Language=English +%1 +. +MessageId=17224 +Language=English +%1 +. +MessageId=17225 +Language=English +%1 +. +MessageId=17226 +Language=English +%1 +. +MessageId=17227 +Language=English +%1 +. +MessageId=17228 +Language=English +%1 +. +MessageId=17229 +Language=English +%1 +. +MessageId=17230 +Language=English +%1 +. +MessageId=17231 +Language=English +%1 +. +MessageId=17232 +Language=English +%1 +. +MessageId=17233 +Language=English +%1 +. +MessageId=17234 +Language=English +%1 +. +MessageId=17235 +Language=English +%1 +. +MessageId=17236 +Language=English +%1 +. +MessageId=17237 +Language=English +%1 +. +MessageId=17238 +Language=English +%1 +. +MessageId=17239 +Language=English +%1 +. +MessageId=17240 +Language=English +%1 +. +MessageId=17241 +Language=English +%1 +. +MessageId=17242 +Language=English +%1 +. +MessageId=17243 +Language=English +%1 +. +MessageId=17244 +Language=English +%1 +. +MessageId=17245 +Language=English +%1 +. +MessageId=17246 +Language=English +%1 +. +MessageId=17247 +Language=English +%1 +. +MessageId=17248 +Language=English +%1 +. +MessageId=17249 +Language=English +%1 +. +MessageId=17250 +Language=English +%1 +. +MessageId=17251 +Language=English +%1 +. +MessageId=17252 +Language=English +%1 +. +MessageId=17253 +Language=English +%1 +. +MessageId=17254 +Language=English +%1 +. +MessageId=17255 +Language=English +%1 +. +MessageId=17256 +Language=English +%1 +. +MessageId=17257 +Language=English +%1 +. +MessageId=17258 +Language=English +%1 +. +MessageId=17259 +Language=English +%1 +. +MessageId=17260 +Language=English +%1 +. +MessageId=17261 +Language=English +%1 +. +MessageId=17262 +Language=English +%1 +. +MessageId=17263 +Language=English +%1 +. +MessageId=17264 +Language=English +%1 +. +MessageId=17265 +Language=English +%1 +. +MessageId=17266 +Language=English +%1 +. +MessageId=17267 +Language=English +%1 +. +MessageId=17268 +Language=English +%1 +. +MessageId=17269 +Language=English +%1 +. +MessageId=17270 +Language=English +%1 +. +MessageId=17271 +Language=English +%1 +. +MessageId=17272 +Language=English +%1 +. +MessageId=17273 +Language=English +%1 +. +MessageId=17274 +Language=English +%1 +. +MessageId=17275 +Language=English +%1 +. +MessageId=17276 +Language=English +%1 +. +MessageId=17277 +Language=English +%1 +. +MessageId=17278 +Language=English +%1 +. +MessageId=17279 +Language=English +%1 +. +MessageId=17280 +Language=English +%1 +. +MessageId=17281 +Language=English +%1 +. +MessageId=17282 +Language=English +%1 +. +MessageId=17283 +Language=English +%1 +. +MessageId=17284 +Language=English +%1 +. +MessageId=17285 +Language=English +%1 +. +MessageId=17286 +Language=English +%1 +. +MessageId=17287 +Language=English +%1 +. +MessageId=17288 +Language=English +%1 +. +MessageId=17289 +Language=English +%1 +. +MessageId=17290 +Language=English +%1 +. +MessageId=17291 +Language=English +%1 +. +MessageId=17292 +Language=English +%1 +. +MessageId=17293 +Language=English +%1 +. +MessageId=17294 +Language=English +%1 +. +MessageId=17295 +Language=English +%1 +. +MessageId=17296 +Language=English +%1 +. +MessageId=17297 +Language=English +%1 +. +MessageId=17298 +Language=English +%1 +. +MessageId=17299 +Language=English +%1 +. +MessageId=17300 +Language=English +%1 +. +MessageId=17301 +Language=English +%1 +. +MessageId=17302 +Language=English +%1 +. +MessageId=17303 +Language=English +%1 +. +MessageId=17304 +Language=English +%1 +. +MessageId=17305 +Language=English +%1 +. +MessageId=17306 +Language=English +%1 +. +MessageId=17307 +Language=English +%1 +. +MessageId=17308 +Language=English +%1 +. +MessageId=17309 +Language=English +%1 +. +MessageId=17310 +Language=English +%1 +. +MessageId=17311 +Language=English +%1 +. +MessageId=17312 +Language=English +%1 +. +MessageId=17313 +Language=English +%1 +. +MessageId=17314 +Language=English +%1 +. +MessageId=17315 +Language=English +%1 +. +MessageId=17316 +Language=English +%1 +. +MessageId=17317 +Language=English +%1 +. +MessageId=17318 +Language=English +%1 +. +MessageId=17319 +Language=English +%1 +. +MessageId=17320 +Language=English +%1 +. +MessageId=17321 +Language=English +%1 +. +MessageId=17322 +Language=English +%1 +. +MessageId=17323 +Language=English +%1 +. +MessageId=17324 +Language=English +%1 +. +MessageId=17325 +Language=English +%1 +. +MessageId=17326 +Language=English +%1 +. +MessageId=17327 +Language=English +%1 +. +MessageId=17328 +Language=English +%1 +. +MessageId=17329 +Language=English +%1 +. +MessageId=17330 +Language=English +%1 +. +MessageId=17331 +Language=English +%1 +. +MessageId=17332 +Language=English +%1 +. +MessageId=17333 +Language=English +%1 +. +MessageId=17334 +Language=English +%1 +. +MessageId=17335 +Language=English +%1 +. +MessageId=17336 +Language=English +%1 +. +MessageId=17337 +Language=English +%1 +. +MessageId=17338 +Language=English +%1 +. +MessageId=17339 +Language=English +%1 +. +MessageId=17340 +Language=English +%1 +. +MessageId=17341 +Language=English +%1 +. +MessageId=17342 +Language=English +%1 +. +MessageId=17343 +Language=English +%1 +. +MessageId=17344 +Language=English +%1 +. +MessageId=17345 +Language=English +%1 +. +MessageId=17346 +Language=English +%1 +. +MessageId=17347 +Language=English +%1 +. +MessageId=17348 +Language=English +%1 +. +MessageId=17349 +Language=English +%1 +. +MessageId=17350 +Language=English +%1 +. +MessageId=17351 +Language=English +%1 +. +MessageId=17352 +Language=English +%1 +. +MessageId=17353 +Language=English +%1 +. +MessageId=17354 +Language=English +%1 +. +MessageId=17355 +Language=English +%1 +. +MessageId=17356 +Language=English +%1 +. +MessageId=17357 +Language=English +%1 +. +MessageId=17358 +Language=English +%1 +. +MessageId=17359 +Language=English +%1 +. +MessageId=17360 +Language=English +%1 +. +MessageId=17361 +Language=English +%1 +. +MessageId=17362 +Language=English +%1 +. +MessageId=17363 +Language=English +%1 +. +MessageId=17364 +Language=English +%1 +. +MessageId=17365 +Language=English +%1 +. +MessageId=17366 +Language=English +%1 +. +MessageId=17367 +Language=English +%1 +. +MessageId=17368 +Language=English +%1 +. +MessageId=17369 +Language=English +%1 +. +MessageId=17370 +Language=English +%1 +. +MessageId=17371 +Language=English +%1 +. +MessageId=17372 +Language=English +%1 +. +MessageId=17373 +Language=English +%1 +. +MessageId=17374 +Language=English +%1 +. +MessageId=17375 +Language=English +%1 +. +MessageId=17376 +Language=English +%1 +. +MessageId=17377 +Language=English +%1 +. +MessageId=17378 +Language=English +%1 +. +MessageId=17379 +Language=English +%1 +. +MessageId=17380 +Language=English +%1 +. +MessageId=17381 +Language=English +%1 +. +MessageId=17382 +Language=English +%1 +. +MessageId=17383 +Language=English +%1 +. +MessageId=17384 +Language=English +%1 +. +MessageId=17385 +Language=English +%1 +. +MessageId=17386 +Language=English +%1 +. +MessageId=17387 +Language=English +%1 +. +MessageId=17388 +Language=English +%1 +. +MessageId=17389 +Language=English +%1 +. +MessageId=17390 +Language=English +%1 +. +MessageId=17391 +Language=English +%1 +. +MessageId=17392 +Language=English +%1 +. +MessageId=17393 +Language=English +%1 +. +MessageId=17394 +Language=English +%1 +. +MessageId=17395 +Language=English +%1 +. +MessageId=17396 +Language=English +%1 +. +MessageId=17397 +Language=English +%1 +. +MessageId=17398 +Language=English +%1 +. +MessageId=17399 +Language=English +%1 +. +MessageId=17400 +Language=English +%1 +. +MessageId=17401 +Language=English +%1 +. +MessageId=17402 +Language=English +%1 +. +MessageId=17403 +Language=English +%1 +. +MessageId=17404 +Language=English +%1 +. +MessageId=17405 +Language=English +%1 +. +MessageId=17406 +Language=English +%1 +. +MessageId=17407 +Language=English +%1 +. +MessageId=17408 +Language=English +%1 +. +MessageId=17409 +Language=English +%1 +. +MessageId=17410 +Language=English +%1 +. +MessageId=17411 +Language=English +%1 +. +MessageId=17412 +Language=English +%1 +. +MessageId=17413 +Language=English +%1 +. +MessageId=17414 +Language=English +%1 +. +MessageId=17415 +Language=English +%1 +. +MessageId=17416 +Language=English +%1 +. +MessageId=17417 +Language=English +%1 +. +MessageId=17418 +Language=English +%1 +. +MessageId=17419 +Language=English +%1 +. +MessageId=17420 +Language=English +%1 +. +MessageId=17421 +Language=English +%1 +. +MessageId=17422 +Language=English +%1 +. +MessageId=17423 +Language=English +%1 +. +MessageId=17424 +Language=English +%1 +. +MessageId=17425 +Language=English +%1 +. +MessageId=17426 +Language=English +%1 +. +MessageId=17427 +Language=English +%1 +. +MessageId=17428 +Language=English +%1 +. +MessageId=17429 +Language=English +%1 +. +MessageId=17430 +Language=English +%1 +. +MessageId=17431 +Language=English +%1 +. +MessageId=17432 +Language=English +%1 +. +MessageId=17433 +Language=English +%1 +. +MessageId=17434 +Language=English +%1 +. +MessageId=17435 +Language=English +%1 +. +MessageId=17436 +Language=English +%1 +. +MessageId=17437 +Language=English +%1 +. +MessageId=17438 +Language=English +%1 +. +MessageId=17439 +Language=English +%1 +. +MessageId=17440 +Language=English +%1 +. +MessageId=17441 +Language=English +%1 +. +MessageId=17442 +Language=English +%1 +. +MessageId=17443 +Language=English +%1 +. +MessageId=17444 +Language=English +%1 +. +MessageId=17445 +Language=English +%1 +. +MessageId=17446 +Language=English +%1 +. +MessageId=17447 +Language=English +%1 +. +MessageId=17448 +Language=English +%1 +. +MessageId=17449 +Language=English +%1 +. +MessageId=17450 +Language=English +%1 +. +MessageId=17451 +Language=English +%1 +. +MessageId=17452 +Language=English +%1 +. +MessageId=17453 +Language=English +%1 +. +MessageId=17454 +Language=English +%1 +. +MessageId=17455 +Language=English +%1 +. +MessageId=17456 +Language=English +%1 +. +MessageId=17457 +Language=English +%1 +. +MessageId=17458 +Language=English +%1 +. +MessageId=17459 +Language=English +%1 +. +MessageId=17460 +Language=English +%1 +. +MessageId=17461 +Language=English +%1 +. +MessageId=17462 +Language=English +%1 +. +MessageId=17463 +Language=English +%1 +. +MessageId=17464 +Language=English +%1 +. +MessageId=17465 +Language=English +%1 +. +MessageId=17466 +Language=English +%1 +. +MessageId=17467 +Language=English +%1 +. +MessageId=17468 +Language=English +%1 +. +MessageId=17469 +Language=English +%1 +. +MessageId=17470 +Language=English +%1 +. +MessageId=17471 +Language=English +%1 +. +MessageId=17472 +Language=English +%1 +. +MessageId=17473 +Language=English +%1 +. +MessageId=17474 +Language=English +%1 +. +MessageId=17475 +Language=English +%1 +. +MessageId=17476 +Language=English +%1 +. +MessageId=17477 +Language=English +%1 +. +MessageId=17478 +Language=English +%1 +. +MessageId=17479 +Language=English +%1 +. +MessageId=17480 +Language=English +%1 +. +MessageId=17481 +Language=English +%1 +. +MessageId=17482 +Language=English +%1 +. +MessageId=17483 +Language=English +%1 +. +MessageId=17484 +Language=English +%1 +. +MessageId=17485 +Language=English +%1 +. +MessageId=17486 +Language=English +%1 +. +MessageId=17487 +Language=English +%1 +. +MessageId=17488 +Language=English +%1 +. +MessageId=17489 +Language=English +%1 +. +MessageId=17490 +Language=English +%1 +. +MessageId=17491 +Language=English +%1 +. +MessageId=17492 +Language=English +%1 +. +MessageId=17493 +Language=English +%1 +. +MessageId=17494 +Language=English +%1 +. +MessageId=17495 +Language=English +%1 +. +MessageId=17496 +Language=English +%1 +. +MessageId=17497 +Language=English +%1 +. +MessageId=17498 +Language=English +%1 +. +MessageId=17499 +Language=English +%1 +. +MessageId=17500 +Language=English +%1 +. +MessageId=17501 +Language=English +%1 +. +MessageId=17502 +Language=English +%1 +. +MessageId=17503 +Language=English +%1 +. +MessageId=17504 +Language=English +%1 +. +MessageId=17505 +Language=English +%1 +. +MessageId=17506 +Language=English +%1 +. +MessageId=17507 +Language=English +%1 +. +MessageId=17508 +Language=English +%1 +. +MessageId=17509 +Language=English +%1 +. +MessageId=17510 +Language=English +%1 +. +MessageId=17511 +Language=English +%1 +. +MessageId=17512 +Language=English +%1 +. +MessageId=17513 +Language=English +%1 +. +MessageId=17514 +Language=English +%1 +. +MessageId=17515 +Language=English +%1 +. +MessageId=17516 +Language=English +%1 +. +MessageId=17517 +Language=English +%1 +. +MessageId=17518 +Language=English +%1 +. +MessageId=17519 +Language=English +%1 +. +MessageId=17520 +Language=English +%1 +. +MessageId=17521 +Language=English +%1 +. +MessageId=17522 +Language=English +%1 +. +MessageId=17523 +Language=English +%1 +. +MessageId=17524 +Language=English +%1 +. +MessageId=17525 +Language=English +%1 +. +MessageId=17526 +Language=English +%1 +. +MessageId=17527 +Language=English +%1 +. +MessageId=17528 +Language=English +%1 +. +MessageId=17529 +Language=English +%1 +. +MessageId=17530 +Language=English +%1 +. +MessageId=17531 +Language=English +%1 +. +MessageId=17532 +Language=English +%1 +. +MessageId=17533 +Language=English +%1 +. +MessageId=17534 +Language=English +%1 +. +MessageId=17535 +Language=English +%1 +. +MessageId=17536 +Language=English +%1 +. +MessageId=17537 +Language=English +%1 +. +MessageId=17538 +Language=English +%1 +. +MessageId=17539 +Language=English +%1 +. +MessageId=17540 +Language=English +%1 +. +MessageId=17541 +Language=English +%1 +. +MessageId=17542 +Language=English +%1 +. +MessageId=17543 +Language=English +%1 +. +MessageId=17544 +Language=English +%1 +. +MessageId=17545 +Language=English +%1 +. +MessageId=17546 +Language=English +%1 +. +MessageId=17547 +Language=English +%1 +. +MessageId=17548 +Language=English +%1 +. +MessageId=17549 +Language=English +%1 +. +MessageId=17550 +Language=English +%1 +. +MessageId=17551 +Language=English +%1 +. +MessageId=17552 +Language=English +%1 +. +MessageId=17553 +Language=English +%1 +. +MessageId=17554 +Language=English +%1 +. +MessageId=17555 +Language=English +%1 +. +MessageId=17556 +Language=English +%1 +. +MessageId=17557 +Language=English +%1 +. +MessageId=17558 +Language=English +%1 +. +MessageId=17559 +Language=English +%1 +. +MessageId=17560 +Language=English +%1 +. +MessageId=17561 +Language=English +%1 +. +MessageId=17562 +Language=English +%1 +. +MessageId=17563 +Language=English +%1 +. +MessageId=17564 +Language=English +%1 +. +MessageId=17565 +Language=English +%1 +. +MessageId=17566 +Language=English +%1 +. +MessageId=17567 +Language=English +%1 +. +MessageId=17568 +Language=English +%1 +. +MessageId=17569 +Language=English +%1 +. +MessageId=17570 +Language=English +%1 +. +MessageId=17571 +Language=English +%1 +. +MessageId=17572 +Language=English +%1 +. +MessageId=17573 +Language=English +%1 +. +MessageId=17574 +Language=English +%1 +. +MessageId=17575 +Language=English +%1 +. +MessageId=17576 +Language=English +%1 +. +MessageId=17577 +Language=English +%1 +. +MessageId=17578 +Language=English +%1 +. +MessageId=17579 +Language=English +%1 +. +MessageId=17580 +Language=English +%1 +. +MessageId=17581 +Language=English +%1 +. +MessageId=17582 +Language=English +%1 +. +MessageId=17583 +Language=English +%1 +. +MessageId=17584 +Language=English +%1 +. +MessageId=17585 +Language=English +%1 +. +MessageId=17586 +Language=English +%1 +. +MessageId=17587 +Language=English +%1 +. +MessageId=17588 +Language=English +%1 +. +MessageId=17589 +Language=English +%1 +. +MessageId=17590 +Language=English +%1 +. +MessageId=17591 +Language=English +%1 +. +MessageId=17592 +Language=English +%1 +. +MessageId=17593 +Language=English +%1 +. +MessageId=17594 +Language=English +%1 +. +MessageId=17595 +Language=English +%1 +. +MessageId=17596 +Language=English +%1 +. +MessageId=17597 +Language=English +%1 +. +MessageId=17598 +Language=English +%1 +. +MessageId=17599 +Language=English +%1 +. +MessageId=17600 +Language=English +%1 +. +MessageId=17601 +Language=English +%1 +. +MessageId=17602 +Language=English +%1 +. +MessageId=17603 +Language=English +%1 +. +MessageId=17604 +Language=English +%1 +. +MessageId=17605 +Language=English +%1 +. +MessageId=17606 +Language=English +%1 +. +MessageId=17607 +Language=English +%1 +. +MessageId=17608 +Language=English +%1 +. +MessageId=17609 +Language=English +%1 +. +MessageId=17610 +Language=English +%1 +. +MessageId=17611 +Language=English +%1 +. +MessageId=17612 +Language=English +%1 +. +MessageId=17613 +Language=English +%1 +. +MessageId=17614 +Language=English +%1 +. +MessageId=17615 +Language=English +%1 +. +MessageId=17616 +Language=English +%1 +. +MessageId=17617 +Language=English +%1 +. +MessageId=17618 +Language=English +%1 +. +MessageId=17619 +Language=English +%1 +. +MessageId=17620 +Language=English +%1 +. +MessageId=17621 +Language=English +%1 +. +MessageId=17622 +Language=English +%1 +. +MessageId=17623 +Language=English +%1 +. +MessageId=17624 +Language=English +%1 +. +MessageId=17625 +Language=English +%1 +. +MessageId=17626 +Language=English +%1 +. +MessageId=17627 +Language=English +%1 +. +MessageId=17628 +Language=English +%1 +. +MessageId=17629 +Language=English +%1 +. +MessageId=17630 +Language=English +%1 +. +MessageId=17631 +Language=English +%1 +. +MessageId=17632 +Language=English +%1 +. +MessageId=17633 +Language=English +%1 +. +MessageId=17634 +Language=English +%1 +. +MessageId=17635 +Language=English +%1 +. +MessageId=17636 +Language=English +%1 +. +MessageId=17637 +Language=English +%1 +. +MessageId=17638 +Language=English +%1 +. +MessageId=17639 +Language=English +%1 +. +MessageId=17640 +Language=English +%1 +. +MessageId=17641 +Language=English +%1 +. +MessageId=17642 +Language=English +%1 +. +MessageId=17643 +Language=English +%1 +. +MessageId=17644 +Language=English +%1 +. +MessageId=17645 +Language=English +%1 +. +MessageId=17646 +Language=English +%1 +. +MessageId=17647 +Language=English +%1 +. +MessageId=17648 +Language=English +%1 +. +MessageId=17649 +Language=English +%1 +. +MessageId=17650 +Language=English +%1 +. +MessageId=17651 +Language=English +%1 +. +MessageId=17652 +Language=English +%1 +. +MessageId=17653 +Language=English +%1 +. +MessageId=17654 +Language=English +%1 +. +MessageId=17655 +Language=English +%1 +. +MessageId=17656 +Language=English +%1 +. +MessageId=17657 +Language=English +%1 +. +MessageId=17658 +Language=English +%1 +. +MessageId=17659 +Language=English +%1 +. +MessageId=17660 +Language=English +%1 +. +MessageId=17661 +Language=English +%1 +. +MessageId=17662 +Language=English +%1 +. +MessageId=17663 +Language=English +%1 +. +MessageId=17664 +Language=English +%1 +. +MessageId=17665 +Language=English +%1 +. +MessageId=17666 +Language=English +%1 +. +MessageId=17667 +Language=English +%1 +. +MessageId=17668 +Language=English +%1 +. +MessageId=17669 +Language=English +%1 +. +MessageId=17670 +Language=English +%1 +. +MessageId=17671 +Language=English +%1 +. +MessageId=17672 +Language=English +%1 +. +MessageId=17673 +Language=English +%1 +. +MessageId=17674 +Language=English +%1 +. +MessageId=17675 +Language=English +%1 +. +MessageId=17676 +Language=English +%1 +. +MessageId=17677 +Language=English +%1 +. +MessageId=17678 +Language=English +%1 +. +MessageId=17679 +Language=English +%1 +. +MessageId=17680 +Language=English +%1 +. +MessageId=17681 +Language=English +%1 +. +MessageId=17682 +Language=English +%1 +. +MessageId=17683 +Language=English +%1 +. +MessageId=17684 +Language=English +%1 +. +MessageId=17685 +Language=English +%1 +. +MessageId=17686 +Language=English +%1 +. +MessageId=17687 +Language=English +%1 +. +MessageId=17688 +Language=English +%1 +. +MessageId=17689 +Language=English +%1 +. +MessageId=17690 +Language=English +%1 +. +MessageId=17691 +Language=English +%1 +. +MessageId=17692 +Language=English +%1 +. +MessageId=17693 +Language=English +%1 +. +MessageId=17694 +Language=English +%1 +. +MessageId=17695 +Language=English +%1 +. +MessageId=17696 +Language=English +%1 +. +MessageId=17697 +Language=English +%1 +. +MessageId=17698 +Language=English +%1 +. +MessageId=17699 +Language=English +%1 +. +MessageId=17700 +Language=English +%1 +. +MessageId=17701 +Language=English +%1 +. +MessageId=17702 +Language=English +%1 +. +MessageId=17703 +Language=English +%1 +. +MessageId=17704 +Language=English +%1 +. +MessageId=17705 +Language=English +%1 +. +MessageId=17706 +Language=English +%1 +. +MessageId=17707 +Language=English +%1 +. +MessageId=17708 +Language=English +%1 +. +MessageId=17709 +Language=English +%1 +. +MessageId=17710 +Language=English +%1 +. +MessageId=17711 +Language=English +%1 +. +MessageId=17712 +Language=English +%1 +. +MessageId=17713 +Language=English +%1 +. +MessageId=17714 +Language=English +%1 +. +MessageId=17715 +Language=English +%1 +. +MessageId=17716 +Language=English +%1 +. +MessageId=17717 +Language=English +%1 +. +MessageId=17718 +Language=English +%1 +. +MessageId=17719 +Language=English +%1 +. +MessageId=17720 +Language=English +%1 +. +MessageId=17721 +Language=English +%1 +. +MessageId=17722 +Language=English +%1 +. +MessageId=17723 +Language=English +%1 +. +MessageId=17724 +Language=English +%1 +. +MessageId=17725 +Language=English +%1 +. +MessageId=17726 +Language=English +%1 +. +MessageId=17727 +Language=English +%1 +. +MessageId=17728 +Language=English +%1 +. +MessageId=17729 +Language=English +%1 +. +MessageId=17730 +Language=English +%1 +. +MessageId=17731 +Language=English +%1 +. +MessageId=17732 +Language=English +%1 +. +MessageId=17733 +Language=English +%1 +. +MessageId=17734 +Language=English +%1 +. +MessageId=17735 +Language=English +%1 +. +MessageId=17736 +Language=English +%1 +. +MessageId=17737 +Language=English +%1 +. +MessageId=17738 +Language=English +%1 +. +MessageId=17739 +Language=English +%1 +. +MessageId=17740 +Language=English +%1 +. +MessageId=17741 +Language=English +%1 +. +MessageId=17742 +Language=English +%1 +. +MessageId=17743 +Language=English +%1 +. +MessageId=17744 +Language=English +%1 +. +MessageId=17745 +Language=English +%1 +. +MessageId=17746 +Language=English +%1 +. +MessageId=17747 +Language=English +%1 +. +MessageId=17748 +Language=English +%1 +. +MessageId=17749 +Language=English +%1 +. +MessageId=17750 +Language=English +%1 +. +MessageId=17751 +Language=English +%1 +. +MessageId=17752 +Language=English +%1 +. +MessageId=17753 +Language=English +%1 +. +MessageId=17754 +Language=English +%1 +. +MessageId=17755 +Language=English +%1 +. +MessageId=17756 +Language=English +%1 +. +MessageId=17757 +Language=English +%1 +. +MessageId=17758 +Language=English +%1 +. +MessageId=17759 +Language=English +%1 +. +MessageId=17760 +Language=English +%1 +. +MessageId=17761 +Language=English +%1 +. +MessageId=17762 +Language=English +%1 +. +MessageId=17763 +Language=English +%1 +. +MessageId=17764 +Language=English +%1 +. +MessageId=17765 +Language=English +%1 +. +MessageId=17766 +Language=English +%1 +. +MessageId=17767 +Language=English +%1 +. +MessageId=17768 +Language=English +%1 +. +MessageId=17769 +Language=English +%1 +. +MessageId=17770 +Language=English +%1 +. +MessageId=17771 +Language=English +%1 +. +MessageId=17772 +Language=English +%1 +. +MessageId=17773 +Language=English +%1 +. +MessageId=17774 +Language=English +%1 +. +MessageId=17775 +Language=English +%1 +. +MessageId=17776 +Language=English +%1 +. +MessageId=17777 +Language=English +%1 +. +MessageId=17778 +Language=English +%1 +. +MessageId=17779 +Language=English +%1 +. +MessageId=17780 +Language=English +%1 +. +MessageId=17781 +Language=English +%1 +. +MessageId=17782 +Language=English +%1 +. +MessageId=17783 +Language=English +%1 +. +MessageId=17784 +Language=English +%1 +. +MessageId=17785 +Language=English +%1 +. +MessageId=17786 +Language=English +%1 +. +MessageId=17787 +Language=English +%1 +. +MessageId=17788 +Language=English +%1 +. +MessageId=17789 +Language=English +%1 +. +MessageId=17790 +Language=English +%1 +. +MessageId=17791 +Language=English +%1 +. +MessageId=17792 +Language=English +%1 +. +MessageId=17793 +Language=English +%1 +. +MessageId=17794 +Language=English +%1 +. +MessageId=17795 +Language=English +%1 +. +MessageId=17796 +Language=English +%1 +. +MessageId=17797 +Language=English +%1 +. +MessageId=17798 +Language=English +%1 +. +MessageId=17799 +Language=English +%1 +. +MessageId=17800 +Language=English +%1 +. +MessageId=17801 +Language=English +%1 +. +MessageId=17802 +Language=English +%1 +. +MessageId=17803 +Language=English +%1 +. +MessageId=17804 +Language=English +%1 +. +MessageId=17805 +Language=English +%1 +. +MessageId=17806 +Language=English +%1 +. +MessageId=17807 +Language=English +%1 +. +MessageId=17808 +Language=English +%1 +. +MessageId=17809 +Language=English +%1 +. +MessageId=17810 +Language=English +%1 +. +MessageId=17811 +Language=English +%1 +. +MessageId=17812 +Language=English +%1 +. +MessageId=17813 +Language=English +%1 +. +MessageId=17814 +Language=English +%1 +. +MessageId=17815 +Language=English +%1 +. +MessageId=17816 +Language=English +%1 +. +MessageId=17817 +Language=English +%1 +. +MessageId=17818 +Language=English +%1 +. +MessageId=17819 +Language=English +%1 +. +MessageId=17820 +Language=English +%1 +. +MessageId=17821 +Language=English +%1 +. +MessageId=17822 +Language=English +%1 +. +MessageId=17823 +Language=English +%1 +. +MessageId=17824 +Language=English +%1 +. +MessageId=17825 +Language=English +%1 +. +MessageId=17826 +Language=English +%1 +. +MessageId=17827 +Language=English +%1 +. +MessageId=17828 +Language=English +%1 +. +MessageId=17829 +Language=English +%1 +. +MessageId=17830 +Language=English +%1 +. +MessageId=17831 +Language=English +%1 +. +MessageId=17832 +Language=English +%1 +. +MessageId=17833 +Language=English +%1 +. +MessageId=17834 +Language=English +%1 +. +MessageId=17835 +Language=English +%1 +. +MessageId=17836 +Language=English +%1 +. +MessageId=17837 +Language=English +%1 +. +MessageId=17838 +Language=English +%1 +. +MessageId=17839 +Language=English +%1 +. +MessageId=17840 +Language=English +%1 +. +MessageId=17841 +Language=English +%1 +. +MessageId=17842 +Language=English +%1 +. +MessageId=17843 +Language=English +%1 +. +MessageId=17844 +Language=English +%1 +. +MessageId=17845 +Language=English +%1 +. +MessageId=17846 +Language=English +%1 +. +MessageId=17847 +Language=English +%1 +. +MessageId=17848 +Language=English +%1 +. +MessageId=17849 +Language=English +%1 +. +MessageId=17850 +Language=English +%1 +. +MessageId=17851 +Language=English +%1 +. +MessageId=17852 +Language=English +%1 +. +MessageId=17853 +Language=English +%1 +. +MessageId=17854 +Language=English +%1 +. +MessageId=17855 +Language=English +%1 +. +MessageId=17856 +Language=English +%1 +. +MessageId=17857 +Language=English +%1 +. +MessageId=17858 +Language=English +%1 +. +MessageId=17859 +Language=English +%1 +. +MessageId=17860 +Language=English +%1 +. +MessageId=17861 +Language=English +%1 +. +MessageId=17862 +Language=English +%1 +. +MessageId=17863 +Language=English +%1 +. +MessageId=17864 +Language=English +%1 +. +MessageId=17865 +Language=English +%1 +. +MessageId=17866 +Language=English +%1 +. +MessageId=17867 +Language=English +%1 +. +MessageId=17868 +Language=English +%1 +. +MessageId=17869 +Language=English +%1 +. +MessageId=17870 +Language=English +%1 +. +MessageId=17871 +Language=English +%1 +. +MessageId=17872 +Language=English +%1 +. +MessageId=17873 +Language=English +%1 +. +MessageId=17874 +Language=English +%1 +. +MessageId=17875 +Language=English +%1 +. +MessageId=17876 +Language=English +%1 +. +MessageId=17877 +Language=English +%1 +. +MessageId=17878 +Language=English +%1 +. +MessageId=17879 +Language=English +%1 +. +MessageId=17880 +Language=English +%1 +. +MessageId=17881 +Language=English +%1 +. +MessageId=17882 +Language=English +%1 +. +MessageId=17883 +Language=English +%1 +. +MessageId=17884 +Language=English +%1 +. +MessageId=17885 +Language=English +%1 +. +MessageId=17886 +Language=English +%1 +. +MessageId=17887 +Language=English +%1 +. +MessageId=17888 +Language=English +%1 +. +MessageId=17889 +Language=English +%1 +. +MessageId=17890 +Language=English +%1 +. +MessageId=17891 +Language=English +%1 +. +MessageId=17892 +Language=English +%1 +. +MessageId=17893 +Language=English +%1 +. +MessageId=17894 +Language=English +%1 +. +MessageId=17895 +Language=English +%1 +. +MessageId=17896 +Language=English +%1 +. +MessageId=17897 +Language=English +%1 +. +MessageId=17898 +Language=English +%1 +. +MessageId=17899 +Language=English +%1 +. +MessageId=17900 +Language=English +%1 +. +MessageId=17901 +Language=English +%1 +. +MessageId=17902 +Language=English +%1 +. +MessageId=17903 +Language=English +%1 +. +MessageId=17904 +Language=English +%1 +. +MessageId=17905 +Language=English +%1 +. +MessageId=17906 +Language=English +%1 +. +MessageId=17907 +Language=English +%1 +. +MessageId=17908 +Language=English +%1 +. +MessageId=17909 +Language=English +%1 +. +MessageId=17910 +Language=English +%1 +. +MessageId=17911 +Language=English +%1 +. +MessageId=17912 +Language=English +%1 +. +MessageId=17913 +Language=English +%1 +. +MessageId=17914 +Language=English +%1 +. +MessageId=17915 +Language=English +%1 +. +MessageId=17916 +Language=English +%1 +. +MessageId=17917 +Language=English +%1 +. +MessageId=17918 +Language=English +%1 +. +MessageId=17919 +Language=English +%1 +. +MessageId=17920 +Language=English +%1 +. +MessageId=17921 +Language=English +%1 +. +MessageId=17922 +Language=English +%1 +. +MessageId=17923 +Language=English +%1 +. +MessageId=17924 +Language=English +%1 +. +MessageId=17925 +Language=English +%1 +. +MessageId=17926 +Language=English +%1 +. +MessageId=17927 +Language=English +%1 +. +MessageId=17928 +Language=English +%1 +. +MessageId=17929 +Language=English +%1 +. +MessageId=17930 +Language=English +%1 +. +MessageId=17931 +Language=English +%1 +. +MessageId=17932 +Language=English +%1 +. +MessageId=17933 +Language=English +%1 +. +MessageId=17934 +Language=English +%1 +. +MessageId=17935 +Language=English +%1 +. +MessageId=17936 +Language=English +%1 +. +MessageId=17937 +Language=English +%1 +. +MessageId=17938 +Language=English +%1 +. +MessageId=17939 +Language=English +%1 +. +MessageId=17940 +Language=English +%1 +. +MessageId=17941 +Language=English +%1 +. +MessageId=17942 +Language=English +%1 +. +MessageId=17943 +Language=English +%1 +. +MessageId=17944 +Language=English +%1 +. +MessageId=17945 +Language=English +%1 +. +MessageId=17946 +Language=English +%1 +. +MessageId=17947 +Language=English +%1 +. +MessageId=17948 +Language=English +%1 +. +MessageId=17949 +Language=English +%1 +. +MessageId=17950 +Language=English +%1 +. +MessageId=17951 +Language=English +%1 +. +MessageId=17952 +Language=English +%1 +. +MessageId=17953 +Language=English +%1 +. +MessageId=17954 +Language=English +%1 +. +MessageId=17955 +Language=English +%1 +. +MessageId=17956 +Language=English +%1 +. +MessageId=17957 +Language=English +%1 +. +MessageId=17958 +Language=English +%1 +. +MessageId=17959 +Language=English +%1 +. +MessageId=17960 +Language=English +%1 +. +MessageId=17961 +Language=English +%1 +. +MessageId=17962 +Language=English +%1 +. +MessageId=17963 +Language=English +%1 +. +MessageId=17964 +Language=English +%1 +. +MessageId=17965 +Language=English +%1 +. +MessageId=17966 +Language=English +%1 +. +MessageId=17967 +Language=English +%1 +. +MessageId=17968 +Language=English +%1 +. +MessageId=17969 +Language=English +%1 +. +MessageId=17970 +Language=English +%1 +. +MessageId=17971 +Language=English +%1 +. +MessageId=17972 +Language=English +%1 +. +MessageId=17973 +Language=English +%1 +. +MessageId=17974 +Language=English +%1 +. +MessageId=17975 +Language=English +%1 +. +MessageId=17976 +Language=English +%1 +. +MessageId=17977 +Language=English +%1 +. +MessageId=17978 +Language=English +%1 +. +MessageId=17979 +Language=English +%1 +. +MessageId=17980 +Language=English +%1 +. +MessageId=17981 +Language=English +%1 +. +MessageId=17982 +Language=English +%1 +. +MessageId=17983 +Language=English +%1 +. +MessageId=17984 +Language=English +%1 +. +MessageId=17985 +Language=English +%1 +. +MessageId=17986 +Language=English +%1 +. +MessageId=17987 +Language=English +%1 +. +MessageId=17988 +Language=English +%1 +. +MessageId=17989 +Language=English +%1 +. +MessageId=17990 +Language=English +%1 +. +MessageId=17991 +Language=English +%1 +. +MessageId=17992 +Language=English +%1 +. +MessageId=17993 +Language=English +%1 +. +MessageId=17994 +Language=English +%1 +. +MessageId=17995 +Language=English +%1 +. +MessageId=17996 +Language=English +%1 +. +MessageId=17997 +Language=English +%1 +. +MessageId=17998 +Language=English +%1 +. +MessageId=17999 +Language=English +%1 +. +MessageId=18000 +Language=English +%1 +. +MessageId=18001 +Language=English +%1 +. +MessageId=18002 +Language=English +%1 +. +MessageId=18003 +Language=English +%1 +. +MessageId=18004 +Language=English +%1 +. +MessageId=18005 +Language=English +%1 +. +MessageId=18006 +Language=English +%1 +. +MessageId=18007 +Language=English +%1 +. +MessageId=18008 +Language=English +%1 +. +MessageId=18009 +Language=English +%1 +. +MessageId=18010 +Language=English +%1 +. +MessageId=18011 +Language=English +%1 +. +MessageId=18012 +Language=English +%1 +. +MessageId=18013 +Language=English +%1 +. +MessageId=18014 +Language=English +%1 +. +MessageId=18015 +Language=English +%1 +. +MessageId=18016 +Language=English +%1 +. +MessageId=18017 +Language=English +%1 +. +MessageId=18018 +Language=English +%1 +. +MessageId=18019 +Language=English +%1 +. +MessageId=18020 +Language=English +%1 +. +MessageId=18021 +Language=English +%1 +. +MessageId=18022 +Language=English +%1 +. +MessageId=18023 +Language=English +%1 +. +MessageId=18024 +Language=English +%1 +. +MessageId=18025 +Language=English +%1 +. +MessageId=18026 +Language=English +%1 +. +MessageId=18027 +Language=English +%1 +. +MessageId=18028 +Language=English +%1 +. +MessageId=18029 +Language=English +%1 +. +MessageId=18030 +Language=English +%1 +. +MessageId=18031 +Language=English +%1 +. +MessageId=18032 +Language=English +%1 +. +MessageId=18033 +Language=English +%1 +. +MessageId=18034 +Language=English +%1 +. +MessageId=18035 +Language=English +%1 +. +MessageId=18036 +Language=English +%1 +. +MessageId=18037 +Language=English +%1 +. +MessageId=18038 +Language=English +%1 +. +MessageId=18039 +Language=English +%1 +. +MessageId=18040 +Language=English +%1 +. +MessageId=18041 +Language=English +%1 +. +MessageId=18042 +Language=English +%1 +. +MessageId=18043 +Language=English +%1 +. +MessageId=18044 +Language=English +%1 +. +MessageId=18045 +Language=English +%1 +. +MessageId=18046 +Language=English +%1 +. +MessageId=18047 +Language=English +%1 +. +MessageId=18048 +Language=English +%1 +. +MessageId=18049 +Language=English +%1 +. +MessageId=18050 +Language=English +%1 +. +MessageId=18051 +Language=English +%1 +. +MessageId=18052 +Language=English +%1 +. +MessageId=18053 +Language=English +%1 +. +MessageId=18054 +Language=English +%1 +. +MessageId=18055 +Language=English +%1 +. +MessageId=18056 +Language=English +%1 +. +MessageId=18057 +Language=English +%1 +. +MessageId=18058 +Language=English +%1 +. +MessageId=18059 +Language=English +%1 +. +MessageId=18060 +Language=English +%1 +. +MessageId=18061 +Language=English +%1 +. +MessageId=18062 +Language=English +%1 +. +MessageId=18063 +Language=English +%1 +. +MessageId=18064 +Language=English +%1 +. +MessageId=18065 +Language=English +%1 +. +MessageId=18066 +Language=English +%1 +. +MessageId=18067 +Language=English +%1 +. +MessageId=18068 +Language=English +%1 +. +MessageId=18069 +Language=English +%1 +. +MessageId=18070 +Language=English +%1 +. +MessageId=18071 +Language=English +%1 +. +MessageId=18072 +Language=English +%1 +. +MessageId=18073 +Language=English +%1 +. +MessageId=18074 +Language=English +%1 +. +MessageId=18075 +Language=English +%1 +. +MessageId=18076 +Language=English +%1 +. +MessageId=18077 +Language=English +%1 +. +MessageId=18078 +Language=English +%1 +. +MessageId=18079 +Language=English +%1 +. +MessageId=18080 +Language=English +%1 +. +MessageId=18081 +Language=English +%1 +. +MessageId=18082 +Language=English +%1 +. +MessageId=18083 +Language=English +%1 +. +MessageId=18084 +Language=English +%1 +. +MessageId=18085 +Language=English +%1 +. +MessageId=18086 +Language=English +%1 +. +MessageId=18087 +Language=English +%1 +. +MessageId=18088 +Language=English +%1 +. +MessageId=18089 +Language=English +%1 +. +MessageId=18090 +Language=English +%1 +. +MessageId=18091 +Language=English +%1 +. +MessageId=18092 +Language=English +%1 +. +MessageId=18093 +Language=English +%1 +. +MessageId=18094 +Language=English +%1 +. +MessageId=18095 +Language=English +%1 +. +MessageId=18096 +Language=English +%1 +. +MessageId=18097 +Language=English +%1 +. +MessageId=18098 +Language=English +%1 +. +MessageId=18099 +Language=English +%1 +. +MessageId=18100 +Language=English +%1 +. +MessageId=18101 +Language=English +%1 +. +MessageId=18102 +Language=English +%1 +. +MessageId=18103 +Language=English +%1 +. +MessageId=18104 +Language=English +%1 +. +MessageId=18105 +Language=English +%1 +. +MessageId=18106 +Language=English +%1 +. +MessageId=18107 +Language=English +%1 +. +MessageId=18108 +Language=English +%1 +. +MessageId=18109 +Language=English +%1 +. +MessageId=18110 +Language=English +%1 +. +MessageId=18111 +Language=English +%1 +. +MessageId=18112 +Language=English +%1 +. +MessageId=18113 +Language=English +%1 +. +MessageId=18114 +Language=English +%1 +. +MessageId=18115 +Language=English +%1 +. +MessageId=18116 +Language=English +%1 +. +MessageId=18117 +Language=English +%1 +. +MessageId=18118 +Language=English +%1 +. +MessageId=18119 +Language=English +%1 +. +MessageId=18120 +Language=English +%1 +. +MessageId=18121 +Language=English +%1 +. +MessageId=18122 +Language=English +%1 +. +MessageId=18123 +Language=English +%1 +. +MessageId=18124 +Language=English +%1 +. +MessageId=18125 +Language=English +%1 +. +MessageId=18126 +Language=English +%1 +. +MessageId=18127 +Language=English +%1 +. +MessageId=18128 +Language=English +%1 +. +MessageId=18129 +Language=English +%1 +. +MessageId=18130 +Language=English +%1 +. +MessageId=18131 +Language=English +%1 +. +MessageId=18132 +Language=English +%1 +. +MessageId=18133 +Language=English +%1 +. +MessageId=18134 +Language=English +%1 +. +MessageId=18135 +Language=English +%1 +. +MessageId=18136 +Language=English +%1 +. +MessageId=18137 +Language=English +%1 +. +MessageId=18138 +Language=English +%1 +. +MessageId=18139 +Language=English +%1 +. +MessageId=18140 +Language=English +%1 +. +MessageId=18141 +Language=English +%1 +. +MessageId=18142 +Language=English +%1 +. +MessageId=18143 +Language=English +%1 +. +MessageId=18144 +Language=English +%1 +. +MessageId=18145 +Language=English +%1 +. +MessageId=18146 +Language=English +%1 +. +MessageId=18147 +Language=English +%1 +. +MessageId=18148 +Language=English +%1 +. +MessageId=18149 +Language=English +%1 +. +MessageId=18150 +Language=English +%1 +. +MessageId=18151 +Language=English +%1 +. +MessageId=18152 +Language=English +%1 +. +MessageId=18153 +Language=English +%1 +. +MessageId=18154 +Language=English +%1 +. +MessageId=18155 +Language=English +%1 +. +MessageId=18156 +Language=English +%1 +. +MessageId=18157 +Language=English +%1 +. +MessageId=18158 +Language=English +%1 +. +MessageId=18159 +Language=English +%1 +. +MessageId=18160 +Language=English +%1 +. +MessageId=18161 +Language=English +%1 +. +MessageId=18162 +Language=English +%1 +. +MessageId=18163 +Language=English +%1 +. +MessageId=18164 +Language=English +%1 +. +MessageId=18165 +Language=English +%1 +. +MessageId=18166 +Language=English +%1 +. +MessageId=18167 +Language=English +%1 +. +MessageId=18168 +Language=English +%1 +. +MessageId=18169 +Language=English +%1 +. +MessageId=18170 +Language=English +%1 +. +MessageId=18171 +Language=English +%1 +. +MessageId=18172 +Language=English +%1 +. +MessageId=18173 +Language=English +%1 +. +MessageId=18174 +Language=English +%1 +. +MessageId=18175 +Language=English +%1 +. +MessageId=18176 +Language=English +%1 +. +MessageId=18177 +Language=English +%1 +. +MessageId=18178 +Language=English +%1 +. +MessageId=18179 +Language=English +%1 +. +MessageId=18180 +Language=English +%1 +. +MessageId=18181 +Language=English +%1 +. +MessageId=18182 +Language=English +%1 +. +MessageId=18183 +Language=English +%1 +. +MessageId=18184 +Language=English +%1 +. +MessageId=18185 +Language=English +%1 +. +MessageId=18186 +Language=English +%1 +. +MessageId=18187 +Language=English +%1 +. +MessageId=18188 +Language=English +%1 +. +MessageId=18189 +Language=English +%1 +. +MessageId=18190 +Language=English +%1 +. +MessageId=18191 +Language=English +%1 +. +MessageId=18192 +Language=English +%1 +. +MessageId=18193 +Language=English +%1 +. +MessageId=18194 +Language=English +%1 +. +MessageId=18195 +Language=English +%1 +. +MessageId=18196 +Language=English +%1 +. +MessageId=18197 +Language=English +%1 +. +MessageId=18198 +Language=English +%1 +. +MessageId=18199 +Language=English +%1 +. +MessageId=18200 +Language=English +%1 +. +MessageId=18201 +Language=English +%1 +. +MessageId=18202 +Language=English +%1 +. +MessageId=18203 +Language=English +%1 +. +MessageId=18204 +Language=English +%1 +. +MessageId=18205 +Language=English +%1 +. +MessageId=18206 +Language=English +%1 +. +MessageId=18207 +Language=English +%1 +. +MessageId=18208 +Language=English +%1 +. +MessageId=18209 +Language=English +%1 +. +MessageId=18210 +Language=English +%1 +. +MessageId=18211 +Language=English +%1 +. +MessageId=18212 +Language=English +%1 +. +MessageId=18213 +Language=English +%1 +. +MessageId=18214 +Language=English +%1 +. +MessageId=18215 +Language=English +%1 +. +MessageId=18216 +Language=English +%1 +. +MessageId=18217 +Language=English +%1 +. +MessageId=18218 +Language=English +%1 +. +MessageId=18219 +Language=English +%1 +. +MessageId=18220 +Language=English +%1 +. +MessageId=18221 +Language=English +%1 +. +MessageId=18222 +Language=English +%1 +. +MessageId=18223 +Language=English +%1 +. +MessageId=18224 +Language=English +%1 +. +MessageId=18225 +Language=English +%1 +. +MessageId=18226 +Language=English +%1 +. +MessageId=18227 +Language=English +%1 +. +MessageId=18228 +Language=English +%1 +. +MessageId=18229 +Language=English +%1 +. +MessageId=18230 +Language=English +%1 +. +MessageId=18231 +Language=English +%1 +. +MessageId=18232 +Language=English +%1 +. +MessageId=18233 +Language=English +%1 +. +MessageId=18234 +Language=English +%1 +. +MessageId=18235 +Language=English +%1 +. +MessageId=18236 +Language=English +%1 +. +MessageId=18237 +Language=English +%1 +. +MessageId=18238 +Language=English +%1 +. +MessageId=18239 +Language=English +%1 +. +MessageId=18240 +Language=English +%1 +. +MessageId=18241 +Language=English +%1 +. +MessageId=18242 +Language=English +%1 +. +MessageId=18243 +Language=English +%1 +. +MessageId=18244 +Language=English +%1 +. +MessageId=18245 +Language=English +%1 +. +MessageId=18246 +Language=English +%1 +. +MessageId=18247 +Language=English +%1 +. +MessageId=18248 +Language=English +%1 +. +MessageId=18249 +Language=English +%1 +. +MessageId=18250 +Language=English +%1 +. +MessageId=18251 +Language=English +%1 +. +MessageId=18252 +Language=English +%1 +. +MessageId=18253 +Language=English +%1 +. +MessageId=18254 +Language=English +%1 +. +MessageId=18255 +Language=English +%1 +. +MessageId=18256 +Language=English +%1 +. +MessageId=18257 +Language=English +%1 +. +MessageId=18258 +Language=English +%1 +. +MessageId=18259 +Language=English +%1 +. +MessageId=18260 +Language=English +%1 +. +MessageId=18261 +Language=English +%1 +. +MessageId=18262 +Language=English +%1 +. +MessageId=18263 +Language=English +%1 +. +MessageId=18264 +Language=English +%1 +. +MessageId=18265 +Language=English +%1 +. +MessageId=18266 +Language=English +%1 +. +MessageId=18267 +Language=English +%1 +. +MessageId=18268 +Language=English +%1 +. +MessageId=18269 +Language=English +%1 +. +MessageId=18270 +Language=English +%1 +. +MessageId=18271 +Language=English +%1 +. +MessageId=18272 +Language=English +%1 +. +MessageId=18273 +Language=English +%1 +. +MessageId=18274 +Language=English +%1 +. +MessageId=18275 +Language=English +%1 +. +MessageId=18276 +Language=English +%1 +. +MessageId=18277 +Language=English +%1 +. +MessageId=18278 +Language=English +%1 +. +MessageId=18279 +Language=English +%1 +. +MessageId=18280 +Language=English +%1 +. +MessageId=18281 +Language=English +%1 +. +MessageId=18282 +Language=English +%1 +. +MessageId=18283 +Language=English +%1 +. +MessageId=18284 +Language=English +%1 +. +MessageId=18285 +Language=English +%1 +. +MessageId=18286 +Language=English +%1 +. +MessageId=18287 +Language=English +%1 +. +MessageId=18288 +Language=English +%1 +. +MessageId=18289 +Language=English +%1 +. +MessageId=18290 +Language=English +%1 +. +MessageId=18291 +Language=English +%1 +. +MessageId=18292 +Language=English +%1 +. +MessageId=18293 +Language=English +%1 +. +MessageId=18294 +Language=English +%1 +. +MessageId=18295 +Language=English +%1 +. +MessageId=18296 +Language=English +%1 +. +MessageId=18297 +Language=English +%1 +. +MessageId=18298 +Language=English +%1 +. +MessageId=18299 +Language=English +%1 +. +MessageId=18300 +Language=English +%1 +. +MessageId=18301 +Language=English +%1 +. +MessageId=18302 +Language=English +%1 +. +MessageId=18303 +Language=English +%1 +. +MessageId=18304 +Language=English +%1 +. +MessageId=18305 +Language=English +%1 +. +MessageId=18306 +Language=English +%1 +. +MessageId=18307 +Language=English +%1 +. +MessageId=18308 +Language=English +%1 +. +MessageId=18309 +Language=English +%1 +. +MessageId=18310 +Language=English +%1 +. +MessageId=18311 +Language=English +%1 +. +MessageId=18312 +Language=English +%1 +. +MessageId=18313 +Language=English +%1 +. +MessageId=18314 +Language=English +%1 +. +MessageId=18315 +Language=English +%1 +. +MessageId=18316 +Language=English +%1 +. +MessageId=18317 +Language=English +%1 +. +MessageId=18318 +Language=English +%1 +. +MessageId=18319 +Language=English +%1 +. +MessageId=18320 +Language=English +%1 +. +MessageId=18321 +Language=English +%1 +. +MessageId=18322 +Language=English +%1 +. +MessageId=18323 +Language=English +%1 +. +MessageId=18324 +Language=English +%1 +. +MessageId=18325 +Language=English +%1 +. +MessageId=18326 +Language=English +%1 +. +MessageId=18327 +Language=English +%1 +. +MessageId=18328 +Language=English +%1 +. +MessageId=18329 +Language=English +%1 +. +MessageId=18330 +Language=English +%1 +. +MessageId=18331 +Language=English +%1 +. +MessageId=18332 +Language=English +%1 +. +MessageId=18333 +Language=English +%1 +. +MessageId=18334 +Language=English +%1 +. +MessageId=18335 +Language=English +%1 +. +MessageId=18336 +Language=English +%1 +. +MessageId=18337 +Language=English +%1 +. +MessageId=18338 +Language=English +%1 +. +MessageId=18339 +Language=English +%1 +. +MessageId=18340 +Language=English +%1 +. +MessageId=18341 +Language=English +%1 +. +MessageId=18342 +Language=English +%1 +. +MessageId=18343 +Language=English +%1 +. +MessageId=18344 +Language=English +%1 +. +MessageId=18345 +Language=English +%1 +. +MessageId=18346 +Language=English +%1 +. +MessageId=18347 +Language=English +%1 +. +MessageId=18348 +Language=English +%1 +. +MessageId=18349 +Language=English +%1 +. +MessageId=18350 +Language=English +%1 +. +MessageId=18351 +Language=English +%1 +. +MessageId=18352 +Language=English +%1 +. +MessageId=18353 +Language=English +%1 +. +MessageId=18354 +Language=English +%1 +. +MessageId=18355 +Language=English +%1 +. +MessageId=18356 +Language=English +%1 +. +MessageId=18357 +Language=English +%1 +. +MessageId=18358 +Language=English +%1 +. +MessageId=18359 +Language=English +%1 +. +MessageId=18360 +Language=English +%1 +. +MessageId=18361 +Language=English +%1 +. +MessageId=18362 +Language=English +%1 +. +MessageId=18363 +Language=English +%1 +. +MessageId=18364 +Language=English +%1 +. +MessageId=18365 +Language=English +%1 +. +MessageId=18366 +Language=English +%1 +. +MessageId=18367 +Language=English +%1 +. +MessageId=18368 +Language=English +%1 +. +MessageId=18369 +Language=English +%1 +. +MessageId=18370 +Language=English +%1 +. +MessageId=18371 +Language=English +%1 +. +MessageId=18372 +Language=English +%1 +. +MessageId=18373 +Language=English +%1 +. +MessageId=18374 +Language=English +%1 +. +MessageId=18375 +Language=English +%1 +. +MessageId=18376 +Language=English +%1 +. +MessageId=18377 +Language=English +%1 +. +MessageId=18378 +Language=English +%1 +. +MessageId=18379 +Language=English +%1 +. +MessageId=18380 +Language=English +%1 +. +MessageId=18381 +Language=English +%1 +. +MessageId=18382 +Language=English +%1 +. +MessageId=18383 +Language=English +%1 +. +MessageId=18384 +Language=English +%1 +. +MessageId=18385 +Language=English +%1 +. +MessageId=18386 +Language=English +%1 +. +MessageId=18387 +Language=English +%1 +. +MessageId=18388 +Language=English +%1 +. +MessageId=18389 +Language=English +%1 +. +MessageId=18390 +Language=English +%1 +. +MessageId=18391 +Language=English +%1 +. +MessageId=18392 +Language=English +%1 +. +MessageId=18393 +Language=English +%1 +. +MessageId=18394 +Language=English +%1 +. +MessageId=18395 +Language=English +%1 +. +MessageId=18396 +Language=English +%1 +. +MessageId=18397 +Language=English +%1 +. +MessageId=18398 +Language=English +%1 +. +MessageId=18399 +Language=English +%1 +. +MessageId=18400 +Language=English +%1 +. +MessageId=18401 +Language=English +%1 +. +MessageId=18402 +Language=English +%1 +. +MessageId=18403 +Language=English +%1 +. +MessageId=18404 +Language=English +%1 +. +MessageId=18405 +Language=English +%1 +. +MessageId=18406 +Language=English +%1 +. +MessageId=18407 +Language=English +%1 +. +MessageId=18408 +Language=English +%1 +. +MessageId=18409 +Language=English +%1 +. +MessageId=18410 +Language=English +%1 +. +MessageId=18411 +Language=English +%1 +. +MessageId=18412 +Language=English +%1 +. +MessageId=18413 +Language=English +%1 +. +MessageId=18414 +Language=English +%1 +. +MessageId=18415 +Language=English +%1 +. +MessageId=18416 +Language=English +%1 +. +MessageId=18417 +Language=English +%1 +. +MessageId=18418 +Language=English +%1 +. +MessageId=18419 +Language=English +%1 +. +MessageId=18420 +Language=English +%1 +. +MessageId=18421 +Language=English +%1 +. +MessageId=18422 +Language=English +%1 +. +MessageId=18423 +Language=English +%1 +. +MessageId=18424 +Language=English +%1 +. +MessageId=18425 +Language=English +%1 +. +MessageId=18426 +Language=English +%1 +. +MessageId=18427 +Language=English +%1 +. +MessageId=18428 +Language=English +%1 +. +MessageId=18429 +Language=English +%1 +. +MessageId=18430 +Language=English +%1 +. +MessageId=18431 +Language=English +%1 +. +MessageId=18432 +Language=English +%1 +. +MessageId=18433 +Language=English +%1 +. +MessageId=18434 +Language=English +%1 +. +MessageId=18435 +Language=English +%1 +. +MessageId=18436 +Language=English +%1 +. +MessageId=18437 +Language=English +%1 +. +MessageId=18438 +Language=English +%1 +. +MessageId=18439 +Language=English +%1 +. +MessageId=18440 +Language=English +%1 +. +MessageId=18441 +Language=English +%1 +. +MessageId=18442 +Language=English +%1 +. +MessageId=18443 +Language=English +%1 +. +MessageId=18444 +Language=English +%1 +. +MessageId=18445 +Language=English +%1 +. +MessageId=18446 +Language=English +%1 +. +MessageId=18447 +Language=English +%1 +. +MessageId=18448 +Language=English +%1 +. +MessageId=18449 +Language=English +%1 +. +MessageId=18450 +Language=English +%1 +. +MessageId=18451 +Language=English +%1 +. +MessageId=18452 +Language=English +%1 +. +MessageId=18453 +Language=English +%1 +. +MessageId=18454 +Language=English +%1 +. +MessageId=18455 +Language=English +%1 +. +MessageId=18456 +Language=English +%1 +. +MessageId=18457 +Language=English +%1 +. +MessageId=18458 +Language=English +%1 +. +MessageId=18459 +Language=English +%1 +. +MessageId=18460 +Language=English +%1 +. +MessageId=18461 +Language=English +%1 +. +MessageId=18462 +Language=English +%1 +. +MessageId=18463 +Language=English +%1 +. +MessageId=18464 +Language=English +%1 +. +MessageId=18465 +Language=English +%1 +. +MessageId=18466 +Language=English +%1 +. +MessageId=18467 +Language=English +%1 +. +MessageId=18468 +Language=English +%1 +. +MessageId=18469 +Language=English +%1 +. +MessageId=18470 +Language=English +%1 +. +MessageId=18471 +Language=English +%1 +. +MessageId=18472 +Language=English +%1 +. +MessageId=18473 +Language=English +%1 +. +MessageId=18474 +Language=English +%1 +. +MessageId=18475 +Language=English +%1 +. +MessageId=18476 +Language=English +%1 +. +MessageId=18477 +Language=English +%1 +. +MessageId=18478 +Language=English +%1 +. +MessageId=18479 +Language=English +%1 +. +MessageId=18480 +Language=English +%1 +. +MessageId=18481 +Language=English +%1 +. +MessageId=18482 +Language=English +%1 +. +MessageId=18483 +Language=English +%1 +. +MessageId=18484 +Language=English +%1 +. +MessageId=18485 +Language=English +%1 +. +MessageId=18486 +Language=English +%1 +. +MessageId=18487 +Language=English +%1 +. +MessageId=18488 +Language=English +%1 +. +MessageId=18489 +Language=English +%1 +. +MessageId=18490 +Language=English +%1 +. +MessageId=18491 +Language=English +%1 +. +MessageId=18492 +Language=English +%1 +. +MessageId=18493 +Language=English +%1 +. +MessageId=18494 +Language=English +%1 +. +MessageId=18495 +Language=English +%1 +. +MessageId=18496 +Language=English +%1 +. +MessageId=18497 +Language=English +%1 +. +MessageId=18498 +Language=English +%1 +. +MessageId=18499 +Language=English +%1 +. +MessageId=18500 +Language=English +%1 +. +MessageId=18501 +Language=English +%1 +. +MessageId=18502 +Language=English +%1 +. +MessageId=18503 +Language=English +%1 +. +MessageId=18504 +Language=English +%1 +. +MessageId=18505 +Language=English +%1 +. +MessageId=18506 +Language=English +%1 +. +MessageId=18507 +Language=English +%1 +. +MessageId=18508 +Language=English +%1 +. +MessageId=18509 +Language=English +%1 +. +MessageId=18510 +Language=English +%1 +. +MessageId=18511 +Language=English +%1 +. +MessageId=18512 +Language=English +%1 +. +MessageId=18513 +Language=English +%1 +. +MessageId=18514 +Language=English +%1 +. +MessageId=18515 +Language=English +%1 +. +MessageId=18516 +Language=English +%1 +. +MessageId=18517 +Language=English +%1 +. +MessageId=18518 +Language=English +%1 +. +MessageId=18519 +Language=English +%1 +. +MessageId=18520 +Language=English +%1 +. +MessageId=18521 +Language=English +%1 +. +MessageId=18522 +Language=English +%1 +. +MessageId=18523 +Language=English +%1 +. +MessageId=18524 +Language=English +%1 +. +MessageId=18525 +Language=English +%1 +. +MessageId=18526 +Language=English +%1 +. +MessageId=18527 +Language=English +%1 +. +MessageId=18528 +Language=English +%1 +. +MessageId=18529 +Language=English +%1 +. +MessageId=18530 +Language=English +%1 +. +MessageId=18531 +Language=English +%1 +. +MessageId=18532 +Language=English +%1 +. +MessageId=18533 +Language=English +%1 +. +MessageId=18534 +Language=English +%1 +. +MessageId=18535 +Language=English +%1 +. +MessageId=18536 +Language=English +%1 +. +MessageId=18537 +Language=English +%1 +. +MessageId=18538 +Language=English +%1 +. +MessageId=18539 +Language=English +%1 +. +MessageId=18540 +Language=English +%1 +. +MessageId=18541 +Language=English +%1 +. +MessageId=18542 +Language=English +%1 +. +MessageId=18543 +Language=English +%1 +. +MessageId=18544 +Language=English +%1 +. +MessageId=18545 +Language=English +%1 +. +MessageId=18546 +Language=English +%1 +. +MessageId=18547 +Language=English +%1 +. +MessageId=18548 +Language=English +%1 +. +MessageId=18549 +Language=English +%1 +. +MessageId=18550 +Language=English +%1 +. +MessageId=18551 +Language=English +%1 +. +MessageId=18552 +Language=English +%1 +. +MessageId=18553 +Language=English +%1 +. +MessageId=18554 +Language=English +%1 +. +MessageId=18555 +Language=English +%1 +. +MessageId=18556 +Language=English +%1 +. +MessageId=18557 +Language=English +%1 +. +MessageId=18558 +Language=English +%1 +. +MessageId=18559 +Language=English +%1 +. +MessageId=18560 +Language=English +%1 +. +MessageId=18561 +Language=English +%1 +. +MessageId=18562 +Language=English +%1 +. +MessageId=18563 +Language=English +%1 +. +MessageId=18564 +Language=English +%1 +. +MessageId=18565 +Language=English +%1 +. +MessageId=18566 +Language=English +%1 +. +MessageId=18567 +Language=English +%1 +. +MessageId=18568 +Language=English +%1 +. +MessageId=18569 +Language=English +%1 +. +MessageId=18570 +Language=English +%1 +. +MessageId=18571 +Language=English +%1 +. +MessageId=18572 +Language=English +%1 +. +MessageId=18573 +Language=English +%1 +. +MessageId=18574 +Language=English +%1 +. +MessageId=18575 +Language=English +%1 +. +MessageId=18576 +Language=English +%1 +. +MessageId=18577 +Language=English +%1 +. +MessageId=18578 +Language=English +%1 +. +MessageId=18579 +Language=English +%1 +. +MessageId=18580 +Language=English +%1 +. +MessageId=18581 +Language=English +%1 +. +MessageId=18582 +Language=English +%1 +. +MessageId=18583 +Language=English +%1 +. +MessageId=18584 +Language=English +%1 +. +MessageId=18585 +Language=English +%1 +. +MessageId=18586 +Language=English +%1 +. +MessageId=18587 +Language=English +%1 +. +MessageId=18588 +Language=English +%1 +. +MessageId=18589 +Language=English +%1 +. +MessageId=18590 +Language=English +%1 +. +MessageId=18591 +Language=English +%1 +. +MessageId=18592 +Language=English +%1 +. +MessageId=18593 +Language=English +%1 +. +MessageId=18594 +Language=English +%1 +. +MessageId=18595 +Language=English +%1 +. +MessageId=18596 +Language=English +%1 +. +MessageId=18597 +Language=English +%1 +. +MessageId=18598 +Language=English +%1 +. +MessageId=18599 +Language=English +%1 +. +MessageId=18600 +Language=English +%1 +. +MessageId=18601 +Language=English +%1 +. +MessageId=18602 +Language=English +%1 +. +MessageId=18603 +Language=English +%1 +. +MessageId=18604 +Language=English +%1 +. +MessageId=18605 +Language=English +%1 +. +MessageId=18606 +Language=English +%1 +. +MessageId=18607 +Language=English +%1 +. +MessageId=18608 +Language=English +%1 +. +MessageId=18609 +Language=English +%1 +. +MessageId=18610 +Language=English +%1 +. +MessageId=18611 +Language=English +%1 +. +MessageId=18612 +Language=English +%1 +. +MessageId=18613 +Language=English +%1 +. +MessageId=18614 +Language=English +%1 +. +MessageId=18615 +Language=English +%1 +. +MessageId=18616 +Language=English +%1 +. +MessageId=18617 +Language=English +%1 +. +MessageId=18618 +Language=English +%1 +. +MessageId=18619 +Language=English +%1 +. +MessageId=18620 +Language=English +%1 +. +MessageId=18621 +Language=English +%1 +. +MessageId=18622 +Language=English +%1 +. +MessageId=18623 +Language=English +%1 +. +MessageId=18624 +Language=English +%1 +. +MessageId=18625 +Language=English +%1 +. +MessageId=18626 +Language=English +%1 +. +MessageId=18627 +Language=English +%1 +. +MessageId=18628 +Language=English +%1 +. +MessageId=18629 +Language=English +%1 +. +MessageId=18630 +Language=English +%1 +. +MessageId=18631 +Language=English +%1 +. +MessageId=18632 +Language=English +%1 +. +MessageId=18633 +Language=English +%1 +. +MessageId=18634 +Language=English +%1 +. +MessageId=18635 +Language=English +%1 +. +MessageId=18636 +Language=English +%1 +. +MessageId=18637 +Language=English +%1 +. +MessageId=18638 +Language=English +%1 +. +MessageId=18639 +Language=English +%1 +. +MessageId=18640 +Language=English +%1 +. +MessageId=18641 +Language=English +%1 +. +MessageId=18642 +Language=English +%1 +. +MessageId=18643 +Language=English +%1 +. +MessageId=18644 +Language=English +%1 +. +MessageId=18645 +Language=English +%1 +. +MessageId=18646 +Language=English +%1 +. +MessageId=18647 +Language=English +%1 +. +MessageId=18648 +Language=English +%1 +. +MessageId=18649 +Language=English +%1 +. +MessageId=18650 +Language=English +%1 +. +MessageId=18651 +Language=English +%1 +. +MessageId=18652 +Language=English +%1 +. +MessageId=18653 +Language=English +%1 +. +MessageId=18654 +Language=English +%1 +. +MessageId=18655 +Language=English +%1 +. +MessageId=18656 +Language=English +%1 +. +MessageId=18657 +Language=English +%1 +. +MessageId=18658 +Language=English +%1 +. +MessageId=18659 +Language=English +%1 +. +MessageId=18660 +Language=English +%1 +. +MessageId=18661 +Language=English +%1 +. +MessageId=18662 +Language=English +%1 +. +MessageId=18663 +Language=English +%1 +. +MessageId=18664 +Language=English +%1 +. +MessageId=18665 +Language=English +%1 +. +MessageId=18666 +Language=English +%1 +. +MessageId=18667 +Language=English +%1 +. +MessageId=18668 +Language=English +%1 +. +MessageId=18669 +Language=English +%1 +. +MessageId=18670 +Language=English +%1 +. +MessageId=18671 +Language=English +%1 +. +MessageId=18672 +Language=English +%1 +. +MessageId=18673 +Language=English +%1 +. +MessageId=18674 +Language=English +%1 +. +MessageId=18675 +Language=English +%1 +. +MessageId=18676 +Language=English +%1 +. +MessageId=18677 +Language=English +%1 +. +MessageId=18678 +Language=English +%1 +. +MessageId=18679 +Language=English +%1 +. +MessageId=18680 +Language=English +%1 +. +MessageId=18681 +Language=English +%1 +. +MessageId=18682 +Language=English +%1 +. +MessageId=18683 +Language=English +%1 +. +MessageId=18684 +Language=English +%1 +. +MessageId=18685 +Language=English +%1 +. +MessageId=18686 +Language=English +%1 +. +MessageId=18687 +Language=English +%1 +. +MessageId=18688 +Language=English +%1 +. +MessageId=18689 +Language=English +%1 +. +MessageId=18690 +Language=English +%1 +. +MessageId=18691 +Language=English +%1 +. +MessageId=18692 +Language=English +%1 +. +MessageId=18693 +Language=English +%1 +. +MessageId=18694 +Language=English +%1 +. +MessageId=18695 +Language=English +%1 +. +MessageId=18696 +Language=English +%1 +. +MessageId=18697 +Language=English +%1 +. +MessageId=18698 +Language=English +%1 +. +MessageId=18699 +Language=English +%1 +. +MessageId=18700 +Language=English +%1 +. +MessageId=18701 +Language=English +%1 +. +MessageId=18702 +Language=English +%1 +. +MessageId=18703 +Language=English +%1 +. +MessageId=18704 +Language=English +%1 +. +MessageId=18705 +Language=English +%1 +. +MessageId=18706 +Language=English +%1 +. +MessageId=18707 +Language=English +%1 +. +MessageId=18708 +Language=English +%1 +. +MessageId=18709 +Language=English +%1 +. +MessageId=18710 +Language=English +%1 +. +MessageId=18711 +Language=English +%1 +. +MessageId=18712 +Language=English +%1 +. +MessageId=18713 +Language=English +%1 +. +MessageId=18714 +Language=English +%1 +. +MessageId=18715 +Language=English +%1 +. +MessageId=18716 +Language=English +%1 +. +MessageId=18717 +Language=English +%1 +. +MessageId=18718 +Language=English +%1 +. +MessageId=18719 +Language=English +%1 +. +MessageId=18720 +Language=English +%1 +. +MessageId=18721 +Language=English +%1 +. +MessageId=18722 +Language=English +%1 +. +MessageId=18723 +Language=English +%1 +. +MessageId=18724 +Language=English +%1 +. +MessageId=18725 +Language=English +%1 +. +MessageId=18726 +Language=English +%1 +. +MessageId=18727 +Language=English +%1 +. +MessageId=18728 +Language=English +%1 +. +MessageId=18729 +Language=English +%1 +. +MessageId=18730 +Language=English +%1 +. +MessageId=18731 +Language=English +%1 +. +MessageId=18732 +Language=English +%1 +. +MessageId=18733 +Language=English +%1 +. +MessageId=18734 +Language=English +%1 +. +MessageId=18735 +Language=English +%1 +. +MessageId=18736 +Language=English +%1 +. +MessageId=18737 +Language=English +%1 +. +MessageId=18738 +Language=English +%1 +. +MessageId=18739 +Language=English +%1 +. +MessageId=18740 +Language=English +%1 +. +MessageId=18741 +Language=English +%1 +. +MessageId=18742 +Language=English +%1 +. +MessageId=18743 +Language=English +%1 +. +MessageId=18744 +Language=English +%1 +. +MessageId=18745 +Language=English +%1 +. +MessageId=18746 +Language=English +%1 +. +MessageId=18747 +Language=English +%1 +. +MessageId=18748 +Language=English +%1 +. +MessageId=18749 +Language=English +%1 +. +MessageId=18750 +Language=English +%1 +. +MessageId=18751 +Language=English +%1 +. +MessageId=18752 +Language=English +%1 +. +MessageId=18753 +Language=English +%1 +. +MessageId=18754 +Language=English +%1 +. +MessageId=18755 +Language=English +%1 +. +MessageId=18756 +Language=English +%1 +. +MessageId=18757 +Language=English +%1 +. +MessageId=18758 +Language=English +%1 +. +MessageId=18759 +Language=English +%1 +. +MessageId=18760 +Language=English +%1 +. +MessageId=18761 +Language=English +%1 +. +MessageId=18762 +Language=English +%1 +. +MessageId=18763 +Language=English +%1 +. +MessageId=18764 +Language=English +%1 +. +MessageId=18765 +Language=English +%1 +. +MessageId=18766 +Language=English +%1 +. +MessageId=18767 +Language=English +%1 +. +MessageId=18768 +Language=English +%1 +. +MessageId=18769 +Language=English +%1 +. +MessageId=18770 +Language=English +%1 +. +MessageId=18771 +Language=English +%1 +. +MessageId=18772 +Language=English +%1 +. +MessageId=18773 +Language=English +%1 +. +MessageId=18774 +Language=English +%1 +. +MessageId=18775 +Language=English +%1 +. +MessageId=18776 +Language=English +%1 +. +MessageId=18777 +Language=English +%1 +. +MessageId=18778 +Language=English +%1 +. +MessageId=18779 +Language=English +%1 +. +MessageId=18780 +Language=English +%1 +. +MessageId=18781 +Language=English +%1 +. +MessageId=18782 +Language=English +%1 +. +MessageId=18783 +Language=English +%1 +. +MessageId=18784 +Language=English +%1 +. +MessageId=18785 +Language=English +%1 +. +MessageId=18786 +Language=English +%1 +. +MessageId=18787 +Language=English +%1 +. +MessageId=18788 +Language=English +%1 +. +MessageId=18789 +Language=English +%1 +. +MessageId=18790 +Language=English +%1 +. +MessageId=18791 +Language=English +%1 +. +MessageId=18792 +Language=English +%1 +. +MessageId=18793 +Language=English +%1 +. +MessageId=18794 +Language=English +%1 +. +MessageId=18795 +Language=English +%1 +. +MessageId=18796 +Language=English +%1 +. +MessageId=18797 +Language=English +%1 +. +MessageId=18798 +Language=English +%1 +. +MessageId=18799 +Language=English +%1 +. +MessageId=18800 +Language=English +%1 +. +MessageId=18801 +Language=English +%1 +. +MessageId=18802 +Language=English +%1 +. +MessageId=18803 +Language=English +%1 +. +MessageId=18804 +Language=English +%1 +. +MessageId=18805 +Language=English +%1 +. +MessageId=18806 +Language=English +%1 +. +MessageId=18807 +Language=English +%1 +. +MessageId=18808 +Language=English +%1 +. +MessageId=18809 +Language=English +%1 +. +MessageId=18810 +Language=English +%1 +. +MessageId=18811 +Language=English +%1 +. +MessageId=18812 +Language=English +%1 +. +MessageId=18813 +Language=English +%1 +. +MessageId=18814 +Language=English +%1 +. +MessageId=18815 +Language=English +%1 +. +MessageId=18816 +Language=English +%1 +. +MessageId=18817 +Language=English +%1 +. +MessageId=18818 +Language=English +%1 +. +MessageId=18819 +Language=English +%1 +. +MessageId=18820 +Language=English +%1 +. +MessageId=18821 +Language=English +%1 +. +MessageId=18822 +Language=English +%1 +. +MessageId=18823 +Language=English +%1 +. +MessageId=18824 +Language=English +%1 +. +MessageId=18825 +Language=English +%1 +. +MessageId=18826 +Language=English +%1 +. +MessageId=18827 +Language=English +%1 +. +MessageId=18828 +Language=English +%1 +. +MessageId=18829 +Language=English +%1 +. +MessageId=18830 +Language=English +%1 +. +MessageId=18831 +Language=English +%1 +. +MessageId=18832 +Language=English +%1 +. +MessageId=18833 +Language=English +%1 +. +MessageId=18834 +Language=English +%1 +. +MessageId=18835 +Language=English +%1 +. +MessageId=18836 +Language=English +%1 +. +MessageId=18837 +Language=English +%1 +. +MessageId=18838 +Language=English +%1 +. +MessageId=18839 +Language=English +%1 +. +MessageId=18840 +Language=English +%1 +. +MessageId=18841 +Language=English +%1 +. +MessageId=18842 +Language=English +%1 +. +MessageId=18843 +Language=English +%1 +. +MessageId=18844 +Language=English +%1 +. +MessageId=18845 +Language=English +%1 +. +MessageId=18846 +Language=English +%1 +. +MessageId=18847 +Language=English +%1 +. +MessageId=18848 +Language=English +%1 +. +MessageId=18849 +Language=English +%1 +. +MessageId=18850 +Language=English +%1 +. +MessageId=18851 +Language=English +%1 +. +MessageId=18852 +Language=English +%1 +. +MessageId=18853 +Language=English +%1 +. +MessageId=18854 +Language=English +%1 +. +MessageId=18855 +Language=English +%1 +. +MessageId=18856 +Language=English +%1 +. +MessageId=18857 +Language=English +%1 +. +MessageId=18858 +Language=English +%1 +. +MessageId=18859 +Language=English +%1 +. +MessageId=18860 +Language=English +%1 +. +MessageId=18861 +Language=English +%1 +. +MessageId=18862 +Language=English +%1 +. +MessageId=18863 +Language=English +%1 +. +MessageId=18864 +Language=English +%1 +. +MessageId=18865 +Language=English +%1 +. +MessageId=18866 +Language=English +%1 +. +MessageId=18867 +Language=English +%1 +. +MessageId=18868 +Language=English +%1 +. +MessageId=18869 +Language=English +%1 +. +MessageId=18870 +Language=English +%1 +. +MessageId=18871 +Language=English +%1 +. +MessageId=18872 +Language=English +%1 +. +MessageId=18873 +Language=English +%1 +. +MessageId=18874 +Language=English +%1 +. +MessageId=18875 +Language=English +%1 +. +MessageId=18876 +Language=English +%1 +. +MessageId=18877 +Language=English +%1 +. +MessageId=18878 +Language=English +%1 +. +MessageId=18879 +Language=English +%1 +. +MessageId=18880 +Language=English +%1 +. +MessageId=18881 +Language=English +%1 +. +MessageId=18882 +Language=English +%1 +. +MessageId=18883 +Language=English +%1 +. +MessageId=18884 +Language=English +%1 +. +MessageId=18885 +Language=English +%1 +. +MessageId=18886 +Language=English +%1 +. +MessageId=18887 +Language=English +%1 +. +MessageId=18888 +Language=English +%1 +. +MessageId=18889 +Language=English +%1 +. +MessageId=18890 +Language=English +%1 +. +MessageId=18891 +Language=English +%1 +. +MessageId=18892 +Language=English +%1 +. +MessageId=18893 +Language=English +%1 +. +MessageId=18894 +Language=English +%1 +. +MessageId=18895 +Language=English +%1 +. +MessageId=18896 +Language=English +%1 +. +MessageId=18897 +Language=English +%1 +. +MessageId=18898 +Language=English +%1 +. +MessageId=18899 +Language=English +%1 +. +MessageId=18900 +Language=English +%1 +. +MessageId=18901 +Language=English +%1 +. +MessageId=18902 +Language=English +%1 +. +MessageId=18903 +Language=English +%1 +. +MessageId=18904 +Language=English +%1 +. +MessageId=18905 +Language=English +%1 +. +MessageId=18906 +Language=English +%1 +. +MessageId=18907 +Language=English +%1 +. +MessageId=18908 +Language=English +%1 +. +MessageId=18909 +Language=English +%1 +. +MessageId=18910 +Language=English +%1 +. +MessageId=18911 +Language=English +%1 +. +MessageId=18912 +Language=English +%1 +. +MessageId=18913 +Language=English +%1 +. +MessageId=18914 +Language=English +%1 +. +MessageId=18915 +Language=English +%1 +. +MessageId=18916 +Language=English +%1 +. +MessageId=18917 +Language=English +%1 +. +MessageId=18918 +Language=English +%1 +. +MessageId=18919 +Language=English +%1 +. +MessageId=18920 +Language=English +%1 +. +MessageId=18921 +Language=English +%1 +. +MessageId=18922 +Language=English +%1 +. +MessageId=18923 +Language=English +%1 +. +MessageId=18924 +Language=English +%1 +. +MessageId=18925 +Language=English +%1 +. +MessageId=18926 +Language=English +%1 +. +MessageId=18927 +Language=English +%1 +. +MessageId=18928 +Language=English +%1 +. +MessageId=18929 +Language=English +%1 +. +MessageId=18930 +Language=English +%1 +. +MessageId=18931 +Language=English +%1 +. +MessageId=18932 +Language=English +%1 +. +MessageId=18933 +Language=English +%1 +. +MessageId=18934 +Language=English +%1 +. +MessageId=18935 +Language=English +%1 +. +MessageId=18936 +Language=English +%1 +. +MessageId=18937 +Language=English +%1 +. +MessageId=18938 +Language=English +%1 +. +MessageId=18939 +Language=English +%1 +. +MessageId=18940 +Language=English +%1 +. +MessageId=18941 +Language=English +%1 +. +MessageId=18942 +Language=English +%1 +. +MessageId=18943 +Language=English +%1 +. +MessageId=18944 +Language=English +%1 +. +MessageId=18945 +Language=English +%1 +. +MessageId=18946 +Language=English +%1 +. +MessageId=18947 +Language=English +%1 +. +MessageId=18948 +Language=English +%1 +. +MessageId=18949 +Language=English +%1 +. +MessageId=18950 +Language=English +%1 +. +MessageId=18951 +Language=English +%1 +. +MessageId=18952 +Language=English +%1 +. +MessageId=18953 +Language=English +%1 +. +MessageId=18954 +Language=English +%1 +. +MessageId=18955 +Language=English +%1 +. +MessageId=18956 +Language=English +%1 +. +MessageId=18957 +Language=English +%1 +. +MessageId=18958 +Language=English +%1 +. +MessageId=18959 +Language=English +%1 +. +MessageId=18960 +Language=English +%1 +. +MessageId=18961 +Language=English +%1 +. +MessageId=18962 +Language=English +%1 +. +MessageId=18963 +Language=English +%1 +. +MessageId=18964 +Language=English +%1 +. +MessageId=18965 +Language=English +%1 +. +MessageId=18966 +Language=English +%1 +. +MessageId=18967 +Language=English +%1 +. +MessageId=18968 +Language=English +%1 +. +MessageId=18969 +Language=English +%1 +. +MessageId=18970 +Language=English +%1 +. +MessageId=18971 +Language=English +%1 +. +MessageId=18972 +Language=English +%1 +. +MessageId=18973 +Language=English +%1 +. +MessageId=18974 +Language=English +%1 +. +MessageId=18975 +Language=English +%1 +. +MessageId=18976 +Language=English +%1 +. +MessageId=18977 +Language=English +%1 +. +MessageId=18978 +Language=English +%1 +. +MessageId=18979 +Language=English +%1 +. +MessageId=18980 +Language=English +%1 +. +MessageId=18981 +Language=English +%1 +. +MessageId=18982 +Language=English +%1 +. +MessageId=18983 +Language=English +%1 +. +MessageId=18984 +Language=English +%1 +. +MessageId=18985 +Language=English +%1 +. +MessageId=18986 +Language=English +%1 +. +MessageId=18987 +Language=English +%1 +. +MessageId=18988 +Language=English +%1 +. +MessageId=18989 +Language=English +%1 +. +MessageId=18990 +Language=English +%1 +. +MessageId=18991 +Language=English +%1 +. +MessageId=18992 +Language=English +%1 +. +MessageId=18993 +Language=English +%1 +. +MessageId=18994 +Language=English +%1 +. +MessageId=18995 +Language=English +%1 +. +MessageId=18996 +Language=English +%1 +. +MessageId=18997 +Language=English +%1 +. +MessageId=18998 +Language=English +%1 +. +MessageId=18999 +Language=English +%1 +. +MessageId=19000 +Language=English +%1 +. +MessageId=19001 +Language=English +%1 +. +MessageId=19002 +Language=English +%1 +. +MessageId=19003 +Language=English +%1 +. +MessageId=19004 +Language=English +%1 +. +MessageId=19005 +Language=English +%1 +. +MessageId=19006 +Language=English +%1 +. +MessageId=19007 +Language=English +%1 +. +MessageId=19008 +Language=English +%1 +. +MessageId=19009 +Language=English +%1 +. +MessageId=19010 +Language=English +%1 +. +MessageId=19011 +Language=English +%1 +. +MessageId=19012 +Language=English +%1 +. +MessageId=19013 +Language=English +%1 +. +MessageId=19014 +Language=English +%1 +. +MessageId=19015 +Language=English +%1 +. +MessageId=19016 +Language=English +%1 +. +MessageId=19017 +Language=English +%1 +. +MessageId=19018 +Language=English +%1 +. +MessageId=19019 +Language=English +%1 +. +MessageId=19020 +Language=English +%1 +. +MessageId=19021 +Language=English +%1 +. +MessageId=19022 +Language=English +%1 +. +MessageId=19023 +Language=English +%1 +. +MessageId=19024 +Language=English +%1 +. +MessageId=19025 +Language=English +%1 +. +MessageId=19026 +Language=English +%1 +. +MessageId=19027 +Language=English +%1 +. +MessageId=19028 +Language=English +%1 +. +MessageId=19029 +Language=English +%1 +. +MessageId=19030 +Language=English +%1 +. +MessageId=19031 +Language=English +%1 +. +MessageId=19032 +Language=English +%1 +. +MessageId=19033 +Language=English +%1 +. +MessageId=19034 +Language=English +%1 +. +MessageId=19035 +Language=English +%1 +. +MessageId=19036 +Language=English +%1 +. +MessageId=19037 +Language=English +%1 +. +MessageId=19038 +Language=English +%1 +. +MessageId=19039 +Language=English +%1 +. +MessageId=19040 +Language=English +%1 +. +MessageId=19041 +Language=English +%1 +. +MessageId=19042 +Language=English +%1 +. +MessageId=19043 +Language=English +%1 +. +MessageId=19044 +Language=English +%1 +. +MessageId=19045 +Language=English +%1 +. +MessageId=19046 +Language=English +%1 +. +MessageId=19047 +Language=English +%1 +. +MessageId=19048 +Language=English +%1 +. +MessageId=19049 +Language=English +%1 +. +MessageId=19050 +Language=English +%1 +. +MessageId=19051 +Language=English +%1 +. +MessageId=19052 +Language=English +%1 +. +MessageId=19053 +Language=English +%1 +. +MessageId=19054 +Language=English +%1 +. +MessageId=19055 +Language=English +%1 +. +MessageId=19056 +Language=English +%1 +. +MessageId=19057 +Language=English +%1 +. +MessageId=19058 +Language=English +%1 +. +MessageId=19059 +Language=English +%1 +. +MessageId=19060 +Language=English +%1 +. +MessageId=19061 +Language=English +%1 +. +MessageId=19062 +Language=English +%1 +. +MessageId=19063 +Language=English +%1 +. +MessageId=19064 +Language=English +%1 +. +MessageId=19065 +Language=English +%1 +. +MessageId=19066 +Language=English +%1 +. +MessageId=19067 +Language=English +%1 +. +MessageId=19068 +Language=English +%1 +. +MessageId=19069 +Language=English +%1 +. +MessageId=19070 +Language=English +%1 +. +MessageId=19071 +Language=English +%1 +. +MessageId=19072 +Language=English +%1 +. +MessageId=19073 +Language=English +%1 +. +MessageId=19074 +Language=English +%1 +. +MessageId=19075 +Language=English +%1 +. +MessageId=19076 +Language=English +%1 +. +MessageId=19077 +Language=English +%1 +. +MessageId=19078 +Language=English +%1 +. +MessageId=19079 +Language=English +%1 +. +MessageId=19080 +Language=English +%1 +. +MessageId=19081 +Language=English +%1 +. +MessageId=19082 +Language=English +%1 +. +MessageId=19083 +Language=English +%1 +. +MessageId=19084 +Language=English +%1 +. +MessageId=19085 +Language=English +%1 +. +MessageId=19086 +Language=English +%1 +. +MessageId=19087 +Language=English +%1 +. +MessageId=19088 +Language=English +%1 +. +MessageId=19089 +Language=English +%1 +. +MessageId=19090 +Language=English +%1 +. +MessageId=19091 +Language=English +%1 +. +MessageId=19092 +Language=English +%1 +. +MessageId=19093 +Language=English +%1 +. +MessageId=19094 +Language=English +%1 +. +MessageId=19095 +Language=English +%1 +. +MessageId=19096 +Language=English +%1 +. +MessageId=19097 +Language=English +%1 +. +MessageId=19098 +Language=English +%1 +. +MessageId=19099 +Language=English +%1 +. +MessageId=19100 +Language=English +%1 +. +MessageId=19101 +Language=English +%1 +. +MessageId=19102 +Language=English +%1 +. +MessageId=19103 +Language=English +%1 +. +MessageId=19104 +Language=English +%1 +. +MessageId=19105 +Language=English +%1 +. +MessageId=19106 +Language=English +%1 +. +MessageId=19107 +Language=English +%1 +. +MessageId=19108 +Language=English +%1 +. +MessageId=19109 +Language=English +%1 +. +MessageId=19110 +Language=English +%1 +. +MessageId=19111 +Language=English +%1 +. +MessageId=19112 +Language=English +%1 +. +MessageId=19113 +Language=English +%1 +. +MessageId=19114 +Language=English +%1 +. +MessageId=19115 +Language=English +%1 +. +MessageId=19116 +Language=English +%1 +. +MessageId=19117 +Language=English +%1 +. +MessageId=19118 +Language=English +%1 +. +MessageId=19119 +Language=English +%1 +. +MessageId=19120 +Language=English +%1 +. +MessageId=19121 +Language=English +%1 +. +MessageId=19122 +Language=English +%1 +. +MessageId=19123 +Language=English +%1 +. +MessageId=19124 +Language=English +%1 +. +MessageId=19125 +Language=English +%1 +. +MessageId=19126 +Language=English +%1 +. +MessageId=19127 +Language=English +%1 +. +MessageId=19128 +Language=English +%1 +. +MessageId=19129 +Language=English +%1 +. +MessageId=19130 +Language=English +%1 +. +MessageId=19131 +Language=English +%1 +. +MessageId=19132 +Language=English +%1 +. +MessageId=19133 +Language=English +%1 +. +MessageId=19134 +Language=English +%1 +. +MessageId=19135 +Language=English +%1 +. +MessageId=19136 +Language=English +%1 +. +MessageId=19137 +Language=English +%1 +. +MessageId=19138 +Language=English +%1 +. +MessageId=19139 +Language=English +%1 +. +MessageId=19140 +Language=English +%1 +. +MessageId=19141 +Language=English +%1 +. +MessageId=19142 +Language=English +%1 +. +MessageId=19143 +Language=English +%1 +. +MessageId=19144 +Language=English +%1 +. +MessageId=19145 +Language=English +%1 +. +MessageId=19146 +Language=English +%1 +. +MessageId=19147 +Language=English +%1 +. +MessageId=19148 +Language=English +%1 +. +MessageId=19149 +Language=English +%1 +. +MessageId=19150 +Language=English +%1 +. +MessageId=19151 +Language=English +%1 +. +MessageId=19152 +Language=English +%1 +. +MessageId=19153 +Language=English +%1 +. +MessageId=19154 +Language=English +%1 +. +MessageId=19155 +Language=English +%1 +. +MessageId=19156 +Language=English +%1 +. +MessageId=19157 +Language=English +%1 +. +MessageId=19158 +Language=English +%1 +. +MessageId=19159 +Language=English +%1 +. +MessageId=19160 +Language=English +%1 +. +MessageId=19161 +Language=English +%1 +. +MessageId=19162 +Language=English +%1 +. +MessageId=19163 +Language=English +%1 +. +MessageId=19164 +Language=English +%1 +. +MessageId=19165 +Language=English +%1 +. +MessageId=19166 +Language=English +%1 +. +MessageId=19167 +Language=English +%1 +. +MessageId=19168 +Language=English +%1 +. +MessageId=19169 +Language=English +%1 +. +MessageId=19170 +Language=English +%1 +. +MessageId=19171 +Language=English +%1 +. +MessageId=19172 +Language=English +%1 +. +MessageId=19173 +Language=English +%1 +. +MessageId=19174 +Language=English +%1 +. +MessageId=19175 +Language=English +%1 +. +MessageId=19176 +Language=English +%1 +. +MessageId=19177 +Language=English +%1 +. +MessageId=19178 +Language=English +%1 +. +MessageId=19179 +Language=English +%1 +. +MessageId=19180 +Language=English +%1 +. +MessageId=19181 +Language=English +%1 +. +MessageId=19182 +Language=English +%1 +. +MessageId=19183 +Language=English +%1 +. +MessageId=19184 +Language=English +%1 +. +MessageId=19185 +Language=English +%1 +. +MessageId=19186 +Language=English +%1 +. +MessageId=19187 +Language=English +%1 +. +MessageId=19188 +Language=English +%1 +. +MessageId=19189 +Language=English +%1 +. +MessageId=19190 +Language=English +%1 +. +MessageId=19191 +Language=English +%1 +. +MessageId=19192 +Language=English +%1 +. +MessageId=19193 +Language=English +%1 +. +MessageId=19194 +Language=English +%1 +. +MessageId=19195 +Language=English +%1 +. +MessageId=19196 +Language=English +%1 +. +MessageId=19197 +Language=English +%1 +. +MessageId=19198 +Language=English +%1 +. +MessageId=19199 +Language=English +%1 +. +MessageId=19200 +Language=English +%1 +. +MessageId=19201 +Language=English +%1 +. +MessageId=19202 +Language=English +%1 +. +MessageId=19203 +Language=English +%1 +. +MessageId=19204 +Language=English +%1 +. +MessageId=19205 +Language=English +%1 +. +MessageId=19206 +Language=English +%1 +. +MessageId=19207 +Language=English +%1 +. +MessageId=19208 +Language=English +%1 +. +MessageId=19209 +Language=English +%1 +. +MessageId=19210 +Language=English +%1 +. +MessageId=19211 +Language=English +%1 +. +MessageId=19212 +Language=English +%1 +. +MessageId=19213 +Language=English +%1 +. +MessageId=19214 +Language=English +%1 +. +MessageId=19215 +Language=English +%1 +. +MessageId=19216 +Language=English +%1 +. +MessageId=19217 +Language=English +%1 +. +MessageId=19218 +Language=English +%1 +. +MessageId=19219 +Language=English +%1 +. +MessageId=19220 +Language=English +%1 +. +MessageId=19221 +Language=English +%1 +. +MessageId=19222 +Language=English +%1 +. +MessageId=19223 +Language=English +%1 +. +MessageId=19224 +Language=English +%1 +. +MessageId=19225 +Language=English +%1 +. +MessageId=19226 +Language=English +%1 +. +MessageId=19227 +Language=English +%1 +. +MessageId=19228 +Language=English +%1 +. +MessageId=19229 +Language=English +%1 +. +MessageId=19230 +Language=English +%1 +. +MessageId=19231 +Language=English +%1 +. +MessageId=19232 +Language=English +%1 +. +MessageId=19233 +Language=English +%1 +. +MessageId=19234 +Language=English +%1 +. +MessageId=19235 +Language=English +%1 +. +MessageId=19236 +Language=English +%1 +. +MessageId=19237 +Language=English +%1 +. +MessageId=19238 +Language=English +%1 +. +MessageId=19239 +Language=English +%1 +. +MessageId=19240 +Language=English +%1 +. +MessageId=19241 +Language=English +%1 +. +MessageId=19242 +Language=English +%1 +. +MessageId=19243 +Language=English +%1 +. +MessageId=19244 +Language=English +%1 +. +MessageId=19245 +Language=English +%1 +. +MessageId=19246 +Language=English +%1 +. +MessageId=19247 +Language=English +%1 +. +MessageId=19248 +Language=English +%1 +. +MessageId=19249 +Language=English +%1 +. +MessageId=19250 +Language=English +%1 +. +MessageId=19251 +Language=English +%1 +. +MessageId=19252 +Language=English +%1 +. +MessageId=19253 +Language=English +%1 +. +MessageId=19254 +Language=English +%1 +. +MessageId=19255 +Language=English +%1 +. +MessageId=19256 +Language=English +%1 +. +MessageId=19257 +Language=English +%1 +. +MessageId=19258 +Language=English +%1 +. +MessageId=19259 +Language=English +%1 +. +MessageId=19260 +Language=English +%1 +. +MessageId=19261 +Language=English +%1 +. +MessageId=19262 +Language=English +%1 +. +MessageId=19263 +Language=English +%1 +. +MessageId=19264 +Language=English +%1 +. +MessageId=19265 +Language=English +%1 +. +MessageId=19266 +Language=English +%1 +. +MessageId=19267 +Language=English +%1 +. +MessageId=19268 +Language=English +%1 +. +MessageId=19269 +Language=English +%1 +. +MessageId=19270 +Language=English +%1 +. +MessageId=19271 +Language=English +%1 +. +MessageId=19272 +Language=English +%1 +. +MessageId=19273 +Language=English +%1 +. +MessageId=19274 +Language=English +%1 +. +MessageId=19275 +Language=English +%1 +. +MessageId=19276 +Language=English +%1 +. +MessageId=19277 +Language=English +%1 +. +MessageId=19278 +Language=English +%1 +. +MessageId=19279 +Language=English +%1 +. +MessageId=19280 +Language=English +%1 +. +MessageId=19281 +Language=English +%1 +. +MessageId=19282 +Language=English +%1 +. +MessageId=19283 +Language=English +%1 +. +MessageId=19284 +Language=English +%1 +. +MessageId=19285 +Language=English +%1 +. +MessageId=19286 +Language=English +%1 +. +MessageId=19287 +Language=English +%1 +. +MessageId=19288 +Language=English +%1 +. +MessageId=19289 +Language=English +%1 +. +MessageId=19290 +Language=English +%1 +. +MessageId=19291 +Language=English +%1 +. +MessageId=19292 +Language=English +%1 +. +MessageId=19293 +Language=English +%1 +. +MessageId=19294 +Language=English +%1 +. +MessageId=19295 +Language=English +%1 +. +MessageId=19296 +Language=English +%1 +. +MessageId=19297 +Language=English +%1 +. +MessageId=19298 +Language=English +%1 +. +MessageId=19299 +Language=English +%1 +. +MessageId=19300 +Language=English +%1 +. +MessageId=19301 +Language=English +%1 +. +MessageId=19302 +Language=English +%1 +. +MessageId=19303 +Language=English +%1 +. +MessageId=19304 +Language=English +%1 +. +MessageId=19305 +Language=English +%1 +. +MessageId=19306 +Language=English +%1 +. +MessageId=19307 +Language=English +%1 +. +MessageId=19308 +Language=English +%1 +. +MessageId=19309 +Language=English +%1 +. +MessageId=19310 +Language=English +%1 +. +MessageId=19311 +Language=English +%1 +. +MessageId=19312 +Language=English +%1 +. +MessageId=19313 +Language=English +%1 +. +MessageId=19314 +Language=English +%1 +. +MessageId=19315 +Language=English +%1 +. +MessageId=19316 +Language=English +%1 +. +MessageId=19317 +Language=English +%1 +. +MessageId=19318 +Language=English +%1 +. +MessageId=19319 +Language=English +%1 +. +MessageId=19320 +Language=English +%1 +. +MessageId=19321 +Language=English +%1 +. +MessageId=19322 +Language=English +%1 +. +MessageId=19323 +Language=English +%1 +. +MessageId=19324 +Language=English +%1 +. +MessageId=19325 +Language=English +%1 +. +MessageId=19326 +Language=English +%1 +. +MessageId=19327 +Language=English +%1 +. +MessageId=19328 +Language=English +%1 +. +MessageId=19329 +Language=English +%1 +. +MessageId=19330 +Language=English +%1 +. +MessageId=19331 +Language=English +%1 +. +MessageId=19332 +Language=English +%1 +. +MessageId=19333 +Language=English +%1 +. +MessageId=19334 +Language=English +%1 +. +MessageId=19335 +Language=English +%1 +. +MessageId=19336 +Language=English +%1 +. +MessageId=19337 +Language=English +%1 +. +MessageId=19338 +Language=English +%1 +. +MessageId=19339 +Language=English +%1 +. +MessageId=19340 +Language=English +%1 +. +MessageId=19341 +Language=English +%1 +. +MessageId=19342 +Language=English +%1 +. +MessageId=19343 +Language=English +%1 +. +MessageId=19344 +Language=English +%1 +. +MessageId=19345 +Language=English +%1 +. +MessageId=19346 +Language=English +%1 +. +MessageId=19347 +Language=English +%1 +. +MessageId=19348 +Language=English +%1 +. +MessageId=19349 +Language=English +%1 +. +MessageId=19350 +Language=English +%1 +. +MessageId=19351 +Language=English +%1 +. +MessageId=19352 +Language=English +%1 +. +MessageId=19353 +Language=English +%1 +. +MessageId=19354 +Language=English +%1 +. +MessageId=19355 +Language=English +%1 +. +MessageId=19356 +Language=English +%1 +. +MessageId=19357 +Language=English +%1 +. +MessageId=19358 +Language=English +%1 +. +MessageId=19359 +Language=English +%1 +. +MessageId=19360 +Language=English +%1 +. +MessageId=19361 +Language=English +%1 +. +MessageId=19362 +Language=English +%1 +. +MessageId=19363 +Language=English +%1 +. +MessageId=19364 +Language=English +%1 +. +MessageId=19365 +Language=English +%1 +. +MessageId=19366 +Language=English +%1 +. +MessageId=19367 +Language=English +%1 +. +MessageId=19368 +Language=English +%1 +. +MessageId=19369 +Language=English +%1 +. +MessageId=19370 +Language=English +%1 +. +MessageId=19371 +Language=English +%1 +. +MessageId=19372 +Language=English +%1 +. +MessageId=19373 +Language=English +%1 +. +MessageId=19374 +Language=English +%1 +. +MessageId=19375 +Language=English +%1 +. +MessageId=19376 +Language=English +%1 +. +MessageId=19377 +Language=English +%1 +. +MessageId=19378 +Language=English +%1 +. +MessageId=19379 +Language=English +%1 +. +MessageId=19380 +Language=English +%1 +. +MessageId=19381 +Language=English +%1 +. +MessageId=19382 +Language=English +%1 +. +MessageId=19383 +Language=English +%1 +. +MessageId=19384 +Language=English +%1 +. +MessageId=19385 +Language=English +%1 +. +MessageId=19386 +Language=English +%1 +. +MessageId=19387 +Language=English +%1 +. +MessageId=19388 +Language=English +%1 +. +MessageId=19389 +Language=English +%1 +. +MessageId=19390 +Language=English +%1 +. +MessageId=19391 +Language=English +%1 +. +MessageId=19392 +Language=English +%1 +. +MessageId=19393 +Language=English +%1 +. +MessageId=19394 +Language=English +%1 +. +MessageId=19395 +Language=English +%1 +. +MessageId=19396 +Language=English +%1 +. +MessageId=19397 +Language=English +%1 +. +MessageId=19398 +Language=English +%1 +. +MessageId=19399 +Language=English +%1 +. +MessageId=19400 +Language=English +%1 +. +MessageId=19401 +Language=English +%1 +. +MessageId=19402 +Language=English +%1 +. +MessageId=19403 +Language=English +%1 +. +MessageId=19404 +Language=English +%1 +. +MessageId=19405 +Language=English +%1 +. +MessageId=19406 +Language=English +%1 +. +MessageId=19407 +Language=English +%1 +. +MessageId=19408 +Language=English +%1 +. +MessageId=19409 +Language=English +%1 +. +MessageId=19410 +Language=English +%1 +. +MessageId=19411 +Language=English +%1 +. +MessageId=19412 +Language=English +%1 +. +MessageId=19413 +Language=English +%1 +. +MessageId=19414 +Language=English +%1 +. +MessageId=19415 +Language=English +%1 +. +MessageId=19416 +Language=English +%1 +. +MessageId=19417 +Language=English +%1 +. +MessageId=19418 +Language=English +%1 +. +MessageId=19419 +Language=English +%1 +. +MessageId=19420 +Language=English +%1 +. +MessageId=19421 +Language=English +%1 +. +MessageId=19422 +Language=English +%1 +. +MessageId=19423 +Language=English +%1 +. +MessageId=19424 +Language=English +%1 +. +MessageId=19425 +Language=English +%1 +. +MessageId=19426 +Language=English +%1 +. +MessageId=19427 +Language=English +%1 +. +MessageId=19428 +Language=English +%1 +. +MessageId=19429 +Language=English +%1 +. +MessageId=19430 +Language=English +%1 +. +MessageId=19431 +Language=English +%1 +. +MessageId=19432 +Language=English +%1 +. +MessageId=19433 +Language=English +%1 +. +MessageId=19434 +Language=English +%1 +. +MessageId=19435 +Language=English +%1 +. +MessageId=19436 +Language=English +%1 +. +MessageId=19437 +Language=English +%1 +. +MessageId=19438 +Language=English +%1 +. +MessageId=19439 +Language=English +%1 +. +MessageId=19440 +Language=English +%1 +. +MessageId=19441 +Language=English +%1 +. +MessageId=19442 +Language=English +%1 +. +MessageId=19443 +Language=English +%1 +. +MessageId=19444 +Language=English +%1 +. +MessageId=19445 +Language=English +%1 +. +MessageId=19446 +Language=English +%1 +. +MessageId=19447 +Language=English +%1 +. +MessageId=19448 +Language=English +%1 +. +MessageId=19449 +Language=English +%1 +. +MessageId=19450 +Language=English +%1 +. +MessageId=19451 +Language=English +%1 +. +MessageId=19452 +Language=English +%1 +. +MessageId=19453 +Language=English +%1 +. +MessageId=19454 +Language=English +%1 +. +MessageId=19455 +Language=English +%1 +. +MessageId=19456 +Language=English +%1 +. +MessageId=19457 +Language=English +%1 +. +MessageId=19458 +Language=English +%1 +. +MessageId=19459 +Language=English +%1 +. +MessageId=19460 +Language=English +%1 +. +MessageId=19461 +Language=English +%1 +. +MessageId=19462 +Language=English +%1 +. +MessageId=19463 +Language=English +%1 +. +MessageId=19464 +Language=English +%1 +. +MessageId=19465 +Language=English +%1 +. +MessageId=19466 +Language=English +%1 +. +MessageId=19467 +Language=English +%1 +. +MessageId=19468 +Language=English +%1 +. +MessageId=19469 +Language=English +%1 +. +MessageId=19470 +Language=English +%1 +. +MessageId=19471 +Language=English +%1 +. +MessageId=19472 +Language=English +%1 +. +MessageId=19473 +Language=English +%1 +. +MessageId=19474 +Language=English +%1 +. +MessageId=19475 +Language=English +%1 +. +MessageId=19476 +Language=English +%1 +. +MessageId=19477 +Language=English +%1 +. +MessageId=19478 +Language=English +%1 +. +MessageId=19479 +Language=English +%1 +. +MessageId=19480 +Language=English +%1 +. +MessageId=19481 +Language=English +%1 +. +MessageId=19482 +Language=English +%1 +. +MessageId=19483 +Language=English +%1 +. +MessageId=19484 +Language=English +%1 +. +MessageId=19485 +Language=English +%1 +. +MessageId=19486 +Language=English +%1 +. +MessageId=19487 +Language=English +%1 +. +MessageId=19488 +Language=English +%1 +. +MessageId=19489 +Language=English +%1 +. +MessageId=19490 +Language=English +%1 +. +MessageId=19491 +Language=English +%1 +. +MessageId=19492 +Language=English +%1 +. +MessageId=19493 +Language=English +%1 +. +MessageId=19494 +Language=English +%1 +. +MessageId=19495 +Language=English +%1 +. +MessageId=19496 +Language=English +%1 +. +MessageId=19497 +Language=English +%1 +. +MessageId=19498 +Language=English +%1 +. +MessageId=19499 +Language=English +%1 +. +MessageId=19500 +Language=English +%1 +. +MessageId=19501 +Language=English +%1 +. +MessageId=19502 +Language=English +%1 +. +MessageId=19503 +Language=English +%1 +. +MessageId=19504 +Language=English +%1 +. +MessageId=19505 +Language=English +%1 +. +MessageId=19506 +Language=English +%1 +. +MessageId=19507 +Language=English +%1 +. +MessageId=19508 +Language=English +%1 +. +MessageId=19509 +Language=English +%1 +. +MessageId=19510 +Language=English +%1 +. +MessageId=19511 +Language=English +%1 +. +MessageId=19512 +Language=English +%1 +. +MessageId=19513 +Language=English +%1 +. +MessageId=19514 +Language=English +%1 +. +MessageId=19515 +Language=English +%1 +. +MessageId=19516 +Language=English +%1 +. +MessageId=19517 +Language=English +%1 +. +MessageId=19518 +Language=English +%1 +. +MessageId=19519 +Language=English +%1 +. +MessageId=19520 +Language=English +%1 +. +MessageId=19521 +Language=English +%1 +. +MessageId=19522 +Language=English +%1 +. +MessageId=19523 +Language=English +%1 +. +MessageId=19524 +Language=English +%1 +. +MessageId=19525 +Language=English +%1 +. +MessageId=19526 +Language=English +%1 +. +MessageId=19527 +Language=English +%1 +. +MessageId=19528 +Language=English +%1 +. +MessageId=19529 +Language=English +%1 +. +MessageId=19530 +Language=English +%1 +. +MessageId=19531 +Language=English +%1 +. +MessageId=19532 +Language=English +%1 +. +MessageId=19533 +Language=English +%1 +. +MessageId=19534 +Language=English +%1 +. +MessageId=19535 +Language=English +%1 +. +MessageId=19536 +Language=English +%1 +. +MessageId=19537 +Language=English +%1 +. +MessageId=19538 +Language=English +%1 +. +MessageId=19539 +Language=English +%1 +. +MessageId=19540 +Language=English +%1 +. +MessageId=19541 +Language=English +%1 +. +MessageId=19542 +Language=English +%1 +. +MessageId=19543 +Language=English +%1 +. +MessageId=19544 +Language=English +%1 +. +MessageId=19545 +Language=English +%1 +. +MessageId=19546 +Language=English +%1 +. +MessageId=19547 +Language=English +%1 +. +MessageId=19548 +Language=English +%1 +. +MessageId=19549 +Language=English +%1 +. +MessageId=19550 +Language=English +%1 +. +MessageId=19551 +Language=English +%1 +. +MessageId=19552 +Language=English +%1 +. +MessageId=19553 +Language=English +%1 +. +MessageId=19554 +Language=English +%1 +. +MessageId=19555 +Language=English +%1 +. +MessageId=19556 +Language=English +%1 +. +MessageId=19557 +Language=English +%1 +. +MessageId=19558 +Language=English +%1 +. +MessageId=19559 +Language=English +%1 +. +MessageId=19560 +Language=English +%1 +. +MessageId=19561 +Language=English +%1 +. +MessageId=19562 +Language=English +%1 +. +MessageId=19563 +Language=English +%1 +. +MessageId=19564 +Language=English +%1 +. +MessageId=19565 +Language=English +%1 +. +MessageId=19566 +Language=English +%1 +. +MessageId=19567 +Language=English +%1 +. +MessageId=19568 +Language=English +%1 +. +MessageId=19569 +Language=English +%1 +. +MessageId=19570 +Language=English +%1 +. +MessageId=19571 +Language=English +%1 +. +MessageId=19572 +Language=English +%1 +. +MessageId=19573 +Language=English +%1 +. +MessageId=19574 +Language=English +%1 +. +MessageId=19575 +Language=English +%1 +. +MessageId=19576 +Language=English +%1 +. +MessageId=19577 +Language=English +%1 +. +MessageId=19578 +Language=English +%1 +. +MessageId=19579 +Language=English +%1 +. +MessageId=19580 +Language=English +%1 +. +MessageId=19581 +Language=English +%1 +. +MessageId=19582 +Language=English +%1 +. +MessageId=19583 +Language=English +%1 +. +MessageId=19584 +Language=English +%1 +. +MessageId=19585 +Language=English +%1 +. +MessageId=19586 +Language=English +%1 +. +MessageId=19587 +Language=English +%1 +. +MessageId=19588 +Language=English +%1 +. +MessageId=19589 +Language=English +%1 +. +MessageId=19590 +Language=English +%1 +. +MessageId=19591 +Language=English +%1 +. +MessageId=19592 +Language=English +%1 +. +MessageId=19593 +Language=English +%1 +. +MessageId=19594 +Language=English +%1 +. +MessageId=19595 +Language=English +%1 +. +MessageId=19596 +Language=English +%1 +. +MessageId=19597 +Language=English +%1 +. +MessageId=19598 +Language=English +%1 +. +MessageId=19599 +Language=English +%1 +. +MessageId=19600 +Language=English +%1 +. +MessageId=19601 +Language=English +%1 +. +MessageId=19602 +Language=English +%1 +. +MessageId=19603 +Language=English +%1 +. +MessageId=19604 +Language=English +%1 +. +MessageId=19605 +Language=English +%1 +. +MessageId=19606 +Language=English +%1 +. +MessageId=19607 +Language=English +%1 +. +MessageId=19608 +Language=English +%1 +. +MessageId=19609 +Language=English +%1 +. +MessageId=19610 +Language=English +%1 +. +MessageId=19611 +Language=English +%1 +. +MessageId=19612 +Language=English +%1 +. +MessageId=19613 +Language=English +%1 +. +MessageId=19614 +Language=English +%1 +. +MessageId=19615 +Language=English +%1 +. +MessageId=19616 +Language=English +%1 +. +MessageId=19617 +Language=English +%1 +. +MessageId=19618 +Language=English +%1 +. +MessageId=19619 +Language=English +%1 +. +MessageId=19620 +Language=English +%1 +. +MessageId=19621 +Language=English +%1 +. +MessageId=19622 +Language=English +%1 +. +MessageId=19623 +Language=English +%1 +. +MessageId=19624 +Language=English +%1 +. +MessageId=19625 +Language=English +%1 +. +MessageId=19626 +Language=English +%1 +. +MessageId=19627 +Language=English +%1 +. +MessageId=19628 +Language=English +%1 +. +MessageId=19629 +Language=English +%1 +. +MessageId=19630 +Language=English +%1 +. +MessageId=19631 +Language=English +%1 +. +MessageId=19632 +Language=English +%1 +. +MessageId=19633 +Language=English +%1 +. +MessageId=19634 +Language=English +%1 +. +MessageId=19635 +Language=English +%1 +. +MessageId=19636 +Language=English +%1 +. +MessageId=19637 +Language=English +%1 +. +MessageId=19638 +Language=English +%1 +. +MessageId=19639 +Language=English +%1 +. +MessageId=19640 +Language=English +%1 +. +MessageId=19641 +Language=English +%1 +. +MessageId=19642 +Language=English +%1 +. +MessageId=19643 +Language=English +%1 +. +MessageId=19644 +Language=English +%1 +. +MessageId=19645 +Language=English +%1 +. +MessageId=19646 +Language=English +%1 +. +MessageId=19647 +Language=English +%1 +. +MessageId=19648 +Language=English +%1 +. +MessageId=19649 +Language=English +%1 +. +MessageId=19650 +Language=English +%1 +. +MessageId=19651 +Language=English +%1 +. +MessageId=19652 +Language=English +%1 +. +MessageId=19653 +Language=English +%1 +. +MessageId=19654 +Language=English +%1 +. +MessageId=19655 +Language=English +%1 +. +MessageId=19656 +Language=English +%1 +. +MessageId=19657 +Language=English +%1 +. +MessageId=19658 +Language=English +%1 +. +MessageId=19659 +Language=English +%1 +. +MessageId=19660 +Language=English +%1 +. +MessageId=19661 +Language=English +%1 +. +MessageId=19662 +Language=English +%1 +. +MessageId=19663 +Language=English +%1 +. +MessageId=19664 +Language=English +%1 +. +MessageId=19665 +Language=English +%1 +. +MessageId=19666 +Language=English +%1 +. +MessageId=19667 +Language=English +%1 +. +MessageId=19668 +Language=English +%1 +. +MessageId=19669 +Language=English +%1 +. +MessageId=19670 +Language=English +%1 +. +MessageId=19671 +Language=English +%1 +. +MessageId=19672 +Language=English +%1 +. +MessageId=19673 +Language=English +%1 +. +MessageId=19674 +Language=English +%1 +. +MessageId=19675 +Language=English +%1 +. +MessageId=19676 +Language=English +%1 +. +MessageId=19677 +Language=English +%1 +. +MessageId=19678 +Language=English +%1 +. +MessageId=19679 +Language=English +%1 +. +MessageId=19680 +Language=English +%1 +. +MessageId=19681 +Language=English +%1 +. +MessageId=19682 +Language=English +%1 +. +MessageId=19683 +Language=English +%1 +. +MessageId=19684 +Language=English +%1 +. +MessageId=19685 +Language=English +%1 +. +MessageId=19686 +Language=English +%1 +. +MessageId=19687 +Language=English +%1 +. +MessageId=19688 +Language=English +%1 +. +MessageId=19689 +Language=English +%1 +. +MessageId=19690 +Language=English +%1 +. +MessageId=19691 +Language=English +%1 +. +MessageId=19692 +Language=English +%1 +. +MessageId=19693 +Language=English +%1 +. +MessageId=19694 +Language=English +%1 +. +MessageId=19695 +Language=English +%1 +. +MessageId=19696 +Language=English +%1 +. +MessageId=19697 +Language=English +%1 +. +MessageId=19698 +Language=English +%1 +. +MessageId=19699 +Language=English +%1 +. +MessageId=19700 +Language=English +%1 +. +MessageId=19701 +Language=English +%1 +. +MessageId=19702 +Language=English +%1 +. +MessageId=19703 +Language=English +%1 +. +MessageId=19704 +Language=English +%1 +. +MessageId=19705 +Language=English +%1 +. +MessageId=19706 +Language=English +%1 +. +MessageId=19707 +Language=English +%1 +. +MessageId=19708 +Language=English +%1 +. +MessageId=19709 +Language=English +%1 +. +MessageId=19710 +Language=English +%1 +. +MessageId=19711 +Language=English +%1 +. +MessageId=19712 +Language=English +%1 +. +MessageId=19713 +Language=English +%1 +. +MessageId=19714 +Language=English +%1 +. +MessageId=19715 +Language=English +%1 +. +MessageId=19716 +Language=English +%1 +. +MessageId=19717 +Language=English +%1 +. +MessageId=19718 +Language=English +%1 +. +MessageId=19719 +Language=English +%1 +. +MessageId=19720 +Language=English +%1 +. +MessageId=19721 +Language=English +%1 +. +MessageId=19722 +Language=English +%1 +. +MessageId=19723 +Language=English +%1 +. +MessageId=19724 +Language=English +%1 +. +MessageId=19725 +Language=English +%1 +. +MessageId=19726 +Language=English +%1 +. +MessageId=19727 +Language=English +%1 +. +MessageId=19728 +Language=English +%1 +. +MessageId=19729 +Language=English +%1 +. +MessageId=19730 +Language=English +%1 +. +MessageId=19731 +Language=English +%1 +. +MessageId=19732 +Language=English +%1 +. +MessageId=19733 +Language=English +%1 +. +MessageId=19734 +Language=English +%1 +. +MessageId=19735 +Language=English +%1 +. +MessageId=19736 +Language=English +%1 +. +MessageId=19737 +Language=English +%1 +. +MessageId=19738 +Language=English +%1 +. +MessageId=19739 +Language=English +%1 +. +MessageId=19740 +Language=English +%1 +. +MessageId=19741 +Language=English +%1 +. +MessageId=19742 +Language=English +%1 +. +MessageId=19743 +Language=English +%1 +. +MessageId=19744 +Language=English +%1 +. +MessageId=19745 +Language=English +%1 +. +MessageId=19746 +Language=English +%1 +. +MessageId=19747 +Language=English +%1 +. +MessageId=19748 +Language=English +%1 +. +MessageId=19749 +Language=English +%1 +. +MessageId=19750 +Language=English +%1 +. +MessageId=19751 +Language=English +%1 +. +MessageId=19752 +Language=English +%1 +. +MessageId=19753 +Language=English +%1 +. +MessageId=19754 +Language=English +%1 +. +MessageId=19755 +Language=English +%1 +. +MessageId=19756 +Language=English +%1 +. +MessageId=19757 +Language=English +%1 +. +MessageId=19758 +Language=English +%1 +. +MessageId=19759 +Language=English +%1 +. +MessageId=19760 +Language=English +%1 +. +MessageId=19761 +Language=English +%1 +. +MessageId=19762 +Language=English +%1 +. +MessageId=19763 +Language=English +%1 +. +MessageId=19764 +Language=English +%1 +. +MessageId=19765 +Language=English +%1 +. +MessageId=19766 +Language=English +%1 +. +MessageId=19767 +Language=English +%1 +. +MessageId=19768 +Language=English +%1 +. +MessageId=19769 +Language=English +%1 +. +MessageId=19770 +Language=English +%1 +. +MessageId=19771 +Language=English +%1 +. +MessageId=19772 +Language=English +%1 +. +MessageId=19773 +Language=English +%1 +. +MessageId=19774 +Language=English +%1 +. +MessageId=19775 +Language=English +%1 +. +MessageId=19776 +Language=English +%1 +. +MessageId=19777 +Language=English +%1 +. +MessageId=19778 +Language=English +%1 +. +MessageId=19779 +Language=English +%1 +. +MessageId=19780 +Language=English +%1 +. +MessageId=19781 +Language=English +%1 +. +MessageId=19782 +Language=English +%1 +. +MessageId=19783 +Language=English +%1 +. +MessageId=19784 +Language=English +%1 +. +MessageId=19785 +Language=English +%1 +. +MessageId=19786 +Language=English +%1 +. +MessageId=19787 +Language=English +%1 +. +MessageId=19788 +Language=English +%1 +. +MessageId=19789 +Language=English +%1 +. +MessageId=19790 +Language=English +%1 +. +MessageId=19791 +Language=English +%1 +. +MessageId=19792 +Language=English +%1 +. +MessageId=19793 +Language=English +%1 +. +MessageId=19794 +Language=English +%1 +. +MessageId=19795 +Language=English +%1 +. +MessageId=19796 +Language=English +%1 +. +MessageId=19797 +Language=English +%1 +. +MessageId=19798 +Language=English +%1 +. +MessageId=19799 +Language=English +%1 +. +MessageId=19800 +Language=English +%1 +. +MessageId=19801 +Language=English +%1 +. +MessageId=19802 +Language=English +%1 +. +MessageId=19803 +Language=English +%1 +. +MessageId=19804 +Language=English +%1 +. +MessageId=19805 +Language=English +%1 +. +MessageId=19806 +Language=English +%1 +. +MessageId=19807 +Language=English +%1 +. +MessageId=19808 +Language=English +%1 +. +MessageId=19809 +Language=English +%1 +. +MessageId=19810 +Language=English +%1 +. +MessageId=19811 +Language=English +%1 +. +MessageId=19812 +Language=English +%1 +. +MessageId=19813 +Language=English +%1 +. +MessageId=19814 +Language=English +%1 +. +MessageId=19815 +Language=English +%1 +. +MessageId=19816 +Language=English +%1 +. +MessageId=19817 +Language=English +%1 +. +MessageId=19818 +Language=English +%1 +. +MessageId=19819 +Language=English +%1 +. +MessageId=19820 +Language=English +%1 +. +MessageId=19821 +Language=English +%1 +. +MessageId=19822 +Language=English +%1 +. +MessageId=19823 +Language=English +%1 +. +MessageId=19824 +Language=English +%1 +. +MessageId=19825 +Language=English +%1 +. +MessageId=19826 +Language=English +%1 +. +MessageId=19827 +Language=English +%1 +. +MessageId=19828 +Language=English +%1 +. +MessageId=19829 +Language=English +%1 +. +MessageId=19830 +Language=English +%1 +. +MessageId=19831 +Language=English +%1 +. +MessageId=19832 +Language=English +%1 +. +MessageId=19833 +Language=English +%1 +. +MessageId=19834 +Language=English +%1 +. +MessageId=19835 +Language=English +%1 +. +MessageId=19836 +Language=English +%1 +. +MessageId=19837 +Language=English +%1 +. +MessageId=19838 +Language=English +%1 +. +MessageId=19839 +Language=English +%1 +. +MessageId=19840 +Language=English +%1 +. +MessageId=19841 +Language=English +%1 +. +MessageId=19842 +Language=English +%1 +. +MessageId=19843 +Language=English +%1 +. +MessageId=19844 +Language=English +%1 +. +MessageId=19845 +Language=English +%1 +. +MessageId=19846 +Language=English +%1 +. +MessageId=19847 +Language=English +%1 +. +MessageId=19848 +Language=English +%1 +. +MessageId=19849 +Language=English +%1 +. +MessageId=19850 +Language=English +%1 +. +MessageId=19851 +Language=English +%1 +. +MessageId=19852 +Language=English +%1 +. +MessageId=19853 +Language=English +%1 +. +MessageId=19854 +Language=English +%1 +. +MessageId=19855 +Language=English +%1 +. +MessageId=19856 +Language=English +%1 +. +MessageId=19857 +Language=English +%1 +. +MessageId=19858 +Language=English +%1 +. +MessageId=19859 +Language=English +%1 +. +MessageId=19860 +Language=English +%1 +. +MessageId=19861 +Language=English +%1 +. +MessageId=19862 +Language=English +%1 +. +MessageId=19863 +Language=English +%1 +. +MessageId=19864 +Language=English +%1 +. +MessageId=19865 +Language=English +%1 +. +MessageId=19866 +Language=English +%1 +. +MessageId=19867 +Language=English +%1 +. +MessageId=19868 +Language=English +%1 +. +MessageId=19869 +Language=English +%1 +. +MessageId=19870 +Language=English +%1 +. +MessageId=19871 +Language=English +%1 +. +MessageId=19872 +Language=English +%1 +. +MessageId=19873 +Language=English +%1 +. +MessageId=19874 +Language=English +%1 +. +MessageId=19875 +Language=English +%1 +. +MessageId=19876 +Language=English +%1 +. +MessageId=19877 +Language=English +%1 +. +MessageId=19878 +Language=English +%1 +. +MessageId=19879 +Language=English +%1 +. +MessageId=19880 +Language=English +%1 +. +MessageId=19881 +Language=English +%1 +. +MessageId=19882 +Language=English +%1 +. +MessageId=19883 +Language=English +%1 +. +MessageId=19884 +Language=English +%1 +. +MessageId=19885 +Language=English +%1 +. +MessageId=19886 +Language=English +%1 +. +MessageId=19887 +Language=English +%1 +. +MessageId=19888 +Language=English +%1 +. +MessageId=19889 +Language=English +%1 +. +MessageId=19890 +Language=English +%1 +. +MessageId=19891 +Language=English +%1 +. +MessageId=19892 +Language=English +%1 +. +MessageId=19893 +Language=English +%1 +. +MessageId=19894 +Language=English +%1 +. +MessageId=19895 +Language=English +%1 +. +MessageId=19896 +Language=English +%1 +. +MessageId=19897 +Language=English +%1 +. +MessageId=19898 +Language=English +%1 +. +MessageId=19899 +Language=English +%1 +. +MessageId=19900 +Language=English +%1 +. +MessageId=19901 +Language=English +%1 +. +MessageId=19902 +Language=English +%1 +. +MessageId=19903 +Language=English +%1 +. +MessageId=19904 +Language=English +%1 +. +MessageId=19905 +Language=English +%1 +. +MessageId=19906 +Language=English +%1 +. +MessageId=19907 +Language=English +%1 +. +MessageId=19908 +Language=English +%1 +. +MessageId=19909 +Language=English +%1 +. +MessageId=19910 +Language=English +%1 +. +MessageId=19911 +Language=English +%1 +. +MessageId=19912 +Language=English +%1 +. +MessageId=19913 +Language=English +%1 +. +MessageId=19914 +Language=English +%1 +. +MessageId=19915 +Language=English +%1 +. +MessageId=19916 +Language=English +%1 +. +MessageId=19917 +Language=English +%1 +. +MessageId=19918 +Language=English +%1 +. +MessageId=19919 +Language=English +%1 +. +MessageId=19920 +Language=English +%1 +. +MessageId=19921 +Language=English +%1 +. +MessageId=19922 +Language=English +%1 +. +MessageId=19923 +Language=English +%1 +. +MessageId=19924 +Language=English +%1 +. +MessageId=19925 +Language=English +%1 +. +MessageId=19926 +Language=English +%1 +. +MessageId=19927 +Language=English +%1 +. +MessageId=19928 +Language=English +%1 +. +MessageId=19929 +Language=English +%1 +. +MessageId=19930 +Language=English +%1 +. +MessageId=19931 +Language=English +%1 +. +MessageId=19932 +Language=English +%1 +. +MessageId=19933 +Language=English +%1 +. +MessageId=19934 +Language=English +%1 +. +MessageId=19935 +Language=English +%1 +. +MessageId=19936 +Language=English +%1 +. +MessageId=19937 +Language=English +%1 +. +MessageId=19938 +Language=English +%1 +. +MessageId=19939 +Language=English +%1 +. +MessageId=19940 +Language=English +%1 +. +MessageId=19941 +Language=English +%1 +. +MessageId=19942 +Language=English +%1 +. +MessageId=19943 +Language=English +%1 +. +MessageId=19944 +Language=English +%1 +. +MessageId=19945 +Language=English +%1 +. +MessageId=19946 +Language=English +%1 +. +MessageId=19947 +Language=English +%1 +. +MessageId=19948 +Language=English +%1 +. +MessageId=19949 +Language=English +%1 +. +MessageId=19950 +Language=English +%1 +. +MessageId=19951 +Language=English +%1 +. +MessageId=19952 +Language=English +%1 +. +MessageId=19953 +Language=English +%1 +. +MessageId=19954 +Language=English +%1 +. +MessageId=19955 +Language=English +%1 +. +MessageId=19956 +Language=English +%1 +. +MessageId=19957 +Language=English +%1 +. +MessageId=19958 +Language=English +%1 +. +MessageId=19959 +Language=English +%1 +. +MessageId=19960 +Language=English +%1 +. +MessageId=19961 +Language=English +%1 +. +MessageId=19962 +Language=English +%1 +. +MessageId=19963 +Language=English +%1 +. +MessageId=19964 +Language=English +%1 +. +MessageId=19965 +Language=English +%1 +. +MessageId=19966 +Language=English +%1 +. +MessageId=19967 +Language=English +%1 +. +MessageId=19968 +Language=English +%1 +. +MessageId=19969 +Language=English +%1 +. +MessageId=19970 +Language=English +%1 +. +MessageId=19971 +Language=English +%1 +. +MessageId=19972 +Language=English +%1 +. +MessageId=19973 +Language=English +%1 +. +MessageId=19974 +Language=English +%1 +. +MessageId=19975 +Language=English +%1 +. +MessageId=19976 +Language=English +%1 +. +MessageId=19977 +Language=English +%1 +. +MessageId=19978 +Language=English +%1 +. +MessageId=19979 +Language=English +%1 +. +MessageId=19980 +Language=English +%1 +. +MessageId=19981 +Language=English +%1 +. +MessageId=19982 +Language=English +%1 +. +MessageId=19983 +Language=English +%1 +. +MessageId=19984 +Language=English +%1 +. +MessageId=19985 +Language=English +%1 +. +MessageId=19986 +Language=English +%1 +. +MessageId=19987 +Language=English +%1 +. +MessageId=19988 +Language=English +%1 +. +MessageId=19989 +Language=English +%1 +. +MessageId=19990 +Language=English +%1 +. +MessageId=19991 +Language=English +%1 +. +MessageId=19992 +Language=English +%1 +. +MessageId=19993 +Language=English +%1 +. +MessageId=19994 +Language=English +%1 +. +MessageId=19995 +Language=English +%1 +. +MessageId=19996 +Language=English +%1 +. +MessageId=19997 +Language=English +%1 +. +MessageId=19998 +Language=English +%1 +. +MessageId=19999 +Language=English +%1 +. +MessageId=20000 +Language=English +%1 +. +MessageId=20001 +Language=English +%1 +. +MessageId=20002 +Language=English +%1 +. +MessageId=20003 +Language=English +%1 +. +MessageId=20004 +Language=English +%1 +. +MessageId=20005 +Language=English +%1 +. +MessageId=20006 +Language=English +%1 +. +MessageId=20007 +Language=English +%1 +. +MessageId=20008 +Language=English +%1 +. +MessageId=20009 +Language=English +%1 +. +MessageId=20010 +Language=English +%1 +. +MessageId=20011 +Language=English +%1 +. +MessageId=20012 +Language=English +%1 +. +MessageId=20013 +Language=English +%1 +. +MessageId=20014 +Language=English +%1 +. +MessageId=20015 +Language=English +%1 +. +MessageId=20016 +Language=English +%1 +. +MessageId=20017 +Language=English +%1 +. +MessageId=20018 +Language=English +%1 +. +MessageId=20019 +Language=English +%1 +. +MessageId=20020 +Language=English +%1 +. +MessageId=20021 +Language=English +%1 +. +MessageId=20022 +Language=English +%1 +. +MessageId=20023 +Language=English +%1 +. +MessageId=20024 +Language=English +%1 +. +MessageId=20025 +Language=English +%1 +. +MessageId=20026 +Language=English +%1 +. +MessageId=20027 +Language=English +%1 +. +MessageId=20028 +Language=English +%1 +. +MessageId=20029 +Language=English +%1 +. +MessageId=20030 +Language=English +%1 +. +MessageId=20031 +Language=English +%1 +. +MessageId=20032 +Language=English +%1 +. +MessageId=20033 +Language=English +%1 +. +MessageId=20034 +Language=English +%1 +. +MessageId=20035 +Language=English +%1 +. +MessageId=20036 +Language=English +%1 +. +MessageId=20037 +Language=English +%1 +. +MessageId=20038 +Language=English +%1 +. +MessageId=20039 +Language=English +%1 +. +MessageId=20040 +Language=English +%1 +. +MessageId=20041 +Language=English +%1 +. +MessageId=20042 +Language=English +%1 +. +MessageId=20043 +Language=English +%1 +. +MessageId=20044 +Language=English +%1 +. +MessageId=20045 +Language=English +%1 +. +MessageId=20046 +Language=English +%1 +. +MessageId=20047 +Language=English +%1 +. +MessageId=20048 +Language=English +%1 +. +MessageId=20049 +Language=English +%1 +. +MessageId=20050 +Language=English +%1 +. +MessageId=20051 +Language=English +%1 +. +MessageId=20052 +Language=English +%1 +. +MessageId=20053 +Language=English +%1 +. +MessageId=20054 +Language=English +%1 +. +MessageId=20055 +Language=English +%1 +. +MessageId=20056 +Language=English +%1 +. +MessageId=20057 +Language=English +%1 +. +MessageId=20058 +Language=English +%1 +. +MessageId=20059 +Language=English +%1 +. +MessageId=20060 +Language=English +%1 +. +MessageId=20061 +Language=English +%1 +. +MessageId=20062 +Language=English +%1 +. +MessageId=20063 +Language=English +%1 +. +MessageId=20064 +Language=English +%1 +. +MessageId=20065 +Language=English +%1 +. +MessageId=20066 +Language=English +%1 +. +MessageId=20067 +Language=English +%1 +. +MessageId=20068 +Language=English +%1 +. +MessageId=20069 +Language=English +%1 +. +MessageId=20070 +Language=English +%1 +. +MessageId=20071 +Language=English +%1 +. +MessageId=20072 +Language=English +%1 +. +MessageId=20073 +Language=English +%1 +. +MessageId=20074 +Language=English +%1 +. +MessageId=20075 +Language=English +%1 +. +MessageId=20076 +Language=English +%1 +. +MessageId=20077 +Language=English +%1 +. +MessageId=20078 +Language=English +%1 +. +MessageId=20079 +Language=English +%1 +. +MessageId=20080 +Language=English +%1 +. +MessageId=20081 +Language=English +%1 +. +MessageId=20082 +Language=English +%1 +. +MessageId=20083 +Language=English +%1 +. +MessageId=20084 +Language=English +%1 +. +MessageId=20085 +Language=English +%1 +. +MessageId=20086 +Language=English +%1 +. +MessageId=20087 +Language=English +%1 +. +MessageId=20088 +Language=English +%1 +. +MessageId=20089 +Language=English +%1 +. +MessageId=20090 +Language=English +%1 +. +MessageId=20091 +Language=English +%1 +. +MessageId=20092 +Language=English +%1 +. +MessageId=20093 +Language=English +%1 +. +MessageId=20094 +Language=English +%1 +. +MessageId=20095 +Language=English +%1 +. +MessageId=20096 +Language=English +%1 +. +MessageId=20097 +Language=English +%1 +. +MessageId=20098 +Language=English +%1 +. +MessageId=20099 +Language=English +%1 +. +MessageId=20100 +Language=English +%1 +. +MessageId=20101 +Language=English +%1 +. +MessageId=20102 +Language=English +%1 +. +MessageId=20103 +Language=English +%1 +. +MessageId=20104 +Language=English +%1 +. +MessageId=20105 +Language=English +%1 +. +MessageId=20106 +Language=English +%1 +. +MessageId=20107 +Language=English +%1 +. +MessageId=20108 +Language=English +%1 +. +MessageId=20109 +Language=English +%1 +. +MessageId=20110 +Language=English +%1 +. +MessageId=20111 +Language=English +%1 +. +MessageId=20112 +Language=English +%1 +. +MessageId=20113 +Language=English +%1 +. +MessageId=20114 +Language=English +%1 +. +MessageId=20115 +Language=English +%1 +. +MessageId=20116 +Language=English +%1 +. +MessageId=20117 +Language=English +%1 +. +MessageId=20118 +Language=English +%1 +. +MessageId=20119 +Language=English +%1 +. +MessageId=20120 +Language=English +%1 +. +MessageId=20121 +Language=English +%1 +. +MessageId=20122 +Language=English +%1 +. +MessageId=20123 +Language=English +%1 +. +MessageId=20124 +Language=English +%1 +. +MessageId=20125 +Language=English +%1 +. +MessageId=20126 +Language=English +%1 +. +MessageId=20127 +Language=English +%1 +. +MessageId=20128 +Language=English +%1 +. +MessageId=20129 +Language=English +%1 +. +MessageId=20130 +Language=English +%1 +. +MessageId=20131 +Language=English +%1 +. +MessageId=20132 +Language=English +%1 +. +MessageId=20133 +Language=English +%1 +. +MessageId=20134 +Language=English +%1 +. +MessageId=20135 +Language=English +%1 +. +MessageId=20136 +Language=English +%1 +. +MessageId=20137 +Language=English +%1 +. +MessageId=20138 +Language=English +%1 +. +MessageId=20139 +Language=English +%1 +. +MessageId=20140 +Language=English +%1 +. +MessageId=20141 +Language=English +%1 +. +MessageId=20142 +Language=English +%1 +. +MessageId=20143 +Language=English +%1 +. +MessageId=20144 +Language=English +%1 +. +MessageId=20145 +Language=English +%1 +. +MessageId=20146 +Language=English +%1 +. +MessageId=20147 +Language=English +%1 +. +MessageId=20148 +Language=English +%1 +. +MessageId=20149 +Language=English +%1 +. +MessageId=20150 +Language=English +%1 +. +MessageId=20151 +Language=English +%1 +. +MessageId=20152 +Language=English +%1 +. +MessageId=20153 +Language=English +%1 +. +MessageId=20154 +Language=English +%1 +. +MessageId=20155 +Language=English +%1 +. +MessageId=20156 +Language=English +%1 +. +MessageId=20157 +Language=English +%1 +. +MessageId=20158 +Language=English +%1 +. +MessageId=20159 +Language=English +%1 +. +MessageId=20160 +Language=English +%1 +. +MessageId=20161 +Language=English +%1 +. +MessageId=20162 +Language=English +%1 +. +MessageId=20163 +Language=English +%1 +. +MessageId=20164 +Language=English +%1 +. +MessageId=20165 +Language=English +%1 +. +MessageId=20166 +Language=English +%1 +. +MessageId=20167 +Language=English +%1 +. +MessageId=20168 +Language=English +%1 +. +MessageId=20169 +Language=English +%1 +. +MessageId=20170 +Language=English +%1 +. +MessageId=20171 +Language=English +%1 +. +MessageId=20172 +Language=English +%1 +. +MessageId=20173 +Language=English +%1 +. +MessageId=20174 +Language=English +%1 +. +MessageId=20175 +Language=English +%1 +. +MessageId=20176 +Language=English +%1 +. +MessageId=20177 +Language=English +%1 +. +MessageId=20178 +Language=English +%1 +. +MessageId=20179 +Language=English +%1 +. +MessageId=20180 +Language=English +%1 +. +MessageId=20181 +Language=English +%1 +. +MessageId=20182 +Language=English +%1 +. +MessageId=20183 +Language=English +%1 +. +MessageId=20184 +Language=English +%1 +. +MessageId=20185 +Language=English +%1 +. +MessageId=20186 +Language=English +%1 +. +MessageId=20187 +Language=English +%1 +. +MessageId=20188 +Language=English +%1 +. +MessageId=20189 +Language=English +%1 +. +MessageId=20190 +Language=English +%1 +. +MessageId=20191 +Language=English +%1 +. +MessageId=20192 +Language=English +%1 +. +MessageId=20193 +Language=English +%1 +. +MessageId=20194 +Language=English +%1 +. +MessageId=20195 +Language=English +%1 +. +MessageId=20196 +Language=English +%1 +. +MessageId=20197 +Language=English +%1 +. +MessageId=20198 +Language=English +%1 +. +MessageId=20199 +Language=English +%1 +. +MessageId=20200 +Language=English +%1 +. +MessageId=20201 +Language=English +%1 +. +MessageId=20202 +Language=English +%1 +. +MessageId=20203 +Language=English +%1 +. +MessageId=20204 +Language=English +%1 +. +MessageId=20205 +Language=English +%1 +. +MessageId=20206 +Language=English +%1 +. +MessageId=20207 +Language=English +%1 +. +MessageId=20208 +Language=English +%1 +. +MessageId=20209 +Language=English +%1 +. +MessageId=20210 +Language=English +%1 +. +MessageId=20211 +Language=English +%1 +. +MessageId=20212 +Language=English +%1 +. +MessageId=20213 +Language=English +%1 +. +MessageId=20214 +Language=English +%1 +. +MessageId=20215 +Language=English +%1 +. +MessageId=20216 +Language=English +%1 +. +MessageId=20217 +Language=English +%1 +. +MessageId=20218 +Language=English +%1 +. +MessageId=20219 +Language=English +%1 +. +MessageId=20220 +Language=English +%1 +. +MessageId=20221 +Language=English +%1 +. +MessageId=20222 +Language=English +%1 +. +MessageId=20223 +Language=English +%1 +. +MessageId=20224 +Language=English +%1 +. +MessageId=20225 +Language=English +%1 +. +MessageId=20226 +Language=English +%1 +. +MessageId=20227 +Language=English +%1 +. +MessageId=20228 +Language=English +%1 +. +MessageId=20229 +Language=English +%1 +. +MessageId=20230 +Language=English +%1 +. +MessageId=20231 +Language=English +%1 +. +MessageId=20232 +Language=English +%1 +. +MessageId=20233 +Language=English +%1 +. +MessageId=20234 +Language=English +%1 +. +MessageId=20235 +Language=English +%1 +. +MessageId=20236 +Language=English +%1 +. +MessageId=20237 +Language=English +%1 +. +MessageId=20238 +Language=English +%1 +. +MessageId=20239 +Language=English +%1 +. +MessageId=20240 +Language=English +%1 +. +MessageId=20241 +Language=English +%1 +. +MessageId=20242 +Language=English +%1 +. +MessageId=20243 +Language=English +%1 +. +MessageId=20244 +Language=English +%1 +. +MessageId=20245 +Language=English +%1 +. +MessageId=20246 +Language=English +%1 +. +MessageId=20247 +Language=English +%1 +. +MessageId=20248 +Language=English +%1 +. +MessageId=20249 +Language=English +%1 +. +MessageId=20250 +Language=English +%1 +. +MessageId=20251 +Language=English +%1 +. +MessageId=20252 +Language=English +%1 +. +MessageId=20253 +Language=English +%1 +. +MessageId=20254 +Language=English +%1 +. +MessageId=20255 +Language=English +%1 +. +MessageId=20256 +Language=English +%1 +. +MessageId=20257 +Language=English +%1 +. +MessageId=20258 +Language=English +%1 +. +MessageId=20259 +Language=English +%1 +. +MessageId=20260 +Language=English +%1 +. +MessageId=20261 +Language=English +%1 +. +MessageId=20262 +Language=English +%1 +. +MessageId=20263 +Language=English +%1 +. +MessageId=20264 +Language=English +%1 +. +MessageId=20265 +Language=English +%1 +. +MessageId=20266 +Language=English +%1 +. +MessageId=20267 +Language=English +%1 +. +MessageId=20268 +Language=English +%1 +. +MessageId=20269 +Language=English +%1 +. +MessageId=20270 +Language=English +%1 +. +MessageId=20271 +Language=English +%1 +. +MessageId=20272 +Language=English +%1 +. +MessageId=20273 +Language=English +%1 +. +MessageId=20274 +Language=English +%1 +. +MessageId=20275 +Language=English +%1 +. +MessageId=20276 +Language=English +%1 +. +MessageId=20277 +Language=English +%1 +. +MessageId=20278 +Language=English +%1 +. +MessageId=20279 +Language=English +%1 +. +MessageId=20280 +Language=English +%1 +. +MessageId=20281 +Language=English +%1 +. +MessageId=20282 +Language=English +%1 +. +MessageId=20283 +Language=English +%1 +. +MessageId=20284 +Language=English +%1 +. +MessageId=20285 +Language=English +%1 +. +MessageId=20286 +Language=English +%1 +. +MessageId=20287 +Language=English +%1 +. +MessageId=20288 +Language=English +%1 +. +MessageId=20289 +Language=English +%1 +. +MessageId=20290 +Language=English +%1 +. +MessageId=20291 +Language=English +%1 +. +MessageId=20292 +Language=English +%1 +. +MessageId=20293 +Language=English +%1 +. +MessageId=20294 +Language=English +%1 +. +MessageId=20295 +Language=English +%1 +. +MessageId=20296 +Language=English +%1 +. +MessageId=20297 +Language=English +%1 +. +MessageId=20298 +Language=English +%1 +. +MessageId=20299 +Language=English +%1 +. +MessageId=20300 +Language=English +%1 +. +MessageId=20301 +Language=English +%1 +. +MessageId=20302 +Language=English +%1 +. +MessageId=20303 +Language=English +%1 +. +MessageId=20304 +Language=English +%1 +. +MessageId=20305 +Language=English +%1 +. +MessageId=20306 +Language=English +%1 +. +MessageId=20307 +Language=English +%1 +. +MessageId=20308 +Language=English +%1 +. +MessageId=20309 +Language=English +%1 +. +MessageId=20310 +Language=English +%1 +. +MessageId=20311 +Language=English +%1 +. +MessageId=20312 +Language=English +%1 +. +MessageId=20313 +Language=English +%1 +. +MessageId=20314 +Language=English +%1 +. +MessageId=20315 +Language=English +%1 +. +MessageId=20316 +Language=English +%1 +. +MessageId=20317 +Language=English +%1 +. +MessageId=20318 +Language=English +%1 +. +MessageId=20319 +Language=English +%1 +. +MessageId=20320 +Language=English +%1 +. +MessageId=20321 +Language=English +%1 +. +MessageId=20322 +Language=English +%1 +. +MessageId=20323 +Language=English +%1 +. +MessageId=20324 +Language=English +%1 +. +MessageId=20325 +Language=English +%1 +. +MessageId=20326 +Language=English +%1 +. +MessageId=20327 +Language=English +%1 +. +MessageId=20328 +Language=English +%1 +. +MessageId=20329 +Language=English +%1 +. +MessageId=20330 +Language=English +%1 +. +MessageId=20331 +Language=English +%1 +. +MessageId=20332 +Language=English +%1 +. +MessageId=20333 +Language=English +%1 +. +MessageId=20334 +Language=English +%1 +. +MessageId=20335 +Language=English +%1 +. +MessageId=20336 +Language=English +%1 +. +MessageId=20337 +Language=English +%1 +. +MessageId=20338 +Language=English +%1 +. +MessageId=20339 +Language=English +%1 +. +MessageId=20340 +Language=English +%1 +. +MessageId=20341 +Language=English +%1 +. +MessageId=20342 +Language=English +%1 +. +MessageId=20343 +Language=English +%1 +. +MessageId=20344 +Language=English +%1 +. +MessageId=20345 +Language=English +%1 +. +MessageId=20346 +Language=English +%1 +. +MessageId=20347 +Language=English +%1 +. +MessageId=20348 +Language=English +%1 +. +MessageId=20349 +Language=English +%1 +. +MessageId=20350 +Language=English +%1 +. +MessageId=20351 +Language=English +%1 +. +MessageId=20352 +Language=English +%1 +. +MessageId=20353 +Language=English +%1 +. +MessageId=20354 +Language=English +%1 +. +MessageId=20355 +Language=English +%1 +. +MessageId=20356 +Language=English +%1 +. +MessageId=20357 +Language=English +%1 +. +MessageId=20358 +Language=English +%1 +. +MessageId=20359 +Language=English +%1 +. +MessageId=20360 +Language=English +%1 +. +MessageId=20361 +Language=English +%1 +. +MessageId=20362 +Language=English +%1 +. +MessageId=20363 +Language=English +%1 +. +MessageId=20364 +Language=English +%1 +. +MessageId=20365 +Language=English +%1 +. +MessageId=20366 +Language=English +%1 +. +MessageId=20367 +Language=English +%1 +. +MessageId=20368 +Language=English +%1 +. +MessageId=20369 +Language=English +%1 +. +MessageId=20370 +Language=English +%1 +. +MessageId=20371 +Language=English +%1 +. +MessageId=20372 +Language=English +%1 +. +MessageId=20373 +Language=English +%1 +. +MessageId=20374 +Language=English +%1 +. +MessageId=20375 +Language=English +%1 +. +MessageId=20376 +Language=English +%1 +. +MessageId=20377 +Language=English +%1 +. +MessageId=20378 +Language=English +%1 +. +MessageId=20379 +Language=English +%1 +. +MessageId=20380 +Language=English +%1 +. +MessageId=20381 +Language=English +%1 +. +MessageId=20382 +Language=English +%1 +. +MessageId=20383 +Language=English +%1 +. +MessageId=20384 +Language=English +%1 +. +MessageId=20385 +Language=English +%1 +. +MessageId=20386 +Language=English +%1 +. +MessageId=20387 +Language=English +%1 +. +MessageId=20388 +Language=English +%1 +. +MessageId=20389 +Language=English +%1 +. +MessageId=20390 +Language=English +%1 +. +MessageId=20391 +Language=English +%1 +. +MessageId=20392 +Language=English +%1 +. +MessageId=20393 +Language=English +%1 +. +MessageId=20394 +Language=English +%1 +. +MessageId=20395 +Language=English +%1 +. +MessageId=20396 +Language=English +%1 +. +MessageId=20397 +Language=English +%1 +. +MessageId=20398 +Language=English +%1 +. +MessageId=20399 +Language=English +%1 +. +MessageId=20400 +Language=English +%1 +. +MessageId=20401 +Language=English +%1 +. +MessageId=20402 +Language=English +%1 +. +MessageId=20403 +Language=English +%1 +. +MessageId=20404 +Language=English +%1 +. +MessageId=20405 +Language=English +%1 +. +MessageId=20406 +Language=English +%1 +. +MessageId=20407 +Language=English +%1 +. +MessageId=20408 +Language=English +%1 +. +MessageId=20409 +Language=English +%1 +. +MessageId=20410 +Language=English +%1 +. +MessageId=20411 +Language=English +%1 +. +MessageId=20412 +Language=English +%1 +. +MessageId=20413 +Language=English +%1 +. +MessageId=20414 +Language=English +%1 +. +MessageId=20415 +Language=English +%1 +. +MessageId=20416 +Language=English +%1 +. +MessageId=20417 +Language=English +%1 +. +MessageId=20418 +Language=English +%1 +. +MessageId=20419 +Language=English +%1 +. +MessageId=20420 +Language=English +%1 +. +MessageId=20421 +Language=English +%1 +. +MessageId=20422 +Language=English +%1 +. +MessageId=20423 +Language=English +%1 +. +MessageId=20424 +Language=English +%1 +. +MessageId=20425 +Language=English +%1 +. +MessageId=20426 +Language=English +%1 +. +MessageId=20427 +Language=English +%1 +. +MessageId=20428 +Language=English +%1 +. +MessageId=20429 +Language=English +%1 +. +MessageId=20430 +Language=English +%1 +. +MessageId=20431 +Language=English +%1 +. +MessageId=20432 +Language=English +%1 +. +MessageId=20433 +Language=English +%1 +. +MessageId=20434 +Language=English +%1 +. +MessageId=20435 +Language=English +%1 +. +MessageId=20436 +Language=English +%1 +. +MessageId=20437 +Language=English +%1 +. +MessageId=20438 +Language=English +%1 +. +MessageId=20439 +Language=English +%1 +. +MessageId=20440 +Language=English +%1 +. +MessageId=20441 +Language=English +%1 +. +MessageId=20442 +Language=English +%1 +. +MessageId=20443 +Language=English +%1 +. +MessageId=20444 +Language=English +%1 +. +MessageId=20445 +Language=English +%1 +. +MessageId=20446 +Language=English +%1 +. +MessageId=20447 +Language=English +%1 +. +MessageId=20448 +Language=English +%1 +. +MessageId=20449 +Language=English +%1 +. +MessageId=20450 +Language=English +%1 +. +MessageId=20451 +Language=English +%1 +. +MessageId=20452 +Language=English +%1 +. +MessageId=20453 +Language=English +%1 +. +MessageId=20454 +Language=English +%1 +. +MessageId=20455 +Language=English +%1 +. +MessageId=20456 +Language=English +%1 +. +MessageId=20457 +Language=English +%1 +. +MessageId=20458 +Language=English +%1 +. +MessageId=20459 +Language=English +%1 +. +MessageId=20460 +Language=English +%1 +. +MessageId=20461 +Language=English +%1 +. +MessageId=20462 +Language=English +%1 +. +MessageId=20463 +Language=English +%1 +. +MessageId=20464 +Language=English +%1 +. +MessageId=20465 +Language=English +%1 +. +MessageId=20466 +Language=English +%1 +. +MessageId=20467 +Language=English +%1 +. +MessageId=20468 +Language=English +%1 +. +MessageId=20469 +Language=English +%1 +. +MessageId=20470 +Language=English +%1 +. +MessageId=20471 +Language=English +%1 +. +MessageId=20472 +Language=English +%1 +. +MessageId=20473 +Language=English +%1 +. +MessageId=20474 +Language=English +%1 +. +MessageId=20475 +Language=English +%1 +. +MessageId=20476 +Language=English +%1 +. +MessageId=20477 +Language=English +%1 +. +MessageId=20478 +Language=English +%1 +. +MessageId=20479 +Language=English +%1 +. +MessageId=20480 +Language=English +%1 +. +MessageId=20481 +Language=English +%1 +. +MessageId=20482 +Language=English +%1 +. +MessageId=20483 +Language=English +%1 +. +MessageId=20484 +Language=English +%1 +. +MessageId=20485 +Language=English +%1 +. +MessageId=20486 +Language=English +%1 +. +MessageId=20487 +Language=English +%1 +. +MessageId=20488 +Language=English +%1 +. +MessageId=20489 +Language=English +%1 +. +MessageId=20490 +Language=English +%1 +. +MessageId=20491 +Language=English +%1 +. +MessageId=20492 +Language=English +%1 +. +MessageId=20493 +Language=English +%1 +. +MessageId=20494 +Language=English +%1 +. +MessageId=20495 +Language=English +%1 +. +MessageId=20496 +Language=English +%1 +. +MessageId=20497 +Language=English +%1 +. +MessageId=20498 +Language=English +%1 +. +MessageId=20499 +Language=English +%1 +. +MessageId=20500 +Language=English +%1 +. +MessageId=20501 +Language=English +%1 +. +MessageId=20502 +Language=English +%1 +. +MessageId=20503 +Language=English +%1 +. +MessageId=20504 +Language=English +%1 +. +MessageId=20505 +Language=English +%1 +. +MessageId=20506 +Language=English +%1 +. +MessageId=20507 +Language=English +%1 +. +MessageId=20508 +Language=English +%1 +. +MessageId=20509 +Language=English +%1 +. +MessageId=20510 +Language=English +%1 +. +MessageId=20511 +Language=English +%1 +. +MessageId=20512 +Language=English +%1 +. +MessageId=20513 +Language=English +%1 +. +MessageId=20514 +Language=English +%1 +. +MessageId=20515 +Language=English +%1 +. +MessageId=20516 +Language=English +%1 +. +MessageId=20517 +Language=English +%1 +. +MessageId=20518 +Language=English +%1 +. +MessageId=20519 +Language=English +%1 +. +MessageId=20520 +Language=English +%1 +. +MessageId=20521 +Language=English +%1 +. +MessageId=20522 +Language=English +%1 +. +MessageId=20523 +Language=English +%1 +. +MessageId=20524 +Language=English +%1 +. +MessageId=20525 +Language=English +%1 +. +MessageId=20526 +Language=English +%1 +. +MessageId=20527 +Language=English +%1 +. +MessageId=20528 +Language=English +%1 +. +MessageId=20529 +Language=English +%1 +. +MessageId=20530 +Language=English +%1 +. +MessageId=20531 +Language=English +%1 +. +MessageId=20532 +Language=English +%1 +. +MessageId=20533 +Language=English +%1 +. +MessageId=20534 +Language=English +%1 +. +MessageId=20535 +Language=English +%1 +. +MessageId=20536 +Language=English +%1 +. +MessageId=20537 +Language=English +%1 +. +MessageId=20538 +Language=English +%1 +. +MessageId=20539 +Language=English +%1 +. +MessageId=20540 +Language=English +%1 +. +MessageId=20541 +Language=English +%1 +. +MessageId=20542 +Language=English +%1 +. +MessageId=20543 +Language=English +%1 +. +MessageId=20544 +Language=English +%1 +. +MessageId=20545 +Language=English +%1 +. +MessageId=20546 +Language=English +%1 +. +MessageId=20547 +Language=English +%1 +. +MessageId=20548 +Language=English +%1 +. +MessageId=20549 +Language=English +%1 +. +MessageId=20550 +Language=English +%1 +. +MessageId=20551 +Language=English +%1 +. +MessageId=20552 +Language=English +%1 +. +MessageId=20553 +Language=English +%1 +. +MessageId=20554 +Language=English +%1 +. +MessageId=20555 +Language=English +%1 +. +MessageId=20556 +Language=English +%1 +. +MessageId=20557 +Language=English +%1 +. +MessageId=20558 +Language=English +%1 +. +MessageId=20559 +Language=English +%1 +. +MessageId=20560 +Language=English +%1 +. +MessageId=20561 +Language=English +%1 +. +MessageId=20562 +Language=English +%1 +. +MessageId=20563 +Language=English +%1 +. +MessageId=20564 +Language=English +%1 +. +MessageId=20565 +Language=English +%1 +. +MessageId=20566 +Language=English +%1 +. +MessageId=20567 +Language=English +%1 +. +MessageId=20568 +Language=English +%1 +. +MessageId=20569 +Language=English +%1 +. +MessageId=20570 +Language=English +%1 +. +MessageId=20571 +Language=English +%1 +. +MessageId=20572 +Language=English +%1 +. +MessageId=20573 +Language=English +%1 +. +MessageId=20574 +Language=English +%1 +. +MessageId=20575 +Language=English +%1 +. +MessageId=20576 +Language=English +%1 +. +MessageId=20577 +Language=English +%1 +. +MessageId=20578 +Language=English +%1 +. +MessageId=20579 +Language=English +%1 +. +MessageId=20580 +Language=English +%1 +. +MessageId=20581 +Language=English +%1 +. +MessageId=20582 +Language=English +%1 +. +MessageId=20583 +Language=English +%1 +. +MessageId=20584 +Language=English +%1 +. +MessageId=20585 +Language=English +%1 +. +MessageId=20586 +Language=English +%1 +. +MessageId=20587 +Language=English +%1 +. +MessageId=20588 +Language=English +%1 +. +MessageId=20589 +Language=English +%1 +. +MessageId=20590 +Language=English +%1 +. +MessageId=20591 +Language=English +%1 +. +MessageId=20592 +Language=English +%1 +. +MessageId=20593 +Language=English +%1 +. +MessageId=20594 +Language=English +%1 +. +MessageId=20595 +Language=English +%1 +. +MessageId=20596 +Language=English +%1 +. +MessageId=20597 +Language=English +%1 +. +MessageId=20598 +Language=English +%1 +. +MessageId=20599 +Language=English +%1 +. +MessageId=20600 +Language=English +%1 +. +MessageId=20601 +Language=English +%1 +. +MessageId=20602 +Language=English +%1 +. +MessageId=20603 +Language=English +%1 +. +MessageId=20604 +Language=English +%1 +. +MessageId=20605 +Language=English +%1 +. +MessageId=20606 +Language=English +%1 +. +MessageId=20607 +Language=English +%1 +. +MessageId=20608 +Language=English +%1 +. +MessageId=20609 +Language=English +%1 +. +MessageId=20610 +Language=English +%1 +. +MessageId=20611 +Language=English +%1 +. +MessageId=20612 +Language=English +%1 +. +MessageId=20613 +Language=English +%1 +. +MessageId=20614 +Language=English +%1 +. +MessageId=20615 +Language=English +%1 +. +MessageId=20616 +Language=English +%1 +. +MessageId=20617 +Language=English +%1 +. +MessageId=20618 +Language=English +%1 +. +MessageId=20619 +Language=English +%1 +. +MessageId=20620 +Language=English +%1 +. +MessageId=20621 +Language=English +%1 +. +MessageId=20622 +Language=English +%1 +. +MessageId=20623 +Language=English +%1 +. +MessageId=20624 +Language=English +%1 +. +MessageId=20625 +Language=English +%1 +. +MessageId=20626 +Language=English +%1 +. +MessageId=20627 +Language=English +%1 +. +MessageId=20628 +Language=English +%1 +. +MessageId=20629 +Language=English +%1 +. +MessageId=20630 +Language=English +%1 +. +MessageId=20631 +Language=English +%1 +. +MessageId=20632 +Language=English +%1 +. +MessageId=20633 +Language=English +%1 +. +MessageId=20634 +Language=English +%1 +. +MessageId=20635 +Language=English +%1 +. +MessageId=20636 +Language=English +%1 +. +MessageId=20637 +Language=English +%1 +. +MessageId=20638 +Language=English +%1 +. +MessageId=20639 +Language=English +%1 +. +MessageId=20640 +Language=English +%1 +. +MessageId=20641 +Language=English +%1 +. +MessageId=20642 +Language=English +%1 +. +MessageId=20643 +Language=English +%1 +. +MessageId=20644 +Language=English +%1 +. +MessageId=20645 +Language=English +%1 +. +MessageId=20646 +Language=English +%1 +. +MessageId=20647 +Language=English +%1 +. +MessageId=20648 +Language=English +%1 +. +MessageId=20649 +Language=English +%1 +. +MessageId=20650 +Language=English +%1 +. +MessageId=20651 +Language=English +%1 +. +MessageId=20652 +Language=English +%1 +. +MessageId=20653 +Language=English +%1 +. +MessageId=20654 +Language=English +%1 +. +MessageId=20655 +Language=English +%1 +. +MessageId=20656 +Language=English +%1 +. +MessageId=20657 +Language=English +%1 +. +MessageId=20658 +Language=English +%1 +. +MessageId=20659 +Language=English +%1 +. +MessageId=20660 +Language=English +%1 +. +MessageId=20661 +Language=English +%1 +. +MessageId=20662 +Language=English +%1 +. +MessageId=20663 +Language=English +%1 +. +MessageId=20664 +Language=English +%1 +. +MessageId=20665 +Language=English +%1 +. +MessageId=20666 +Language=English +%1 +. +MessageId=20667 +Language=English +%1 +. +MessageId=20668 +Language=English +%1 +. +MessageId=20669 +Language=English +%1 +. +MessageId=20670 +Language=English +%1 +. +MessageId=20671 +Language=English +%1 +. +MessageId=20672 +Language=English +%1 +. +MessageId=20673 +Language=English +%1 +. +MessageId=20674 +Language=English +%1 +. +MessageId=20675 +Language=English +%1 +. +MessageId=20676 +Language=English +%1 +. +MessageId=20677 +Language=English +%1 +. +MessageId=20678 +Language=English +%1 +. +MessageId=20679 +Language=English +%1 +. +MessageId=20680 +Language=English +%1 +. +MessageId=20681 +Language=English +%1 +. +MessageId=20682 +Language=English +%1 +. +MessageId=20683 +Language=English +%1 +. +MessageId=20684 +Language=English +%1 +. +MessageId=20685 +Language=English +%1 +. +MessageId=20686 +Language=English +%1 +. +MessageId=20687 +Language=English +%1 +. +MessageId=20688 +Language=English +%1 +. +MessageId=20689 +Language=English +%1 +. +MessageId=20690 +Language=English +%1 +. +MessageId=20691 +Language=English +%1 +. +MessageId=20692 +Language=English +%1 +. +MessageId=20693 +Language=English +%1 +. +MessageId=20694 +Language=English +%1 +. +MessageId=20695 +Language=English +%1 +. +MessageId=20696 +Language=English +%1 +. +MessageId=20697 +Language=English +%1 +. +MessageId=20698 +Language=English +%1 +. +MessageId=20699 +Language=English +%1 +. +MessageId=20700 +Language=English +%1 +. +MessageId=20701 +Language=English +%1 +. +MessageId=20702 +Language=English +%1 +. +MessageId=20703 +Language=English +%1 +. +MessageId=20704 +Language=English +%1 +. +MessageId=20705 +Language=English +%1 +. +MessageId=20706 +Language=English +%1 +. +MessageId=20707 +Language=English +%1 +. +MessageId=20708 +Language=English +%1 +. +MessageId=20709 +Language=English +%1 +. +MessageId=20710 +Language=English +%1 +. +MessageId=20711 +Language=English +%1 +. +MessageId=20712 +Language=English +%1 +. +MessageId=20713 +Language=English +%1 +. +MessageId=20714 +Language=English +%1 +. +MessageId=20715 +Language=English +%1 +. +MessageId=20716 +Language=English +%1 +. +MessageId=20717 +Language=English +%1 +. +MessageId=20718 +Language=English +%1 +. +MessageId=20719 +Language=English +%1 +. +MessageId=20720 +Language=English +%1 +. +MessageId=20721 +Language=English +%1 +. +MessageId=20722 +Language=English +%1 +. +MessageId=20723 +Language=English +%1 +. +MessageId=20724 +Language=English +%1 +. +MessageId=20725 +Language=English +%1 +. +MessageId=20726 +Language=English +%1 +. +MessageId=20727 +Language=English +%1 +. +MessageId=20728 +Language=English +%1 +. +MessageId=20729 +Language=English +%1 +. +MessageId=20730 +Language=English +%1 +. +MessageId=20731 +Language=English +%1 +. +MessageId=20732 +Language=English +%1 +. +MessageId=20733 +Language=English +%1 +. +MessageId=20734 +Language=English +%1 +. +MessageId=20735 +Language=English +%1 +. +MessageId=20736 +Language=English +%1 +. +MessageId=20737 +Language=English +%1 +. +MessageId=20738 +Language=English +%1 +. +MessageId=20739 +Language=English +%1 +. +MessageId=20740 +Language=English +%1 +. +MessageId=20741 +Language=English +%1 +. +MessageId=20742 +Language=English +%1 +. +MessageId=20743 +Language=English +%1 +. +MessageId=20744 +Language=English +%1 +. +MessageId=20745 +Language=English +%1 +. +MessageId=20746 +Language=English +%1 +. +MessageId=20747 +Language=English +%1 +. +MessageId=20748 +Language=English +%1 +. +MessageId=20749 +Language=English +%1 +. +MessageId=20750 +Language=English +%1 +. +MessageId=20751 +Language=English +%1 +. +MessageId=20752 +Language=English +%1 +. +MessageId=20753 +Language=English +%1 +. +MessageId=20754 +Language=English +%1 +. +MessageId=20755 +Language=English +%1 +. +MessageId=20756 +Language=English +%1 +. +MessageId=20757 +Language=English +%1 +. +MessageId=20758 +Language=English +%1 +. +MessageId=20759 +Language=English +%1 +. +MessageId=20760 +Language=English +%1 +. +MessageId=20761 +Language=English +%1 +. +MessageId=20762 +Language=English +%1 +. +MessageId=20763 +Language=English +%1 +. +MessageId=20764 +Language=English +%1 +. +MessageId=20765 +Language=English +%1 +. +MessageId=20766 +Language=English +%1 +. +MessageId=20767 +Language=English +%1 +. +MessageId=20768 +Language=English +%1 +. +MessageId=20769 +Language=English +%1 +. +MessageId=20770 +Language=English +%1 +. +MessageId=20771 +Language=English +%1 +. +MessageId=20772 +Language=English +%1 +. +MessageId=20773 +Language=English +%1 +. +MessageId=20774 +Language=English +%1 +. +MessageId=20775 +Language=English +%1 +. +MessageId=20776 +Language=English +%1 +. +MessageId=20777 +Language=English +%1 +. +MessageId=20778 +Language=English +%1 +. +MessageId=20779 +Language=English +%1 +. +MessageId=20780 +Language=English +%1 +. +MessageId=20781 +Language=English +%1 +. +MessageId=20782 +Language=English +%1 +. +MessageId=20783 +Language=English +%1 +. +MessageId=20784 +Language=English +%1 +. +MessageId=20785 +Language=English +%1 +. +MessageId=20786 +Language=English +%1 +. +MessageId=20787 +Language=English +%1 +. +MessageId=20788 +Language=English +%1 +. +MessageId=20789 +Language=English +%1 +. +MessageId=20790 +Language=English +%1 +. +MessageId=20791 +Language=English +%1 +. +MessageId=20792 +Language=English +%1 +. +MessageId=20793 +Language=English +%1 +. +MessageId=20794 +Language=English +%1 +. +MessageId=20795 +Language=English +%1 +. +MessageId=20796 +Language=English +%1 +. +MessageId=20797 +Language=English +%1 +. +MessageId=20798 +Language=English +%1 +. +MessageId=20799 +Language=English +%1 +. +MessageId=20800 +Language=English +%1 +. +MessageId=20801 +Language=English +%1 +. +MessageId=20802 +Language=English +%1 +. +MessageId=20803 +Language=English +%1 +. +MessageId=20804 +Language=English +%1 +. +MessageId=20805 +Language=English +%1 +. +MessageId=20806 +Language=English +%1 +. +MessageId=20807 +Language=English +%1 +. +MessageId=20808 +Language=English +%1 +. +MessageId=20809 +Language=English +%1 +. +MessageId=20810 +Language=English +%1 +. +MessageId=20811 +Language=English +%1 +. +MessageId=20812 +Language=English +%1 +. +MessageId=20813 +Language=English +%1 +. +MessageId=20814 +Language=English +%1 +. +MessageId=20815 +Language=English +%1 +. +MessageId=20816 +Language=English +%1 +. +MessageId=20817 +Language=English +%1 +. +MessageId=20818 +Language=English +%1 +. +MessageId=20819 +Language=English +%1 +. +MessageId=20820 +Language=English +%1 +. +MessageId=20821 +Language=English +%1 +. +MessageId=20822 +Language=English +%1 +. +MessageId=20823 +Language=English +%1 +. +MessageId=20824 +Language=English +%1 +. +MessageId=20825 +Language=English +%1 +. +MessageId=20826 +Language=English +%1 +. +MessageId=20827 +Language=English +%1 +. +MessageId=20828 +Language=English +%1 +. +MessageId=20829 +Language=English +%1 +. +MessageId=20830 +Language=English +%1 +. +MessageId=20831 +Language=English +%1 +. +MessageId=20832 +Language=English +%1 +. +MessageId=20833 +Language=English +%1 +. +MessageId=20834 +Language=English +%1 +. +MessageId=20835 +Language=English +%1 +. +MessageId=20836 +Language=English +%1 +. +MessageId=20837 +Language=English +%1 +. +MessageId=20838 +Language=English +%1 +. +MessageId=20839 +Language=English +%1 +. +MessageId=20840 +Language=English +%1 +. +MessageId=20841 +Language=English +%1 +. +MessageId=20842 +Language=English +%1 +. +MessageId=20843 +Language=English +%1 +. +MessageId=20844 +Language=English +%1 +. +MessageId=20845 +Language=English +%1 +. +MessageId=20846 +Language=English +%1 +. +MessageId=20847 +Language=English +%1 +. +MessageId=20848 +Language=English +%1 +. +MessageId=20849 +Language=English +%1 +. +MessageId=20850 +Language=English +%1 +. +MessageId=20851 +Language=English +%1 +. +MessageId=20852 +Language=English +%1 +. +MessageId=20853 +Language=English +%1 +. +MessageId=20854 +Language=English +%1 +. +MessageId=20855 +Language=English +%1 +. +MessageId=20856 +Language=English +%1 +. +MessageId=20857 +Language=English +%1 +. +MessageId=20858 +Language=English +%1 +. +MessageId=20859 +Language=English +%1 +. +MessageId=20860 +Language=English +%1 +. +MessageId=20861 +Language=English +%1 +. +MessageId=20862 +Language=English +%1 +. +MessageId=20863 +Language=English +%1 +. +MessageId=20864 +Language=English +%1 +. +MessageId=20865 +Language=English +%1 +. +MessageId=20866 +Language=English +%1 +. +MessageId=20867 +Language=English +%1 +. +MessageId=20868 +Language=English +%1 +. +MessageId=20869 +Language=English +%1 +. +MessageId=20870 +Language=English +%1 +. +MessageId=20871 +Language=English +%1 +. +MessageId=20872 +Language=English +%1 +. +MessageId=20873 +Language=English +%1 +. +MessageId=20874 +Language=English +%1 +. +MessageId=20875 +Language=English +%1 +. +MessageId=20876 +Language=English +%1 +. +MessageId=20877 +Language=English +%1 +. +MessageId=20878 +Language=English +%1 +. +MessageId=20879 +Language=English +%1 +. +MessageId=20880 +Language=English +%1 +. +MessageId=20881 +Language=English +%1 +. +MessageId=20882 +Language=English +%1 +. +MessageId=20883 +Language=English +%1 +. +MessageId=20884 +Language=English +%1 +. +MessageId=20885 +Language=English +%1 +. +MessageId=20886 +Language=English +%1 +. +MessageId=20887 +Language=English +%1 +. +MessageId=20888 +Language=English +%1 +. +MessageId=20889 +Language=English +%1 +. +MessageId=20890 +Language=English +%1 +. +MessageId=20891 +Language=English +%1 +. +MessageId=20892 +Language=English +%1 +. +MessageId=20893 +Language=English +%1 +. +MessageId=20894 +Language=English +%1 +. +MessageId=20895 +Language=English +%1 +. +MessageId=20896 +Language=English +%1 +. +MessageId=20897 +Language=English +%1 +. +MessageId=20898 +Language=English +%1 +. +MessageId=20899 +Language=English +%1 +. +MessageId=20900 +Language=English +%1 +. +MessageId=20901 +Language=English +%1 +. +MessageId=20902 +Language=English +%1 +. +MessageId=20903 +Language=English +%1 +. +MessageId=20904 +Language=English +%1 +. +MessageId=20905 +Language=English +%1 +. +MessageId=20906 +Language=English +%1 +. +MessageId=20907 +Language=English +%1 +. +MessageId=20908 +Language=English +%1 +. +MessageId=20909 +Language=English +%1 +. +MessageId=20910 +Language=English +%1 +. +MessageId=20911 +Language=English +%1 +. +MessageId=20912 +Language=English +%1 +. +MessageId=20913 +Language=English +%1 +. +MessageId=20914 +Language=English +%1 +. +MessageId=20915 +Language=English +%1 +. +MessageId=20916 +Language=English +%1 +. +MessageId=20917 +Language=English +%1 +. +MessageId=20918 +Language=English +%1 +. +MessageId=20919 +Language=English +%1 +. +MessageId=20920 +Language=English +%1 +. +MessageId=20921 +Language=English +%1 +. +MessageId=20922 +Language=English +%1 +. +MessageId=20923 +Language=English +%1 +. +MessageId=20924 +Language=English +%1 +. +MessageId=20925 +Language=English +%1 +. +MessageId=20926 +Language=English +%1 +. +MessageId=20927 +Language=English +%1 +. +MessageId=20928 +Language=English +%1 +. +MessageId=20929 +Language=English +%1 +. +MessageId=20930 +Language=English +%1 +. +MessageId=20931 +Language=English +%1 +. +MessageId=20932 +Language=English +%1 +. +MessageId=20933 +Language=English +%1 +. +MessageId=20934 +Language=English +%1 +. +MessageId=20935 +Language=English +%1 +. +MessageId=20936 +Language=English +%1 +. +MessageId=20937 +Language=English +%1 +. +MessageId=20938 +Language=English +%1 +. +MessageId=20939 +Language=English +%1 +. +MessageId=20940 +Language=English +%1 +. +MessageId=20941 +Language=English +%1 +. +MessageId=20942 +Language=English +%1 +. +MessageId=20943 +Language=English +%1 +. +MessageId=20944 +Language=English +%1 +. +MessageId=20945 +Language=English +%1 +. +MessageId=20946 +Language=English +%1 +. +MessageId=20947 +Language=English +%1 +. +MessageId=20948 +Language=English +%1 +. +MessageId=20949 +Language=English +%1 +. +MessageId=20950 +Language=English +%1 +. +MessageId=20951 +Language=English +%1 +. +MessageId=20952 +Language=English +%1 +. +MessageId=20953 +Language=English +%1 +. +MessageId=20954 +Language=English +%1 +. +MessageId=20955 +Language=English +%1 +. +MessageId=20956 +Language=English +%1 +. +MessageId=20957 +Language=English +%1 +. +MessageId=20958 +Language=English +%1 +. +MessageId=20959 +Language=English +%1 +. +MessageId=20960 +Language=English +%1 +. +MessageId=20961 +Language=English +%1 +. +MessageId=20962 +Language=English +%1 +. +MessageId=20963 +Language=English +%1 +. +MessageId=20964 +Language=English +%1 +. +MessageId=20965 +Language=English +%1 +. +MessageId=20966 +Language=English +%1 +. +MessageId=20967 +Language=English +%1 +. +MessageId=20968 +Language=English +%1 +. +MessageId=20969 +Language=English +%1 +. +MessageId=20970 +Language=English +%1 +. +MessageId=20971 +Language=English +%1 +. +MessageId=20972 +Language=English +%1 +. +MessageId=20973 +Language=English +%1 +. +MessageId=20974 +Language=English +%1 +. +MessageId=20975 +Language=English +%1 +. +MessageId=20976 +Language=English +%1 +. +MessageId=20977 +Language=English +%1 +. +MessageId=20978 +Language=English +%1 +. +MessageId=20979 +Language=English +%1 +. +MessageId=20980 +Language=English +%1 +. +MessageId=20981 +Language=English +%1 +. +MessageId=20982 +Language=English +%1 +. +MessageId=20983 +Language=English +%1 +. +MessageId=20984 +Language=English +%1 +. +MessageId=20985 +Language=English +%1 +. +MessageId=20986 +Language=English +%1 +. +MessageId=20987 +Language=English +%1 +. +MessageId=20988 +Language=English +%1 +. +MessageId=20989 +Language=English +%1 +. +MessageId=20990 +Language=English +%1 +. +MessageId=20991 +Language=English +%1 +. +MessageId=20992 +Language=English +%1 +. +MessageId=20993 +Language=English +%1 +. +MessageId=20994 +Language=English +%1 +. +MessageId=20995 +Language=English +%1 +. +MessageId=20996 +Language=English +%1 +. +MessageId=20997 +Language=English +%1 +. +MessageId=20998 +Language=English +%1 +. +MessageId=20999 +Language=English +%1 +. +MessageId=21000 +Language=English +%1 +. +MessageId=21001 +Language=English +%1 +. +MessageId=21002 +Language=English +%1 +. +MessageId=21003 +Language=English +%1 +. +MessageId=21004 +Language=English +%1 +. +MessageId=21005 +Language=English +%1 +. +MessageId=21006 +Language=English +%1 +. +MessageId=21007 +Language=English +%1 +. +MessageId=21008 +Language=English +%1 +. +MessageId=21009 +Language=English +%1 +. +MessageId=21010 +Language=English +%1 +. +MessageId=21011 +Language=English +%1 +. +MessageId=21012 +Language=English +%1 +. +MessageId=21013 +Language=English +%1 +. +MessageId=21014 +Language=English +%1 +. +MessageId=21015 +Language=English +%1 +. +MessageId=21016 +Language=English +%1 +. +MessageId=21017 +Language=English +%1 +. +MessageId=21018 +Language=English +%1 +. +MessageId=21019 +Language=English +%1 +. +MessageId=21020 +Language=English +%1 +. +MessageId=21021 +Language=English +%1 +. +MessageId=21022 +Language=English +%1 +. +MessageId=21023 +Language=English +%1 +. +MessageId=21024 +Language=English +%1 +. +MessageId=21025 +Language=English +%1 +. +MessageId=21026 +Language=English +%1 +. +MessageId=21027 +Language=English +%1 +. +MessageId=21028 +Language=English +%1 +. +MessageId=21029 +Language=English +%1 +. +MessageId=21030 +Language=English +%1 +. +MessageId=21031 +Language=English +%1 +. +MessageId=21032 +Language=English +%1 +. +MessageId=21033 +Language=English +%1 +. +MessageId=21034 +Language=English +%1 +. +MessageId=21035 +Language=English +%1 +. +MessageId=21036 +Language=English +%1 +. +MessageId=21037 +Language=English +%1 +. +MessageId=21038 +Language=English +%1 +. +MessageId=21039 +Language=English +%1 +. +MessageId=21040 +Language=English +%1 +. +MessageId=21041 +Language=English +%1 +. +MessageId=21042 +Language=English +%1 +. +MessageId=21043 +Language=English +%1 +. +MessageId=21044 +Language=English +%1 +. +MessageId=21045 +Language=English +%1 +. +MessageId=21046 +Language=English +%1 +. +MessageId=21047 +Language=English +%1 +. +MessageId=21048 +Language=English +%1 +. +MessageId=21049 +Language=English +%1 +. +MessageId=21050 +Language=English +%1 +. +MessageId=21051 +Language=English +%1 +. +MessageId=21052 +Language=English +%1 +. +MessageId=21053 +Language=English +%1 +. +MessageId=21054 +Language=English +%1 +. +MessageId=21055 +Language=English +%1 +. +MessageId=21056 +Language=English +%1 +. +MessageId=21057 +Language=English +%1 +. +MessageId=21058 +Language=English +%1 +. +MessageId=21059 +Language=English +%1 +. +MessageId=21060 +Language=English +%1 +. +MessageId=21061 +Language=English +%1 +. +MessageId=21062 +Language=English +%1 +. +MessageId=21063 +Language=English +%1 +. +MessageId=21064 +Language=English +%1 +. +MessageId=21065 +Language=English +%1 +. +MessageId=21066 +Language=English +%1 +. +MessageId=21067 +Language=English +%1 +. +MessageId=21068 +Language=English +%1 +. +MessageId=21069 +Language=English +%1 +. +MessageId=21070 +Language=English +%1 +. +MessageId=21071 +Language=English +%1 +. +MessageId=21072 +Language=English +%1 +. +MessageId=21073 +Language=English +%1 +. +MessageId=21074 +Language=English +%1 +. +MessageId=21075 +Language=English +%1 +. +MessageId=21076 +Language=English +%1 +. +MessageId=21077 +Language=English +%1 +. +MessageId=21078 +Language=English +%1 +. +MessageId=21079 +Language=English +%1 +. +MessageId=21080 +Language=English +%1 +. +MessageId=21081 +Language=English +%1 +. +MessageId=21082 +Language=English +%1 +. +MessageId=21083 +Language=English +%1 +. +MessageId=21084 +Language=English +%1 +. +MessageId=21085 +Language=English +%1 +. +MessageId=21086 +Language=English +%1 +. +MessageId=21087 +Language=English +%1 +. +MessageId=21088 +Language=English +%1 +. +MessageId=21089 +Language=English +%1 +. +MessageId=21090 +Language=English +%1 +. +MessageId=21091 +Language=English +%1 +. +MessageId=21092 +Language=English +%1 +. +MessageId=21093 +Language=English +%1 +. +MessageId=21094 +Language=English +%1 +. +MessageId=21095 +Language=English +%1 +. +MessageId=21096 +Language=English +%1 +. +MessageId=21097 +Language=English +%1 +. +MessageId=21098 +Language=English +%1 +. +MessageId=21099 +Language=English +%1 +. +MessageId=21100 +Language=English +%1 +. +MessageId=21101 +Language=English +%1 +. +MessageId=21102 +Language=English +%1 +. +MessageId=21103 +Language=English +%1 +. +MessageId=21104 +Language=English +%1 +. +MessageId=21105 +Language=English +%1 +. +MessageId=21106 +Language=English +%1 +. +MessageId=21107 +Language=English +%1 +. +MessageId=21108 +Language=English +%1 +. +MessageId=21109 +Language=English +%1 +. +MessageId=21110 +Language=English +%1 +. +MessageId=21111 +Language=English +%1 +. +MessageId=21112 +Language=English +%1 +. +MessageId=21113 +Language=English +%1 +. +MessageId=21114 +Language=English +%1 +. +MessageId=21115 +Language=English +%1 +. +MessageId=21116 +Language=English +%1 +. +MessageId=21117 +Language=English +%1 +. +MessageId=21118 +Language=English +%1 +. +MessageId=21119 +Language=English +%1 +. +MessageId=21120 +Language=English +%1 +. +MessageId=21121 +Language=English +%1 +. +MessageId=21122 +Language=English +%1 +. +MessageId=21123 +Language=English +%1 +. +MessageId=21124 +Language=English +%1 +. +MessageId=21125 +Language=English +%1 +. +MessageId=21126 +Language=English +%1 +. +MessageId=21127 +Language=English +%1 +. +MessageId=21128 +Language=English +%1 +. +MessageId=21129 +Language=English +%1 +. +MessageId=21130 +Language=English +%1 +. +MessageId=21131 +Language=English +%1 +. +MessageId=21132 +Language=English +%1 +. +MessageId=21133 +Language=English +%1 +. +MessageId=21134 +Language=English +%1 +. +MessageId=21135 +Language=English +%1 +. +MessageId=21136 +Language=English +%1 +. +MessageId=21137 +Language=English +%1 +. +MessageId=21138 +Language=English +%1 +. +MessageId=21139 +Language=English +%1 +. +MessageId=21140 +Language=English +%1 +. +MessageId=21141 +Language=English +%1 +. +MessageId=21142 +Language=English +%1 +. +MessageId=21143 +Language=English +%1 +. +MessageId=21144 +Language=English +%1 +. +MessageId=21145 +Language=English +%1 +. +MessageId=21146 +Language=English +%1 +. +MessageId=21147 +Language=English +%1 +. +MessageId=21148 +Language=English +%1 +. +MessageId=21149 +Language=English +%1 +. +MessageId=21150 +Language=English +%1 +. +MessageId=21151 +Language=English +%1 +. +MessageId=21152 +Language=English +%1 +. +MessageId=21153 +Language=English +%1 +. +MessageId=21154 +Language=English +%1 +. +MessageId=21155 +Language=English +%1 +. +MessageId=21156 +Language=English +%1 +. +MessageId=21157 +Language=English +%1 +. +MessageId=21158 +Language=English +%1 +. +MessageId=21159 +Language=English +%1 +. +MessageId=21160 +Language=English +%1 +. +MessageId=21161 +Language=English +%1 +. +MessageId=21162 +Language=English +%1 +. +MessageId=21163 +Language=English +%1 +. +MessageId=21164 +Language=English +%1 +. +MessageId=21165 +Language=English +%1 +. +MessageId=21166 +Language=English +%1 +. +MessageId=21167 +Language=English +%1 +. +MessageId=21168 +Language=English +%1 +. +MessageId=21169 +Language=English +%1 +. +MessageId=21170 +Language=English +%1 +. +MessageId=21171 +Language=English +%1 +. +MessageId=21172 +Language=English +%1 +. +MessageId=21173 +Language=English +%1 +. +MessageId=21174 +Language=English +%1 +. +MessageId=21175 +Language=English +%1 +. +MessageId=21176 +Language=English +%1 +. +MessageId=21177 +Language=English +%1 +. +MessageId=21178 +Language=English +%1 +. +MessageId=21179 +Language=English +%1 +. +MessageId=21180 +Language=English +%1 +. +MessageId=21181 +Language=English +%1 +. +MessageId=21182 +Language=English +%1 +. +MessageId=21183 +Language=English +%1 +. +MessageId=21184 +Language=English +%1 +. +MessageId=21185 +Language=English +%1 +. +MessageId=21186 +Language=English +%1 +. +MessageId=21187 +Language=English +%1 +. +MessageId=21188 +Language=English +%1 +. +MessageId=21189 +Language=English +%1 +. +MessageId=21190 +Language=English +%1 +. +MessageId=21191 +Language=English +%1 +. +MessageId=21192 +Language=English +%1 +. +MessageId=21193 +Language=English +%1 +. +MessageId=21194 +Language=English +%1 +. +MessageId=21195 +Language=English +%1 +. +MessageId=21196 +Language=English +%1 +. +MessageId=21197 +Language=English +%1 +. +MessageId=21198 +Language=English +%1 +. +MessageId=21199 +Language=English +%1 +. +MessageId=21200 +Language=English +%1 +. +MessageId=21201 +Language=English +%1 +. +MessageId=21202 +Language=English +%1 +. +MessageId=21203 +Language=English +%1 +. +MessageId=21204 +Language=English +%1 +. +MessageId=21205 +Language=English +%1 +. +MessageId=21206 +Language=English +%1 +. +MessageId=21207 +Language=English +%1 +. +MessageId=21208 +Language=English +%1 +. +MessageId=21209 +Language=English +%1 +. +MessageId=21210 +Language=English +%1 +. +MessageId=21211 +Language=English +%1 +. +MessageId=21212 +Language=English +%1 +. +MessageId=21213 +Language=English +%1 +. +MessageId=21214 +Language=English +%1 +. +MessageId=21215 +Language=English +%1 +. +MessageId=21216 +Language=English +%1 +. +MessageId=21217 +Language=English +%1 +. +MessageId=21218 +Language=English +%1 +. +MessageId=21219 +Language=English +%1 +. +MessageId=21220 +Language=English +%1 +. +MessageId=21221 +Language=English +%1 +. +MessageId=21222 +Language=English +%1 +. +MessageId=21223 +Language=English +%1 +. +MessageId=21224 +Language=English +%1 +. +MessageId=21225 +Language=English +%1 +. +MessageId=21226 +Language=English +%1 +. +MessageId=21227 +Language=English +%1 +. +MessageId=21228 +Language=English +%1 +. +MessageId=21229 +Language=English +%1 +. +MessageId=21230 +Language=English +%1 +. +MessageId=21231 +Language=English +%1 +. +MessageId=21232 +Language=English +%1 +. +MessageId=21233 +Language=English +%1 +. +MessageId=21234 +Language=English +%1 +. +MessageId=21235 +Language=English +%1 +. +MessageId=21236 +Language=English +%1 +. +MessageId=21237 +Language=English +%1 +. +MessageId=21238 +Language=English +%1 +. +MessageId=21239 +Language=English +%1 +. +MessageId=21240 +Language=English +%1 +. +MessageId=21241 +Language=English +%1 +. +MessageId=21242 +Language=English +%1 +. +MessageId=21243 +Language=English +%1 +. +MessageId=21244 +Language=English +%1 +. +MessageId=21245 +Language=English +%1 +. +MessageId=21246 +Language=English +%1 +. +MessageId=21247 +Language=English +%1 +. +MessageId=21248 +Language=English +%1 +. +MessageId=21249 +Language=English +%1 +. +MessageId=21250 +Language=English +%1 +. +MessageId=21251 +Language=English +%1 +. +MessageId=21252 +Language=English +%1 +. +MessageId=21253 +Language=English +%1 +. +MessageId=21254 +Language=English +%1 +. +MessageId=21255 +Language=English +%1 +. +MessageId=21256 +Language=English +%1 +. +MessageId=21257 +Language=English +%1 +. +MessageId=21258 +Language=English +%1 +. +MessageId=21259 +Language=English +%1 +. +MessageId=21260 +Language=English +%1 +. +MessageId=21261 +Language=English +%1 +. +MessageId=21262 +Language=English +%1 +. +MessageId=21263 +Language=English +%1 +. +MessageId=21264 +Language=English +%1 +. +MessageId=21265 +Language=English +%1 +. +MessageId=21266 +Language=English +%1 +. +MessageId=21267 +Language=English +%1 +. +MessageId=21268 +Language=English +%1 +. +MessageId=21269 +Language=English +%1 +. +MessageId=21270 +Language=English +%1 +. +MessageId=21271 +Language=English +%1 +. +MessageId=21272 +Language=English +%1 +. +MessageId=21273 +Language=English +%1 +. +MessageId=21274 +Language=English +%1 +. +MessageId=21275 +Language=English +%1 +. +MessageId=21276 +Language=English +%1 +. +MessageId=21277 +Language=English +%1 +. +MessageId=21278 +Language=English +%1 +. +MessageId=21279 +Language=English +%1 +. +MessageId=21280 +Language=English +%1 +. +MessageId=21281 +Language=English +%1 +. +MessageId=21282 +Language=English +%1 +. +MessageId=21283 +Language=English +%1 +. +MessageId=21284 +Language=English +%1 +. +MessageId=21285 +Language=English +%1 +. +MessageId=21286 +Language=English +%1 +. +MessageId=21287 +Language=English +%1 +. +MessageId=21288 +Language=English +%1 +. +MessageId=21289 +Language=English +%1 +. +MessageId=21290 +Language=English +%1 +. +MessageId=21291 +Language=English +%1 +. +MessageId=21292 +Language=English +%1 +. +MessageId=21293 +Language=English +%1 +. +MessageId=21294 +Language=English +%1 +. +MessageId=21295 +Language=English +%1 +. +MessageId=21296 +Language=English +%1 +. +MessageId=21297 +Language=English +%1 +. +MessageId=21298 +Language=English +%1 +. +MessageId=21299 +Language=English +%1 +. +MessageId=21300 +Language=English +%1 +. +MessageId=21301 +Language=English +%1 +. +MessageId=21302 +Language=English +%1 +. +MessageId=21303 +Language=English +%1 +. +MessageId=21304 +Language=English +%1 +. +MessageId=21305 +Language=English +%1 +. +MessageId=21306 +Language=English +%1 +. +MessageId=21307 +Language=English +%1 +. +MessageId=21308 +Language=English +%1 +. +MessageId=21309 +Language=English +%1 +. +MessageId=21310 +Language=English +%1 +. +MessageId=21311 +Language=English +%1 +. +MessageId=21312 +Language=English +%1 +. +MessageId=21313 +Language=English +%1 +. +MessageId=21314 +Language=English +%1 +. +MessageId=21315 +Language=English +%1 +. +MessageId=21316 +Language=English +%1 +. +MessageId=21317 +Language=English +%1 +. +MessageId=21318 +Language=English +%1 +. +MessageId=21319 +Language=English +%1 +. +MessageId=21320 +Language=English +%1 +. +MessageId=21321 +Language=English +%1 +. +MessageId=21322 +Language=English +%1 +. +MessageId=21323 +Language=English +%1 +. +MessageId=21324 +Language=English +%1 +. +MessageId=21325 +Language=English +%1 +. +MessageId=21326 +Language=English +%1 +. +MessageId=21327 +Language=English +%1 +. +MessageId=21328 +Language=English +%1 +. +MessageId=21329 +Language=English +%1 +. +MessageId=21330 +Language=English +%1 +. +MessageId=21331 +Language=English +%1 +. +MessageId=21332 +Language=English +%1 +. +MessageId=21333 +Language=English +%1 +. +MessageId=21334 +Language=English +%1 +. +MessageId=21335 +Language=English +%1 +. +MessageId=21336 +Language=English +%1 +. +MessageId=21337 +Language=English +%1 +. +MessageId=21338 +Language=English +%1 +. +MessageId=21339 +Language=English +%1 +. +MessageId=21340 +Language=English +%1 +. +MessageId=21341 +Language=English +%1 +. +MessageId=21342 +Language=English +%1 +. +MessageId=21343 +Language=English +%1 +. +MessageId=21344 +Language=English +%1 +. +MessageId=21345 +Language=English +%1 +. +MessageId=21346 +Language=English +%1 +. +MessageId=21347 +Language=English +%1 +. +MessageId=21348 +Language=English +%1 +. +MessageId=21349 +Language=English +%1 +. +MessageId=21350 +Language=English +%1 +. +MessageId=21351 +Language=English +%1 +. +MessageId=21352 +Language=English +%1 +. +MessageId=21353 +Language=English +%1 +. +MessageId=21354 +Language=English +%1 +. +MessageId=21355 +Language=English +%1 +. +MessageId=21356 +Language=English +%1 +. +MessageId=21357 +Language=English +%1 +. +MessageId=21358 +Language=English +%1 +. +MessageId=21359 +Language=English +%1 +. +MessageId=21360 +Language=English +%1 +. +MessageId=21361 +Language=English +%1 +. +MessageId=21362 +Language=English +%1 +. +MessageId=21363 +Language=English +%1 +. +MessageId=21364 +Language=English +%1 +. +MessageId=21365 +Language=English +%1 +. +MessageId=21366 +Language=English +%1 +. +MessageId=21367 +Language=English +%1 +. +MessageId=21368 +Language=English +%1 +. +MessageId=21369 +Language=English +%1 +. +MessageId=21370 +Language=English +%1 +. +MessageId=21371 +Language=English +%1 +. +MessageId=21372 +Language=English +%1 +. +MessageId=21373 +Language=English +%1 +. +MessageId=21374 +Language=English +%1 +. +MessageId=21375 +Language=English +%1 +. +MessageId=21376 +Language=English +%1 +. +MessageId=21377 +Language=English +%1 +. +MessageId=21378 +Language=English +%1 +. +MessageId=21379 +Language=English +%1 +. +MessageId=21380 +Language=English +%1 +. +MessageId=21381 +Language=English +%1 +. +MessageId=21382 +Language=English +%1 +. +MessageId=21383 +Language=English +%1 +. +MessageId=21384 +Language=English +%1 +. +MessageId=21385 +Language=English +%1 +. +MessageId=21386 +Language=English +%1 +. +MessageId=21387 +Language=English +%1 +. +MessageId=21388 +Language=English +%1 +. +MessageId=21389 +Language=English +%1 +. +MessageId=21390 +Language=English +%1 +. +MessageId=21391 +Language=English +%1 +. +MessageId=21392 +Language=English +%1 +. +MessageId=21393 +Language=English +%1 +. +MessageId=21394 +Language=English +%1 +. +MessageId=21395 +Language=English +%1 +. +MessageId=21396 +Language=English +%1 +. +MessageId=21397 +Language=English +%1 +. +MessageId=21398 +Language=English +%1 +. +MessageId=21399 +Language=English +%1 +. +MessageId=21400 +Language=English +%1 +. +MessageId=21401 +Language=English +%1 +. +MessageId=21402 +Language=English +%1 +. +MessageId=21403 +Language=English +%1 +. +MessageId=21404 +Language=English +%1 +. +MessageId=21405 +Language=English +%1 +. +MessageId=21406 +Language=English +%1 +. +MessageId=21407 +Language=English +%1 +. +MessageId=21408 +Language=English +%1 +. +MessageId=21409 +Language=English +%1 +. +MessageId=21410 +Language=English +%1 +. +MessageId=21411 +Language=English +%1 +. +MessageId=21412 +Language=English +%1 +. +MessageId=21413 +Language=English +%1 +. +MessageId=21414 +Language=English +%1 +. +MessageId=21415 +Language=English +%1 +. +MessageId=21416 +Language=English +%1 +. +MessageId=21417 +Language=English +%1 +. +MessageId=21418 +Language=English +%1 +. +MessageId=21419 +Language=English +%1 +. +MessageId=21420 +Language=English +%1 +. +MessageId=21421 +Language=English +%1 +. +MessageId=21422 +Language=English +%1 +. +MessageId=21423 +Language=English +%1 +. +MessageId=21424 +Language=English +%1 +. +MessageId=21425 +Language=English +%1 +. +MessageId=21426 +Language=English +%1 +. +MessageId=21427 +Language=English +%1 +. +MessageId=21428 +Language=English +%1 +. +MessageId=21429 +Language=English +%1 +. +MessageId=21430 +Language=English +%1 +. +MessageId=21431 +Language=English +%1 +. +MessageId=21432 +Language=English +%1 +. +MessageId=21433 +Language=English +%1 +. +MessageId=21434 +Language=English +%1 +. +MessageId=21435 +Language=English +%1 +. +MessageId=21436 +Language=English +%1 +. +MessageId=21437 +Language=English +%1 +. +MessageId=21438 +Language=English +%1 +. +MessageId=21439 +Language=English +%1 +. +MessageId=21440 +Language=English +%1 +. +MessageId=21441 +Language=English +%1 +. +MessageId=21442 +Language=English +%1 +. +MessageId=21443 +Language=English +%1 +. +MessageId=21444 +Language=English +%1 +. +MessageId=21445 +Language=English +%1 +. +MessageId=21446 +Language=English +%1 +. +MessageId=21447 +Language=English +%1 +. +MessageId=21448 +Language=English +%1 +. +MessageId=21449 +Language=English +%1 +. +MessageId=21450 +Language=English +%1 +. +MessageId=21451 +Language=English +%1 +. +MessageId=21452 +Language=English +%1 +. +MessageId=21453 +Language=English +%1 +. +MessageId=21454 +Language=English +%1 +. +MessageId=21455 +Language=English +%1 +. +MessageId=21456 +Language=English +%1 +. +MessageId=21457 +Language=English +%1 +. +MessageId=21458 +Language=English +%1 +. +MessageId=21459 +Language=English +%1 +. +MessageId=21460 +Language=English +%1 +. +MessageId=21461 +Language=English +%1 +. +MessageId=21462 +Language=English +%1 +. +MessageId=21463 +Language=English +%1 +. +MessageId=21464 +Language=English +%1 +. +MessageId=21465 +Language=English +%1 +. +MessageId=21466 +Language=English +%1 +. +MessageId=21467 +Language=English +%1 +. +MessageId=21468 +Language=English +%1 +. +MessageId=21469 +Language=English +%1 +. +MessageId=21470 +Language=English +%1 +. +MessageId=21471 +Language=English +%1 +. +MessageId=21472 +Language=English +%1 +. +MessageId=21473 +Language=English +%1 +. +MessageId=21474 +Language=English +%1 +. +MessageId=21475 +Language=English +%1 +. +MessageId=21476 +Language=English +%1 +. +MessageId=21477 +Language=English +%1 +. +MessageId=21478 +Language=English +%1 +. +MessageId=21479 +Language=English +%1 +. +MessageId=21480 +Language=English +%1 +. +MessageId=21481 +Language=English +%1 +. +MessageId=21482 +Language=English +%1 +. +MessageId=21483 +Language=English +%1 +. +MessageId=21484 +Language=English +%1 +. +MessageId=21485 +Language=English +%1 +. +MessageId=21486 +Language=English +%1 +. +MessageId=21487 +Language=English +%1 +. +MessageId=21488 +Language=English +%1 +. +MessageId=21489 +Language=English +%1 +. +MessageId=21490 +Language=English +%1 +. +MessageId=21491 +Language=English +%1 +. +MessageId=21492 +Language=English +%1 +. +MessageId=21493 +Language=English +%1 +. +MessageId=21494 +Language=English +%1 +. +MessageId=21495 +Language=English +%1 +. +MessageId=21496 +Language=English +%1 +. +MessageId=21497 +Language=English +%1 +. +MessageId=21498 +Language=English +%1 +. +MessageId=21499 +Language=English +%1 +. +MessageId=21500 +Language=English +%1 +. +MessageId=21501 +Language=English +%1 +. +MessageId=21502 +Language=English +%1 +. +MessageId=21503 +Language=English +%1 +. +MessageId=21504 +Language=English +%1 +. +MessageId=21505 +Language=English +%1 +. +MessageId=21506 +Language=English +%1 +. +MessageId=21507 +Language=English +%1 +. +MessageId=21508 +Language=English +%1 +. +MessageId=21509 +Language=English +%1 +. +MessageId=21510 +Language=English +%1 +. +MessageId=21511 +Language=English +%1 +. +MessageId=21512 +Language=English +%1 +. +MessageId=21513 +Language=English +%1 +. +MessageId=21514 +Language=English +%1 +. +MessageId=21515 +Language=English +%1 +. +MessageId=21516 +Language=English +%1 +. +MessageId=21517 +Language=English +%1 +. +MessageId=21518 +Language=English +%1 +. +MessageId=21519 +Language=English +%1 +. +MessageId=21520 +Language=English +%1 +. +MessageId=21521 +Language=English +%1 +. +MessageId=21522 +Language=English +%1 +. +MessageId=21523 +Language=English +%1 +. +MessageId=21524 +Language=English +%1 +. +MessageId=21525 +Language=English +%1 +. +MessageId=21526 +Language=English +%1 +. +MessageId=21527 +Language=English +%1 +. +MessageId=21528 +Language=English +%1 +. +MessageId=21529 +Language=English +%1 +. +MessageId=21530 +Language=English +%1 +. +MessageId=21531 +Language=English +%1 +. +MessageId=21532 +Language=English +%1 +. +MessageId=21533 +Language=English +%1 +. +MessageId=21534 +Language=English +%1 +. +MessageId=21535 +Language=English +%1 +. +MessageId=21536 +Language=English +%1 +. +MessageId=21537 +Language=English +%1 +. +MessageId=21538 +Language=English +%1 +. +MessageId=21539 +Language=English +%1 +. +MessageId=21540 +Language=English +%1 +. +MessageId=21541 +Language=English +%1 +. +MessageId=21542 +Language=English +%1 +. +MessageId=21543 +Language=English +%1 +. +MessageId=21544 +Language=English +%1 +. +MessageId=21545 +Language=English +%1 +. +MessageId=21546 +Language=English +%1 +. +MessageId=21547 +Language=English +%1 +. +MessageId=21548 +Language=English +%1 +. +MessageId=21549 +Language=English +%1 +. +MessageId=21550 +Language=English +%1 +. +MessageId=21551 +Language=English +%1 +. +MessageId=21552 +Language=English +%1 +. +MessageId=21553 +Language=English +%1 +. +MessageId=21554 +Language=English +%1 +. +MessageId=21555 +Language=English +%1 +. +MessageId=21556 +Language=English +%1 +. +MessageId=21557 +Language=English +%1 +. +MessageId=21558 +Language=English +%1 +. +MessageId=21559 +Language=English +%1 +. +MessageId=21560 +Language=English +%1 +. +MessageId=21561 +Language=English +%1 +. +MessageId=21562 +Language=English +%1 +. +MessageId=21563 +Language=English +%1 +. +MessageId=21564 +Language=English +%1 +. +MessageId=21565 +Language=English +%1 +. +MessageId=21566 +Language=English +%1 +. +MessageId=21567 +Language=English +%1 +. +MessageId=21568 +Language=English +%1 +. +MessageId=21569 +Language=English +%1 +. +MessageId=21570 +Language=English +%1 +. +MessageId=21571 +Language=English +%1 +. +MessageId=21572 +Language=English +%1 +. +MessageId=21573 +Language=English +%1 +. +MessageId=21574 +Language=English +%1 +. +MessageId=21575 +Language=English +%1 +. +MessageId=21576 +Language=English +%1 +. +MessageId=21577 +Language=English +%1 +. +MessageId=21578 +Language=English +%1 +. +MessageId=21579 +Language=English +%1 +. +MessageId=21580 +Language=English +%1 +. +MessageId=21581 +Language=English +%1 +. +MessageId=21582 +Language=English +%1 +. +MessageId=21583 +Language=English +%1 +. +MessageId=21584 +Language=English +%1 +. +MessageId=21585 +Language=English +%1 +. +MessageId=21586 +Language=English +%1 +. +MessageId=21587 +Language=English +%1 +. +MessageId=21588 +Language=English +%1 +. +MessageId=21589 +Language=English +%1 +. +MessageId=21590 +Language=English +%1 +. +MessageId=21591 +Language=English +%1 +. +MessageId=21592 +Language=English +%1 +. +MessageId=21593 +Language=English +%1 +. +MessageId=21594 +Language=English +%1 +. +MessageId=21595 +Language=English +%1 +. +MessageId=21596 +Language=English +%1 +. +MessageId=21597 +Language=English +%1 +. +MessageId=21598 +Language=English +%1 +. +MessageId=21599 +Language=English +%1 +. +MessageId=21600 +Language=English +%1 +. +MessageId=21601 +Language=English +%1 +. +MessageId=21602 +Language=English +%1 +. +MessageId=21603 +Language=English +%1 +. +MessageId=21604 +Language=English +%1 +. +MessageId=21605 +Language=English +%1 +. +MessageId=21606 +Language=English +%1 +. +MessageId=21607 +Language=English +%1 +. +MessageId=21608 +Language=English +%1 +. +MessageId=21609 +Language=English +%1 +. +MessageId=21610 +Language=English +%1 +. +MessageId=21611 +Language=English +%1 +. +MessageId=21612 +Language=English +%1 +. +MessageId=21613 +Language=English +%1 +. +MessageId=21614 +Language=English +%1 +. +MessageId=21615 +Language=English +%1 +. +MessageId=21616 +Language=English +%1 +. +MessageId=21617 +Language=English +%1 +. +MessageId=21618 +Language=English +%1 +. +MessageId=21619 +Language=English +%1 +. +MessageId=21620 +Language=English +%1 +. +MessageId=21621 +Language=English +%1 +. +MessageId=21622 +Language=English +%1 +. +MessageId=21623 +Language=English +%1 +. +MessageId=21624 +Language=English +%1 +. +MessageId=21625 +Language=English +%1 +. +MessageId=21626 +Language=English +%1 +. +MessageId=21627 +Language=English +%1 +. +MessageId=21628 +Language=English +%1 +. +MessageId=21629 +Language=English +%1 +. +MessageId=21630 +Language=English +%1 +. +MessageId=21631 +Language=English +%1 +. +MessageId=21632 +Language=English +%1 +. +MessageId=21633 +Language=English +%1 +. +MessageId=21634 +Language=English +%1 +. +MessageId=21635 +Language=English +%1 +. +MessageId=21636 +Language=English +%1 +. +MessageId=21637 +Language=English +%1 +. +MessageId=21638 +Language=English +%1 +. +MessageId=21639 +Language=English +%1 +. +MessageId=21640 +Language=English +%1 +. +MessageId=21641 +Language=English +%1 +. +MessageId=21642 +Language=English +%1 +. +MessageId=21643 +Language=English +%1 +. +MessageId=21644 +Language=English +%1 +. +MessageId=21645 +Language=English +%1 +. +MessageId=21646 +Language=English +%1 +. +MessageId=21647 +Language=English +%1 +. +MessageId=21648 +Language=English +%1 +. +MessageId=21649 +Language=English +%1 +. +MessageId=21650 +Language=English +%1 +. +MessageId=21651 +Language=English +%1 +. +MessageId=21652 +Language=English +%1 +. +MessageId=21653 +Language=English +%1 +. +MessageId=21654 +Language=English +%1 +. +MessageId=21655 +Language=English +%1 +. +MessageId=21656 +Language=English +%1 +. +MessageId=21657 +Language=English +%1 +. +MessageId=21658 +Language=English +%1 +. +MessageId=21659 +Language=English +%1 +. +MessageId=21660 +Language=English +%1 +. +MessageId=21661 +Language=English +%1 +. +MessageId=21662 +Language=English +%1 +. +MessageId=21663 +Language=English +%1 +. +MessageId=21664 +Language=English +%1 +. +MessageId=21665 +Language=English +%1 +. +MessageId=21666 +Language=English +%1 +. +MessageId=21667 +Language=English +%1 +. +MessageId=21668 +Language=English +%1 +. +MessageId=21669 +Language=English +%1 +. +MessageId=21670 +Language=English +%1 +. +MessageId=21671 +Language=English +%1 +. +MessageId=21672 +Language=English +%1 +. +MessageId=21673 +Language=English +%1 +. +MessageId=21674 +Language=English +%1 +. +MessageId=21675 +Language=English +%1 +. +MessageId=21676 +Language=English +%1 +. +MessageId=21677 +Language=English +%1 +. +MessageId=21678 +Language=English +%1 +. +MessageId=21679 +Language=English +%1 +. +MessageId=21680 +Language=English +%1 +. +MessageId=21681 +Language=English +%1 +. +MessageId=21682 +Language=English +%1 +. +MessageId=21683 +Language=English +%1 +. +MessageId=21684 +Language=English +%1 +. +MessageId=21685 +Language=English +%1 +. +MessageId=21686 +Language=English +%1 +. +MessageId=21687 +Language=English +%1 +. +MessageId=21688 +Language=English +%1 +. +MessageId=21689 +Language=English +%1 +. +MessageId=21690 +Language=English +%1 +. +MessageId=21691 +Language=English +%1 +. +MessageId=21692 +Language=English +%1 +. +MessageId=21693 +Language=English +%1 +. +MessageId=21694 +Language=English +%1 +. +MessageId=21695 +Language=English +%1 +. +MessageId=21696 +Language=English +%1 +. +MessageId=21697 +Language=English +%1 +. +MessageId=21698 +Language=English +%1 +. +MessageId=21699 +Language=English +%1 +. +MessageId=21700 +Language=English +%1 +. +MessageId=21701 +Language=English +%1 +. +MessageId=21702 +Language=English +%1 +. +MessageId=21703 +Language=English +%1 +. +MessageId=21704 +Language=English +%1 +. +MessageId=21705 +Language=English +%1 +. +MessageId=21706 +Language=English +%1 +. +MessageId=21707 +Language=English +%1 +. +MessageId=21708 +Language=English +%1 +. +MessageId=21709 +Language=English +%1 +. +MessageId=21710 +Language=English +%1 +. +MessageId=21711 +Language=English +%1 +. +MessageId=21712 +Language=English +%1 +. +MessageId=21713 +Language=English +%1 +. +MessageId=21714 +Language=English +%1 +. +MessageId=21715 +Language=English +%1 +. +MessageId=21716 +Language=English +%1 +. +MessageId=21717 +Language=English +%1 +. +MessageId=21718 +Language=English +%1 +. +MessageId=21719 +Language=English +%1 +. +MessageId=21720 +Language=English +%1 +. +MessageId=21721 +Language=English +%1 +. +MessageId=21722 +Language=English +%1 +. +MessageId=21723 +Language=English +%1 +. +MessageId=21724 +Language=English +%1 +. +MessageId=21725 +Language=English +%1 +. +MessageId=21726 +Language=English +%1 +. +MessageId=21727 +Language=English +%1 +. +MessageId=21728 +Language=English +%1 +. +MessageId=21729 +Language=English +%1 +. +MessageId=21730 +Language=English +%1 +. +MessageId=21731 +Language=English +%1 +. +MessageId=21732 +Language=English +%1 +. +MessageId=21733 +Language=English +%1 +. +MessageId=21734 +Language=English +%1 +. +MessageId=21735 +Language=English +%1 +. +MessageId=21736 +Language=English +%1 +. +MessageId=21737 +Language=English +%1 +. +MessageId=21738 +Language=English +%1 +. +MessageId=21739 +Language=English +%1 +. +MessageId=21740 +Language=English +%1 +. +MessageId=21741 +Language=English +%1 +. +MessageId=21742 +Language=English +%1 +. +MessageId=21743 +Language=English +%1 +. +MessageId=21744 +Language=English +%1 +. +MessageId=21745 +Language=English +%1 +. +MessageId=21746 +Language=English +%1 +. +MessageId=21747 +Language=English +%1 +. +MessageId=21748 +Language=English +%1 +. +MessageId=21749 +Language=English +%1 +. +MessageId=21750 +Language=English +%1 +. +MessageId=21751 +Language=English +%1 +. +MessageId=21752 +Language=English +%1 +. +MessageId=21753 +Language=English +%1 +. +MessageId=21754 +Language=English +%1 +. +MessageId=21755 +Language=English +%1 +. +MessageId=21756 +Language=English +%1 +. +MessageId=21757 +Language=English +%1 +. +MessageId=21758 +Language=English +%1 +. +MessageId=21759 +Language=English +%1 +. +MessageId=21760 +Language=English +%1 +. +MessageId=21761 +Language=English +%1 +. +MessageId=21762 +Language=English +%1 +. +MessageId=21763 +Language=English +%1 +. +MessageId=21764 +Language=English +%1 +. +MessageId=21765 +Language=English +%1 +. +MessageId=21766 +Language=English +%1 +. +MessageId=21767 +Language=English +%1 +. +MessageId=21768 +Language=English +%1 +. +MessageId=21769 +Language=English +%1 +. +MessageId=21770 +Language=English +%1 +. +MessageId=21771 +Language=English +%1 +. +MessageId=21772 +Language=English +%1 +. +MessageId=21773 +Language=English +%1 +. +MessageId=21774 +Language=English +%1 +. +MessageId=21775 +Language=English +%1 +. +MessageId=21776 +Language=English +%1 +. +MessageId=21777 +Language=English +%1 +. +MessageId=21778 +Language=English +%1 +. +MessageId=21779 +Language=English +%1 +. +MessageId=21780 +Language=English +%1 +. +MessageId=21781 +Language=English +%1 +. +MessageId=21782 +Language=English +%1 +. +MessageId=21783 +Language=English +%1 +. +MessageId=21784 +Language=English +%1 +. +MessageId=21785 +Language=English +%1 +. +MessageId=21786 +Language=English +%1 +. +MessageId=21787 +Language=English +%1 +. +MessageId=21788 +Language=English +%1 +. +MessageId=21789 +Language=English +%1 +. +MessageId=21790 +Language=English +%1 +. +MessageId=21791 +Language=English +%1 +. +MessageId=21792 +Language=English +%1 +. +MessageId=21793 +Language=English +%1 +. +MessageId=21794 +Language=English +%1 +. +MessageId=21795 +Language=English +%1 +. +MessageId=21796 +Language=English +%1 +. +MessageId=21797 +Language=English +%1 +. +MessageId=21798 +Language=English +%1 +. +MessageId=21799 +Language=English +%1 +. +MessageId=21800 +Language=English +%1 +. +MessageId=21801 +Language=English +%1 +. +MessageId=21802 +Language=English +%1 +. +MessageId=21803 +Language=English +%1 +. +MessageId=21804 +Language=English +%1 +. +MessageId=21805 +Language=English +%1 +. +MessageId=21806 +Language=English +%1 +. +MessageId=21807 +Language=English +%1 +. +MessageId=21808 +Language=English +%1 +. +MessageId=21809 +Language=English +%1 +. +MessageId=21810 +Language=English +%1 +. +MessageId=21811 +Language=English +%1 +. +MessageId=21812 +Language=English +%1 +. +MessageId=21813 +Language=English +%1 +. +MessageId=21814 +Language=English +%1 +. +MessageId=21815 +Language=English +%1 +. +MessageId=21816 +Language=English +%1 +. +MessageId=21817 +Language=English +%1 +. +MessageId=21818 +Language=English +%1 +. +MessageId=21819 +Language=English +%1 +. +MessageId=21820 +Language=English +%1 +. +MessageId=21821 +Language=English +%1 +. +MessageId=21822 +Language=English +%1 +. +MessageId=21823 +Language=English +%1 +. +MessageId=21824 +Language=English +%1 +. +MessageId=21825 +Language=English +%1 +. +MessageId=21826 +Language=English +%1 +. +MessageId=21827 +Language=English +%1 +. +MessageId=21828 +Language=English +%1 +. +MessageId=21829 +Language=English +%1 +. +MessageId=21830 +Language=English +%1 +. +MessageId=21831 +Language=English +%1 +. +MessageId=21832 +Language=English +%1 +. +MessageId=21833 +Language=English +%1 +. +MessageId=21834 +Language=English +%1 +. +MessageId=21835 +Language=English +%1 +. +MessageId=21836 +Language=English +%1 +. +MessageId=21837 +Language=English +%1 +. +MessageId=21838 +Language=English +%1 +. +MessageId=21839 +Language=English +%1 +. +MessageId=21840 +Language=English +%1 +. +MessageId=21841 +Language=English +%1 +. +MessageId=21842 +Language=English +%1 +. +MessageId=21843 +Language=English +%1 +. +MessageId=21844 +Language=English +%1 +. +MessageId=21845 +Language=English +%1 +. +MessageId=21846 +Language=English +%1 +. +MessageId=21847 +Language=English +%1 +. +MessageId=21848 +Language=English +%1 +. +MessageId=21849 +Language=English +%1 +. +MessageId=21850 +Language=English +%1 +. +MessageId=21851 +Language=English +%1 +. +MessageId=21852 +Language=English +%1 +. +MessageId=21853 +Language=English +%1 +. +MessageId=21854 +Language=English +%1 +. +MessageId=21855 +Language=English +%1 +. +MessageId=21856 +Language=English +%1 +. +MessageId=21857 +Language=English +%1 +. +MessageId=21858 +Language=English +%1 +. +MessageId=21859 +Language=English +%1 +. +MessageId=21860 +Language=English +%1 +. +MessageId=21861 +Language=English +%1 +. +MessageId=21862 +Language=English +%1 +. +MessageId=21863 +Language=English +%1 +. +MessageId=21864 +Language=English +%1 +. +MessageId=21865 +Language=English +%1 +. +MessageId=21866 +Language=English +%1 +. +MessageId=21867 +Language=English +%1 +. +MessageId=21868 +Language=English +%1 +. +MessageId=21869 +Language=English +%1 +. +MessageId=21870 +Language=English +%1 +. +MessageId=21871 +Language=English +%1 +. +MessageId=21872 +Language=English +%1 +. +MessageId=21873 +Language=English +%1 +. +MessageId=21874 +Language=English +%1 +. +MessageId=21875 +Language=English +%1 +. +MessageId=21876 +Language=English +%1 +. +MessageId=21877 +Language=English +%1 +. +MessageId=21878 +Language=English +%1 +. +MessageId=21879 +Language=English +%1 +. +MessageId=21880 +Language=English +%1 +. +MessageId=21881 +Language=English +%1 +. +MessageId=21882 +Language=English +%1 +. +MessageId=21883 +Language=English +%1 +. +MessageId=21884 +Language=English +%1 +. +MessageId=21885 +Language=English +%1 +. +MessageId=21886 +Language=English +%1 +. +MessageId=21887 +Language=English +%1 +. +MessageId=21888 +Language=English +%1 +. +MessageId=21889 +Language=English +%1 +. +MessageId=21890 +Language=English +%1 +. +MessageId=21891 +Language=English +%1 +. +MessageId=21892 +Language=English +%1 +. +MessageId=21893 +Language=English +%1 +. +MessageId=21894 +Language=English +%1 +. +MessageId=21895 +Language=English +%1 +. +MessageId=21896 +Language=English +%1 +. +MessageId=21897 +Language=English +%1 +. +MessageId=21898 +Language=English +%1 +. +MessageId=21899 +Language=English +%1 +. +MessageId=21900 +Language=English +%1 +. +MessageId=21901 +Language=English +%1 +. +MessageId=21902 +Language=English +%1 +. +MessageId=21903 +Language=English +%1 +. +MessageId=21904 +Language=English +%1 +. +MessageId=21905 +Language=English +%1 +. +MessageId=21906 +Language=English +%1 +. +MessageId=21907 +Language=English +%1 +. +MessageId=21908 +Language=English +%1 +. +MessageId=21909 +Language=English +%1 +. +MessageId=21910 +Language=English +%1 +. +MessageId=21911 +Language=English +%1 +. +MessageId=21912 +Language=English +%1 +. +MessageId=21913 +Language=English +%1 +. +MessageId=21914 +Language=English +%1 +. +MessageId=21915 +Language=English +%1 +. +MessageId=21916 +Language=English +%1 +. +MessageId=21917 +Language=English +%1 +. +MessageId=21918 +Language=English +%1 +. +MessageId=21919 +Language=English +%1 +. +MessageId=21920 +Language=English +%1 +. +MessageId=21921 +Language=English +%1 +. +MessageId=21922 +Language=English +%1 +. +MessageId=21923 +Language=English +%1 +. +MessageId=21924 +Language=English +%1 +. +MessageId=21925 +Language=English +%1 +. +MessageId=21926 +Language=English +%1 +. +MessageId=21927 +Language=English +%1 +. +MessageId=21928 +Language=English +%1 +. +MessageId=21929 +Language=English +%1 +. +MessageId=21930 +Language=English +%1 +. +MessageId=21931 +Language=English +%1 +. +MessageId=21932 +Language=English +%1 +. +MessageId=21933 +Language=English +%1 +. +MessageId=21934 +Language=English +%1 +. +MessageId=21935 +Language=English +%1 +. +MessageId=21936 +Language=English +%1 +. +MessageId=21937 +Language=English +%1 +. +MessageId=21938 +Language=English +%1 +. +MessageId=21939 +Language=English +%1 +. +MessageId=21940 +Language=English +%1 +. +MessageId=21941 +Language=English +%1 +. +MessageId=21942 +Language=English +%1 +. +MessageId=21943 +Language=English +%1 +. +MessageId=21944 +Language=English +%1 +. +MessageId=21945 +Language=English +%1 +. +MessageId=21946 +Language=English +%1 +. +MessageId=21947 +Language=English +%1 +. +MessageId=21948 +Language=English +%1 +. +MessageId=21949 +Language=English +%1 +. +MessageId=21950 +Language=English +%1 +. +MessageId=21951 +Language=English +%1 +. +MessageId=21952 +Language=English +%1 +. +MessageId=21953 +Language=English +%1 +. +MessageId=21954 +Language=English +%1 +. +MessageId=21955 +Language=English +%1 +. +MessageId=21956 +Language=English +%1 +. +MessageId=21957 +Language=English +%1 +. +MessageId=21958 +Language=English +%1 +. +MessageId=21959 +Language=English +%1 +. +MessageId=21960 +Language=English +%1 +. +MessageId=21961 +Language=English +%1 +. +MessageId=21962 +Language=English +%1 +. +MessageId=21963 +Language=English +%1 +. +MessageId=21964 +Language=English +%1 +. +MessageId=21965 +Language=English +%1 +. +MessageId=21966 +Language=English +%1 +. +MessageId=21967 +Language=English +%1 +. +MessageId=21968 +Language=English +%1 +. +MessageId=21969 +Language=English +%1 +. +MessageId=21970 +Language=English +%1 +. +MessageId=21971 +Language=English +%1 +. +MessageId=21972 +Language=English +%1 +. +MessageId=21973 +Language=English +%1 +. +MessageId=21974 +Language=English +%1 +. +MessageId=21975 +Language=English +%1 +. +MessageId=21976 +Language=English +%1 +. +MessageId=21977 +Language=English +%1 +. +MessageId=21978 +Language=English +%1 +. +MessageId=21979 +Language=English +%1 +. +MessageId=21980 +Language=English +%1 +. +MessageId=21981 +Language=English +%1 +. +MessageId=21982 +Language=English +%1 +. +MessageId=21983 +Language=English +%1 +. +MessageId=21984 +Language=English +%1 +. +MessageId=21985 +Language=English +%1 +. +MessageId=21986 +Language=English +%1 +. +MessageId=21987 +Language=English +%1 +. +MessageId=21988 +Language=English +%1 +. +MessageId=21989 +Language=English +%1 +. +MessageId=21990 +Language=English +%1 +. +MessageId=21991 +Language=English +%1 +. +MessageId=21992 +Language=English +%1 +. +MessageId=21993 +Language=English +%1 +. +MessageId=21994 +Language=English +%1 +. +MessageId=21995 +Language=English +%1 +. +MessageId=21996 +Language=English +%1 +. +MessageId=21997 +Language=English +%1 +. +MessageId=21998 +Language=English +%1 +. +MessageId=21999 +Language=English +%1 +. +MessageId=22000 +Language=English +%1 +. +MessageId=22001 +Language=English +%1 +. +MessageId=22002 +Language=English +%1 +. +MessageId=22003 +Language=English +%1 +. +MessageId=22004 +Language=English +%1 +. +MessageId=22005 +Language=English +%1 +. +MessageId=22006 +Language=English +%1 +. +MessageId=22007 +Language=English +%1 +. +MessageId=22008 +Language=English +%1 +. +MessageId=22009 +Language=English +%1 +. +MessageId=22010 +Language=English +%1 +. +MessageId=22011 +Language=English +%1 +. +MessageId=22012 +Language=English +%1 +. +MessageId=22013 +Language=English +%1 +. +MessageId=22014 +Language=English +%1 +. +MessageId=22015 +Language=English +%1 +. +MessageId=22016 +Language=English +%1 +. +MessageId=22017 +Language=English +%1 +. +MessageId=22018 +Language=English +%1 +. +MessageId=22019 +Language=English +%1 +. +MessageId=22020 +Language=English +%1 +. +MessageId=22021 +Language=English +%1 +. +MessageId=22022 +Language=English +%1 +. +MessageId=22023 +Language=English +%1 +. +MessageId=22024 +Language=English +%1 +. +MessageId=22025 +Language=English +%1 +. +MessageId=22026 +Language=English +%1 +. +MessageId=22027 +Language=English +%1 +. +MessageId=22028 +Language=English +%1 +. +MessageId=22029 +Language=English +%1 +. +MessageId=22030 +Language=English +%1 +. +MessageId=22031 +Language=English +%1 +. +MessageId=22032 +Language=English +%1 +. +MessageId=22033 +Language=English +%1 +. +MessageId=22034 +Language=English +%1 +. +MessageId=22035 +Language=English +%1 +. +MessageId=22036 +Language=English +%1 +. +MessageId=22037 +Language=English +%1 +. +MessageId=22038 +Language=English +%1 +. +MessageId=22039 +Language=English +%1 +. +MessageId=22040 +Language=English +%1 +. +MessageId=22041 +Language=English +%1 +. +MessageId=22042 +Language=English +%1 +. +MessageId=22043 +Language=English +%1 +. +MessageId=22044 +Language=English +%1 +. +MessageId=22045 +Language=English +%1 +. +MessageId=22046 +Language=English +%1 +. +MessageId=22047 +Language=English +%1 +. +MessageId=22048 +Language=English +%1 +. +MessageId=22049 +Language=English +%1 +. +MessageId=22050 +Language=English +%1 +. +MessageId=22051 +Language=English +%1 +. +MessageId=22052 +Language=English +%1 +. +MessageId=22053 +Language=English +%1 +. +MessageId=22054 +Language=English +%1 +. +MessageId=22055 +Language=English +%1 +. +MessageId=22056 +Language=English +%1 +. +MessageId=22057 +Language=English +%1 +. +MessageId=22058 +Language=English +%1 +. +MessageId=22059 +Language=English +%1 +. +MessageId=22060 +Language=English +%1 +. +MessageId=22061 +Language=English +%1 +. +MessageId=22062 +Language=English +%1 +. +MessageId=22063 +Language=English +%1 +. +MessageId=22064 +Language=English +%1 +. +MessageId=22065 +Language=English +%1 +. +MessageId=22066 +Language=English +%1 +. +MessageId=22067 +Language=English +%1 +. +MessageId=22068 +Language=English +%1 +. +MessageId=22069 +Language=English +%1 +. +MessageId=22070 +Language=English +%1 +. +MessageId=22071 +Language=English +%1 +. +MessageId=22072 +Language=English +%1 +. +MessageId=22073 +Language=English +%1 +. +MessageId=22074 +Language=English +%1 +. +MessageId=22075 +Language=English +%1 +. +MessageId=22076 +Language=English +%1 +. +MessageId=22077 +Language=English +%1 +. +MessageId=22078 +Language=English +%1 +. +MessageId=22079 +Language=English +%1 +. +MessageId=22080 +Language=English +%1 +. +MessageId=22081 +Language=English +%1 +. +MessageId=22082 +Language=English +%1 +. +MessageId=22083 +Language=English +%1 +. +MessageId=22084 +Language=English +%1 +. +MessageId=22085 +Language=English +%1 +. +MessageId=22086 +Language=English +%1 +. +MessageId=22087 +Language=English +%1 +. +MessageId=22088 +Language=English +%1 +. +MessageId=22089 +Language=English +%1 +. +MessageId=22090 +Language=English +%1 +. +MessageId=22091 +Language=English +%1 +. +MessageId=22092 +Language=English +%1 +. +MessageId=22093 +Language=English +%1 +. +MessageId=22094 +Language=English +%1 +. +MessageId=22095 +Language=English +%1 +. +MessageId=22096 +Language=English +%1 +. +MessageId=22097 +Language=English +%1 +. +MessageId=22098 +Language=English +%1 +. +MessageId=22099 +Language=English +%1 +. +MessageId=22100 +Language=English +%1 +. +MessageId=22101 +Language=English +%1 +. +MessageId=22102 +Language=English +%1 +. +MessageId=22103 +Language=English +%1 +. +MessageId=22104 +Language=English +%1 +. +MessageId=22105 +Language=English +%1 +. +MessageId=22106 +Language=English +%1 +. +MessageId=22107 +Language=English +%1 +. +MessageId=22108 +Language=English +%1 +. +MessageId=22109 +Language=English +%1 +. +MessageId=22110 +Language=English +%1 +. +MessageId=22111 +Language=English +%1 +. +MessageId=22112 +Language=English +%1 +. +MessageId=22113 +Language=English +%1 +. +MessageId=22114 +Language=English +%1 +. +MessageId=22115 +Language=English +%1 +. +MessageId=22116 +Language=English +%1 +. +MessageId=22117 +Language=English +%1 +. +MessageId=22118 +Language=English +%1 +. +MessageId=22119 +Language=English +%1 +. +MessageId=22120 +Language=English +%1 +. +MessageId=22121 +Language=English +%1 +. +MessageId=22122 +Language=English +%1 +. +MessageId=22123 +Language=English +%1 +. +MessageId=22124 +Language=English +%1 +. +MessageId=22125 +Language=English +%1 +. +MessageId=22126 +Language=English +%1 +. +MessageId=22127 +Language=English +%1 +. +MessageId=22128 +Language=English +%1 +. +MessageId=22129 +Language=English +%1 +. +MessageId=22130 +Language=English +%1 +. +MessageId=22131 +Language=English +%1 +. +MessageId=22132 +Language=English +%1 +. +MessageId=22133 +Language=English +%1 +. +MessageId=22134 +Language=English +%1 +. +MessageId=22135 +Language=English +%1 +. +MessageId=22136 +Language=English +%1 +. +MessageId=22137 +Language=English +%1 +. +MessageId=22138 +Language=English +%1 +. +MessageId=22139 +Language=English +%1 +. +MessageId=22140 +Language=English +%1 +. +MessageId=22141 +Language=English +%1 +. +MessageId=22142 +Language=English +%1 +. +MessageId=22143 +Language=English +%1 +. +MessageId=22144 +Language=English +%1 +. +MessageId=22145 +Language=English +%1 +. +MessageId=22146 +Language=English +%1 +. +MessageId=22147 +Language=English +%1 +. +MessageId=22148 +Language=English +%1 +. +MessageId=22149 +Language=English +%1 +. +MessageId=22150 +Language=English +%1 +. +MessageId=22151 +Language=English +%1 +. +MessageId=22152 +Language=English +%1 +. +MessageId=22153 +Language=English +%1 +. +MessageId=22154 +Language=English +%1 +. +MessageId=22155 +Language=English +%1 +. +MessageId=22156 +Language=English +%1 +. +MessageId=22157 +Language=English +%1 +. +MessageId=22158 +Language=English +%1 +. +MessageId=22159 +Language=English +%1 +. +MessageId=22160 +Language=English +%1 +. +MessageId=22161 +Language=English +%1 +. +MessageId=22162 +Language=English +%1 +. +MessageId=22163 +Language=English +%1 +. +MessageId=22164 +Language=English +%1 +. +MessageId=22165 +Language=English +%1 +. +MessageId=22166 +Language=English +%1 +. +MessageId=22167 +Language=English +%1 +. +MessageId=22168 +Language=English +%1 +. +MessageId=22169 +Language=English +%1 +. +MessageId=22170 +Language=English +%1 +. +MessageId=22171 +Language=English +%1 +. +MessageId=22172 +Language=English +%1 +. +MessageId=22173 +Language=English +%1 +. +MessageId=22174 +Language=English +%1 +. +MessageId=22175 +Language=English +%1 +. +MessageId=22176 +Language=English +%1 +. +MessageId=22177 +Language=English +%1 +. +MessageId=22178 +Language=English +%1 +. +MessageId=22179 +Language=English +%1 +. +MessageId=22180 +Language=English +%1 +. +MessageId=22181 +Language=English +%1 +. +MessageId=22182 +Language=English +%1 +. +MessageId=22183 +Language=English +%1 +. +MessageId=22184 +Language=English +%1 +. +MessageId=22185 +Language=English +%1 +. +MessageId=22186 +Language=English +%1 +. +MessageId=22187 +Language=English +%1 +. +MessageId=22188 +Language=English +%1 +. +MessageId=22189 +Language=English +%1 +. +MessageId=22190 +Language=English +%1 +. +MessageId=22191 +Language=English +%1 +. +MessageId=22192 +Language=English +%1 +. +MessageId=22193 +Language=English +%1 +. +MessageId=22194 +Language=English +%1 +. +MessageId=22195 +Language=English +%1 +. +MessageId=22196 +Language=English +%1 +. +MessageId=22197 +Language=English +%1 +. +MessageId=22198 +Language=English +%1 +. +MessageId=22199 +Language=English +%1 +. +MessageId=22200 +Language=English +%1 +. +MessageId=22201 +Language=English +%1 +. +MessageId=22202 +Language=English +%1 +. +MessageId=22203 +Language=English +%1 +. +MessageId=22204 +Language=English +%1 +. +MessageId=22205 +Language=English +%1 +. +MessageId=22206 +Language=English +%1 +. +MessageId=22207 +Language=English +%1 +. +MessageId=22208 +Language=English +%1 +. +MessageId=22209 +Language=English +%1 +. +MessageId=22210 +Language=English +%1 +. +MessageId=22211 +Language=English +%1 +. +MessageId=22212 +Language=English +%1 +. +MessageId=22213 +Language=English +%1 +. +MessageId=22214 +Language=English +%1 +. +MessageId=22215 +Language=English +%1 +. +MessageId=22216 +Language=English +%1 +. +MessageId=22217 +Language=English +%1 +. +MessageId=22218 +Language=English +%1 +. +MessageId=22219 +Language=English +%1 +. +MessageId=22220 +Language=English +%1 +. +MessageId=22221 +Language=English +%1 +. +MessageId=22222 +Language=English +%1 +. +MessageId=22223 +Language=English +%1 +. +MessageId=22224 +Language=English +%1 +. +MessageId=22225 +Language=English +%1 +. +MessageId=22226 +Language=English +%1 +. +MessageId=22227 +Language=English +%1 +. +MessageId=22228 +Language=English +%1 +. +MessageId=22229 +Language=English +%1 +. +MessageId=22230 +Language=English +%1 +. +MessageId=22231 +Language=English +%1 +. +MessageId=22232 +Language=English +%1 +. +MessageId=22233 +Language=English +%1 +. +MessageId=22234 +Language=English +%1 +. +MessageId=22235 +Language=English +%1 +. +MessageId=22236 +Language=English +%1 +. +MessageId=22237 +Language=English +%1 +. +MessageId=22238 +Language=English +%1 +. +MessageId=22239 +Language=English +%1 +. +MessageId=22240 +Language=English +%1 +. +MessageId=22241 +Language=English +%1 +. +MessageId=22242 +Language=English +%1 +. +MessageId=22243 +Language=English +%1 +. +MessageId=22244 +Language=English +%1 +. +MessageId=22245 +Language=English +%1 +. +MessageId=22246 +Language=English +%1 +. +MessageId=22247 +Language=English +%1 +. +MessageId=22248 +Language=English +%1 +. +MessageId=22249 +Language=English +%1 +. +MessageId=22250 +Language=English +%1 +. +MessageId=22251 +Language=English +%1 +. +MessageId=22252 +Language=English +%1 +. +MessageId=22253 +Language=English +%1 +. +MessageId=22254 +Language=English +%1 +. +MessageId=22255 +Language=English +%1 +. +MessageId=22256 +Language=English +%1 +. +MessageId=22257 +Language=English +%1 +. +MessageId=22258 +Language=English +%1 +. +MessageId=22259 +Language=English +%1 +. +MessageId=22260 +Language=English +%1 +. +MessageId=22261 +Language=English +%1 +. +MessageId=22262 +Language=English +%1 +. +MessageId=22263 +Language=English +%1 +. +MessageId=22264 +Language=English +%1 +. +MessageId=22265 +Language=English +%1 +. +MessageId=22266 +Language=English +%1 +. +MessageId=22267 +Language=English +%1 +. +MessageId=22268 +Language=English +%1 +. +MessageId=22269 +Language=English +%1 +. +MessageId=22270 +Language=English +%1 +. +MessageId=22271 +Language=English +%1 +. +MessageId=22272 +Language=English +%1 +. +MessageId=22273 +Language=English +%1 +. +MessageId=22274 +Language=English +%1 +. +MessageId=22275 +Language=English +%1 +. +MessageId=22276 +Language=English +%1 +. +MessageId=22277 +Language=English +%1 +. +MessageId=22278 +Language=English +%1 +. +MessageId=22279 +Language=English +%1 +. +MessageId=22280 +Language=English +%1 +. +MessageId=22281 +Language=English +%1 +. +MessageId=22282 +Language=English +%1 +. +MessageId=22283 +Language=English +%1 +. +MessageId=22284 +Language=English +%1 +. +MessageId=22285 +Language=English +%1 +. +MessageId=22286 +Language=English +%1 +. +MessageId=22287 +Language=English +%1 +. +MessageId=22288 +Language=English +%1 +. +MessageId=22289 +Language=English +%1 +. +MessageId=22290 +Language=English +%1 +. +MessageId=22291 +Language=English +%1 +. +MessageId=22292 +Language=English +%1 +. +MessageId=22293 +Language=English +%1 +. +MessageId=22294 +Language=English +%1 +. +MessageId=22295 +Language=English +%1 +. +MessageId=22296 +Language=English +%1 +. +MessageId=22297 +Language=English +%1 +. +MessageId=22298 +Language=English +%1 +. +MessageId=22299 +Language=English +%1 +. +MessageId=22300 +Language=English +%1 +. +MessageId=22301 +Language=English +%1 +. +MessageId=22302 +Language=English +%1 +. +MessageId=22303 +Language=English +%1 +. +MessageId=22304 +Language=English +%1 +. +MessageId=22305 +Language=English +%1 +. +MessageId=22306 +Language=English +%1 +. +MessageId=22307 +Language=English +%1 +. +MessageId=22308 +Language=English +%1 +. +MessageId=22309 +Language=English +%1 +. +MessageId=22310 +Language=English +%1 +. +MessageId=22311 +Language=English +%1 +. +MessageId=22312 +Language=English +%1 +. +MessageId=22313 +Language=English +%1 +. +MessageId=22314 +Language=English +%1 +. +MessageId=22315 +Language=English +%1 +. +MessageId=22316 +Language=English +%1 +. +MessageId=22317 +Language=English +%1 +. +MessageId=22318 +Language=English +%1 +. +MessageId=22319 +Language=English +%1 +. +MessageId=22320 +Language=English +%1 +. +MessageId=22321 +Language=English +%1 +. +MessageId=22322 +Language=English +%1 +. +MessageId=22323 +Language=English +%1 +. +MessageId=22324 +Language=English +%1 +. +MessageId=22325 +Language=English +%1 +. +MessageId=22326 +Language=English +%1 +. +MessageId=22327 +Language=English +%1 +. +MessageId=22328 +Language=English +%1 +. +MessageId=22329 +Language=English +%1 +. +MessageId=22330 +Language=English +%1 +. +MessageId=22331 +Language=English +%1 +. +MessageId=22332 +Language=English +%1 +. +MessageId=22333 +Language=English +%1 +. +MessageId=22334 +Language=English +%1 +. +MessageId=22335 +Language=English +%1 +. +MessageId=22336 +Language=English +%1 +. +MessageId=22337 +Language=English +%1 +. +MessageId=22338 +Language=English +%1 +. +MessageId=22339 +Language=English +%1 +. +MessageId=22340 +Language=English +%1 +. +MessageId=22341 +Language=English +%1 +. +MessageId=22342 +Language=English +%1 +. +MessageId=22343 +Language=English +%1 +. +MessageId=22344 +Language=English +%1 +. +MessageId=22345 +Language=English +%1 +. +MessageId=22346 +Language=English +%1 +. +MessageId=22347 +Language=English +%1 +. +MessageId=22348 +Language=English +%1 +. +MessageId=22349 +Language=English +%1 +. +MessageId=22350 +Language=English +%1 +. +MessageId=22351 +Language=English +%1 +. +MessageId=22352 +Language=English +%1 +. +MessageId=22353 +Language=English +%1 +. +MessageId=22354 +Language=English +%1 +. +MessageId=22355 +Language=English +%1 +. +MessageId=22356 +Language=English +%1 +. +MessageId=22357 +Language=English +%1 +. +MessageId=22358 +Language=English +%1 +. +MessageId=22359 +Language=English +%1 +. +MessageId=22360 +Language=English +%1 +. +MessageId=22361 +Language=English +%1 +. +MessageId=22362 +Language=English +%1 +. +MessageId=22363 +Language=English +%1 +. +MessageId=22364 +Language=English +%1 +. +MessageId=22365 +Language=English +%1 +. +MessageId=22366 +Language=English +%1 +. +MessageId=22367 +Language=English +%1 +. +MessageId=22368 +Language=English +%1 +. +MessageId=22369 +Language=English +%1 +. +MessageId=22370 +Language=English +%1 +. +MessageId=22371 +Language=English +%1 +. +MessageId=22372 +Language=English +%1 +. +MessageId=22373 +Language=English +%1 +. +MessageId=22374 +Language=English +%1 +. +MessageId=22375 +Language=English +%1 +. +MessageId=22376 +Language=English +%1 +. +MessageId=22377 +Language=English +%1 +. +MessageId=22378 +Language=English +%1 +. +MessageId=22379 +Language=English +%1 +. +MessageId=22380 +Language=English +%1 +. +MessageId=22381 +Language=English +%1 +. +MessageId=22382 +Language=English +%1 +. +MessageId=22383 +Language=English +%1 +. +MessageId=22384 +Language=English +%1 +. +MessageId=22385 +Language=English +%1 +. +MessageId=22386 +Language=English +%1 +. +MessageId=22387 +Language=English +%1 +. +MessageId=22388 +Language=English +%1 +. +MessageId=22389 +Language=English +%1 +. +MessageId=22390 +Language=English +%1 +. +MessageId=22391 +Language=English +%1 +. +MessageId=22392 +Language=English +%1 +. +MessageId=22393 +Language=English +%1 +. +MessageId=22394 +Language=English +%1 +. +MessageId=22395 +Language=English +%1 +. +MessageId=22396 +Language=English +%1 +. +MessageId=22397 +Language=English +%1 +. +MessageId=22398 +Language=English +%1 +. +MessageId=22399 +Language=English +%1 +. +MessageId=22400 +Language=English +%1 +. +MessageId=22401 +Language=English +%1 +. +MessageId=22402 +Language=English +%1 +. +MessageId=22403 +Language=English +%1 +. +MessageId=22404 +Language=English +%1 +. +MessageId=22405 +Language=English +%1 +. +MessageId=22406 +Language=English +%1 +. +MessageId=22407 +Language=English +%1 +. +MessageId=22408 +Language=English +%1 +. +MessageId=22409 +Language=English +%1 +. +MessageId=22410 +Language=English +%1 +. +MessageId=22411 +Language=English +%1 +. +MessageId=22412 +Language=English +%1 +. +MessageId=22413 +Language=English +%1 +. +MessageId=22414 +Language=English +%1 +. +MessageId=22415 +Language=English +%1 +. +MessageId=22416 +Language=English +%1 +. +MessageId=22417 +Language=English +%1 +. +MessageId=22418 +Language=English +%1 +. +MessageId=22419 +Language=English +%1 +. +MessageId=22420 +Language=English +%1 +. +MessageId=22421 +Language=English +%1 +. +MessageId=22422 +Language=English +%1 +. +MessageId=22423 +Language=English +%1 +. +MessageId=22424 +Language=English +%1 +. +MessageId=22425 +Language=English +%1 +. +MessageId=22426 +Language=English +%1 +. +MessageId=22427 +Language=English +%1 +. +MessageId=22428 +Language=English +%1 +. +MessageId=22429 +Language=English +%1 +. +MessageId=22430 +Language=English +%1 +. +MessageId=22431 +Language=English +%1 +. +MessageId=22432 +Language=English +%1 +. +MessageId=22433 +Language=English +%1 +. +MessageId=22434 +Language=English +%1 +. +MessageId=22435 +Language=English +%1 +. +MessageId=22436 +Language=English +%1 +. +MessageId=22437 +Language=English +%1 +. +MessageId=22438 +Language=English +%1 +. +MessageId=22439 +Language=English +%1 +. +MessageId=22440 +Language=English +%1 +. +MessageId=22441 +Language=English +%1 +. +MessageId=22442 +Language=English +%1 +. +MessageId=22443 +Language=English +%1 +. +MessageId=22444 +Language=English +%1 +. +MessageId=22445 +Language=English +%1 +. +MessageId=22446 +Language=English +%1 +. +MessageId=22447 +Language=English +%1 +. +MessageId=22448 +Language=English +%1 +. +MessageId=22449 +Language=English +%1 +. +MessageId=22450 +Language=English +%1 +. +MessageId=22451 +Language=English +%1 +. +MessageId=22452 +Language=English +%1 +. +MessageId=22453 +Language=English +%1 +. +MessageId=22454 +Language=English +%1 +. +MessageId=22455 +Language=English +%1 +. +MessageId=22456 +Language=English +%1 +. +MessageId=22457 +Language=English +%1 +. +MessageId=22458 +Language=English +%1 +. +MessageId=22459 +Language=English +%1 +. +MessageId=22460 +Language=English +%1 +. +MessageId=22461 +Language=English +%1 +. +MessageId=22462 +Language=English +%1 +. +MessageId=22463 +Language=English +%1 +. +MessageId=22464 +Language=English +%1 +. +MessageId=22465 +Language=English +%1 +. +MessageId=22466 +Language=English +%1 +. +MessageId=22467 +Language=English +%1 +. +MessageId=22468 +Language=English +%1 +. +MessageId=22469 +Language=English +%1 +. +MessageId=22470 +Language=English +%1 +. +MessageId=22471 +Language=English +%1 +. +MessageId=22472 +Language=English +%1 +. +MessageId=22473 +Language=English +%1 +. +MessageId=22474 +Language=English +%1 +. +MessageId=22475 +Language=English +%1 +. +MessageId=22476 +Language=English +%1 +. +MessageId=22477 +Language=English +%1 +. +MessageId=22478 +Language=English +%1 +. +MessageId=22479 +Language=English +%1 +. +MessageId=22480 +Language=English +%1 +. +MessageId=22481 +Language=English +%1 +. +MessageId=22482 +Language=English +%1 +. +MessageId=22483 +Language=English +%1 +. +MessageId=22484 +Language=English +%1 +. +MessageId=22485 +Language=English +%1 +. +MessageId=22486 +Language=English +%1 +. +MessageId=22487 +Language=English +%1 +. +MessageId=22488 +Language=English +%1 +. +MessageId=22489 +Language=English +%1 +. +MessageId=22490 +Language=English +%1 +. +MessageId=22491 +Language=English +%1 +. +MessageId=22492 +Language=English +%1 +. +MessageId=22493 +Language=English +%1 +. +MessageId=22494 +Language=English +%1 +. +MessageId=22495 +Language=English +%1 +. +MessageId=22496 +Language=English +%1 +. +MessageId=22497 +Language=English +%1 +. +MessageId=22498 +Language=English +%1 +. +MessageId=22499 +Language=English +%1 +. +MessageId=22500 +Language=English +%1 +. +MessageId=22501 +Language=English +%1 +. +MessageId=22502 +Language=English +%1 +. +MessageId=22503 +Language=English +%1 +. +MessageId=22504 +Language=English +%1 +. +MessageId=22505 +Language=English +%1 +. +MessageId=22506 +Language=English +%1 +. +MessageId=22507 +Language=English +%1 +. +MessageId=22508 +Language=English +%1 +. +MessageId=22509 +Language=English +%1 +. +MessageId=22510 +Language=English +%1 +. +MessageId=22511 +Language=English +%1 +. +MessageId=22512 +Language=English +%1 +. +MessageId=22513 +Language=English +%1 +. +MessageId=22514 +Language=English +%1 +. +MessageId=22515 +Language=English +%1 +. +MessageId=22516 +Language=English +%1 +. +MessageId=22517 +Language=English +%1 +. +MessageId=22518 +Language=English +%1 +. +MessageId=22519 +Language=English +%1 +. +MessageId=22520 +Language=English +%1 +. +MessageId=22521 +Language=English +%1 +. +MessageId=22522 +Language=English +%1 +. +MessageId=22523 +Language=English +%1 +. +MessageId=22524 +Language=English +%1 +. +MessageId=22525 +Language=English +%1 +. +MessageId=22526 +Language=English +%1 +. +MessageId=22527 +Language=English +%1 +. +MessageId=22528 +Language=English +%1 +. +MessageId=22529 +Language=English +%1 +. +MessageId=22530 +Language=English +%1 +. +MessageId=22531 +Language=English +%1 +. +MessageId=22532 +Language=English +%1 +. +MessageId=22533 +Language=English +%1 +. +MessageId=22534 +Language=English +%1 +. +MessageId=22535 +Language=English +%1 +. +MessageId=22536 +Language=English +%1 +. +MessageId=22537 +Language=English +%1 +. +MessageId=22538 +Language=English +%1 +. +MessageId=22539 +Language=English +%1 +. +MessageId=22540 +Language=English +%1 +. +MessageId=22541 +Language=English +%1 +. +MessageId=22542 +Language=English +%1 +. +MessageId=22543 +Language=English +%1 +. +MessageId=22544 +Language=English +%1 +. +MessageId=22545 +Language=English +%1 +. +MessageId=22546 +Language=English +%1 +. +MessageId=22547 +Language=English +%1 +. +MessageId=22548 +Language=English +%1 +. +MessageId=22549 +Language=English +%1 +. +MessageId=22550 +Language=English +%1 +. +MessageId=22551 +Language=English +%1 +. +MessageId=22552 +Language=English +%1 +. +MessageId=22553 +Language=English +%1 +. +MessageId=22554 +Language=English +%1 +. +MessageId=22555 +Language=English +%1 +. +MessageId=22556 +Language=English +%1 +. +MessageId=22557 +Language=English +%1 +. +MessageId=22558 +Language=English +%1 +. +MessageId=22559 +Language=English +%1 +. +MessageId=22560 +Language=English +%1 +. +MessageId=22561 +Language=English +%1 +. +MessageId=22562 +Language=English +%1 +. +MessageId=22563 +Language=English +%1 +. +MessageId=22564 +Language=English +%1 +. +MessageId=22565 +Language=English +%1 +. +MessageId=22566 +Language=English +%1 +. +MessageId=22567 +Language=English +%1 +. +MessageId=22568 +Language=English +%1 +. +MessageId=22569 +Language=English +%1 +. +MessageId=22570 +Language=English +%1 +. +MessageId=22571 +Language=English +%1 +. +MessageId=22572 +Language=English +%1 +. +MessageId=22573 +Language=English +%1 +. +MessageId=22574 +Language=English +%1 +. +MessageId=22575 +Language=English +%1 +. +MessageId=22576 +Language=English +%1 +. +MessageId=22577 +Language=English +%1 +. +MessageId=22578 +Language=English +%1 +. +MessageId=22579 +Language=English +%1 +. +MessageId=22580 +Language=English +%1 +. +MessageId=22581 +Language=English +%1 +. +MessageId=22582 +Language=English +%1 +. +MessageId=22583 +Language=English +%1 +. +MessageId=22584 +Language=English +%1 +. +MessageId=22585 +Language=English +%1 +. +MessageId=22586 +Language=English +%1 +. +MessageId=22587 +Language=English +%1 +. +MessageId=22588 +Language=English +%1 +. +MessageId=22589 +Language=English +%1 +. +MessageId=22590 +Language=English +%1 +. +MessageId=22591 +Language=English +%1 +. +MessageId=22592 +Language=English +%1 +. +MessageId=22593 +Language=English +%1 +. +MessageId=22594 +Language=English +%1 +. +MessageId=22595 +Language=English +%1 +. +MessageId=22596 +Language=English +%1 +. +MessageId=22597 +Language=English +%1 +. +MessageId=22598 +Language=English +%1 +. +MessageId=22599 +Language=English +%1 +. +MessageId=22600 +Language=English +%1 +. +MessageId=22601 +Language=English +%1 +. +MessageId=22602 +Language=English +%1 +. +MessageId=22603 +Language=English +%1 +. +MessageId=22604 +Language=English +%1 +. +MessageId=22605 +Language=English +%1 +. +MessageId=22606 +Language=English +%1 +. +MessageId=22607 +Language=English +%1 +. +MessageId=22608 +Language=English +%1 +. +MessageId=22609 +Language=English +%1 +. +MessageId=22610 +Language=English +%1 +. +MessageId=22611 +Language=English +%1 +. +MessageId=22612 +Language=English +%1 +. +MessageId=22613 +Language=English +%1 +. +MessageId=22614 +Language=English +%1 +. +MessageId=22615 +Language=English +%1 +. +MessageId=22616 +Language=English +%1 +. +MessageId=22617 +Language=English +%1 +. +MessageId=22618 +Language=English +%1 +. +MessageId=22619 +Language=English +%1 +. +MessageId=22620 +Language=English +%1 +. +MessageId=22621 +Language=English +%1 +. +MessageId=22622 +Language=English +%1 +. +MessageId=22623 +Language=English +%1 +. +MessageId=22624 +Language=English +%1 +. +MessageId=22625 +Language=English +%1 +. +MessageId=22626 +Language=English +%1 +. +MessageId=22627 +Language=English +%1 +. +MessageId=22628 +Language=English +%1 +. +MessageId=22629 +Language=English +%1 +. +MessageId=22630 +Language=English +%1 +. +MessageId=22631 +Language=English +%1 +. +MessageId=22632 +Language=English +%1 +. +MessageId=22633 +Language=English +%1 +. +MessageId=22634 +Language=English +%1 +. +MessageId=22635 +Language=English +%1 +. +MessageId=22636 +Language=English +%1 +. +MessageId=22637 +Language=English +%1 +. +MessageId=22638 +Language=English +%1 +. +MessageId=22639 +Language=English +%1 +. +MessageId=22640 +Language=English +%1 +. +MessageId=22641 +Language=English +%1 +. +MessageId=22642 +Language=English +%1 +. +MessageId=22643 +Language=English +%1 +. +MessageId=22644 +Language=English +%1 +. +MessageId=22645 +Language=English +%1 +. +MessageId=22646 +Language=English +%1 +. +MessageId=22647 +Language=English +%1 +. +MessageId=22648 +Language=English +%1 +. +MessageId=22649 +Language=English +%1 +. +MessageId=22650 +Language=English +%1 +. +MessageId=22651 +Language=English +%1 +. +MessageId=22652 +Language=English +%1 +. +MessageId=22653 +Language=English +%1 +. +MessageId=22654 +Language=English +%1 +. +MessageId=22655 +Language=English +%1 +. +MessageId=22656 +Language=English +%1 +. +MessageId=22657 +Language=English +%1 +. +MessageId=22658 +Language=English +%1 +. +MessageId=22659 +Language=English +%1 +. +MessageId=22660 +Language=English +%1 +. +MessageId=22661 +Language=English +%1 +. +MessageId=22662 +Language=English +%1 +. +MessageId=22663 +Language=English +%1 +. +MessageId=22664 +Language=English +%1 +. +MessageId=22665 +Language=English +%1 +. +MessageId=22666 +Language=English +%1 +. +MessageId=22667 +Language=English +%1 +. +MessageId=22668 +Language=English +%1 +. +MessageId=22669 +Language=English +%1 +. +MessageId=22670 +Language=English +%1 +. +MessageId=22671 +Language=English +%1 +. +MessageId=22672 +Language=English +%1 +. +MessageId=22673 +Language=English +%1 +. +MessageId=22674 +Language=English +%1 +. +MessageId=22675 +Language=English +%1 +. +MessageId=22676 +Language=English +%1 +. +MessageId=22677 +Language=English +%1 +. +MessageId=22678 +Language=English +%1 +. +MessageId=22679 +Language=English +%1 +. +MessageId=22680 +Language=English +%1 +. +MessageId=22681 +Language=English +%1 +. +MessageId=22682 +Language=English +%1 +. +MessageId=22683 +Language=English +%1 +. +MessageId=22684 +Language=English +%1 +. +MessageId=22685 +Language=English +%1 +. +MessageId=22686 +Language=English +%1 +. +MessageId=22687 +Language=English +%1 +. +MessageId=22688 +Language=English +%1 +. +MessageId=22689 +Language=English +%1 +. +MessageId=22690 +Language=English +%1 +. +MessageId=22691 +Language=English +%1 +. +MessageId=22692 +Language=English +%1 +. +MessageId=22693 +Language=English +%1 +. +MessageId=22694 +Language=English +%1 +. +MessageId=22695 +Language=English +%1 +. +MessageId=22696 +Language=English +%1 +. +MessageId=22697 +Language=English +%1 +. +MessageId=22698 +Language=English +%1 +. +MessageId=22699 +Language=English +%1 +. +MessageId=22700 +Language=English +%1 +. +MessageId=22701 +Language=English +%1 +. +MessageId=22702 +Language=English +%1 +. +MessageId=22703 +Language=English +%1 +. +MessageId=22704 +Language=English +%1 +. +MessageId=22705 +Language=English +%1 +. +MessageId=22706 +Language=English +%1 +. +MessageId=22707 +Language=English +%1 +. +MessageId=22708 +Language=English +%1 +. +MessageId=22709 +Language=English +%1 +. +MessageId=22710 +Language=English +%1 +. +MessageId=22711 +Language=English +%1 +. +MessageId=22712 +Language=English +%1 +. +MessageId=22713 +Language=English +%1 +. +MessageId=22714 +Language=English +%1 +. +MessageId=22715 +Language=English +%1 +. +MessageId=22716 +Language=English +%1 +. +MessageId=22717 +Language=English +%1 +. +MessageId=22718 +Language=English +%1 +. +MessageId=22719 +Language=English +%1 +. +MessageId=22720 +Language=English +%1 +. +MessageId=22721 +Language=English +%1 +. +MessageId=22722 +Language=English +%1 +. +MessageId=22723 +Language=English +%1 +. +MessageId=22724 +Language=English +%1 +. +MessageId=22725 +Language=English +%1 +. +MessageId=22726 +Language=English +%1 +. +MessageId=22727 +Language=English +%1 +. +MessageId=22728 +Language=English +%1 +. +MessageId=22729 +Language=English +%1 +. +MessageId=22730 +Language=English +%1 +. +MessageId=22731 +Language=English +%1 +. +MessageId=22732 +Language=English +%1 +. +MessageId=22733 +Language=English +%1 +. +MessageId=22734 +Language=English +%1 +. +MessageId=22735 +Language=English +%1 +. +MessageId=22736 +Language=English +%1 +. +MessageId=22737 +Language=English +%1 +. +MessageId=22738 +Language=English +%1 +. +MessageId=22739 +Language=English +%1 +. +MessageId=22740 +Language=English +%1 +. +MessageId=22741 +Language=English +%1 +. +MessageId=22742 +Language=English +%1 +. +MessageId=22743 +Language=English +%1 +. +MessageId=22744 +Language=English +%1 +. +MessageId=22745 +Language=English +%1 +. +MessageId=22746 +Language=English +%1 +. +MessageId=22747 +Language=English +%1 +. +MessageId=22748 +Language=English +%1 +. +MessageId=22749 +Language=English +%1 +. +MessageId=22750 +Language=English +%1 +. +MessageId=22751 +Language=English +%1 +. +MessageId=22752 +Language=English +%1 +. +MessageId=22753 +Language=English +%1 +. +MessageId=22754 +Language=English +%1 +. +MessageId=22755 +Language=English +%1 +. +MessageId=22756 +Language=English +%1 +. +MessageId=22757 +Language=English +%1 +. +MessageId=22758 +Language=English +%1 +. +MessageId=22759 +Language=English +%1 +. +MessageId=22760 +Language=English +%1 +. +MessageId=22761 +Language=English +%1 +. +MessageId=22762 +Language=English +%1 +. +MessageId=22763 +Language=English +%1 +. +MessageId=22764 +Language=English +%1 +. +MessageId=22765 +Language=English +%1 +. +MessageId=22766 +Language=English +%1 +. +MessageId=22767 +Language=English +%1 +. +MessageId=22768 +Language=English +%1 +. +MessageId=22769 +Language=English +%1 +. +MessageId=22770 +Language=English +%1 +. +MessageId=22771 +Language=English +%1 +. +MessageId=22772 +Language=English +%1 +. +MessageId=22773 +Language=English +%1 +. +MessageId=22774 +Language=English +%1 +. +MessageId=22775 +Language=English +%1 +. +MessageId=22776 +Language=English +%1 +. +MessageId=22777 +Language=English +%1 +. +MessageId=22778 +Language=English +%1 +. +MessageId=22779 +Language=English +%1 +. +MessageId=22780 +Language=English +%1 +. +MessageId=22781 +Language=English +%1 +. +MessageId=22782 +Language=English +%1 +. +MessageId=22783 +Language=English +%1 +. +MessageId=22784 +Language=English +%1 +. +MessageId=22785 +Language=English +%1 +. +MessageId=22786 +Language=English +%1 +. +MessageId=22787 +Language=English +%1 +. +MessageId=22788 +Language=English +%1 +. +MessageId=22789 +Language=English +%1 +. +MessageId=22790 +Language=English +%1 +. +MessageId=22791 +Language=English +%1 +. +MessageId=22792 +Language=English +%1 +. +MessageId=22793 +Language=English +%1 +. +MessageId=22794 +Language=English +%1 +. +MessageId=22795 +Language=English +%1 +. +MessageId=22796 +Language=English +%1 +. +MessageId=22797 +Language=English +%1 +. +MessageId=22798 +Language=English +%1 +. +MessageId=22799 +Language=English +%1 +. +MessageId=22800 +Language=English +%1 +. +MessageId=22801 +Language=English +%1 +. +MessageId=22802 +Language=English +%1 +. +MessageId=22803 +Language=English +%1 +. +MessageId=22804 +Language=English +%1 +. +MessageId=22805 +Language=English +%1 +. +MessageId=22806 +Language=English +%1 +. +MessageId=22807 +Language=English +%1 +. +MessageId=22808 +Language=English +%1 +. +MessageId=22809 +Language=English +%1 +. +MessageId=22810 +Language=English +%1 +. +MessageId=22811 +Language=English +%1 +. +MessageId=22812 +Language=English +%1 +. +MessageId=22813 +Language=English +%1 +. +MessageId=22814 +Language=English +%1 +. +MessageId=22815 +Language=English +%1 +. +MessageId=22816 +Language=English +%1 +. +MessageId=22817 +Language=English +%1 +. +MessageId=22818 +Language=English +%1 +. +MessageId=22819 +Language=English +%1 +. +MessageId=22820 +Language=English +%1 +. +MessageId=22821 +Language=English +%1 +. +MessageId=22822 +Language=English +%1 +. +MessageId=22823 +Language=English +%1 +. +MessageId=22824 +Language=English +%1 +. +MessageId=22825 +Language=English +%1 +. +MessageId=22826 +Language=English +%1 +. +MessageId=22827 +Language=English +%1 +. +MessageId=22828 +Language=English +%1 +. +MessageId=22829 +Language=English +%1 +. +MessageId=22830 +Language=English +%1 +. +MessageId=22831 +Language=English +%1 +. +MessageId=22832 +Language=English +%1 +. +MessageId=22833 +Language=English +%1 +. +MessageId=22834 +Language=English +%1 +. +MessageId=22835 +Language=English +%1 +. +MessageId=22836 +Language=English +%1 +. +MessageId=22837 +Language=English +%1 +. +MessageId=22838 +Language=English +%1 +. +MessageId=22839 +Language=English +%1 +. +MessageId=22840 +Language=English +%1 +. +MessageId=22841 +Language=English +%1 +. +MessageId=22842 +Language=English +%1 +. +MessageId=22843 +Language=English +%1 +. +MessageId=22844 +Language=English +%1 +. +MessageId=22845 +Language=English +%1 +. +MessageId=22846 +Language=English +%1 +. +MessageId=22847 +Language=English +%1 +. +MessageId=22848 +Language=English +%1 +. +MessageId=22849 +Language=English +%1 +. +MessageId=22850 +Language=English +%1 +. +MessageId=22851 +Language=English +%1 +. +MessageId=22852 +Language=English +%1 +. +MessageId=22853 +Language=English +%1 +. +MessageId=22854 +Language=English +%1 +. +MessageId=22855 +Language=English +%1 +. +MessageId=22856 +Language=English +%1 +. +MessageId=22857 +Language=English +%1 +. +MessageId=22858 +Language=English +%1 +. +MessageId=22859 +Language=English +%1 +. +MessageId=22860 +Language=English +%1 +. +MessageId=22861 +Language=English +%1 +. +MessageId=22862 +Language=English +%1 +. +MessageId=22863 +Language=English +%1 +. +MessageId=22864 +Language=English +%1 +. +MessageId=22865 +Language=English +%1 +. +MessageId=22866 +Language=English +%1 +. +MessageId=22867 +Language=English +%1 +. +MessageId=22868 +Language=English +%1 +. +MessageId=22869 +Language=English +%1 +. +MessageId=22870 +Language=English +%1 +. +MessageId=22871 +Language=English +%1 +. +MessageId=22872 +Language=English +%1 +. +MessageId=22873 +Language=English +%1 +. +MessageId=22874 +Language=English +%1 +. +MessageId=22875 +Language=English +%1 +. +MessageId=22876 +Language=English +%1 +. +MessageId=22877 +Language=English +%1 +. +MessageId=22878 +Language=English +%1 +. +MessageId=22879 +Language=English +%1 +. +MessageId=22880 +Language=English +%1 +. +MessageId=22881 +Language=English +%1 +. +MessageId=22882 +Language=English +%1 +. +MessageId=22883 +Language=English +%1 +. +MessageId=22884 +Language=English +%1 +. +MessageId=22885 +Language=English +%1 +. +MessageId=22886 +Language=English +%1 +. +MessageId=22887 +Language=English +%1 +. +MessageId=22888 +Language=English +%1 +. +MessageId=22889 +Language=English +%1 +. +MessageId=22890 +Language=English +%1 +. +MessageId=22891 +Language=English +%1 +. +MessageId=22892 +Language=English +%1 +. +MessageId=22893 +Language=English +%1 +. +MessageId=22894 +Language=English +%1 +. +MessageId=22895 +Language=English +%1 +. +MessageId=22896 +Language=English +%1 +. +MessageId=22897 +Language=English +%1 +. +MessageId=22898 +Language=English +%1 +. +MessageId=22899 +Language=English +%1 +. +MessageId=22900 +Language=English +%1 +. +MessageId=22901 +Language=English +%1 +. +MessageId=22902 +Language=English +%1 +. +MessageId=22903 +Language=English +%1 +. +MessageId=22904 +Language=English +%1 +. +MessageId=22905 +Language=English +%1 +. +MessageId=22906 +Language=English +%1 +. +MessageId=22907 +Language=English +%1 +. +MessageId=22908 +Language=English +%1 +. +MessageId=22909 +Language=English +%1 +. +MessageId=22910 +Language=English +%1 +. +MessageId=22911 +Language=English +%1 +. +MessageId=22912 +Language=English +%1 +. +MessageId=22913 +Language=English +%1 +. +MessageId=22914 +Language=English +%1 +. +MessageId=22915 +Language=English +%1 +. +MessageId=22916 +Language=English +%1 +. +MessageId=22917 +Language=English +%1 +. +MessageId=22918 +Language=English +%1 +. +MessageId=22919 +Language=English +%1 +. +MessageId=22920 +Language=English +%1 +. +MessageId=22921 +Language=English +%1 +. +MessageId=22922 +Language=English +%1 +. +MessageId=22923 +Language=English +%1 +. +MessageId=22924 +Language=English +%1 +. +MessageId=22925 +Language=English +%1 +. +MessageId=22926 +Language=English +%1 +. +MessageId=22927 +Language=English +%1 +. +MessageId=22928 +Language=English +%1 +. +MessageId=22929 +Language=English +%1 +. +MessageId=22930 +Language=English +%1 +. +MessageId=22931 +Language=English +%1 +. +MessageId=22932 +Language=English +%1 +. +MessageId=22933 +Language=English +%1 +. +MessageId=22934 +Language=English +%1 +. +MessageId=22935 +Language=English +%1 +. +MessageId=22936 +Language=English +%1 +. +MessageId=22937 +Language=English +%1 +. +MessageId=22938 +Language=English +%1 +. +MessageId=22939 +Language=English +%1 +. +MessageId=22940 +Language=English +%1 +. +MessageId=22941 +Language=English +%1 +. +MessageId=22942 +Language=English +%1 +. +MessageId=22943 +Language=English +%1 +. +MessageId=22944 +Language=English +%1 +. +MessageId=22945 +Language=English +%1 +. +MessageId=22946 +Language=English +%1 +. +MessageId=22947 +Language=English +%1 +. +MessageId=22948 +Language=English +%1 +. +MessageId=22949 +Language=English +%1 +. +MessageId=22950 +Language=English +%1 +. +MessageId=22951 +Language=English +%1 +. +MessageId=22952 +Language=English +%1 +. +MessageId=22953 +Language=English +%1 +. +MessageId=22954 +Language=English +%1 +. +MessageId=22955 +Language=English +%1 +. +MessageId=22956 +Language=English +%1 +. +MessageId=22957 +Language=English +%1 +. +MessageId=22958 +Language=English +%1 +. +MessageId=22959 +Language=English +%1 +. +MessageId=22960 +Language=English +%1 +. +MessageId=22961 +Language=English +%1 +. +MessageId=22962 +Language=English +%1 +. +MessageId=22963 +Language=English +%1 +. +MessageId=22964 +Language=English +%1 +. +MessageId=22965 +Language=English +%1 +. +MessageId=22966 +Language=English +%1 +. +MessageId=22967 +Language=English +%1 +. +MessageId=22968 +Language=English +%1 +. +MessageId=22969 +Language=English +%1 +. +MessageId=22970 +Language=English +%1 +. +MessageId=22971 +Language=English +%1 +. +MessageId=22972 +Language=English +%1 +. +MessageId=22973 +Language=English +%1 +. +MessageId=22974 +Language=English +%1 +. +MessageId=22975 +Language=English +%1 +. +MessageId=22976 +Language=English +%1 +. +MessageId=22977 +Language=English +%1 +. +MessageId=22978 +Language=English +%1 +. +MessageId=22979 +Language=English +%1 +. +MessageId=22980 +Language=English +%1 +. +MessageId=22981 +Language=English +%1 +. +MessageId=22982 +Language=English +%1 +. +MessageId=22983 +Language=English +%1 +. +MessageId=22984 +Language=English +%1 +. +MessageId=22985 +Language=English +%1 +. +MessageId=22986 +Language=English +%1 +. +MessageId=22987 +Language=English +%1 +. +MessageId=22988 +Language=English +%1 +. +MessageId=22989 +Language=English +%1 +. +MessageId=22990 +Language=English +%1 +. +MessageId=22991 +Language=English +%1 +. +MessageId=22992 +Language=English +%1 +. +MessageId=22993 +Language=English +%1 +. +MessageId=22994 +Language=English +%1 +. +MessageId=22995 +Language=English +%1 +. +MessageId=22996 +Language=English +%1 +. +MessageId=22997 +Language=English +%1 +. +MessageId=22998 +Language=English +%1 +. +MessageId=22999 +Language=English +%1 +. +MessageId=23000 +Language=English +%1 +. +MessageId=23001 +Language=English +%1 +. +MessageId=23002 +Language=English +%1 +. +MessageId=23003 +Language=English +%1 +. +MessageId=23004 +Language=English +%1 +. +MessageId=23005 +Language=English +%1 +. +MessageId=23006 +Language=English +%1 +. +MessageId=23007 +Language=English +%1 +. +MessageId=23008 +Language=English +%1 +. +MessageId=23009 +Language=English +%1 +. +MessageId=23010 +Language=English +%1 +. +MessageId=23011 +Language=English +%1 +. +MessageId=23012 +Language=English +%1 +. +MessageId=23013 +Language=English +%1 +. +MessageId=23014 +Language=English +%1 +. +MessageId=23015 +Language=English +%1 +. +MessageId=23016 +Language=English +%1 +. +MessageId=23017 +Language=English +%1 +. +MessageId=23018 +Language=English +%1 +. +MessageId=23019 +Language=English +%1 +. +MessageId=23020 +Language=English +%1 +. +MessageId=23021 +Language=English +%1 +. +MessageId=23022 +Language=English +%1 +. +MessageId=23023 +Language=English +%1 +. +MessageId=23024 +Language=English +%1 +. +MessageId=23025 +Language=English +%1 +. +MessageId=23026 +Language=English +%1 +. +MessageId=23027 +Language=English +%1 +. +MessageId=23028 +Language=English +%1 +. +MessageId=23029 +Language=English +%1 +. +MessageId=23030 +Language=English +%1 +. +MessageId=23031 +Language=English +%1 +. +MessageId=23032 +Language=English +%1 +. +MessageId=23033 +Language=English +%1 +. +MessageId=23034 +Language=English +%1 +. +MessageId=23035 +Language=English +%1 +. +MessageId=23036 +Language=English +%1 +. +MessageId=23037 +Language=English +%1 +. +MessageId=23038 +Language=English +%1 +. +MessageId=23039 +Language=English +%1 +. +MessageId=23040 +Language=English +%1 +. +MessageId=23041 +Language=English +%1 +. +MessageId=23042 +Language=English +%1 +. +MessageId=23043 +Language=English +%1 +. +MessageId=23044 +Language=English +%1 +. +MessageId=23045 +Language=English +%1 +. +MessageId=23046 +Language=English +%1 +. +MessageId=23047 +Language=English +%1 +. +MessageId=23048 +Language=English +%1 +. +MessageId=23049 +Language=English +%1 +. +MessageId=23050 +Language=English +%1 +. +MessageId=23051 +Language=English +%1 +. +MessageId=23052 +Language=English +%1 +. +MessageId=23053 +Language=English +%1 +. +MessageId=23054 +Language=English +%1 +. +MessageId=23055 +Language=English +%1 +. +MessageId=23056 +Language=English +%1 +. +MessageId=23057 +Language=English +%1 +. +MessageId=23058 +Language=English +%1 +. +MessageId=23059 +Language=English +%1 +. +MessageId=23060 +Language=English +%1 +. +MessageId=23061 +Language=English +%1 +. +MessageId=23062 +Language=English +%1 +. +MessageId=23063 +Language=English +%1 +. +MessageId=23064 +Language=English +%1 +. +MessageId=23065 +Language=English +%1 +. +MessageId=23066 +Language=English +%1 +. +MessageId=23067 +Language=English +%1 +. +MessageId=23068 +Language=English +%1 +. +MessageId=23069 +Language=English +%1 +. +MessageId=23070 +Language=English +%1 +. +MessageId=23071 +Language=English +%1 +. +MessageId=23072 +Language=English +%1 +. +MessageId=23073 +Language=English +%1 +. +MessageId=23074 +Language=English +%1 +. +MessageId=23075 +Language=English +%1 +. +MessageId=23076 +Language=English +%1 +. +MessageId=23077 +Language=English +%1 +. +MessageId=23078 +Language=English +%1 +. +MessageId=23079 +Language=English +%1 +. +MessageId=23080 +Language=English +%1 +. +MessageId=23081 +Language=English +%1 +. +MessageId=23082 +Language=English +%1 +. +MessageId=23083 +Language=English +%1 +. +MessageId=23084 +Language=English +%1 +. +MessageId=23085 +Language=English +%1 +. +MessageId=23086 +Language=English +%1 +. +MessageId=23087 +Language=English +%1 +. +MessageId=23088 +Language=English +%1 +. +MessageId=23089 +Language=English +%1 +. +MessageId=23090 +Language=English +%1 +. +MessageId=23091 +Language=English +%1 +. +MessageId=23092 +Language=English +%1 +. +MessageId=23093 +Language=English +%1 +. +MessageId=23094 +Language=English +%1 +. +MessageId=23095 +Language=English +%1 +. +MessageId=23096 +Language=English +%1 +. +MessageId=23097 +Language=English +%1 +. +MessageId=23098 +Language=English +%1 +. +MessageId=23099 +Language=English +%1 +. +MessageId=23100 +Language=English +%1 +. +MessageId=23101 +Language=English +%1 +. +MessageId=23102 +Language=English +%1 +. +MessageId=23103 +Language=English +%1 +. +MessageId=23104 +Language=English +%1 +. +MessageId=23105 +Language=English +%1 +. +MessageId=23106 +Language=English +%1 +. +MessageId=23107 +Language=English +%1 +. +MessageId=23108 +Language=English +%1 +. +MessageId=23109 +Language=English +%1 +. +MessageId=23110 +Language=English +%1 +. +MessageId=23111 +Language=English +%1 +. +MessageId=23112 +Language=English +%1 +. +MessageId=23113 +Language=English +%1 +. +MessageId=23114 +Language=English +%1 +. +MessageId=23115 +Language=English +%1 +. +MessageId=23116 +Language=English +%1 +. +MessageId=23117 +Language=English +%1 +. +MessageId=23118 +Language=English +%1 +. +MessageId=23119 +Language=English +%1 +. +MessageId=23120 +Language=English +%1 +. +MessageId=23121 +Language=English +%1 +. +MessageId=23122 +Language=English +%1 +. +MessageId=23123 +Language=English +%1 +. +MessageId=23124 +Language=English +%1 +. +MessageId=23125 +Language=English +%1 +. +MessageId=23126 +Language=English +%1 +. +MessageId=23127 +Language=English +%1 +. +MessageId=23128 +Language=English +%1 +. +MessageId=23129 +Language=English +%1 +. +MessageId=23130 +Language=English +%1 +. +MessageId=23131 +Language=English +%1 +. +MessageId=23132 +Language=English +%1 +. +MessageId=23133 +Language=English +%1 +. +MessageId=23134 +Language=English +%1 +. +MessageId=23135 +Language=English +%1 +. +MessageId=23136 +Language=English +%1 +. +MessageId=23137 +Language=English +%1 +. +MessageId=23138 +Language=English +%1 +. +MessageId=23139 +Language=English +%1 +. +MessageId=23140 +Language=English +%1 +. +MessageId=23141 +Language=English +%1 +. +MessageId=23142 +Language=English +%1 +. +MessageId=23143 +Language=English +%1 +. +MessageId=23144 +Language=English +%1 +. +MessageId=23145 +Language=English +%1 +. +MessageId=23146 +Language=English +%1 +. +MessageId=23147 +Language=English +%1 +. +MessageId=23148 +Language=English +%1 +. +MessageId=23149 +Language=English +%1 +. +MessageId=23150 +Language=English +%1 +. +MessageId=23151 +Language=English +%1 +. +MessageId=23152 +Language=English +%1 +. +MessageId=23153 +Language=English +%1 +. +MessageId=23154 +Language=English +%1 +. +MessageId=23155 +Language=English +%1 +. +MessageId=23156 +Language=English +%1 +. +MessageId=23157 +Language=English +%1 +. +MessageId=23158 +Language=English +%1 +. +MessageId=23159 +Language=English +%1 +. +MessageId=23160 +Language=English +%1 +. +MessageId=23161 +Language=English +%1 +. +MessageId=23162 +Language=English +%1 +. +MessageId=23163 +Language=English +%1 +. +MessageId=23164 +Language=English +%1 +. +MessageId=23165 +Language=English +%1 +. +MessageId=23166 +Language=English +%1 +. +MessageId=23167 +Language=English +%1 +. +MessageId=23168 +Language=English +%1 +. +MessageId=23169 +Language=English +%1 +. +MessageId=23170 +Language=English +%1 +. +MessageId=23171 +Language=English +%1 +. +MessageId=23172 +Language=English +%1 +. +MessageId=23173 +Language=English +%1 +. +MessageId=23174 +Language=English +%1 +. +MessageId=23175 +Language=English +%1 +. +MessageId=23176 +Language=English +%1 +. +MessageId=23177 +Language=English +%1 +. +MessageId=23178 +Language=English +%1 +. +MessageId=23179 +Language=English +%1 +. +MessageId=23180 +Language=English +%1 +. +MessageId=23181 +Language=English +%1 +. +MessageId=23182 +Language=English +%1 +. +MessageId=23183 +Language=English +%1 +. +MessageId=23184 +Language=English +%1 +. +MessageId=23185 +Language=English +%1 +. +MessageId=23186 +Language=English +%1 +. +MessageId=23187 +Language=English +%1 +. +MessageId=23188 +Language=English +%1 +. +MessageId=23189 +Language=English +%1 +. +MessageId=23190 +Language=English +%1 +. +MessageId=23191 +Language=English +%1 +. +MessageId=23192 +Language=English +%1 +. +MessageId=23193 +Language=English +%1 +. +MessageId=23194 +Language=English +%1 +. +MessageId=23195 +Language=English +%1 +. +MessageId=23196 +Language=English +%1 +. +MessageId=23197 +Language=English +%1 +. +MessageId=23198 +Language=English +%1 +. +MessageId=23199 +Language=English +%1 +. +MessageId=23200 +Language=English +%1 +. +MessageId=23201 +Language=English +%1 +. +MessageId=23202 +Language=English +%1 +. +MessageId=23203 +Language=English +%1 +. +MessageId=23204 +Language=English +%1 +. +MessageId=23205 +Language=English +%1 +. +MessageId=23206 +Language=English +%1 +. +MessageId=23207 +Language=English +%1 +. +MessageId=23208 +Language=English +%1 +. +MessageId=23209 +Language=English +%1 +. +MessageId=23210 +Language=English +%1 +. +MessageId=23211 +Language=English +%1 +. +MessageId=23212 +Language=English +%1 +. +MessageId=23213 +Language=English +%1 +. +MessageId=23214 +Language=English +%1 +. +MessageId=23215 +Language=English +%1 +. +MessageId=23216 +Language=English +%1 +. +MessageId=23217 +Language=English +%1 +. +MessageId=23218 +Language=English +%1 +. +MessageId=23219 +Language=English +%1 +. +MessageId=23220 +Language=English +%1 +. +MessageId=23221 +Language=English +%1 +. +MessageId=23222 +Language=English +%1 +. +MessageId=23223 +Language=English +%1 +. +MessageId=23224 +Language=English +%1 +. +MessageId=23225 +Language=English +%1 +. +MessageId=23226 +Language=English +%1 +. +MessageId=23227 +Language=English +%1 +. +MessageId=23228 +Language=English +%1 +. +MessageId=23229 +Language=English +%1 +. +MessageId=23230 +Language=English +%1 +. +MessageId=23231 +Language=English +%1 +. +MessageId=23232 +Language=English +%1 +. +MessageId=23233 +Language=English +%1 +. +MessageId=23234 +Language=English +%1 +. +MessageId=23235 +Language=English +%1 +. +MessageId=23236 +Language=English +%1 +. +MessageId=23237 +Language=English +%1 +. +MessageId=23238 +Language=English +%1 +. +MessageId=23239 +Language=English +%1 +. +MessageId=23240 +Language=English +%1 +. +MessageId=23241 +Language=English +%1 +. +MessageId=23242 +Language=English +%1 +. +MessageId=23243 +Language=English +%1 +. +MessageId=23244 +Language=English +%1 +. +MessageId=23245 +Language=English +%1 +. +MessageId=23246 +Language=English +%1 +. +MessageId=23247 +Language=English +%1 +. +MessageId=23248 +Language=English +%1 +. +MessageId=23249 +Language=English +%1 +. +MessageId=23250 +Language=English +%1 +. +MessageId=23251 +Language=English +%1 +. +MessageId=23252 +Language=English +%1 +. +MessageId=23253 +Language=English +%1 +. +MessageId=23254 +Language=English +%1 +. +MessageId=23255 +Language=English +%1 +. +MessageId=23256 +Language=English +%1 +. +MessageId=23257 +Language=English +%1 +. +MessageId=23258 +Language=English +%1 +. +MessageId=23259 +Language=English +%1 +. +MessageId=23260 +Language=English +%1 +. +MessageId=23261 +Language=English +%1 +. +MessageId=23262 +Language=English +%1 +. +MessageId=23263 +Language=English +%1 +. +MessageId=23264 +Language=English +%1 +. +MessageId=23265 +Language=English +%1 +. +MessageId=23266 +Language=English +%1 +. +MessageId=23267 +Language=English +%1 +. +MessageId=23268 +Language=English +%1 +. +MessageId=23269 +Language=English +%1 +. +MessageId=23270 +Language=English +%1 +. +MessageId=23271 +Language=English +%1 +. +MessageId=23272 +Language=English +%1 +. +MessageId=23273 +Language=English +%1 +. +MessageId=23274 +Language=English +%1 +. +MessageId=23275 +Language=English +%1 +. +MessageId=23276 +Language=English +%1 +. +MessageId=23277 +Language=English +%1 +. +MessageId=23278 +Language=English +%1 +. +MessageId=23279 +Language=English +%1 +. +MessageId=23280 +Language=English +%1 +. +MessageId=23281 +Language=English +%1 +. +MessageId=23282 +Language=English +%1 +. +MessageId=23283 +Language=English +%1 +. +MessageId=23284 +Language=English +%1 +. +MessageId=23285 +Language=English +%1 +. +MessageId=23286 +Language=English +%1 +. +MessageId=23287 +Language=English +%1 +. +MessageId=23288 +Language=English +%1 +. +MessageId=23289 +Language=English +%1 +. +MessageId=23290 +Language=English +%1 +. +MessageId=23291 +Language=English +%1 +. +MessageId=23292 +Language=English +%1 +. +MessageId=23293 +Language=English +%1 +. +MessageId=23294 +Language=English +%1 +. +MessageId=23295 +Language=English +%1 +. +MessageId=23296 +Language=English +%1 +. +MessageId=23297 +Language=English +%1 +. +MessageId=23298 +Language=English +%1 +. +MessageId=23299 +Language=English +%1 +. +MessageId=23300 +Language=English +%1 +. +MessageId=23301 +Language=English +%1 +. +MessageId=23302 +Language=English +%1 +. +MessageId=23303 +Language=English +%1 +. +MessageId=23304 +Language=English +%1 +. +MessageId=23305 +Language=English +%1 +. +MessageId=23306 +Language=English +%1 +. +MessageId=23307 +Language=English +%1 +. +MessageId=23308 +Language=English +%1 +. +MessageId=23309 +Language=English +%1 +. +MessageId=23310 +Language=English +%1 +. +MessageId=23311 +Language=English +%1 +. +MessageId=23312 +Language=English +%1 +. +MessageId=23313 +Language=English +%1 +. +MessageId=23314 +Language=English +%1 +. +MessageId=23315 +Language=English +%1 +. +MessageId=23316 +Language=English +%1 +. +MessageId=23317 +Language=English +%1 +. +MessageId=23318 +Language=English +%1 +. +MessageId=23319 +Language=English +%1 +. +MessageId=23320 +Language=English +%1 +. +MessageId=23321 +Language=English +%1 +. +MessageId=23322 +Language=English +%1 +. +MessageId=23323 +Language=English +%1 +. +MessageId=23324 +Language=English +%1 +. +MessageId=23325 +Language=English +%1 +. +MessageId=23326 +Language=English +%1 +. +MessageId=23327 +Language=English +%1 +. +MessageId=23328 +Language=English +%1 +. +MessageId=23329 +Language=English +%1 +. +MessageId=23330 +Language=English +%1 +. +MessageId=23331 +Language=English +%1 +. +MessageId=23332 +Language=English +%1 +. +MessageId=23333 +Language=English +%1 +. +MessageId=23334 +Language=English +%1 +. +MessageId=23335 +Language=English +%1 +. +MessageId=23336 +Language=English +%1 +. +MessageId=23337 +Language=English +%1 +. +MessageId=23338 +Language=English +%1 +. +MessageId=23339 +Language=English +%1 +. +MessageId=23340 +Language=English +%1 +. +MessageId=23341 +Language=English +%1 +. +MessageId=23342 +Language=English +%1 +. +MessageId=23343 +Language=English +%1 +. +MessageId=23344 +Language=English +%1 +. +MessageId=23345 +Language=English +%1 +. +MessageId=23346 +Language=English +%1 +. +MessageId=23347 +Language=English +%1 +. +MessageId=23348 +Language=English +%1 +. +MessageId=23349 +Language=English +%1 +. +MessageId=23350 +Language=English +%1 +. +MessageId=23351 +Language=English +%1 +. +MessageId=23352 +Language=English +%1 +. +MessageId=23353 +Language=English +%1 +. +MessageId=23354 +Language=English +%1 +. +MessageId=23355 +Language=English +%1 +. +MessageId=23356 +Language=English +%1 +. +MessageId=23357 +Language=English +%1 +. +MessageId=23358 +Language=English +%1 +. +MessageId=23359 +Language=English +%1 +. +MessageId=23360 +Language=English +%1 +. +MessageId=23361 +Language=English +%1 +. +MessageId=23362 +Language=English +%1 +. +MessageId=23363 +Language=English +%1 +. +MessageId=23364 +Language=English +%1 +. +MessageId=23365 +Language=English +%1 +. +MessageId=23366 +Language=English +%1 +. +MessageId=23367 +Language=English +%1 +. +MessageId=23368 +Language=English +%1 +. +MessageId=23369 +Language=English +%1 +. +MessageId=23370 +Language=English +%1 +. +MessageId=23371 +Language=English +%1 +. +MessageId=23372 +Language=English +%1 +. +MessageId=23373 +Language=English +%1 +. +MessageId=23374 +Language=English +%1 +. +MessageId=23375 +Language=English +%1 +. +MessageId=23376 +Language=English +%1 +. +MessageId=23377 +Language=English +%1 +. +MessageId=23378 +Language=English +%1 +. +MessageId=23379 +Language=English +%1 +. +MessageId=23380 +Language=English +%1 +. +MessageId=23381 +Language=English +%1 +. +MessageId=23382 +Language=English +%1 +. +MessageId=23383 +Language=English +%1 +. +MessageId=23384 +Language=English +%1 +. +MessageId=23385 +Language=English +%1 +. +MessageId=23386 +Language=English +%1 +. +MessageId=23387 +Language=English +%1 +. +MessageId=23388 +Language=English +%1 +. +MessageId=23389 +Language=English +%1 +. +MessageId=23390 +Language=English +%1 +. +MessageId=23391 +Language=English +%1 +. +MessageId=23392 +Language=English +%1 +. +MessageId=23393 +Language=English +%1 +. +MessageId=23394 +Language=English +%1 +. +MessageId=23395 +Language=English +%1 +. +MessageId=23396 +Language=English +%1 +. +MessageId=23397 +Language=English +%1 +. +MessageId=23398 +Language=English +%1 +. +MessageId=23399 +Language=English +%1 +. +MessageId=23400 +Language=English +%1 +. +MessageId=23401 +Language=English +%1 +. +MessageId=23402 +Language=English +%1 +. +MessageId=23403 +Language=English +%1 +. +MessageId=23404 +Language=English +%1 +. +MessageId=23405 +Language=English +%1 +. +MessageId=23406 +Language=English +%1 +. +MessageId=23407 +Language=English +%1 +. +MessageId=23408 +Language=English +%1 +. +MessageId=23409 +Language=English +%1 +. +MessageId=23410 +Language=English +%1 +. +MessageId=23411 +Language=English +%1 +. +MessageId=23412 +Language=English +%1 +. +MessageId=23413 +Language=English +%1 +. +MessageId=23414 +Language=English +%1 +. +MessageId=23415 +Language=English +%1 +. +MessageId=23416 +Language=English +%1 +. +MessageId=23417 +Language=English +%1 +. +MessageId=23418 +Language=English +%1 +. +MessageId=23419 +Language=English +%1 +. +MessageId=23420 +Language=English +%1 +. +MessageId=23421 +Language=English +%1 +. +MessageId=23422 +Language=English +%1 +. +MessageId=23423 +Language=English +%1 +. +MessageId=23424 +Language=English +%1 +. +MessageId=23425 +Language=English +%1 +. +MessageId=23426 +Language=English +%1 +. +MessageId=23427 +Language=English +%1 +. +MessageId=23428 +Language=English +%1 +. +MessageId=23429 +Language=English +%1 +. +MessageId=23430 +Language=English +%1 +. +MessageId=23431 +Language=English +%1 +. +MessageId=23432 +Language=English +%1 +. +MessageId=23433 +Language=English +%1 +. +MessageId=23434 +Language=English +%1 +. +MessageId=23435 +Language=English +%1 +. +MessageId=23436 +Language=English +%1 +. +MessageId=23437 +Language=English +%1 +. +MessageId=23438 +Language=English +%1 +. +MessageId=23439 +Language=English +%1 +. +MessageId=23440 +Language=English +%1 +. +MessageId=23441 +Language=English +%1 +. +MessageId=23442 +Language=English +%1 +. +MessageId=23443 +Language=English +%1 +. +MessageId=23444 +Language=English +%1 +. +MessageId=23445 +Language=English +%1 +. +MessageId=23446 +Language=English +%1 +. +MessageId=23447 +Language=English +%1 +. +MessageId=23448 +Language=English +%1 +. +MessageId=23449 +Language=English +%1 +. +MessageId=23450 +Language=English +%1 +. +MessageId=23451 +Language=English +%1 +. +MessageId=23452 +Language=English +%1 +. +MessageId=23453 +Language=English +%1 +. +MessageId=23454 +Language=English +%1 +. +MessageId=23455 +Language=English +%1 +. +MessageId=23456 +Language=English +%1 +. +MessageId=23457 +Language=English +%1 +. +MessageId=23458 +Language=English +%1 +. +MessageId=23459 +Language=English +%1 +. +MessageId=23460 +Language=English +%1 +. +MessageId=23461 +Language=English +%1 +. +MessageId=23462 +Language=English +%1 +. +MessageId=23463 +Language=English +%1 +. +MessageId=23464 +Language=English +%1 +. +MessageId=23465 +Language=English +%1 +. +MessageId=23466 +Language=English +%1 +. +MessageId=23467 +Language=English +%1 +. +MessageId=23468 +Language=English +%1 +. +MessageId=23469 +Language=English +%1 +. +MessageId=23470 +Language=English +%1 +. +MessageId=23471 +Language=English +%1 +. +MessageId=23472 +Language=English +%1 +. +MessageId=23473 +Language=English +%1 +. +MessageId=23474 +Language=English +%1 +. +MessageId=23475 +Language=English +%1 +. +MessageId=23476 +Language=English +%1 +. +MessageId=23477 +Language=English +%1 +. +MessageId=23478 +Language=English +%1 +. +MessageId=23479 +Language=English +%1 +. +MessageId=23480 +Language=English +%1 +. +MessageId=23481 +Language=English +%1 +. +MessageId=23482 +Language=English +%1 +. +MessageId=23483 +Language=English +%1 +. +MessageId=23484 +Language=English +%1 +. +MessageId=23485 +Language=English +%1 +. +MessageId=23486 +Language=English +%1 +. +MessageId=23487 +Language=English +%1 +. +MessageId=23488 +Language=English +%1 +. +MessageId=23489 +Language=English +%1 +. +MessageId=23490 +Language=English +%1 +. +MessageId=23491 +Language=English +%1 +. +MessageId=23492 +Language=English +%1 +. +MessageId=23493 +Language=English +%1 +. +MessageId=23494 +Language=English +%1 +. +MessageId=23495 +Language=English +%1 +. +MessageId=23496 +Language=English +%1 +. +MessageId=23497 +Language=English +%1 +. +MessageId=23498 +Language=English +%1 +. +MessageId=23499 +Language=English +%1 +. +MessageId=23500 +Language=English +%1 +. +MessageId=23501 +Language=English +%1 +. +MessageId=23502 +Language=English +%1 +. +MessageId=23503 +Language=English +%1 +. +MessageId=23504 +Language=English +%1 +. +MessageId=23505 +Language=English +%1 +. +MessageId=23506 +Language=English +%1 +. +MessageId=23507 +Language=English +%1 +. +MessageId=23508 +Language=English +%1 +. +MessageId=23509 +Language=English +%1 +. +MessageId=23510 +Language=English +%1 +. +MessageId=23511 +Language=English +%1 +. +MessageId=23512 +Language=English +%1 +. +MessageId=23513 +Language=English +%1 +. +MessageId=23514 +Language=English +%1 +. +MessageId=23515 +Language=English +%1 +. +MessageId=23516 +Language=English +%1 +. +MessageId=23517 +Language=English +%1 +. +MessageId=23518 +Language=English +%1 +. +MessageId=23519 +Language=English +%1 +. +MessageId=23520 +Language=English +%1 +. +MessageId=23521 +Language=English +%1 +. +MessageId=23522 +Language=English +%1 +. +MessageId=23523 +Language=English +%1 +. +MessageId=23524 +Language=English +%1 +. +MessageId=23525 +Language=English +%1 +. +MessageId=23526 +Language=English +%1 +. +MessageId=23527 +Language=English +%1 +. +MessageId=23528 +Language=English +%1 +. +MessageId=23529 +Language=English +%1 +. +MessageId=23530 +Language=English +%1 +. +MessageId=23531 +Language=English +%1 +. +MessageId=23532 +Language=English +%1 +. +MessageId=23533 +Language=English +%1 +. +MessageId=23534 +Language=English +%1 +. +MessageId=23535 +Language=English +%1 +. +MessageId=23536 +Language=English +%1 +. +MessageId=23537 +Language=English +%1 +. +MessageId=23538 +Language=English +%1 +. +MessageId=23539 +Language=English +%1 +. +MessageId=23540 +Language=English +%1 +. +MessageId=23541 +Language=English +%1 +. +MessageId=23542 +Language=English +%1 +. +MessageId=23543 +Language=English +%1 +. +MessageId=23544 +Language=English +%1 +. +MessageId=23545 +Language=English +%1 +. +MessageId=23546 +Language=English +%1 +. +MessageId=23547 +Language=English +%1 +. +MessageId=23548 +Language=English +%1 +. +MessageId=23549 +Language=English +%1 +. +MessageId=23550 +Language=English +%1 +. +MessageId=23551 +Language=English +%1 +. +MessageId=23552 +Language=English +%1 +. +MessageId=23553 +Language=English +%1 +. +MessageId=23554 +Language=English +%1 +. +MessageId=23555 +Language=English +%1 +. +MessageId=23556 +Language=English +%1 +. +MessageId=23557 +Language=English +%1 +. +MessageId=23558 +Language=English +%1 +. +MessageId=23559 +Language=English +%1 +. +MessageId=23560 +Language=English +%1 +. +MessageId=23561 +Language=English +%1 +. +MessageId=23562 +Language=English +%1 +. +MessageId=23563 +Language=English +%1 +. +MessageId=23564 +Language=English +%1 +. +MessageId=23565 +Language=English +%1 +. +MessageId=23566 +Language=English +%1 +. +MessageId=23567 +Language=English +%1 +. +MessageId=23568 +Language=English +%1 +. +MessageId=23569 +Language=English +%1 +. +MessageId=23570 +Language=English +%1 +. +MessageId=23571 +Language=English +%1 +. +MessageId=23572 +Language=English +%1 +. +MessageId=23573 +Language=English +%1 +. +MessageId=23574 +Language=English +%1 +. +MessageId=23575 +Language=English +%1 +. +MessageId=23576 +Language=English +%1 +. +MessageId=23577 +Language=English +%1 +. +MessageId=23578 +Language=English +%1 +. +MessageId=23579 +Language=English +%1 +. +MessageId=23580 +Language=English +%1 +. +MessageId=23581 +Language=English +%1 +. +MessageId=23582 +Language=English +%1 +. +MessageId=23583 +Language=English +%1 +. +MessageId=23584 +Language=English +%1 +. +MessageId=23585 +Language=English +%1 +. +MessageId=23586 +Language=English +%1 +. +MessageId=23587 +Language=English +%1 +. +MessageId=23588 +Language=English +%1 +. +MessageId=23589 +Language=English +%1 +. +MessageId=23590 +Language=English +%1 +. +MessageId=23591 +Language=English +%1 +. +MessageId=23592 +Language=English +%1 +. +MessageId=23593 +Language=English +%1 +. +MessageId=23594 +Language=English +%1 +. +MessageId=23595 +Language=English +%1 +. +MessageId=23596 +Language=English +%1 +. +MessageId=23597 +Language=English +%1 +. +MessageId=23598 +Language=English +%1 +. +MessageId=23599 +Language=English +%1 +. +MessageId=23600 +Language=English +%1 +. +MessageId=23601 +Language=English +%1 +. +MessageId=23602 +Language=English +%1 +. +MessageId=23603 +Language=English +%1 +. +MessageId=23604 +Language=English +%1 +. +MessageId=23605 +Language=English +%1 +. +MessageId=23606 +Language=English +%1 +. +MessageId=23607 +Language=English +%1 +. +MessageId=23608 +Language=English +%1 +. +MessageId=23609 +Language=English +%1 +. +MessageId=23610 +Language=English +%1 +. +MessageId=23611 +Language=English +%1 +. +MessageId=23612 +Language=English +%1 +. +MessageId=23613 +Language=English +%1 +. +MessageId=23614 +Language=English +%1 +. +MessageId=23615 +Language=English +%1 +. +MessageId=23616 +Language=English +%1 +. +MessageId=23617 +Language=English +%1 +. +MessageId=23618 +Language=English +%1 +. +MessageId=23619 +Language=English +%1 +. +MessageId=23620 +Language=English +%1 +. +MessageId=23621 +Language=English +%1 +. +MessageId=23622 +Language=English +%1 +. +MessageId=23623 +Language=English +%1 +. +MessageId=23624 +Language=English +%1 +. +MessageId=23625 +Language=English +%1 +. +MessageId=23626 +Language=English +%1 +. +MessageId=23627 +Language=English +%1 +. +MessageId=23628 +Language=English +%1 +. +MessageId=23629 +Language=English +%1 +. +MessageId=23630 +Language=English +%1 +. +MessageId=23631 +Language=English +%1 +. +MessageId=23632 +Language=English +%1 +. +MessageId=23633 +Language=English +%1 +. +MessageId=23634 +Language=English +%1 +. +MessageId=23635 +Language=English +%1 +. +MessageId=23636 +Language=English +%1 +. +MessageId=23637 +Language=English +%1 +. +MessageId=23638 +Language=English +%1 +. +MessageId=23639 +Language=English +%1 +. +MessageId=23640 +Language=English +%1 +. +MessageId=23641 +Language=English +%1 +. +MessageId=23642 +Language=English +%1 +. +MessageId=23643 +Language=English +%1 +. +MessageId=23644 +Language=English +%1 +. +MessageId=23645 +Language=English +%1 +. +MessageId=23646 +Language=English +%1 +. +MessageId=23647 +Language=English +%1 +. +MessageId=23648 +Language=English +%1 +. +MessageId=23649 +Language=English +%1 +. +MessageId=23650 +Language=English +%1 +. +MessageId=23651 +Language=English +%1 +. +MessageId=23652 +Language=English +%1 +. +MessageId=23653 +Language=English +%1 +. +MessageId=23654 +Language=English +%1 +. +MessageId=23655 +Language=English +%1 +. +MessageId=23656 +Language=English +%1 +. +MessageId=23657 +Language=English +%1 +. +MessageId=23658 +Language=English +%1 +. +MessageId=23659 +Language=English +%1 +. +MessageId=23660 +Language=English +%1 +. +MessageId=23661 +Language=English +%1 +. +MessageId=23662 +Language=English +%1 +. +MessageId=23663 +Language=English +%1 +. +MessageId=23664 +Language=English +%1 +. +MessageId=23665 +Language=English +%1 +. +MessageId=23666 +Language=English +%1 +. +MessageId=23667 +Language=English +%1 +. +MessageId=23668 +Language=English +%1 +. +MessageId=23669 +Language=English +%1 +. +MessageId=23670 +Language=English +%1 +. +MessageId=23671 +Language=English +%1 +. +MessageId=23672 +Language=English +%1 +. +MessageId=23673 +Language=English +%1 +. +MessageId=23674 +Language=English +%1 +. +MessageId=23675 +Language=English +%1 +. +MessageId=23676 +Language=English +%1 +. +MessageId=23677 +Language=English +%1 +. +MessageId=23678 +Language=English +%1 +. +MessageId=23679 +Language=English +%1 +. +MessageId=23680 +Language=English +%1 +. +MessageId=23681 +Language=English +%1 +. +MessageId=23682 +Language=English +%1 +. +MessageId=23683 +Language=English +%1 +. +MessageId=23684 +Language=English +%1 +. +MessageId=23685 +Language=English +%1 +. +MessageId=23686 +Language=English +%1 +. +MessageId=23687 +Language=English +%1 +. +MessageId=23688 +Language=English +%1 +. +MessageId=23689 +Language=English +%1 +. +MessageId=23690 +Language=English +%1 +. +MessageId=23691 +Language=English +%1 +. +MessageId=23692 +Language=English +%1 +. +MessageId=23693 +Language=English +%1 +. +MessageId=23694 +Language=English +%1 +. +MessageId=23695 +Language=English +%1 +. +MessageId=23696 +Language=English +%1 +. +MessageId=23697 +Language=English +%1 +. +MessageId=23698 +Language=English +%1 +. +MessageId=23699 +Language=English +%1 +. +MessageId=23700 +Language=English +%1 +. +MessageId=23701 +Language=English +%1 +. +MessageId=23702 +Language=English +%1 +. +MessageId=23703 +Language=English +%1 +. +MessageId=23704 +Language=English +%1 +. +MessageId=23705 +Language=English +%1 +. +MessageId=23706 +Language=English +%1 +. +MessageId=23707 +Language=English +%1 +. +MessageId=23708 +Language=English +%1 +. +MessageId=23709 +Language=English +%1 +. +MessageId=23710 +Language=English +%1 +. +MessageId=23711 +Language=English +%1 +. +MessageId=23712 +Language=English +%1 +. +MessageId=23713 +Language=English +%1 +. +MessageId=23714 +Language=English +%1 +. +MessageId=23715 +Language=English +%1 +. +MessageId=23716 +Language=English +%1 +. +MessageId=23717 +Language=English +%1 +. +MessageId=23718 +Language=English +%1 +. +MessageId=23719 +Language=English +%1 +. +MessageId=23720 +Language=English +%1 +. +MessageId=23721 +Language=English +%1 +. +MessageId=23722 +Language=English +%1 +. +MessageId=23723 +Language=English +%1 +. +MessageId=23724 +Language=English +%1 +. +MessageId=23725 +Language=English +%1 +. +MessageId=23726 +Language=English +%1 +. +MessageId=23727 +Language=English +%1 +. +MessageId=23728 +Language=English +%1 +. +MessageId=23729 +Language=English +%1 +. +MessageId=23730 +Language=English +%1 +. +MessageId=23731 +Language=English +%1 +. +MessageId=23732 +Language=English +%1 +. +MessageId=23733 +Language=English +%1 +. +MessageId=23734 +Language=English +%1 +. +MessageId=23735 +Language=English +%1 +. +MessageId=23736 +Language=English +%1 +. +MessageId=23737 +Language=English +%1 +. +MessageId=23738 +Language=English +%1 +. +MessageId=23739 +Language=English +%1 +. +MessageId=23740 +Language=English +%1 +. +MessageId=23741 +Language=English +%1 +. +MessageId=23742 +Language=English +%1 +. +MessageId=23743 +Language=English +%1 +. +MessageId=23744 +Language=English +%1 +. +MessageId=23745 +Language=English +%1 +. +MessageId=23746 +Language=English +%1 +. +MessageId=23747 +Language=English +%1 +. +MessageId=23748 +Language=English +%1 +. +MessageId=23749 +Language=English +%1 +. +MessageId=23750 +Language=English +%1 +. +MessageId=23751 +Language=English +%1 +. +MessageId=23752 +Language=English +%1 +. +MessageId=23753 +Language=English +%1 +. +MessageId=23754 +Language=English +%1 +. +MessageId=23755 +Language=English +%1 +. +MessageId=23756 +Language=English +%1 +. +MessageId=23757 +Language=English +%1 +. +MessageId=23758 +Language=English +%1 +. +MessageId=23759 +Language=English +%1 +. +MessageId=23760 +Language=English +%1 +. +MessageId=23761 +Language=English +%1 +. +MessageId=23762 +Language=English +%1 +. +MessageId=23763 +Language=English +%1 +. +MessageId=23764 +Language=English +%1 +. +MessageId=23765 +Language=English +%1 +. +MessageId=23766 +Language=English +%1 +. +MessageId=23767 +Language=English +%1 +. +MessageId=23768 +Language=English +%1 +. +MessageId=23769 +Language=English +%1 +. +MessageId=23770 +Language=English +%1 +. +MessageId=23771 +Language=English +%1 +. +MessageId=23772 +Language=English +%1 +. +MessageId=23773 +Language=English +%1 +. +MessageId=23774 +Language=English +%1 +. +MessageId=23775 +Language=English +%1 +. +MessageId=23776 +Language=English +%1 +. +MessageId=23777 +Language=English +%1 +. +MessageId=23778 +Language=English +%1 +. +MessageId=23779 +Language=English +%1 +. +MessageId=23780 +Language=English +%1 +. +MessageId=23781 +Language=English +%1 +. +MessageId=23782 +Language=English +%1 +. +MessageId=23783 +Language=English +%1 +. +MessageId=23784 +Language=English +%1 +. +MessageId=23785 +Language=English +%1 +. +MessageId=23786 +Language=English +%1 +. +MessageId=23787 +Language=English +%1 +. +MessageId=23788 +Language=English +%1 +. +MessageId=23789 +Language=English +%1 +. +MessageId=23790 +Language=English +%1 +. +MessageId=23791 +Language=English +%1 +. +MessageId=23792 +Language=English +%1 +. +MessageId=23793 +Language=English +%1 +. +MessageId=23794 +Language=English +%1 +. +MessageId=23795 +Language=English +%1 +. +MessageId=23796 +Language=English +%1 +. +MessageId=23797 +Language=English +%1 +. +MessageId=23798 +Language=English +%1 +. +MessageId=23799 +Language=English +%1 +. +MessageId=23800 +Language=English +%1 +. +MessageId=23801 +Language=English +%1 +. +MessageId=23802 +Language=English +%1 +. +MessageId=23803 +Language=English +%1 +. +MessageId=23804 +Language=English +%1 +. +MessageId=23805 +Language=English +%1 +. +MessageId=23806 +Language=English +%1 +. +MessageId=23807 +Language=English +%1 +. +MessageId=23808 +Language=English +%1 +. +MessageId=23809 +Language=English +%1 +. +MessageId=23810 +Language=English +%1 +. +MessageId=23811 +Language=English +%1 +. +MessageId=23812 +Language=English +%1 +. +MessageId=23813 +Language=English +%1 +. +MessageId=23814 +Language=English +%1 +. +MessageId=23815 +Language=English +%1 +. +MessageId=23816 +Language=English +%1 +. +MessageId=23817 +Language=English +%1 +. +MessageId=23818 +Language=English +%1 +. +MessageId=23819 +Language=English +%1 +. +MessageId=23820 +Language=English +%1 +. +MessageId=23821 +Language=English +%1 +. +MessageId=23822 +Language=English +%1 +. +MessageId=23823 +Language=English +%1 +. +MessageId=23824 +Language=English +%1 +. +MessageId=23825 +Language=English +%1 +. +MessageId=23826 +Language=English +%1 +. +MessageId=23827 +Language=English +%1 +. +MessageId=23828 +Language=English +%1 +. +MessageId=23829 +Language=English +%1 +. +MessageId=23830 +Language=English +%1 +. +MessageId=23831 +Language=English +%1 +. +MessageId=23832 +Language=English +%1 +. +MessageId=23833 +Language=English +%1 +. +MessageId=23834 +Language=English +%1 +. +MessageId=23835 +Language=English +%1 +. +MessageId=23836 +Language=English +%1 +. +MessageId=23837 +Language=English +%1 +. +MessageId=23838 +Language=English +%1 +. +MessageId=23839 +Language=English +%1 +. +MessageId=23840 +Language=English +%1 +. +MessageId=23841 +Language=English +%1 +. +MessageId=23842 +Language=English +%1 +. +MessageId=23843 +Language=English +%1 +. +MessageId=23844 +Language=English +%1 +. +MessageId=23845 +Language=English +%1 +. +MessageId=23846 +Language=English +%1 +. +MessageId=23847 +Language=English +%1 +. +MessageId=23848 +Language=English +%1 +. +MessageId=23849 +Language=English +%1 +. +MessageId=23850 +Language=English +%1 +. +MessageId=23851 +Language=English +%1 +. +MessageId=23852 +Language=English +%1 +. +MessageId=23853 +Language=English +%1 +. +MessageId=23854 +Language=English +%1 +. +MessageId=23855 +Language=English +%1 +. +MessageId=23856 +Language=English +%1 +. +MessageId=23857 +Language=English +%1 +. +MessageId=23858 +Language=English +%1 +. +MessageId=23859 +Language=English +%1 +. +MessageId=23860 +Language=English +%1 +. +MessageId=23861 +Language=English +%1 +. +MessageId=23862 +Language=English +%1 +. +MessageId=23863 +Language=English +%1 +. +MessageId=23864 +Language=English +%1 +. +MessageId=23865 +Language=English +%1 +. +MessageId=23866 +Language=English +%1 +. +MessageId=23867 +Language=English +%1 +. +MessageId=23868 +Language=English +%1 +. +MessageId=23869 +Language=English +%1 +. +MessageId=23870 +Language=English +%1 +. +MessageId=23871 +Language=English +%1 +. +MessageId=23872 +Language=English +%1 +. +MessageId=23873 +Language=English +%1 +. +MessageId=23874 +Language=English +%1 +. +MessageId=23875 +Language=English +%1 +. +MessageId=23876 +Language=English +%1 +. +MessageId=23877 +Language=English +%1 +. +MessageId=23878 +Language=English +%1 +. +MessageId=23879 +Language=English +%1 +. +MessageId=23880 +Language=English +%1 +. +MessageId=23881 +Language=English +%1 +. +MessageId=23882 +Language=English +%1 +. +MessageId=23883 +Language=English +%1 +. +MessageId=23884 +Language=English +%1 +. +MessageId=23885 +Language=English +%1 +. +MessageId=23886 +Language=English +%1 +. +MessageId=23887 +Language=English +%1 +. +MessageId=23888 +Language=English +%1 +. +MessageId=23889 +Language=English +%1 +. +MessageId=23890 +Language=English +%1 +. +MessageId=23891 +Language=English +%1 +. +MessageId=23892 +Language=English +%1 +. +MessageId=23893 +Language=English +%1 +. +MessageId=23894 +Language=English +%1 +. +MessageId=23895 +Language=English +%1 +. +MessageId=23896 +Language=English +%1 +. +MessageId=23897 +Language=English +%1 +. +MessageId=23898 +Language=English +%1 +. +MessageId=23899 +Language=English +%1 +. +MessageId=23900 +Language=English +%1 +. +MessageId=23901 +Language=English +%1 +. +MessageId=23902 +Language=English +%1 +. +MessageId=23903 +Language=English +%1 +. +MessageId=23904 +Language=English +%1 +. +MessageId=23905 +Language=English +%1 +. +MessageId=23906 +Language=English +%1 +. +MessageId=23907 +Language=English +%1 +. +MessageId=23908 +Language=English +%1 +. +MessageId=23909 +Language=English +%1 +. +MessageId=23910 +Language=English +%1 +. +MessageId=23911 +Language=English +%1 +. +MessageId=23912 +Language=English +%1 +. +MessageId=23913 +Language=English +%1 +. +MessageId=23914 +Language=English +%1 +. +MessageId=23915 +Language=English +%1 +. +MessageId=23916 +Language=English +%1 +. +MessageId=23917 +Language=English +%1 +. +MessageId=23918 +Language=English +%1 +. +MessageId=23919 +Language=English +%1 +. +MessageId=23920 +Language=English +%1 +. +MessageId=23921 +Language=English +%1 +. +MessageId=23922 +Language=English +%1 +. +MessageId=23923 +Language=English +%1 +. +MessageId=23924 +Language=English +%1 +. +MessageId=23925 +Language=English +%1 +. +MessageId=23926 +Language=English +%1 +. +MessageId=23927 +Language=English +%1 +. +MessageId=23928 +Language=English +%1 +. +MessageId=23929 +Language=English +%1 +. +MessageId=23930 +Language=English +%1 +. +MessageId=23931 +Language=English +%1 +. +MessageId=23932 +Language=English +%1 +. +MessageId=23933 +Language=English +%1 +. +MessageId=23934 +Language=English +%1 +. +MessageId=23935 +Language=English +%1 +. +MessageId=23936 +Language=English +%1 +. +MessageId=23937 +Language=English +%1 +. +MessageId=23938 +Language=English +%1 +. +MessageId=23939 +Language=English +%1 +. +MessageId=23940 +Language=English +%1 +. +MessageId=23941 +Language=English +%1 +. +MessageId=23942 +Language=English +%1 +. +MessageId=23943 +Language=English +%1 +. +MessageId=23944 +Language=English +%1 +. +MessageId=23945 +Language=English +%1 +. +MessageId=23946 +Language=English +%1 +. +MessageId=23947 +Language=English +%1 +. +MessageId=23948 +Language=English +%1 +. +MessageId=23949 +Language=English +%1 +. +MessageId=23950 +Language=English +%1 +. +MessageId=23951 +Language=English +%1 +. +MessageId=23952 +Language=English +%1 +. +MessageId=23953 +Language=English +%1 +. +MessageId=23954 +Language=English +%1 +. +MessageId=23955 +Language=English +%1 +. +MessageId=23956 +Language=English +%1 +. +MessageId=23957 +Language=English +%1 +. +MessageId=23958 +Language=English +%1 +. +MessageId=23959 +Language=English +%1 +. +MessageId=23960 +Language=English +%1 +. +MessageId=23961 +Language=English +%1 +. +MessageId=23962 +Language=English +%1 +. +MessageId=23963 +Language=English +%1 +. +MessageId=23964 +Language=English +%1 +. +MessageId=23965 +Language=English +%1 +. +MessageId=23966 +Language=English +%1 +. +MessageId=23967 +Language=English +%1 +. +MessageId=23968 +Language=English +%1 +. +MessageId=23969 +Language=English +%1 +. +MessageId=23970 +Language=English +%1 +. +MessageId=23971 +Language=English +%1 +. +MessageId=23972 +Language=English +%1 +. +MessageId=23973 +Language=English +%1 +. +MessageId=23974 +Language=English +%1 +. +MessageId=23975 +Language=English +%1 +. +MessageId=23976 +Language=English +%1 +. +MessageId=23977 +Language=English +%1 +. +MessageId=23978 +Language=English +%1 +. +MessageId=23979 +Language=English +%1 +. +MessageId=23980 +Language=English +%1 +. +MessageId=23981 +Language=English +%1 +. +MessageId=23982 +Language=English +%1 +. +MessageId=23983 +Language=English +%1 +. +MessageId=23984 +Language=English +%1 +. +MessageId=23985 +Language=English +%1 +. +MessageId=23986 +Language=English +%1 +. +MessageId=23987 +Language=English +%1 +. +MessageId=23988 +Language=English +%1 +. +MessageId=23989 +Language=English +%1 +. +MessageId=23990 +Language=English +%1 +. +MessageId=23991 +Language=English +%1 +. +MessageId=23992 +Language=English +%1 +. +MessageId=23993 +Language=English +%1 +. +MessageId=23994 +Language=English +%1 +. +MessageId=23995 +Language=English +%1 +. +MessageId=23996 +Language=English +%1 +. +MessageId=23997 +Language=English +%1 +. +MessageId=23998 +Language=English +%1 +. +MessageId=23999 +Language=English +%1 +. +MessageId=24000 +Language=English +%1 +. +MessageId=24001 +Language=English +%1 +. +MessageId=24002 +Language=English +%1 +. +MessageId=24003 +Language=English +%1 +. +MessageId=24004 +Language=English +%1 +. +MessageId=24005 +Language=English +%1 +. +MessageId=24006 +Language=English +%1 +. +MessageId=24007 +Language=English +%1 +. +MessageId=24008 +Language=English +%1 +. +MessageId=24009 +Language=English +%1 +. +MessageId=24010 +Language=English +%1 +. +MessageId=24011 +Language=English +%1 +. +MessageId=24012 +Language=English +%1 +. +MessageId=24013 +Language=English +%1 +. +MessageId=24014 +Language=English +%1 +. +MessageId=24015 +Language=English +%1 +. +MessageId=24016 +Language=English +%1 +. +MessageId=24017 +Language=English +%1 +. +MessageId=24018 +Language=English +%1 +. +MessageId=24019 +Language=English +%1 +. +MessageId=24020 +Language=English +%1 +. +MessageId=24021 +Language=English +%1 +. +MessageId=24022 +Language=English +%1 +. +MessageId=24023 +Language=English +%1 +. +MessageId=24024 +Language=English +%1 +. +MessageId=24025 +Language=English +%1 +. +MessageId=24026 +Language=English +%1 +. +MessageId=24027 +Language=English +%1 +. +MessageId=24028 +Language=English +%1 +. +MessageId=24029 +Language=English +%1 +. +MessageId=24030 +Language=English +%1 +. +MessageId=24031 +Language=English +%1 +. +MessageId=24032 +Language=English +%1 +. +MessageId=24033 +Language=English +%1 +. +MessageId=24034 +Language=English +%1 +. +MessageId=24035 +Language=English +%1 +. +MessageId=24036 +Language=English +%1 +. +MessageId=24037 +Language=English +%1 +. +MessageId=24038 +Language=English +%1 +. +MessageId=24039 +Language=English +%1 +. +MessageId=24040 +Language=English +%1 +. +MessageId=24041 +Language=English +%1 +. +MessageId=24042 +Language=English +%1 +. +MessageId=24043 +Language=English +%1 +. +MessageId=24044 +Language=English +%1 +. +MessageId=24045 +Language=English +%1 +. +MessageId=24046 +Language=English +%1 +. +MessageId=24047 +Language=English +%1 +. +MessageId=24048 +Language=English +%1 +. +MessageId=24049 +Language=English +%1 +. +MessageId=24050 +Language=English +%1 +. +MessageId=24051 +Language=English +%1 +. +MessageId=24052 +Language=English +%1 +. +MessageId=24053 +Language=English +%1 +. +MessageId=24054 +Language=English +%1 +. +MessageId=24055 +Language=English +%1 +. +MessageId=24056 +Language=English +%1 +. +MessageId=24057 +Language=English +%1 +. +MessageId=24058 +Language=English +%1 +. +MessageId=24059 +Language=English +%1 +. +MessageId=24060 +Language=English +%1 +. +MessageId=24061 +Language=English +%1 +. +MessageId=24062 +Language=English +%1 +. +MessageId=24063 +Language=English +%1 +. +MessageId=24064 +Language=English +%1 +. +MessageId=24065 +Language=English +%1 +. +MessageId=24066 +Language=English +%1 +. +MessageId=24067 +Language=English +%1 +. +MessageId=24068 +Language=English +%1 +. +MessageId=24069 +Language=English +%1 +. +MessageId=24070 +Language=English +%1 +. +MessageId=24071 +Language=English +%1 +. +MessageId=24072 +Language=English +%1 +. +MessageId=24073 +Language=English +%1 +. +MessageId=24074 +Language=English +%1 +. +MessageId=24075 +Language=English +%1 +. +MessageId=24076 +Language=English +%1 +. +MessageId=24077 +Language=English +%1 +. +MessageId=24078 +Language=English +%1 +. +MessageId=24079 +Language=English +%1 +. +MessageId=24080 +Language=English +%1 +. +MessageId=24081 +Language=English +%1 +. +MessageId=24082 +Language=English +%1 +. +MessageId=24083 +Language=English +%1 +. +MessageId=24084 +Language=English +%1 +. +MessageId=24085 +Language=English +%1 +. +MessageId=24086 +Language=English +%1 +. +MessageId=24087 +Language=English +%1 +. +MessageId=24088 +Language=English +%1 +. +MessageId=24089 +Language=English +%1 +. +MessageId=24090 +Language=English +%1 +. +MessageId=24091 +Language=English +%1 +. +MessageId=24092 +Language=English +%1 +. +MessageId=24093 +Language=English +%1 +. +MessageId=24094 +Language=English +%1 +. +MessageId=24095 +Language=English +%1 +. +MessageId=24096 +Language=English +%1 +. +MessageId=24097 +Language=English +%1 +. +MessageId=24098 +Language=English +%1 +. +MessageId=24099 +Language=English +%1 +. +MessageId=24100 +Language=English +%1 +. +MessageId=24101 +Language=English +%1 +. +MessageId=24102 +Language=English +%1 +. +MessageId=24103 +Language=English +%1 +. +MessageId=24104 +Language=English +%1 +. +MessageId=24105 +Language=English +%1 +. +MessageId=24106 +Language=English +%1 +. +MessageId=24107 +Language=English +%1 +. +MessageId=24108 +Language=English +%1 +. +MessageId=24109 +Language=English +%1 +. +MessageId=24110 +Language=English +%1 +. +MessageId=24111 +Language=English +%1 +. +MessageId=24112 +Language=English +%1 +. +MessageId=24113 +Language=English +%1 +. +MessageId=24114 +Language=English +%1 +. +MessageId=24115 +Language=English +%1 +. +MessageId=24116 +Language=English +%1 +. +MessageId=24117 +Language=English +%1 +. +MessageId=24118 +Language=English +%1 +. +MessageId=24119 +Language=English +%1 +. +MessageId=24120 +Language=English +%1 +. +MessageId=24121 +Language=English +%1 +. +MessageId=24122 +Language=English +%1 +. +MessageId=24123 +Language=English +%1 +. +MessageId=24124 +Language=English +%1 +. +MessageId=24125 +Language=English +%1 +. +MessageId=24126 +Language=English +%1 +. +MessageId=24127 +Language=English +%1 +. +MessageId=24128 +Language=English +%1 +. +MessageId=24129 +Language=English +%1 +. +MessageId=24130 +Language=English +%1 +. +MessageId=24131 +Language=English +%1 +. +MessageId=24132 +Language=English +%1 +. +MessageId=24133 +Language=English +%1 +. +MessageId=24134 +Language=English +%1 +. +MessageId=24135 +Language=English +%1 +. +MessageId=24136 +Language=English +%1 +. +MessageId=24137 +Language=English +%1 +. +MessageId=24138 +Language=English +%1 +. +MessageId=24139 +Language=English +%1 +. +MessageId=24140 +Language=English +%1 +. +MessageId=24141 +Language=English +%1 +. +MessageId=24142 +Language=English +%1 +. +MessageId=24143 +Language=English +%1 +. +MessageId=24144 +Language=English +%1 +. +MessageId=24145 +Language=English +%1 +. +MessageId=24146 +Language=English +%1 +. +MessageId=24147 +Language=English +%1 +. +MessageId=24148 +Language=English +%1 +. +MessageId=24149 +Language=English +%1 +. +MessageId=24150 +Language=English +%1 +. +MessageId=24151 +Language=English +%1 +. +MessageId=24152 +Language=English +%1 +. +MessageId=24153 +Language=English +%1 +. +MessageId=24154 +Language=English +%1 +. +MessageId=24155 +Language=English +%1 +. +MessageId=24156 +Language=English +%1 +. +MessageId=24157 +Language=English +%1 +. +MessageId=24158 +Language=English +%1 +. +MessageId=24159 +Language=English +%1 +. +MessageId=24160 +Language=English +%1 +. +MessageId=24161 +Language=English +%1 +. +MessageId=24162 +Language=English +%1 +. +MessageId=24163 +Language=English +%1 +. +MessageId=24164 +Language=English +%1 +. +MessageId=24165 +Language=English +%1 +. +MessageId=24166 +Language=English +%1 +. +MessageId=24167 +Language=English +%1 +. +MessageId=24168 +Language=English +%1 +. +MessageId=24169 +Language=English +%1 +. +MessageId=24170 +Language=English +%1 +. +MessageId=24171 +Language=English +%1 +. +MessageId=24172 +Language=English +%1 +. +MessageId=24173 +Language=English +%1 +. +MessageId=24174 +Language=English +%1 +. +MessageId=24175 +Language=English +%1 +. +MessageId=24176 +Language=English +%1 +. +MessageId=24177 +Language=English +%1 +. +MessageId=24178 +Language=English +%1 +. +MessageId=24179 +Language=English +%1 +. +MessageId=24180 +Language=English +%1 +. +MessageId=24181 +Language=English +%1 +. +MessageId=24182 +Language=English +%1 +. +MessageId=24183 +Language=English +%1 +. +MessageId=24184 +Language=English +%1 +. +MessageId=24185 +Language=English +%1 +. +MessageId=24186 +Language=English +%1 +. +MessageId=24187 +Language=English +%1 +. +MessageId=24188 +Language=English +%1 +. +MessageId=24189 +Language=English +%1 +. +MessageId=24190 +Language=English +%1 +. +MessageId=24191 +Language=English +%1 +. +MessageId=24192 +Language=English +%1 +. +MessageId=24193 +Language=English +%1 +. +MessageId=24194 +Language=English +%1 +. +MessageId=24195 +Language=English +%1 +. +MessageId=24196 +Language=English +%1 +. +MessageId=24197 +Language=English +%1 +. +MessageId=24198 +Language=English +%1 +. +MessageId=24199 +Language=English +%1 +. +MessageId=24200 +Language=English +%1 +. +MessageId=24201 +Language=English +%1 +. +MessageId=24202 +Language=English +%1 +. +MessageId=24203 +Language=English +%1 +. +MessageId=24204 +Language=English +%1 +. +MessageId=24205 +Language=English +%1 +. +MessageId=24206 +Language=English +%1 +. +MessageId=24207 +Language=English +%1 +. +MessageId=24208 +Language=English +%1 +. +MessageId=24209 +Language=English +%1 +. +MessageId=24210 +Language=English +%1 +. +MessageId=24211 +Language=English +%1 +. +MessageId=24212 +Language=English +%1 +. +MessageId=24213 +Language=English +%1 +. +MessageId=24214 +Language=English +%1 +. +MessageId=24215 +Language=English +%1 +. +MessageId=24216 +Language=English +%1 +. +MessageId=24217 +Language=English +%1 +. +MessageId=24218 +Language=English +%1 +. +MessageId=24219 +Language=English +%1 +. +MessageId=24220 +Language=English +%1 +. +MessageId=24221 +Language=English +%1 +. +MessageId=24222 +Language=English +%1 +. +MessageId=24223 +Language=English +%1 +. +MessageId=24224 +Language=English +%1 +. +MessageId=24225 +Language=English +%1 +. +MessageId=24226 +Language=English +%1 +. +MessageId=24227 +Language=English +%1 +. +MessageId=24228 +Language=English +%1 +. +MessageId=24229 +Language=English +%1 +. +MessageId=24230 +Language=English +%1 +. +MessageId=24231 +Language=English +%1 +. +MessageId=24232 +Language=English +%1 +. +MessageId=24233 +Language=English +%1 +. +MessageId=24234 +Language=English +%1 +. +MessageId=24235 +Language=English +%1 +. +MessageId=24236 +Language=English +%1 +. +MessageId=24237 +Language=English +%1 +. +MessageId=24238 +Language=English +%1 +. +MessageId=24239 +Language=English +%1 +. +MessageId=24240 +Language=English +%1 +. +MessageId=24241 +Language=English +%1 +. +MessageId=24242 +Language=English +%1 +. +MessageId=24243 +Language=English +%1 +. +MessageId=24244 +Language=English +%1 +. +MessageId=24245 +Language=English +%1 +. +MessageId=24246 +Language=English +%1 +. +MessageId=24247 +Language=English +%1 +. +MessageId=24248 +Language=English +%1 +. +MessageId=24249 +Language=English +%1 +. +MessageId=24250 +Language=English +%1 +. +MessageId=24251 +Language=English +%1 +. +MessageId=24252 +Language=English +%1 +. +MessageId=24253 +Language=English +%1 +. +MessageId=24254 +Language=English +%1 +. +MessageId=24255 +Language=English +%1 +. +MessageId=24256 +Language=English +%1 +. +MessageId=24257 +Language=English +%1 +. +MessageId=24258 +Language=English +%1 +. +MessageId=24259 +Language=English +%1 +. +MessageId=24260 +Language=English +%1 +. +MessageId=24261 +Language=English +%1 +. +MessageId=24262 +Language=English +%1 +. +MessageId=24263 +Language=English +%1 +. +MessageId=24264 +Language=English +%1 +. +MessageId=24265 +Language=English +%1 +. +MessageId=24266 +Language=English +%1 +. +MessageId=24267 +Language=English +%1 +. +MessageId=24268 +Language=English +%1 +. +MessageId=24269 +Language=English +%1 +. +MessageId=24270 +Language=English +%1 +. +MessageId=24271 +Language=English +%1 +. +MessageId=24272 +Language=English +%1 +. +MessageId=24273 +Language=English +%1 +. +MessageId=24274 +Language=English +%1 +. +MessageId=24275 +Language=English +%1 +. +MessageId=24276 +Language=English +%1 +. +MessageId=24277 +Language=English +%1 +. +MessageId=24278 +Language=English +%1 +. +MessageId=24279 +Language=English +%1 +. +MessageId=24280 +Language=English +%1 +. +MessageId=24281 +Language=English +%1 +. +MessageId=24282 +Language=English +%1 +. +MessageId=24283 +Language=English +%1 +. +MessageId=24284 +Language=English +%1 +. +MessageId=24285 +Language=English +%1 +. +MessageId=24286 +Language=English +%1 +. +MessageId=24287 +Language=English +%1 +. +MessageId=24288 +Language=English +%1 +. +MessageId=24289 +Language=English +%1 +. +MessageId=24290 +Language=English +%1 +. +MessageId=24291 +Language=English +%1 +. +MessageId=24292 +Language=English +%1 +. +MessageId=24293 +Language=English +%1 +. +MessageId=24294 +Language=English +%1 +. +MessageId=24295 +Language=English +%1 +. +MessageId=24296 +Language=English +%1 +. +MessageId=24297 +Language=English +%1 +. +MessageId=24298 +Language=English +%1 +. +MessageId=24299 +Language=English +%1 +. +MessageId=24300 +Language=English +%1 +. +MessageId=24301 +Language=English +%1 +. +MessageId=24302 +Language=English +%1 +. +MessageId=24303 +Language=English +%1 +. +MessageId=24304 +Language=English +%1 +. +MessageId=24305 +Language=English +%1 +. +MessageId=24306 +Language=English +%1 +. +MessageId=24307 +Language=English +%1 +. +MessageId=24308 +Language=English +%1 +. +MessageId=24309 +Language=English +%1 +. +MessageId=24310 +Language=English +%1 +. +MessageId=24311 +Language=English +%1 +. +MessageId=24312 +Language=English +%1 +. +MessageId=24313 +Language=English +%1 +. +MessageId=24314 +Language=English +%1 +. +MessageId=24315 +Language=English +%1 +. +MessageId=24316 +Language=English +%1 +. +MessageId=24317 +Language=English +%1 +. +MessageId=24318 +Language=English +%1 +. +MessageId=24319 +Language=English +%1 +. +MessageId=24320 +Language=English +%1 +. +MessageId=24321 +Language=English +%1 +. +MessageId=24322 +Language=English +%1 +. +MessageId=24323 +Language=English +%1 +. +MessageId=24324 +Language=English +%1 +. +MessageId=24325 +Language=English +%1 +. +MessageId=24326 +Language=English +%1 +. +MessageId=24327 +Language=English +%1 +. +MessageId=24328 +Language=English +%1 +. +MessageId=24329 +Language=English +%1 +. +MessageId=24330 +Language=English +%1 +. +MessageId=24331 +Language=English +%1 +. +MessageId=24332 +Language=English +%1 +. +MessageId=24333 +Language=English +%1 +. +MessageId=24334 +Language=English +%1 +. +MessageId=24335 +Language=English +%1 +. +MessageId=24336 +Language=English +%1 +. +MessageId=24337 +Language=English +%1 +. +MessageId=24338 +Language=English +%1 +. +MessageId=24339 +Language=English +%1 +. +MessageId=24340 +Language=English +%1 +. +MessageId=24341 +Language=English +%1 +. +MessageId=24342 +Language=English +%1 +. +MessageId=24343 +Language=English +%1 +. +MessageId=24344 +Language=English +%1 +. +MessageId=24345 +Language=English +%1 +. +MessageId=24346 +Language=English +%1 +. +MessageId=24347 +Language=English +%1 +. +MessageId=24348 +Language=English +%1 +. +MessageId=24349 +Language=English +%1 +. +MessageId=24350 +Language=English +%1 +. +MessageId=24351 +Language=English +%1 +. +MessageId=24352 +Language=English +%1 +. +MessageId=24353 +Language=English +%1 +. +MessageId=24354 +Language=English +%1 +. +MessageId=24355 +Language=English +%1 +. +MessageId=24356 +Language=English +%1 +. +MessageId=24357 +Language=English +%1 +. +MessageId=24358 +Language=English +%1 +. +MessageId=24359 +Language=English +%1 +. +MessageId=24360 +Language=English +%1 +. +MessageId=24361 +Language=English +%1 +. +MessageId=24362 +Language=English +%1 +. +MessageId=24363 +Language=English +%1 +. +MessageId=24364 +Language=English +%1 +. +MessageId=24365 +Language=English +%1 +. +MessageId=24366 +Language=English +%1 +. +MessageId=24367 +Language=English +%1 +. +MessageId=24368 +Language=English +%1 +. +MessageId=24369 +Language=English +%1 +. +MessageId=24370 +Language=English +%1 +. +MessageId=24371 +Language=English +%1 +. +MessageId=24372 +Language=English +%1 +. +MessageId=24373 +Language=English +%1 +. +MessageId=24374 +Language=English +%1 +. +MessageId=24375 +Language=English +%1 +. +MessageId=24376 +Language=English +%1 +. +MessageId=24377 +Language=English +%1 +. +MessageId=24378 +Language=English +%1 +. +MessageId=24379 +Language=English +%1 +. +MessageId=24380 +Language=English +%1 +. +MessageId=24381 +Language=English +%1 +. +MessageId=24382 +Language=English +%1 +. +MessageId=24383 +Language=English +%1 +. +MessageId=24384 +Language=English +%1 +. +MessageId=24385 +Language=English +%1 +. +MessageId=24386 +Language=English +%1 +. +MessageId=24387 +Language=English +%1 +. +MessageId=24388 +Language=English +%1 +. +MessageId=24389 +Language=English +%1 +. +MessageId=24390 +Language=English +%1 +. +MessageId=24391 +Language=English +%1 +. +MessageId=24392 +Language=English +%1 +. +MessageId=24393 +Language=English +%1 +. +MessageId=24394 +Language=English +%1 +. +MessageId=24395 +Language=English +%1 +. +MessageId=24396 +Language=English +%1 +. +MessageId=24397 +Language=English +%1 +. +MessageId=24398 +Language=English +%1 +. +MessageId=24399 +Language=English +%1 +. +MessageId=24400 +Language=English +%1 +. +MessageId=24401 +Language=English +%1 +. +MessageId=24402 +Language=English +%1 +. +MessageId=24403 +Language=English +%1 +. +MessageId=24404 +Language=English +%1 +. +MessageId=24405 +Language=English +%1 +. +MessageId=24406 +Language=English +%1 +. +MessageId=24407 +Language=English +%1 +. +MessageId=24408 +Language=English +%1 +. +MessageId=24409 +Language=English +%1 +. +MessageId=24410 +Language=English +%1 +. +MessageId=24411 +Language=English +%1 +. +MessageId=24412 +Language=English +%1 +. +MessageId=24413 +Language=English +%1 +. +MessageId=24414 +Language=English +%1 +. +MessageId=24415 +Language=English +%1 +. +MessageId=24416 +Language=English +%1 +. +MessageId=24417 +Language=English +%1 +. +MessageId=24418 +Language=English +%1 +. +MessageId=24419 +Language=English +%1 +. +MessageId=24420 +Language=English +%1 +. +MessageId=24421 +Language=English +%1 +. +MessageId=24422 +Language=English +%1 +. +MessageId=24423 +Language=English +%1 +. +MessageId=24424 +Language=English +%1 +. +MessageId=24425 +Language=English +%1 +. +MessageId=24426 +Language=English +%1 +. +MessageId=24427 +Language=English +%1 +. +MessageId=24428 +Language=English +%1 +. +MessageId=24429 +Language=English +%1 +. +MessageId=24430 +Language=English +%1 +. +MessageId=24431 +Language=English +%1 +. +MessageId=24432 +Language=English +%1 +. +MessageId=24433 +Language=English +%1 +. +MessageId=24434 +Language=English +%1 +. +MessageId=24435 +Language=English +%1 +. +MessageId=24436 +Language=English +%1 +. +MessageId=24437 +Language=English +%1 +. +MessageId=24438 +Language=English +%1 +. +MessageId=24439 +Language=English +%1 +. +MessageId=24440 +Language=English +%1 +. +MessageId=24441 +Language=English +%1 +. +MessageId=24442 +Language=English +%1 +. +MessageId=24443 +Language=English +%1 +. +MessageId=24444 +Language=English +%1 +. +MessageId=24445 +Language=English +%1 +. +MessageId=24446 +Language=English +%1 +. +MessageId=24447 +Language=English +%1 +. +MessageId=24448 +Language=English +%1 +. +MessageId=24449 +Language=English +%1 +. +MessageId=24450 +Language=English +%1 +. +MessageId=24451 +Language=English +%1 +. +MessageId=24452 +Language=English +%1 +. +MessageId=24453 +Language=English +%1 +. +MessageId=24454 +Language=English +%1 +. +MessageId=24455 +Language=English +%1 +. +MessageId=24456 +Language=English +%1 +. +MessageId=24457 +Language=English +%1 +. +MessageId=24458 +Language=English +%1 +. +MessageId=24459 +Language=English +%1 +. +MessageId=24460 +Language=English +%1 +. +MessageId=24461 +Language=English +%1 +. +MessageId=24462 +Language=English +%1 +. +MessageId=24463 +Language=English +%1 +. +MessageId=24464 +Language=English +%1 +. +MessageId=24465 +Language=English +%1 +. +MessageId=24466 +Language=English +%1 +. +MessageId=24467 +Language=English +%1 +. +MessageId=24468 +Language=English +%1 +. +MessageId=24469 +Language=English +%1 +. +MessageId=24470 +Language=English +%1 +. +MessageId=24471 +Language=English +%1 +. +MessageId=24472 +Language=English +%1 +. +MessageId=24473 +Language=English +%1 +. +MessageId=24474 +Language=English +%1 +. +MessageId=24475 +Language=English +%1 +. +MessageId=24476 +Language=English +%1 +. +MessageId=24477 +Language=English +%1 +. +MessageId=24478 +Language=English +%1 +. +MessageId=24479 +Language=English +%1 +. +MessageId=24480 +Language=English +%1 +. +MessageId=24481 +Language=English +%1 +. +MessageId=24482 +Language=English +%1 +. +MessageId=24483 +Language=English +%1 +. +MessageId=24484 +Language=English +%1 +. +MessageId=24485 +Language=English +%1 +. +MessageId=24486 +Language=English +%1 +. +MessageId=24487 +Language=English +%1 +. +MessageId=24488 +Language=English +%1 +. +MessageId=24489 +Language=English +%1 +. +MessageId=24490 +Language=English +%1 +. +MessageId=24491 +Language=English +%1 +. +MessageId=24492 +Language=English +%1 +. +MessageId=24493 +Language=English +%1 +. +MessageId=24494 +Language=English +%1 +. +MessageId=24495 +Language=English +%1 +. +MessageId=24496 +Language=English +%1 +. +MessageId=24497 +Language=English +%1 +. +MessageId=24498 +Language=English +%1 +. +MessageId=24499 +Language=English +%1 +. +MessageId=24500 +Language=English +%1 +. +MessageId=24501 +Language=English +%1 +. +MessageId=24502 +Language=English +%1 +. +MessageId=24503 +Language=English +%1 +. +MessageId=24504 +Language=English +%1 +. +MessageId=24505 +Language=English +%1 +. +MessageId=24506 +Language=English +%1 +. +MessageId=24507 +Language=English +%1 +. +MessageId=24508 +Language=English +%1 +. +MessageId=24509 +Language=English +%1 +. +MessageId=24510 +Language=English +%1 +. +MessageId=24511 +Language=English +%1 +. +MessageId=24512 +Language=English +%1 +. +MessageId=24513 +Language=English +%1 +. +MessageId=24514 +Language=English +%1 +. +MessageId=24515 +Language=English +%1 +. +MessageId=24516 +Language=English +%1 +. +MessageId=24517 +Language=English +%1 +. +MessageId=24518 +Language=English +%1 +. +MessageId=24519 +Language=English +%1 +. +MessageId=24520 +Language=English +%1 +. +MessageId=24521 +Language=English +%1 +. +MessageId=24522 +Language=English +%1 +. +MessageId=24523 +Language=English +%1 +. +MessageId=24524 +Language=English +%1 +. +MessageId=24525 +Language=English +%1 +. +MessageId=24526 +Language=English +%1 +. +MessageId=24527 +Language=English +%1 +. +MessageId=24528 +Language=English +%1 +. +MessageId=24529 +Language=English +%1 +. +MessageId=24530 +Language=English +%1 +. +MessageId=24531 +Language=English +%1 +. +MessageId=24532 +Language=English +%1 +. +MessageId=24533 +Language=English +%1 +. +MessageId=24534 +Language=English +%1 +. +MessageId=24535 +Language=English +%1 +. +MessageId=24536 +Language=English +%1 +. +MessageId=24537 +Language=English +%1 +. +MessageId=24538 +Language=English +%1 +. +MessageId=24539 +Language=English +%1 +. +MessageId=24540 +Language=English +%1 +. +MessageId=24541 +Language=English +%1 +. +MessageId=24542 +Language=English +%1 +. +MessageId=24543 +Language=English +%1 +. +MessageId=24544 +Language=English +%1 +. +MessageId=24545 +Language=English +%1 +. +MessageId=24546 +Language=English +%1 +. +MessageId=24547 +Language=English +%1 +. +MessageId=24548 +Language=English +%1 +. +MessageId=24549 +Language=English +%1 +. +MessageId=24550 +Language=English +%1 +. +MessageId=24551 +Language=English +%1 +. +MessageId=24552 +Language=English +%1 +. +MessageId=24553 +Language=English +%1 +. +MessageId=24554 +Language=English +%1 +. +MessageId=24555 +Language=English +%1 +. +MessageId=24556 +Language=English +%1 +. +MessageId=24557 +Language=English +%1 +. +MessageId=24558 +Language=English +%1 +. +MessageId=24559 +Language=English +%1 +. +MessageId=24560 +Language=English +%1 +. +MessageId=24561 +Language=English +%1 +. +MessageId=24562 +Language=English +%1 +. +MessageId=24563 +Language=English +%1 +. +MessageId=24564 +Language=English +%1 +. +MessageId=24565 +Language=English +%1 +. +MessageId=24566 +Language=English +%1 +. +MessageId=24567 +Language=English +%1 +. +MessageId=24568 +Language=English +%1 +. +MessageId=24569 +Language=English +%1 +. +MessageId=24570 +Language=English +%1 +. +MessageId=24571 +Language=English +%1 +. +MessageId=24572 +Language=English +%1 +. +MessageId=24573 +Language=English +%1 +. +MessageId=24574 +Language=English +%1 +. +MessageId=24575 +Language=English +%1 +. +MessageId=24576 +Language=English +%1 +. +MessageId=24577 +Language=English +%1 +. +MessageId=24578 +Language=English +%1 +. +MessageId=24579 +Language=English +%1 +. +MessageId=24580 +Language=English +%1 +. +MessageId=24581 +Language=English +%1 +. +MessageId=24582 +Language=English +%1 +. +MessageId=24583 +Language=English +%1 +. +MessageId=24584 +Language=English +%1 +. +MessageId=24585 +Language=English +%1 +. +MessageId=24586 +Language=English +%1 +. +MessageId=24587 +Language=English +%1 +. +MessageId=24588 +Language=English +%1 +. +MessageId=24589 +Language=English +%1 +. +MessageId=24590 +Language=English +%1 +. +MessageId=24591 +Language=English +%1 +. +MessageId=24592 +Language=English +%1 +. +MessageId=24593 +Language=English +%1 +. +MessageId=24594 +Language=English +%1 +. +MessageId=24595 +Language=English +%1 +. +MessageId=24596 +Language=English +%1 +. +MessageId=24597 +Language=English +%1 +. +MessageId=24598 +Language=English +%1 +. +MessageId=24599 +Language=English +%1 +. +MessageId=24600 +Language=English +%1 +. +MessageId=24601 +Language=English +%1 +. +MessageId=24602 +Language=English +%1 +. +MessageId=24603 +Language=English +%1 +. +MessageId=24604 +Language=English +%1 +. +MessageId=24605 +Language=English +%1 +. +MessageId=24606 +Language=English +%1 +. +MessageId=24607 +Language=English +%1 +. +MessageId=24608 +Language=English +%1 +. +MessageId=24609 +Language=English +%1 +. +MessageId=24610 +Language=English +%1 +. +MessageId=24611 +Language=English +%1 +. +MessageId=24612 +Language=English +%1 +. +MessageId=24613 +Language=English +%1 +. +MessageId=24614 +Language=English +%1 +. +MessageId=24615 +Language=English +%1 +. +MessageId=24616 +Language=English +%1 +. +MessageId=24617 +Language=English +%1 +. +MessageId=24618 +Language=English +%1 +. +MessageId=24619 +Language=English +%1 +. +MessageId=24620 +Language=English +%1 +. +MessageId=24621 +Language=English +%1 +. +MessageId=24622 +Language=English +%1 +. +MessageId=24623 +Language=English +%1 +. +MessageId=24624 +Language=English +%1 +. +MessageId=24625 +Language=English +%1 +. +MessageId=24626 +Language=English +%1 +. +MessageId=24627 +Language=English +%1 +. +MessageId=24628 +Language=English +%1 +. +MessageId=24629 +Language=English +%1 +. +MessageId=24630 +Language=English +%1 +. +MessageId=24631 +Language=English +%1 +. +MessageId=24632 +Language=English +%1 +. +MessageId=24633 +Language=English +%1 +. +MessageId=24634 +Language=English +%1 +. +MessageId=24635 +Language=English +%1 +. +MessageId=24636 +Language=English +%1 +. +MessageId=24637 +Language=English +%1 +. +MessageId=24638 +Language=English +%1 +. +MessageId=24639 +Language=English +%1 +. +MessageId=24640 +Language=English +%1 +. +MessageId=24641 +Language=English +%1 +. +MessageId=24642 +Language=English +%1 +. +MessageId=24643 +Language=English +%1 +. +MessageId=24644 +Language=English +%1 +. +MessageId=24645 +Language=English +%1 +. +MessageId=24646 +Language=English +%1 +. +MessageId=24647 +Language=English +%1 +. +MessageId=24648 +Language=English +%1 +. +MessageId=24649 +Language=English +%1 +. +MessageId=24650 +Language=English +%1 +. +MessageId=24651 +Language=English +%1 +. +MessageId=24652 +Language=English +%1 +. +MessageId=24653 +Language=English +%1 +. +MessageId=24654 +Language=English +%1 +. +MessageId=24655 +Language=English +%1 +. +MessageId=24656 +Language=English +%1 +. +MessageId=24657 +Language=English +%1 +. +MessageId=24658 +Language=English +%1 +. +MessageId=24659 +Language=English +%1 +. +MessageId=24660 +Language=English +%1 +. +MessageId=24661 +Language=English +%1 +. +MessageId=24662 +Language=English +%1 +. +MessageId=24663 +Language=English +%1 +. +MessageId=24664 +Language=English +%1 +. +MessageId=24665 +Language=English +%1 +. +MessageId=24666 +Language=English +%1 +. +MessageId=24667 +Language=English +%1 +. +MessageId=24668 +Language=English +%1 +. +MessageId=24669 +Language=English +%1 +. +MessageId=24670 +Language=English +%1 +. +MessageId=24671 +Language=English +%1 +. +MessageId=24672 +Language=English +%1 +. +MessageId=24673 +Language=English +%1 +. +MessageId=24674 +Language=English +%1 +. +MessageId=24675 +Language=English +%1 +. +MessageId=24676 +Language=English +%1 +. +MessageId=24677 +Language=English +%1 +. +MessageId=24678 +Language=English +%1 +. +MessageId=24679 +Language=English +%1 +. +MessageId=24680 +Language=English +%1 +. +MessageId=24681 +Language=English +%1 +. +MessageId=24682 +Language=English +%1 +. +MessageId=24683 +Language=English +%1 +. +MessageId=24684 +Language=English +%1 +. +MessageId=24685 +Language=English +%1 +. +MessageId=24686 +Language=English +%1 +. +MessageId=24687 +Language=English +%1 +. +MessageId=24688 +Language=English +%1 +. +MessageId=24689 +Language=English +%1 +. +MessageId=24690 +Language=English +%1 +. +MessageId=24691 +Language=English +%1 +. +MessageId=24692 +Language=English +%1 +. +MessageId=24693 +Language=English +%1 +. +MessageId=24694 +Language=English +%1 +. +MessageId=24695 +Language=English +%1 +. +MessageId=24696 +Language=English +%1 +. +MessageId=24697 +Language=English +%1 +. +MessageId=24698 +Language=English +%1 +. +MessageId=24699 +Language=English +%1 +. +MessageId=24700 +Language=English +%1 +. +MessageId=24701 +Language=English +%1 +. +MessageId=24702 +Language=English +%1 +. +MessageId=24703 +Language=English +%1 +. +MessageId=24704 +Language=English +%1 +. +MessageId=24705 +Language=English +%1 +. +MessageId=24706 +Language=English +%1 +. +MessageId=24707 +Language=English +%1 +. +MessageId=24708 +Language=English +%1 +. +MessageId=24709 +Language=English +%1 +. +MessageId=24710 +Language=English +%1 +. +MessageId=24711 +Language=English +%1 +. +MessageId=24712 +Language=English +%1 +. +MessageId=24713 +Language=English +%1 +. +MessageId=24714 +Language=English +%1 +. +MessageId=24715 +Language=English +%1 +. +MessageId=24716 +Language=English +%1 +. +MessageId=24717 +Language=English +%1 +. +MessageId=24718 +Language=English +%1 +. +MessageId=24719 +Language=English +%1 +. +MessageId=24720 +Language=English +%1 +. +MessageId=24721 +Language=English +%1 +. +MessageId=24722 +Language=English +%1 +. +MessageId=24723 +Language=English +%1 +. +MessageId=24724 +Language=English +%1 +. +MessageId=24725 +Language=English +%1 +. +MessageId=24726 +Language=English +%1 +. +MessageId=24727 +Language=English +%1 +. +MessageId=24728 +Language=English +%1 +. +MessageId=24729 +Language=English +%1 +. +MessageId=24730 +Language=English +%1 +. +MessageId=24731 +Language=English +%1 +. +MessageId=24732 +Language=English +%1 +. +MessageId=24733 +Language=English +%1 +. +MessageId=24734 +Language=English +%1 +. +MessageId=24735 +Language=English +%1 +. +MessageId=24736 +Language=English +%1 +. +MessageId=24737 +Language=English +%1 +. +MessageId=24738 +Language=English +%1 +. +MessageId=24739 +Language=English +%1 +. +MessageId=24740 +Language=English +%1 +. +MessageId=24741 +Language=English +%1 +. +MessageId=24742 +Language=English +%1 +. +MessageId=24743 +Language=English +%1 +. +MessageId=24744 +Language=English +%1 +. +MessageId=24745 +Language=English +%1 +. +MessageId=24746 +Language=English +%1 +. +MessageId=24747 +Language=English +%1 +. +MessageId=24748 +Language=English +%1 +. +MessageId=24749 +Language=English +%1 +. +MessageId=24750 +Language=English +%1 +. +MessageId=24751 +Language=English +%1 +. +MessageId=24752 +Language=English +%1 +. +MessageId=24753 +Language=English +%1 +. +MessageId=24754 +Language=English +%1 +. +MessageId=24755 +Language=English +%1 +. +MessageId=24756 +Language=English +%1 +. +MessageId=24757 +Language=English +%1 +. +MessageId=24758 +Language=English +%1 +. +MessageId=24759 +Language=English +%1 +. +MessageId=24760 +Language=English +%1 +. +MessageId=24761 +Language=English +%1 +. +MessageId=24762 +Language=English +%1 +. +MessageId=24763 +Language=English +%1 +. +MessageId=24764 +Language=English +%1 +. +MessageId=24765 +Language=English +%1 +. +MessageId=24766 +Language=English +%1 +. +MessageId=24767 +Language=English +%1 +. +MessageId=24768 +Language=English +%1 +. +MessageId=24769 +Language=English +%1 +. +MessageId=24770 +Language=English +%1 +. +MessageId=24771 +Language=English +%1 +. +MessageId=24772 +Language=English +%1 +. +MessageId=24773 +Language=English +%1 +. +MessageId=24774 +Language=English +%1 +. +MessageId=24775 +Language=English +%1 +. +MessageId=24776 +Language=English +%1 +. +MessageId=24777 +Language=English +%1 +. +MessageId=24778 +Language=English +%1 +. +MessageId=24779 +Language=English +%1 +. +MessageId=24780 +Language=English +%1 +. +MessageId=24781 +Language=English +%1 +. +MessageId=24782 +Language=English +%1 +. +MessageId=24783 +Language=English +%1 +. +MessageId=24784 +Language=English +%1 +. +MessageId=24785 +Language=English +%1 +. +MessageId=24786 +Language=English +%1 +. +MessageId=24787 +Language=English +%1 +. +MessageId=24788 +Language=English +%1 +. +MessageId=24789 +Language=English +%1 +. +MessageId=24790 +Language=English +%1 +. +MessageId=24791 +Language=English +%1 +. +MessageId=24792 +Language=English +%1 +. +MessageId=24793 +Language=English +%1 +. +MessageId=24794 +Language=English +%1 +. +MessageId=24795 +Language=English +%1 +. +MessageId=24796 +Language=English +%1 +. +MessageId=24797 +Language=English +%1 +. +MessageId=24798 +Language=English +%1 +. +MessageId=24799 +Language=English +%1 +. +MessageId=24800 +Language=English +%1 +. +MessageId=24801 +Language=English +%1 +. +MessageId=24802 +Language=English +%1 +. +MessageId=24803 +Language=English +%1 +. +MessageId=24804 +Language=English +%1 +. +MessageId=24805 +Language=English +%1 +. +MessageId=24806 +Language=English +%1 +. +MessageId=24807 +Language=English +%1 +. +MessageId=24808 +Language=English +%1 +. +MessageId=24809 +Language=English +%1 +. +MessageId=24810 +Language=English +%1 +. +MessageId=24811 +Language=English +%1 +. +MessageId=24812 +Language=English +%1 +. +MessageId=24813 +Language=English +%1 +. +MessageId=24814 +Language=English +%1 +. +MessageId=24815 +Language=English +%1 +. +MessageId=24816 +Language=English +%1 +. +MessageId=24817 +Language=English +%1 +. +MessageId=24818 +Language=English +%1 +. +MessageId=24819 +Language=English +%1 +. +MessageId=24820 +Language=English +%1 +. +MessageId=24821 +Language=English +%1 +. +MessageId=24822 +Language=English +%1 +. +MessageId=24823 +Language=English +%1 +. +MessageId=24824 +Language=English +%1 +. +MessageId=24825 +Language=English +%1 +. +MessageId=24826 +Language=English +%1 +. +MessageId=24827 +Language=English +%1 +. +MessageId=24828 +Language=English +%1 +. +MessageId=24829 +Language=English +%1 +. +MessageId=24830 +Language=English +%1 +. +MessageId=24831 +Language=English +%1 +. +MessageId=24832 +Language=English +%1 +. +MessageId=24833 +Language=English +%1 +. +MessageId=24834 +Language=English +%1 +. +MessageId=24835 +Language=English +%1 +. +MessageId=24836 +Language=English +%1 +. +MessageId=24837 +Language=English +%1 +. +MessageId=24838 +Language=English +%1 +. +MessageId=24839 +Language=English +%1 +. +MessageId=24840 +Language=English +%1 +. +MessageId=24841 +Language=English +%1 +. +MessageId=24842 +Language=English +%1 +. +MessageId=24843 +Language=English +%1 +. +MessageId=24844 +Language=English +%1 +. +MessageId=24845 +Language=English +%1 +. +MessageId=24846 +Language=English +%1 +. +MessageId=24847 +Language=English +%1 +. +MessageId=24848 +Language=English +%1 +. +MessageId=24849 +Language=English +%1 +. +MessageId=24850 +Language=English +%1 +. +MessageId=24851 +Language=English +%1 +. +MessageId=24852 +Language=English +%1 +. +MessageId=24853 +Language=English +%1 +. +MessageId=24854 +Language=English +%1 +. +MessageId=24855 +Language=English +%1 +. +MessageId=24856 +Language=English +%1 +. +MessageId=24857 +Language=English +%1 +. +MessageId=24858 +Language=English +%1 +. +MessageId=24859 +Language=English +%1 +. +MessageId=24860 +Language=English +%1 +. +MessageId=24861 +Language=English +%1 +. +MessageId=24862 +Language=English +%1 +. +MessageId=24863 +Language=English +%1 +. +MessageId=24864 +Language=English +%1 +. +MessageId=24865 +Language=English +%1 +. +MessageId=24866 +Language=English +%1 +. +MessageId=24867 +Language=English +%1 +. +MessageId=24868 +Language=English +%1 +. +MessageId=24869 +Language=English +%1 +. +MessageId=24870 +Language=English +%1 +. +MessageId=24871 +Language=English +%1 +. +MessageId=24872 +Language=English +%1 +. +MessageId=24873 +Language=English +%1 +. +MessageId=24874 +Language=English +%1 +. +MessageId=24875 +Language=English +%1 +. +MessageId=24876 +Language=English +%1 +. +MessageId=24877 +Language=English +%1 +. +MessageId=24878 +Language=English +%1 +. +MessageId=24879 +Language=English +%1 +. +MessageId=24880 +Language=English +%1 +. +MessageId=24881 +Language=English +%1 +. +MessageId=24882 +Language=English +%1 +. +MessageId=24883 +Language=English +%1 +. +MessageId=24884 +Language=English +%1 +. +MessageId=24885 +Language=English +%1 +. +MessageId=24886 +Language=English +%1 +. +MessageId=24887 +Language=English +%1 +. +MessageId=24888 +Language=English +%1 +. +MessageId=24889 +Language=English +%1 +. +MessageId=24890 +Language=English +%1 +. +MessageId=24891 +Language=English +%1 +. +MessageId=24892 +Language=English +%1 +. +MessageId=24893 +Language=English +%1 +. +MessageId=24894 +Language=English +%1 +. +MessageId=24895 +Language=English +%1 +. +MessageId=24896 +Language=English +%1 +. +MessageId=24897 +Language=English +%1 +. +MessageId=24898 +Language=English +%1 +. +MessageId=24899 +Language=English +%1 +. +MessageId=24900 +Language=English +%1 +. +MessageId=24901 +Language=English +%1 +. +MessageId=24902 +Language=English +%1 +. +MessageId=24903 +Language=English +%1 +. +MessageId=24904 +Language=English +%1 +. +MessageId=24905 +Language=English +%1 +. +MessageId=24906 +Language=English +%1 +. +MessageId=24907 +Language=English +%1 +. +MessageId=24908 +Language=English +%1 +. +MessageId=24909 +Language=English +%1 +. +MessageId=24910 +Language=English +%1 +. +MessageId=24911 +Language=English +%1 +. +MessageId=24912 +Language=English +%1 +. +MessageId=24913 +Language=English +%1 +. +MessageId=24914 +Language=English +%1 +. +MessageId=24915 +Language=English +%1 +. +MessageId=24916 +Language=English +%1 +. +MessageId=24917 +Language=English +%1 +. +MessageId=24918 +Language=English +%1 +. +MessageId=24919 +Language=English +%1 +. +MessageId=24920 +Language=English +%1 +. +MessageId=24921 +Language=English +%1 +. +MessageId=24922 +Language=English +%1 +. +MessageId=24923 +Language=English +%1 +. +MessageId=24924 +Language=English +%1 +. +MessageId=24925 +Language=English +%1 +. +MessageId=24926 +Language=English +%1 +. +MessageId=24927 +Language=English +%1 +. +MessageId=24928 +Language=English +%1 +. +MessageId=24929 +Language=English +%1 +. +MessageId=24930 +Language=English +%1 +. +MessageId=24931 +Language=English +%1 +. +MessageId=24932 +Language=English +%1 +. +MessageId=24933 +Language=English +%1 +. +MessageId=24934 +Language=English +%1 +. +MessageId=24935 +Language=English +%1 +. +MessageId=24936 +Language=English +%1 +. +MessageId=24937 +Language=English +%1 +. +MessageId=24938 +Language=English +%1 +. +MessageId=24939 +Language=English +%1 +. +MessageId=24940 +Language=English +%1 +. +MessageId=24941 +Language=English +%1 +. +MessageId=24942 +Language=English +%1 +. +MessageId=24943 +Language=English +%1 +. +MessageId=24944 +Language=English +%1 +. +MessageId=24945 +Language=English +%1 +. +MessageId=24946 +Language=English +%1 +. +MessageId=24947 +Language=English +%1 +. +MessageId=24948 +Language=English +%1 +. +MessageId=24949 +Language=English +%1 +. +MessageId=24950 +Language=English +%1 +. +MessageId=24951 +Language=English +%1 +. +MessageId=24952 +Language=English +%1 +. +MessageId=24953 +Language=English +%1 +. +MessageId=24954 +Language=English +%1 +. +MessageId=24955 +Language=English +%1 +. +MessageId=24956 +Language=English +%1 +. +MessageId=24957 +Language=English +%1 +. +MessageId=24958 +Language=English +%1 +. +MessageId=24959 +Language=English +%1 +. +MessageId=24960 +Language=English +%1 +. +MessageId=24961 +Language=English +%1 +. +MessageId=24962 +Language=English +%1 +. +MessageId=24963 +Language=English +%1 +. +MessageId=24964 +Language=English +%1 +. +MessageId=24965 +Language=English +%1 +. +MessageId=24966 +Language=English +%1 +. +MessageId=24967 +Language=English +%1 +. +MessageId=24968 +Language=English +%1 +. +MessageId=24969 +Language=English +%1 +. +MessageId=24970 +Language=English +%1 +. +MessageId=24971 +Language=English +%1 +. +MessageId=24972 +Language=English +%1 +. +MessageId=24973 +Language=English +%1 +. +MessageId=24974 +Language=English +%1 +. +MessageId=24975 +Language=English +%1 +. +MessageId=24976 +Language=English +%1 +. +MessageId=24977 +Language=English +%1 +. +MessageId=24978 +Language=English +%1 +. +MessageId=24979 +Language=English +%1 +. +MessageId=24980 +Language=English +%1 +. +MessageId=24981 +Language=English +%1 +. +MessageId=24982 +Language=English +%1 +. +MessageId=24983 +Language=English +%1 +. +MessageId=24984 +Language=English +%1 +. +MessageId=24985 +Language=English +%1 +. +MessageId=24986 +Language=English +%1 +. +MessageId=24987 +Language=English +%1 +. +MessageId=24988 +Language=English +%1 +. +MessageId=24989 +Language=English +%1 +. +MessageId=24990 +Language=English +%1 +. +MessageId=24991 +Language=English +%1 +. +MessageId=24992 +Language=English +%1 +. +MessageId=24993 +Language=English +%1 +. +MessageId=24994 +Language=English +%1 +. +MessageId=24995 +Language=English +%1 +. +MessageId=24996 +Language=English +%1 +. +MessageId=24997 +Language=English +%1 +. +MessageId=24998 +Language=English +%1 +. +MessageId=24999 +Language=English +%1 +. +MessageId=25000 +Language=English +%1 +. +MessageId=25001 +Language=English +%1 +. +MessageId=25002 +Language=English +%1 +. +MessageId=25003 +Language=English +%1 +. +MessageId=25004 +Language=English +%1 +. +MessageId=25005 +Language=English +%1 +. +MessageId=25006 +Language=English +%1 +. +MessageId=25007 +Language=English +%1 +. +MessageId=25008 +Language=English +%1 +. +MessageId=25009 +Language=English +%1 +. +MessageId=25010 +Language=English +%1 +. +MessageId=25011 +Language=English +%1 +. +MessageId=25012 +Language=English +%1 +. +MessageId=25013 +Language=English +%1 +. +MessageId=25014 +Language=English +%1 +. +MessageId=25015 +Language=English +%1 +. +MessageId=25016 +Language=English +%1 +. +MessageId=25017 +Language=English +%1 +. +MessageId=25018 +Language=English +%1 +. +MessageId=25019 +Language=English +%1 +. +MessageId=25020 +Language=English +%1 +. +MessageId=25021 +Language=English +%1 +. +MessageId=25022 +Language=English +%1 +. +MessageId=25023 +Language=English +%1 +. +MessageId=25024 +Language=English +%1 +. +MessageId=25025 +Language=English +%1 +. +MessageId=25026 +Language=English +%1 +. +MessageId=25027 +Language=English +%1 +. +MessageId=25028 +Language=English +%1 +. +MessageId=25029 +Language=English +%1 +. +MessageId=25030 +Language=English +%1 +. +MessageId=25031 +Language=English +%1 +. +MessageId=25032 +Language=English +%1 +. +MessageId=25033 +Language=English +%1 +. +MessageId=25034 +Language=English +%1 +. +MessageId=25035 +Language=English +%1 +. +MessageId=25036 +Language=English +%1 +. +MessageId=25037 +Language=English +%1 +. +MessageId=25038 +Language=English +%1 +. +MessageId=25039 +Language=English +%1 +. +MessageId=25040 +Language=English +%1 +. +MessageId=25041 +Language=English +%1 +. +MessageId=25042 +Language=English +%1 +. +MessageId=25043 +Language=English +%1 +. +MessageId=25044 +Language=English +%1 +. +MessageId=25045 +Language=English +%1 +. +MessageId=25046 +Language=English +%1 +. +MessageId=25047 +Language=English +%1 +. +MessageId=25048 +Language=English +%1 +. +MessageId=25049 +Language=English +%1 +. +MessageId=25050 +Language=English +%1 +. +MessageId=25051 +Language=English +%1 +. +MessageId=25052 +Language=English +%1 +. +MessageId=25053 +Language=English +%1 +. +MessageId=25054 +Language=English +%1 +. +MessageId=25055 +Language=English +%1 +. +MessageId=25056 +Language=English +%1 +. +MessageId=25057 +Language=English +%1 +. +MessageId=25058 +Language=English +%1 +. +MessageId=25059 +Language=English +%1 +. +MessageId=25060 +Language=English +%1 +. +MessageId=25061 +Language=English +%1 +. +MessageId=25062 +Language=English +%1 +. +MessageId=25063 +Language=English +%1 +. +MessageId=25064 +Language=English +%1 +. +MessageId=25065 +Language=English +%1 +. +MessageId=25066 +Language=English +%1 +. +MessageId=25067 +Language=English +%1 +. +MessageId=25068 +Language=English +%1 +. +MessageId=25069 +Language=English +%1 +. +MessageId=25070 +Language=English +%1 +. +MessageId=25071 +Language=English +%1 +. +MessageId=25072 +Language=English +%1 +. +MessageId=25073 +Language=English +%1 +. +MessageId=25074 +Language=English +%1 +. +MessageId=25075 +Language=English +%1 +. +MessageId=25076 +Language=English +%1 +. +MessageId=25077 +Language=English +%1 +. +MessageId=25078 +Language=English +%1 +. +MessageId=25079 +Language=English +%1 +. +MessageId=25080 +Language=English +%1 +. +MessageId=25081 +Language=English +%1 +. +MessageId=25082 +Language=English +%1 +. +MessageId=25083 +Language=English +%1 +. +MessageId=25084 +Language=English +%1 +. +MessageId=25085 +Language=English +%1 +. +MessageId=25086 +Language=English +%1 +. +MessageId=25087 +Language=English +%1 +. +MessageId=25088 +Language=English +%1 +. +MessageId=25089 +Language=English +%1 +. +MessageId=25090 +Language=English +%1 +. +MessageId=25091 +Language=English +%1 +. +MessageId=25092 +Language=English +%1 +. +MessageId=25093 +Language=English +%1 +. +MessageId=25094 +Language=English +%1 +. +MessageId=25095 +Language=English +%1 +. +MessageId=25096 +Language=English +%1 +. +MessageId=25097 +Language=English +%1 +. +MessageId=25098 +Language=English +%1 +. +MessageId=25099 +Language=English +%1 +. +MessageId=25100 +Language=English +%1 +. +MessageId=25101 +Language=English +%1 +. +MessageId=25102 +Language=English +%1 +. +MessageId=25103 +Language=English +%1 +. +MessageId=25104 +Language=English +%1 +. +MessageId=25105 +Language=English +%1 +. +MessageId=25106 +Language=English +%1 +. +MessageId=25107 +Language=English +%1 +. +MessageId=25108 +Language=English +%1 +. +MessageId=25109 +Language=English +%1 +. +MessageId=25110 +Language=English +%1 +. +MessageId=25111 +Language=English +%1 +. +MessageId=25112 +Language=English +%1 +. +MessageId=25113 +Language=English +%1 +. +MessageId=25114 +Language=English +%1 +. +MessageId=25115 +Language=English +%1 +. +MessageId=25116 +Language=English +%1 +. +MessageId=25117 +Language=English +%1 +. +MessageId=25118 +Language=English +%1 +. +MessageId=25119 +Language=English +%1 +. +MessageId=25120 +Language=English +%1 +. +MessageId=25121 +Language=English +%1 +. +MessageId=25122 +Language=English +%1 +. +MessageId=25123 +Language=English +%1 +. +MessageId=25124 +Language=English +%1 +. +MessageId=25125 +Language=English +%1 +. +MessageId=25126 +Language=English +%1 +. +MessageId=25127 +Language=English +%1 +. +MessageId=25128 +Language=English +%1 +. +MessageId=25129 +Language=English +%1 +. +MessageId=25130 +Language=English +%1 +. +MessageId=25131 +Language=English +%1 +. +MessageId=25132 +Language=English +%1 +. +MessageId=25133 +Language=English +%1 +. +MessageId=25134 +Language=English +%1 +. +MessageId=25135 +Language=English +%1 +. +MessageId=25136 +Language=English +%1 +. +MessageId=25137 +Language=English +%1 +. +MessageId=25138 +Language=English +%1 +. +MessageId=25139 +Language=English +%1 +. +MessageId=25140 +Language=English +%1 +. +MessageId=25141 +Language=English +%1 +. +MessageId=25142 +Language=English +%1 +. +MessageId=25143 +Language=English +%1 +. +MessageId=25144 +Language=English +%1 +. +MessageId=25145 +Language=English +%1 +. +MessageId=25146 +Language=English +%1 +. +MessageId=25147 +Language=English +%1 +. +MessageId=25148 +Language=English +%1 +. +MessageId=25149 +Language=English +%1 +. +MessageId=25150 +Language=English +%1 +. +MessageId=25151 +Language=English +%1 +. +MessageId=25152 +Language=English +%1 +. +MessageId=25153 +Language=English +%1 +. +MessageId=25154 +Language=English +%1 +. +MessageId=25155 +Language=English +%1 +. +MessageId=25156 +Language=English +%1 +. +MessageId=25157 +Language=English +%1 +. +MessageId=25158 +Language=English +%1 +. +MessageId=25159 +Language=English +%1 +. +MessageId=25160 +Language=English +%1 +. +MessageId=25161 +Language=English +%1 +. +MessageId=25162 +Language=English +%1 +. +MessageId=25163 +Language=English +%1 +. +MessageId=25164 +Language=English +%1 +. +MessageId=25165 +Language=English +%1 +. +MessageId=25166 +Language=English +%1 +. +MessageId=25167 +Language=English +%1 +. +MessageId=25168 +Language=English +%1 +. +MessageId=25169 +Language=English +%1 +. +MessageId=25170 +Language=English +%1 +. +MessageId=25171 +Language=English +%1 +. +MessageId=25172 +Language=English +%1 +. +MessageId=25173 +Language=English +%1 +. +MessageId=25174 +Language=English +%1 +. +MessageId=25175 +Language=English +%1 +. +MessageId=25176 +Language=English +%1 +. +MessageId=25177 +Language=English +%1 +. +MessageId=25178 +Language=English +%1 +. +MessageId=25179 +Language=English +%1 +. +MessageId=25180 +Language=English +%1 +. +MessageId=25181 +Language=English +%1 +. +MessageId=25182 +Language=English +%1 +. +MessageId=25183 +Language=English +%1 +. +MessageId=25184 +Language=English +%1 +. +MessageId=25185 +Language=English +%1 +. +MessageId=25186 +Language=English +%1 +. +MessageId=25187 +Language=English +%1 +. +MessageId=25188 +Language=English +%1 +. +MessageId=25189 +Language=English +%1 +. +MessageId=25190 +Language=English +%1 +. +MessageId=25191 +Language=English +%1 +. +MessageId=25192 +Language=English +%1 +. +MessageId=25193 +Language=English +%1 +. +MessageId=25194 +Language=English +%1 +. +MessageId=25195 +Language=English +%1 +. +MessageId=25196 +Language=English +%1 +. +MessageId=25197 +Language=English +%1 +. +MessageId=25198 +Language=English +%1 +. +MessageId=25199 +Language=English +%1 +. +MessageId=25200 +Language=English +%1 +. +MessageId=25201 +Language=English +%1 +. +MessageId=25202 +Language=English +%1 +. +MessageId=25203 +Language=English +%1 +. +MessageId=25204 +Language=English +%1 +. +MessageId=25205 +Language=English +%1 +. +MessageId=25206 +Language=English +%1 +. +MessageId=25207 +Language=English +%1 +. +MessageId=25208 +Language=English +%1 +. +MessageId=25209 +Language=English +%1 +. +MessageId=25210 +Language=English +%1 +. +MessageId=25211 +Language=English +%1 +. +MessageId=25212 +Language=English +%1 +. +MessageId=25213 +Language=English +%1 +. +MessageId=25214 +Language=English +%1 +. +MessageId=25215 +Language=English +%1 +. +MessageId=25216 +Language=English +%1 +. +MessageId=25217 +Language=English +%1 +. +MessageId=25218 +Language=English +%1 +. +MessageId=25219 +Language=English +%1 +. +MessageId=25220 +Language=English +%1 +. +MessageId=25221 +Language=English +%1 +. +MessageId=25222 +Language=English +%1 +. +MessageId=25223 +Language=English +%1 +. +MessageId=25224 +Language=English +%1 +. +MessageId=25225 +Language=English +%1 +. +MessageId=25226 +Language=English +%1 +. +MessageId=25227 +Language=English +%1 +. +MessageId=25228 +Language=English +%1 +. +MessageId=25229 +Language=English +%1 +. +MessageId=25230 +Language=English +%1 +. +MessageId=25231 +Language=English +%1 +. +MessageId=25232 +Language=English +%1 +. +MessageId=25233 +Language=English +%1 +. +MessageId=25234 +Language=English +%1 +. +MessageId=25235 +Language=English +%1 +. +MessageId=25236 +Language=English +%1 +. +MessageId=25237 +Language=English +%1 +. +MessageId=25238 +Language=English +%1 +. +MessageId=25239 +Language=English +%1 +. +MessageId=25240 +Language=English +%1 +. +MessageId=25241 +Language=English +%1 +. +MessageId=25242 +Language=English +%1 +. +MessageId=25243 +Language=English +%1 +. +MessageId=25244 +Language=English +%1 +. +MessageId=25245 +Language=English +%1 +. +MessageId=25246 +Language=English +%1 +. +MessageId=25247 +Language=English +%1 +. +MessageId=25248 +Language=English +%1 +. +MessageId=25249 +Language=English +%1 +. +MessageId=25250 +Language=English +%1 +. +MessageId=25251 +Language=English +%1 +. +MessageId=25252 +Language=English +%1 +. +MessageId=25253 +Language=English +%1 +. +MessageId=25254 +Language=English +%1 +. +MessageId=25255 +Language=English +%1 +. +MessageId=25256 +Language=English +%1 +. +MessageId=25257 +Language=English +%1 +. +MessageId=25258 +Language=English +%1 +. +MessageId=25259 +Language=English +%1 +. +MessageId=25260 +Language=English +%1 +. +MessageId=25261 +Language=English +%1 +. +MessageId=25262 +Language=English +%1 +. +MessageId=25263 +Language=English +%1 +. +MessageId=25264 +Language=English +%1 +. +MessageId=25265 +Language=English +%1 +. +MessageId=25266 +Language=English +%1 +. +MessageId=25267 +Language=English +%1 +. +MessageId=25268 +Language=English +%1 +. +MessageId=25269 +Language=English +%1 +. +MessageId=25270 +Language=English +%1 +. +MessageId=25271 +Language=English +%1 +. +MessageId=25272 +Language=English +%1 +. +MessageId=25273 +Language=English +%1 +. +MessageId=25274 +Language=English +%1 +. +MessageId=25275 +Language=English +%1 +. +MessageId=25276 +Language=English +%1 +. +MessageId=25277 +Language=English +%1 +. +MessageId=25278 +Language=English +%1 +. +MessageId=25279 +Language=English +%1 +. +MessageId=25280 +Language=English +%1 +. +MessageId=25281 +Language=English +%1 +. +MessageId=25282 +Language=English +%1 +. +MessageId=25283 +Language=English +%1 +. +MessageId=25284 +Language=English +%1 +. +MessageId=25285 +Language=English +%1 +. +MessageId=25286 +Language=English +%1 +. +MessageId=25287 +Language=English +%1 +. +MessageId=25288 +Language=English +%1 +. +MessageId=25289 +Language=English +%1 +. +MessageId=25290 +Language=English +%1 +. +MessageId=25291 +Language=English +%1 +. +MessageId=25292 +Language=English +%1 +. +MessageId=25293 +Language=English +%1 +. +MessageId=25294 +Language=English +%1 +. +MessageId=25295 +Language=English +%1 +. +MessageId=25296 +Language=English +%1 +. +MessageId=25297 +Language=English +%1 +. +MessageId=25298 +Language=English +%1 +. +MessageId=25299 +Language=English +%1 +. +MessageId=25300 +Language=English +%1 +. +MessageId=25301 +Language=English +%1 +. +MessageId=25302 +Language=English +%1 +. +MessageId=25303 +Language=English +%1 +. +MessageId=25304 +Language=English +%1 +. +MessageId=25305 +Language=English +%1 +. +MessageId=25306 +Language=English +%1 +. +MessageId=25307 +Language=English +%1 +. +MessageId=25308 +Language=English +%1 +. +MessageId=25309 +Language=English +%1 +. +MessageId=25310 +Language=English +%1 +. +MessageId=25311 +Language=English +%1 +. +MessageId=25312 +Language=English +%1 +. +MessageId=25313 +Language=English +%1 +. +MessageId=25314 +Language=English +%1 +. +MessageId=25315 +Language=English +%1 +. +MessageId=25316 +Language=English +%1 +. +MessageId=25317 +Language=English +%1 +. +MessageId=25318 +Language=English +%1 +. +MessageId=25319 +Language=English +%1 +. +MessageId=25320 +Language=English +%1 +. +MessageId=25321 +Language=English +%1 +. +MessageId=25322 +Language=English +%1 +. +MessageId=25323 +Language=English +%1 +. +MessageId=25324 +Language=English +%1 +. +MessageId=25325 +Language=English +%1 +. +MessageId=25326 +Language=English +%1 +. +MessageId=25327 +Language=English +%1 +. +MessageId=25328 +Language=English +%1 +. +MessageId=25329 +Language=English +%1 +. +MessageId=25330 +Language=English +%1 +. +MessageId=25331 +Language=English +%1 +. +MessageId=25332 +Language=English +%1 +. +MessageId=25333 +Language=English +%1 +. +MessageId=25334 +Language=English +%1 +. +MessageId=25335 +Language=English +%1 +. +MessageId=25336 +Language=English +%1 +. +MessageId=25337 +Language=English +%1 +. +MessageId=25338 +Language=English +%1 +. +MessageId=25339 +Language=English +%1 +. +MessageId=25340 +Language=English +%1 +. +MessageId=25341 +Language=English +%1 +. +MessageId=25342 +Language=English +%1 +. +MessageId=25343 +Language=English +%1 +. +MessageId=25344 +Language=English +%1 +. +MessageId=25345 +Language=English +%1 +. +MessageId=25346 +Language=English +%1 +. +MessageId=25347 +Language=English +%1 +. +MessageId=25348 +Language=English +%1 +. +MessageId=25349 +Language=English +%1 +. +MessageId=25350 +Language=English +%1 +. +MessageId=25351 +Language=English +%1 +. +MessageId=25352 +Language=English +%1 +. +MessageId=25353 +Language=English +%1 +. +MessageId=25354 +Language=English +%1 +. +MessageId=25355 +Language=English +%1 +. +MessageId=25356 +Language=English +%1 +. +MessageId=25357 +Language=English +%1 +. +MessageId=25358 +Language=English +%1 +. +MessageId=25359 +Language=English +%1 +. +MessageId=25360 +Language=English +%1 +. +MessageId=25361 +Language=English +%1 +. +MessageId=25362 +Language=English +%1 +. +MessageId=25363 +Language=English +%1 +. +MessageId=25364 +Language=English +%1 +. +MessageId=25365 +Language=English +%1 +. +MessageId=25366 +Language=English +%1 +. +MessageId=25367 +Language=English +%1 +. +MessageId=25368 +Language=English +%1 +. +MessageId=25369 +Language=English +%1 +. +MessageId=25370 +Language=English +%1 +. +MessageId=25371 +Language=English +%1 +. +MessageId=25372 +Language=English +%1 +. +MessageId=25373 +Language=English +%1 +. +MessageId=25374 +Language=English +%1 +. +MessageId=25375 +Language=English +%1 +. +MessageId=25376 +Language=English +%1 +. +MessageId=25377 +Language=English +%1 +. +MessageId=25378 +Language=English +%1 +. +MessageId=25379 +Language=English +%1 +. +MessageId=25380 +Language=English +%1 +. +MessageId=25381 +Language=English +%1 +. +MessageId=25382 +Language=English +%1 +. +MessageId=25383 +Language=English +%1 +. +MessageId=25384 +Language=English +%1 +. +MessageId=25385 +Language=English +%1 +. +MessageId=25386 +Language=English +%1 +. +MessageId=25387 +Language=English +%1 +. +MessageId=25388 +Language=English +%1 +. +MessageId=25389 +Language=English +%1 +. +MessageId=25390 +Language=English +%1 +. +MessageId=25391 +Language=English +%1 +. +MessageId=25392 +Language=English +%1 +. +MessageId=25393 +Language=English +%1 +. +MessageId=25394 +Language=English +%1 +. +MessageId=25395 +Language=English +%1 +. +MessageId=25396 +Language=English +%1 +. +MessageId=25397 +Language=English +%1 +. +MessageId=25398 +Language=English +%1 +. +MessageId=25399 +Language=English +%1 +. +MessageId=25400 +Language=English +%1 +. +MessageId=25401 +Language=English +%1 +. +MessageId=25402 +Language=English +%1 +. +MessageId=25403 +Language=English +%1 +. +MessageId=25404 +Language=English +%1 +. +MessageId=25405 +Language=English +%1 +. +MessageId=25406 +Language=English +%1 +. +MessageId=25407 +Language=English +%1 +. +MessageId=25408 +Language=English +%1 +. +MessageId=25409 +Language=English +%1 +. +MessageId=25410 +Language=English +%1 +. +MessageId=25411 +Language=English +%1 +. +MessageId=25412 +Language=English +%1 +. +MessageId=25413 +Language=English +%1 +. +MessageId=25414 +Language=English +%1 +. +MessageId=25415 +Language=English +%1 +. +MessageId=25416 +Language=English +%1 +. +MessageId=25417 +Language=English +%1 +. +MessageId=25418 +Language=English +%1 +. +MessageId=25419 +Language=English +%1 +. +MessageId=25420 +Language=English +%1 +. +MessageId=25421 +Language=English +%1 +. +MessageId=25422 +Language=English +%1 +. +MessageId=25423 +Language=English +%1 +. +MessageId=25424 +Language=English +%1 +. +MessageId=25425 +Language=English +%1 +. +MessageId=25426 +Language=English +%1 +. +MessageId=25427 +Language=English +%1 +. +MessageId=25428 +Language=English +%1 +. +MessageId=25429 +Language=English +%1 +. +MessageId=25430 +Language=English +%1 +. +MessageId=25431 +Language=English +%1 +. +MessageId=25432 +Language=English +%1 +. +MessageId=25433 +Language=English +%1 +. +MessageId=25434 +Language=English +%1 +. +MessageId=25435 +Language=English +%1 +. +MessageId=25436 +Language=English +%1 +. +MessageId=25437 +Language=English +%1 +. +MessageId=25438 +Language=English +%1 +. +MessageId=25439 +Language=English +%1 +. +MessageId=25440 +Language=English +%1 +. +MessageId=25441 +Language=English +%1 +. +MessageId=25442 +Language=English +%1 +. +MessageId=25443 +Language=English +%1 +. +MessageId=25444 +Language=English +%1 +. +MessageId=25445 +Language=English +%1 +. +MessageId=25446 +Language=English +%1 +. +MessageId=25447 +Language=English +%1 +. +MessageId=25448 +Language=English +%1 +. +MessageId=25449 +Language=English +%1 +. +MessageId=25450 +Language=English +%1 +. +MessageId=25451 +Language=English +%1 +. +MessageId=25452 +Language=English +%1 +. +MessageId=25453 +Language=English +%1 +. +MessageId=25454 +Language=English +%1 +. +MessageId=25455 +Language=English +%1 +. +MessageId=25456 +Language=English +%1 +. +MessageId=25457 +Language=English +%1 +. +MessageId=25458 +Language=English +%1 +. +MessageId=25459 +Language=English +%1 +. +MessageId=25460 +Language=English +%1 +. +MessageId=25461 +Language=English +%1 +. +MessageId=25462 +Language=English +%1 +. +MessageId=25463 +Language=English +%1 +. +MessageId=25464 +Language=English +%1 +. +MessageId=25465 +Language=English +%1 +. +MessageId=25466 +Language=English +%1 +. +MessageId=25467 +Language=English +%1 +. +MessageId=25468 +Language=English +%1 +. +MessageId=25469 +Language=English +%1 +. +MessageId=25470 +Language=English +%1 +. +MessageId=25471 +Language=English +%1 +. +MessageId=25472 +Language=English +%1 +. +MessageId=25473 +Language=English +%1 +. +MessageId=25474 +Language=English +%1 +. +MessageId=25475 +Language=English +%1 +. +MessageId=25476 +Language=English +%1 +. +MessageId=25477 +Language=English +%1 +. +MessageId=25478 +Language=English +%1 +. +MessageId=25479 +Language=English +%1 +. +MessageId=25480 +Language=English +%1 +. +MessageId=25481 +Language=English +%1 +. +MessageId=25482 +Language=English +%1 +. +MessageId=25483 +Language=English +%1 +. +MessageId=25484 +Language=English +%1 +. +MessageId=25485 +Language=English +%1 +. +MessageId=25486 +Language=English +%1 +. +MessageId=25487 +Language=English +%1 +. +MessageId=25488 +Language=English +%1 +. +MessageId=25489 +Language=English +%1 +. +MessageId=25490 +Language=English +%1 +. +MessageId=25491 +Language=English +%1 +. +MessageId=25492 +Language=English +%1 +. +MessageId=25493 +Language=English +%1 +. +MessageId=25494 +Language=English +%1 +. +MessageId=25495 +Language=English +%1 +. +MessageId=25496 +Language=English +%1 +. +MessageId=25497 +Language=English +%1 +. +MessageId=25498 +Language=English +%1 +. +MessageId=25499 +Language=English +%1 +. +MessageId=25500 +Language=English +%1 +. +MessageId=25501 +Language=English +%1 +. +MessageId=25502 +Language=English +%1 +. +MessageId=25503 +Language=English +%1 +. +MessageId=25504 +Language=English +%1 +. +MessageId=25505 +Language=English +%1 +. +MessageId=25506 +Language=English +%1 +. +MessageId=25507 +Language=English +%1 +. +MessageId=25508 +Language=English +%1 +. +MessageId=25509 +Language=English +%1 +. +MessageId=25510 +Language=English +%1 +. +MessageId=25511 +Language=English +%1 +. +MessageId=25512 +Language=English +%1 +. +MessageId=25513 +Language=English +%1 +. +MessageId=25514 +Language=English +%1 +. +MessageId=25515 +Language=English +%1 +. +MessageId=25516 +Language=English +%1 +. +MessageId=25517 +Language=English +%1 +. +MessageId=25518 +Language=English +%1 +. +MessageId=25519 +Language=English +%1 +. +MessageId=25520 +Language=English +%1 +. +MessageId=25521 +Language=English +%1 +. +MessageId=25522 +Language=English +%1 +. +MessageId=25523 +Language=English +%1 +. +MessageId=25524 +Language=English +%1 +. +MessageId=25525 +Language=English +%1 +. +MessageId=25526 +Language=English +%1 +. +MessageId=25527 +Language=English +%1 +. +MessageId=25528 +Language=English +%1 +. +MessageId=25529 +Language=English +%1 +. +MessageId=25530 +Language=English +%1 +. +MessageId=25531 +Language=English +%1 +. +MessageId=25532 +Language=English +%1 +. +MessageId=25533 +Language=English +%1 +. +MessageId=25534 +Language=English +%1 +. +MessageId=25535 +Language=English +%1 +. +MessageId=25536 +Language=English +%1 +. +MessageId=25537 +Language=English +%1 +. +MessageId=25538 +Language=English +%1 +. +MessageId=25539 +Language=English +%1 +. +MessageId=25540 +Language=English +%1 +. +MessageId=25541 +Language=English +%1 +. +MessageId=25542 +Language=English +%1 +. +MessageId=25543 +Language=English +%1 +. +MessageId=25544 +Language=English +%1 +. +MessageId=25545 +Language=English +%1 +. +MessageId=25546 +Language=English +%1 +. +MessageId=25547 +Language=English +%1 +. +MessageId=25548 +Language=English +%1 +. +MessageId=25549 +Language=English +%1 +. +MessageId=25550 +Language=English +%1 +. +MessageId=25551 +Language=English +%1 +. +MessageId=25552 +Language=English +%1 +. +MessageId=25553 +Language=English +%1 +. +MessageId=25554 +Language=English +%1 +. +MessageId=25555 +Language=English +%1 +. +MessageId=25556 +Language=English +%1 +. +MessageId=25557 +Language=English +%1 +. +MessageId=25558 +Language=English +%1 +. +MessageId=25559 +Language=English +%1 +. +MessageId=25560 +Language=English +%1 +. +MessageId=25561 +Language=English +%1 +. +MessageId=25562 +Language=English +%1 +. +MessageId=25563 +Language=English +%1 +. +MessageId=25564 +Language=English +%1 +. +MessageId=25565 +Language=English +%1 +. +MessageId=25566 +Language=English +%1 +. +MessageId=25567 +Language=English +%1 +. +MessageId=25568 +Language=English +%1 +. +MessageId=25569 +Language=English +%1 +. +MessageId=25570 +Language=English +%1 +. +MessageId=25571 +Language=English +%1 +. +MessageId=25572 +Language=English +%1 +. +MessageId=25573 +Language=English +%1 +. +MessageId=25574 +Language=English +%1 +. +MessageId=25575 +Language=English +%1 +. +MessageId=25576 +Language=English +%1 +. +MessageId=25577 +Language=English +%1 +. +MessageId=25578 +Language=English +%1 +. +MessageId=25579 +Language=English +%1 +. +MessageId=25580 +Language=English +%1 +. +MessageId=25581 +Language=English +%1 +. +MessageId=25582 +Language=English +%1 +. +MessageId=25583 +Language=English +%1 +. +MessageId=25584 +Language=English +%1 +. +MessageId=25585 +Language=English +%1 +. +MessageId=25586 +Language=English +%1 +. +MessageId=25587 +Language=English +%1 +. +MessageId=25588 +Language=English +%1 +. +MessageId=25589 +Language=English +%1 +. +MessageId=25590 +Language=English +%1 +. +MessageId=25591 +Language=English +%1 +. +MessageId=25592 +Language=English +%1 +. +MessageId=25593 +Language=English +%1 +. +MessageId=25594 +Language=English +%1 +. +MessageId=25595 +Language=English +%1 +. +MessageId=25596 +Language=English +%1 +. +MessageId=25597 +Language=English +%1 +. +MessageId=25598 +Language=English +%1 +. +MessageId=25599 +Language=English +%1 +. +MessageId=25600 +Language=English +%1 +. +MessageId=25601 +Language=English +%1 +. +MessageId=25602 +Language=English +%1 +. +MessageId=25603 +Language=English +%1 +. +MessageId=25604 +Language=English +%1 +. +MessageId=25605 +Language=English +%1 +. +MessageId=25606 +Language=English +%1 +. +MessageId=25607 +Language=English +%1 +. +MessageId=25608 +Language=English +%1 +. +MessageId=25609 +Language=English +%1 +. +MessageId=25610 +Language=English +%1 +. +MessageId=25611 +Language=English +%1 +. +MessageId=25612 +Language=English +%1 +. +MessageId=25613 +Language=English +%1 +. +MessageId=25614 +Language=English +%1 +. +MessageId=25615 +Language=English +%1 +. +MessageId=25616 +Language=English +%1 +. +MessageId=25617 +Language=English +%1 +. +MessageId=25618 +Language=English +%1 +. +MessageId=25619 +Language=English +%1 +. +MessageId=25620 +Language=English +%1 +. +MessageId=25621 +Language=English +%1 +. +MessageId=25622 +Language=English +%1 +. +MessageId=25623 +Language=English +%1 +. +MessageId=25624 +Language=English +%1 +. +MessageId=25625 +Language=English +%1 +. +MessageId=25626 +Language=English +%1 +. +MessageId=25627 +Language=English +%1 +. +MessageId=25628 +Language=English +%1 +. +MessageId=25629 +Language=English +%1 +. +MessageId=25630 +Language=English +%1 +. +MessageId=25631 +Language=English +%1 +. +MessageId=25632 +Language=English +%1 +. +MessageId=25633 +Language=English +%1 +. +MessageId=25634 +Language=English +%1 +. +MessageId=25635 +Language=English +%1 +. +MessageId=25636 +Language=English +%1 +. +MessageId=25637 +Language=English +%1 +. +MessageId=25638 +Language=English +%1 +. +MessageId=25639 +Language=English +%1 +. +MessageId=25640 +Language=English +%1 +. +MessageId=25641 +Language=English +%1 +. +MessageId=25642 +Language=English +%1 +. +MessageId=25643 +Language=English +%1 +. +MessageId=25644 +Language=English +%1 +. +MessageId=25645 +Language=English +%1 +. +MessageId=25646 +Language=English +%1 +. +MessageId=25647 +Language=English +%1 +. +MessageId=25648 +Language=English +%1 +. +MessageId=25649 +Language=English +%1 +. +MessageId=25650 +Language=English +%1 +. +MessageId=25651 +Language=English +%1 +. +MessageId=25652 +Language=English +%1 +. +MessageId=25653 +Language=English +%1 +. +MessageId=25654 +Language=English +%1 +. +MessageId=25655 +Language=English +%1 +. +MessageId=25656 +Language=English +%1 +. +MessageId=25657 +Language=English +%1 +. +MessageId=25658 +Language=English +%1 +. +MessageId=25659 +Language=English +%1 +. +MessageId=25660 +Language=English +%1 +. +MessageId=25661 +Language=English +%1 +. +MessageId=25662 +Language=English +%1 +. +MessageId=25663 +Language=English +%1 +. +MessageId=25664 +Language=English +%1 +. +MessageId=25665 +Language=English +%1 +. +MessageId=25666 +Language=English +%1 +. +MessageId=25667 +Language=English +%1 +. +MessageId=25668 +Language=English +%1 +. +MessageId=25669 +Language=English +%1 +. +MessageId=25670 +Language=English +%1 +. +MessageId=25671 +Language=English +%1 +. +MessageId=25672 +Language=English +%1 +. +MessageId=25673 +Language=English +%1 +. +MessageId=25674 +Language=English +%1 +. +MessageId=25675 +Language=English +%1 +. +MessageId=25676 +Language=English +%1 +. +MessageId=25677 +Language=English +%1 +. +MessageId=25678 +Language=English +%1 +. +MessageId=25679 +Language=English +%1 +. +MessageId=25680 +Language=English +%1 +. +MessageId=25681 +Language=English +%1 +. +MessageId=25682 +Language=English +%1 +. +MessageId=25683 +Language=English +%1 +. +MessageId=25684 +Language=English +%1 +. +MessageId=25685 +Language=English +%1 +. +MessageId=25686 +Language=English +%1 +. +MessageId=25687 +Language=English +%1 +. +MessageId=25688 +Language=English +%1 +. +MessageId=25689 +Language=English +%1 +. +MessageId=25690 +Language=English +%1 +. +MessageId=25691 +Language=English +%1 +. +MessageId=25692 +Language=English +%1 +. +MessageId=25693 +Language=English +%1 +. +MessageId=25694 +Language=English +%1 +. +MessageId=25695 +Language=English +%1 +. +MessageId=25696 +Language=English +%1 +. +MessageId=25697 +Language=English +%1 +. +MessageId=25698 +Language=English +%1 +. +MessageId=25699 +Language=English +%1 +. +MessageId=25700 +Language=English +%1 +. +MessageId=25701 +Language=English +%1 +. +MessageId=25702 +Language=English +%1 +. +MessageId=25703 +Language=English +%1 +. +MessageId=25704 +Language=English +%1 +. +MessageId=25705 +Language=English +%1 +. +MessageId=25706 +Language=English +%1 +. +MessageId=25707 +Language=English +%1 +. +MessageId=25708 +Language=English +%1 +. +MessageId=25709 +Language=English +%1 +. +MessageId=25710 +Language=English +%1 +. +MessageId=25711 +Language=English +%1 +. +MessageId=25712 +Language=English +%1 +. +MessageId=25713 +Language=English +%1 +. +MessageId=25714 +Language=English +%1 +. +MessageId=25715 +Language=English +%1 +. +MessageId=25716 +Language=English +%1 +. +MessageId=25717 +Language=English +%1 +. +MessageId=25718 +Language=English +%1 +. +MessageId=25719 +Language=English +%1 +. +MessageId=25720 +Language=English +%1 +. +MessageId=25721 +Language=English +%1 +. +MessageId=25722 +Language=English +%1 +. +MessageId=25723 +Language=English +%1 +. +MessageId=25724 +Language=English +%1 +. +MessageId=25725 +Language=English +%1 +. +MessageId=25726 +Language=English +%1 +. +MessageId=25727 +Language=English +%1 +. +MessageId=25728 +Language=English +%1 +. +MessageId=25729 +Language=English +%1 +. +MessageId=25730 +Language=English +%1 +. +MessageId=25731 +Language=English +%1 +. +MessageId=25732 +Language=English +%1 +. +MessageId=25733 +Language=English +%1 +. +MessageId=25734 +Language=English +%1 +. +MessageId=25735 +Language=English +%1 +. +MessageId=25736 +Language=English +%1 +. +MessageId=25737 +Language=English +%1 +. +MessageId=25738 +Language=English +%1 +. +MessageId=25739 +Language=English +%1 +. +MessageId=25740 +Language=English +%1 +. +MessageId=25741 +Language=English +%1 +. +MessageId=25742 +Language=English +%1 +. +MessageId=25743 +Language=English +%1 +. +MessageId=25744 +Language=English +%1 +. +MessageId=25745 +Language=English +%1 +. +MessageId=25746 +Language=English +%1 +. +MessageId=25747 +Language=English +%1 +. +MessageId=25748 +Language=English +%1 +. +MessageId=25749 +Language=English +%1 +. +MessageId=25750 +Language=English +%1 +. +MessageId=25751 +Language=English +%1 +. +MessageId=25752 +Language=English +%1 +. +MessageId=25753 +Language=English +%1 +. +MessageId=25754 +Language=English +%1 +. +MessageId=25755 +Language=English +%1 +. +MessageId=25756 +Language=English +%1 +. +MessageId=25757 +Language=English +%1 +. +MessageId=25758 +Language=English +%1 +. +MessageId=25759 +Language=English +%1 +. +MessageId=25760 +Language=English +%1 +. +MessageId=25761 +Language=English +%1 +. +MessageId=25762 +Language=English +%1 +. +MessageId=25763 +Language=English +%1 +. +MessageId=25764 +Language=English +%1 +. +MessageId=25765 +Language=English +%1 +. +MessageId=25766 +Language=English +%1 +. +MessageId=25767 +Language=English +%1 +. +MessageId=25768 +Language=English +%1 +. +MessageId=25769 +Language=English +%1 +. +MessageId=25770 +Language=English +%1 +. +MessageId=25771 +Language=English +%1 +. +MessageId=25772 +Language=English +%1 +. +MessageId=25773 +Language=English +%1 +. +MessageId=25774 +Language=English +%1 +. +MessageId=25775 +Language=English +%1 +. +MessageId=25776 +Language=English +%1 +. +MessageId=25777 +Language=English +%1 +. +MessageId=25778 +Language=English +%1 +. +MessageId=25779 +Language=English +%1 +. +MessageId=25780 +Language=English +%1 +. +MessageId=25781 +Language=English +%1 +. +MessageId=25782 +Language=English +%1 +. +MessageId=25783 +Language=English +%1 +. +MessageId=25784 +Language=English +%1 +. +MessageId=25785 +Language=English +%1 +. +MessageId=25786 +Language=English +%1 +. +MessageId=25787 +Language=English +%1 +. +MessageId=25788 +Language=English +%1 +. +MessageId=25789 +Language=English +%1 +. +MessageId=25790 +Language=English +%1 +. +MessageId=25791 +Language=English +%1 +. +MessageId=25792 +Language=English +%1 +. +MessageId=25793 +Language=English +%1 +. +MessageId=25794 +Language=English +%1 +. +MessageId=25795 +Language=English +%1 +. +MessageId=25796 +Language=English +%1 +. +MessageId=25797 +Language=English +%1 +. +MessageId=25798 +Language=English +%1 +. +MessageId=25799 +Language=English +%1 +. +MessageId=25800 +Language=English +%1 +. +MessageId=25801 +Language=English +%1 +. +MessageId=25802 +Language=English +%1 +. +MessageId=25803 +Language=English +%1 +. +MessageId=25804 +Language=English +%1 +. +MessageId=25805 +Language=English +%1 +. +MessageId=25806 +Language=English +%1 +. +MessageId=25807 +Language=English +%1 +. +MessageId=25808 +Language=English +%1 +. +MessageId=25809 +Language=English +%1 +. +MessageId=25810 +Language=English +%1 +. +MessageId=25811 +Language=English +%1 +. +MessageId=25812 +Language=English +%1 +. +MessageId=25813 +Language=English +%1 +. +MessageId=25814 +Language=English +%1 +. +MessageId=25815 +Language=English +%1 +. +MessageId=25816 +Language=English +%1 +. +MessageId=25817 +Language=English +%1 +. +MessageId=25818 +Language=English +%1 +. +MessageId=25819 +Language=English +%1 +. +MessageId=25820 +Language=English +%1 +. +MessageId=25821 +Language=English +%1 +. +MessageId=25822 +Language=English +%1 +. +MessageId=25823 +Language=English +%1 +. +MessageId=25824 +Language=English +%1 +. +MessageId=25825 +Language=English +%1 +. +MessageId=25826 +Language=English +%1 +. +MessageId=25827 +Language=English +%1 +. +MessageId=25828 +Language=English +%1 +. +MessageId=25829 +Language=English +%1 +. +MessageId=25830 +Language=English +%1 +. +MessageId=25831 +Language=English +%1 +. +MessageId=25832 +Language=English +%1 +. +MessageId=25833 +Language=English +%1 +. +MessageId=25834 +Language=English +%1 +. +MessageId=25835 +Language=English +%1 +. +MessageId=25836 +Language=English +%1 +. +MessageId=25837 +Language=English +%1 +. +MessageId=25838 +Language=English +%1 +. +MessageId=25839 +Language=English +%1 +. +MessageId=25840 +Language=English +%1 +. +MessageId=25841 +Language=English +%1 +. +MessageId=25842 +Language=English +%1 +. +MessageId=25843 +Language=English +%1 +. +MessageId=25844 +Language=English +%1 +. +MessageId=25845 +Language=English +%1 +. +MessageId=25846 +Language=English +%1 +. +MessageId=25847 +Language=English +%1 +. +MessageId=25848 +Language=English +%1 +. +MessageId=25849 +Language=English +%1 +. +MessageId=25850 +Language=English +%1 +. +MessageId=25851 +Language=English +%1 +. +MessageId=25852 +Language=English +%1 +. +MessageId=25853 +Language=English +%1 +. +MessageId=25854 +Language=English +%1 +. +MessageId=25855 +Language=English +%1 +. +MessageId=25856 +Language=English +%1 +. +MessageId=25857 +Language=English +%1 +. +MessageId=25858 +Language=English +%1 +. +MessageId=25859 +Language=English +%1 +. +MessageId=25860 +Language=English +%1 +. +MessageId=25861 +Language=English +%1 +. +MessageId=25862 +Language=English +%1 +. +MessageId=25863 +Language=English +%1 +. +MessageId=25864 +Language=English +%1 +. +MessageId=25865 +Language=English +%1 +. +MessageId=25866 +Language=English +%1 +. +MessageId=25867 +Language=English +%1 +. +MessageId=25868 +Language=English +%1 +. +MessageId=25869 +Language=English +%1 +. +MessageId=25870 +Language=English +%1 +. +MessageId=25871 +Language=English +%1 +. +MessageId=25872 +Language=English +%1 +. +MessageId=25873 +Language=English +%1 +. +MessageId=25874 +Language=English +%1 +. +MessageId=25875 +Language=English +%1 +. +MessageId=25876 +Language=English +%1 +. +MessageId=25877 +Language=English +%1 +. +MessageId=25878 +Language=English +%1 +. +MessageId=25879 +Language=English +%1 +. +MessageId=25880 +Language=English +%1 +. +MessageId=25881 +Language=English +%1 +. +MessageId=25882 +Language=English +%1 +. +MessageId=25883 +Language=English +%1 +. +MessageId=25884 +Language=English +%1 +. +MessageId=25885 +Language=English +%1 +. +MessageId=25886 +Language=English +%1 +. +MessageId=25887 +Language=English +%1 +. +MessageId=25888 +Language=English +%1 +. +MessageId=25889 +Language=English +%1 +. +MessageId=25890 +Language=English +%1 +. +MessageId=25891 +Language=English +%1 +. +MessageId=25892 +Language=English +%1 +. +MessageId=25893 +Language=English +%1 +. +MessageId=25894 +Language=English +%1 +. +MessageId=25895 +Language=English +%1 +. +MessageId=25896 +Language=English +%1 +. +MessageId=25897 +Language=English +%1 +. +MessageId=25898 +Language=English +%1 +. +MessageId=25899 +Language=English +%1 +. +MessageId=25900 +Language=English +%1 +. +MessageId=25901 +Language=English +%1 +. +MessageId=25902 +Language=English +%1 +. +MessageId=25903 +Language=English +%1 +. +MessageId=25904 +Language=English +%1 +. +MessageId=25905 +Language=English +%1 +. +MessageId=25906 +Language=English +%1 +. +MessageId=25907 +Language=English +%1 +. +MessageId=25908 +Language=English +%1 +. +MessageId=25909 +Language=English +%1 +. +MessageId=25910 +Language=English +%1 +. +MessageId=25911 +Language=English +%1 +. +MessageId=25912 +Language=English +%1 +. +MessageId=25913 +Language=English +%1 +. +MessageId=25914 +Language=English +%1 +. +MessageId=25915 +Language=English +%1 +. +MessageId=25916 +Language=English +%1 +. +MessageId=25917 +Language=English +%1 +. +MessageId=25918 +Language=English +%1 +. +MessageId=25919 +Language=English +%1 +. +MessageId=25920 +Language=English +%1 +. +MessageId=25921 +Language=English +%1 +. +MessageId=25922 +Language=English +%1 +. +MessageId=25923 +Language=English +%1 +. +MessageId=25924 +Language=English +%1 +. +MessageId=25925 +Language=English +%1 +. +MessageId=25926 +Language=English +%1 +. +MessageId=25927 +Language=English +%1 +. +MessageId=25928 +Language=English +%1 +. +MessageId=25929 +Language=English +%1 +. +MessageId=25930 +Language=English +%1 +. +MessageId=25931 +Language=English +%1 +. +MessageId=25932 +Language=English +%1 +. +MessageId=25933 +Language=English +%1 +. +MessageId=25934 +Language=English +%1 +. +MessageId=25935 +Language=English +%1 +. +MessageId=25936 +Language=English +%1 +. +MessageId=25937 +Language=English +%1 +. +MessageId=25938 +Language=English +%1 +. +MessageId=25939 +Language=English +%1 +. +MessageId=25940 +Language=English +%1 +. +MessageId=25941 +Language=English +%1 +. +MessageId=25942 +Language=English +%1 +. +MessageId=25943 +Language=English +%1 +. +MessageId=25944 +Language=English +%1 +. +MessageId=25945 +Language=English +%1 +. +MessageId=25946 +Language=English +%1 +. +MessageId=25947 +Language=English +%1 +. +MessageId=25948 +Language=English +%1 +. +MessageId=25949 +Language=English +%1 +. +MessageId=25950 +Language=English +%1 +. +MessageId=25951 +Language=English +%1 +. +MessageId=25952 +Language=English +%1 +. +MessageId=25953 +Language=English +%1 +. +MessageId=25954 +Language=English +%1 +. +MessageId=25955 +Language=English +%1 +. +MessageId=25956 +Language=English +%1 +. +MessageId=25957 +Language=English +%1 +. +MessageId=25958 +Language=English +%1 +. +MessageId=25959 +Language=English +%1 +. +MessageId=25960 +Language=English +%1 +. +MessageId=25961 +Language=English +%1 +. +MessageId=25962 +Language=English +%1 +. +MessageId=25963 +Language=English +%1 +. +MessageId=25964 +Language=English +%1 +. +MessageId=25965 +Language=English +%1 +. +MessageId=25966 +Language=English +%1 +. +MessageId=25967 +Language=English +%1 +. +MessageId=25968 +Language=English +%1 +. +MessageId=25969 +Language=English +%1 +. +MessageId=25970 +Language=English +%1 +. +MessageId=25971 +Language=English +%1 +. +MessageId=25972 +Language=English +%1 +. +MessageId=25973 +Language=English +%1 +. +MessageId=25974 +Language=English +%1 +. +MessageId=25975 +Language=English +%1 +. +MessageId=25976 +Language=English +%1 +. +MessageId=25977 +Language=English +%1 +. +MessageId=25978 +Language=English +%1 +. +MessageId=25979 +Language=English +%1 +. +MessageId=25980 +Language=English +%1 +. +MessageId=25981 +Language=English +%1 +. +MessageId=25982 +Language=English +%1 +. +MessageId=25983 +Language=English +%1 +. +MessageId=25984 +Language=English +%1 +. +MessageId=25985 +Language=English +%1 +. +MessageId=25986 +Language=English +%1 +. +MessageId=25987 +Language=English +%1 +. +MessageId=25988 +Language=English +%1 +. +MessageId=25989 +Language=English +%1 +. +MessageId=25990 +Language=English +%1 +. +MessageId=25991 +Language=English +%1 +. +MessageId=25992 +Language=English +%1 +. +MessageId=25993 +Language=English +%1 +. +MessageId=25994 +Language=English +%1 +. +MessageId=25995 +Language=English +%1 +. +MessageId=25996 +Language=English +%1 +. +MessageId=25997 +Language=English +%1 +. +MessageId=25998 +Language=English +%1 +. +MessageId=25999 +Language=English +%1 +. +MessageId=26000 +Language=English +%1 +. +MessageId=26001 +Language=English +%1 +. +MessageId=26002 +Language=English +%1 +. +MessageId=26003 +Language=English +%1 +. +MessageId=26004 +Language=English +%1 +. +MessageId=26005 +Language=English +%1 +. +MessageId=26006 +Language=English +%1 +. +MessageId=26007 +Language=English +%1 +. +MessageId=26008 +Language=English +%1 +. +MessageId=26009 +Language=English +%1 +. +MessageId=26010 +Language=English +%1 +. +MessageId=26011 +Language=English +%1 +. +MessageId=26012 +Language=English +%1 +. +MessageId=26013 +Language=English +%1 +. +MessageId=26014 +Language=English +%1 +. +MessageId=26015 +Language=English +%1 +. +MessageId=26016 +Language=English +%1 +. +MessageId=26017 +Language=English +%1 +. +MessageId=26018 +Language=English +%1 +. +MessageId=26019 +Language=English +%1 +. +MessageId=26020 +Language=English +%1 +. +MessageId=26021 +Language=English +%1 +. +MessageId=26022 +Language=English +%1 +. +MessageId=26023 +Language=English +%1 +. +MessageId=26024 +Language=English +%1 +. +MessageId=26025 +Language=English +%1 +. +MessageId=26026 +Language=English +%1 +. +MessageId=26027 +Language=English +%1 +. +MessageId=26028 +Language=English +%1 +. +MessageId=26029 +Language=English +%1 +. +MessageId=26030 +Language=English +%1 +. +MessageId=26031 +Language=English +%1 +. +MessageId=26032 +Language=English +%1 +. +MessageId=26033 +Language=English +%1 +. +MessageId=26034 +Language=English +%1 +. +MessageId=26035 +Language=English +%1 +. +MessageId=26036 +Language=English +%1 +. +MessageId=26037 +Language=English +%1 +. +MessageId=26038 +Language=English +%1 +. +MessageId=26039 +Language=English +%1 +. +MessageId=26040 +Language=English +%1 +. +MessageId=26041 +Language=English +%1 +. +MessageId=26042 +Language=English +%1 +. +MessageId=26043 +Language=English +%1 +. +MessageId=26044 +Language=English +%1 +. +MessageId=26045 +Language=English +%1 +. +MessageId=26046 +Language=English +%1 +. +MessageId=26047 +Language=English +%1 +. +MessageId=26048 +Language=English +%1 +. +MessageId=26049 +Language=English +%1 +. +MessageId=26050 +Language=English +%1 +. +MessageId=26051 +Language=English +%1 +. +MessageId=26052 +Language=English +%1 +. +MessageId=26053 +Language=English +%1 +. +MessageId=26054 +Language=English +%1 +. +MessageId=26055 +Language=English +%1 +. +MessageId=26056 +Language=English +%1 +. +MessageId=26057 +Language=English +%1 +. +MessageId=26058 +Language=English +%1 +. +MessageId=26059 +Language=English +%1 +. +MessageId=26060 +Language=English +%1 +. +MessageId=26061 +Language=English +%1 +. +MessageId=26062 +Language=English +%1 +. +MessageId=26063 +Language=English +%1 +. +MessageId=26064 +Language=English +%1 +. +MessageId=26065 +Language=English +%1 +. +MessageId=26066 +Language=English +%1 +. +MessageId=26067 +Language=English +%1 +. +MessageId=26068 +Language=English +%1 +. +MessageId=26069 +Language=English +%1 +. +MessageId=26070 +Language=English +%1 +. +MessageId=26071 +Language=English +%1 +. +MessageId=26072 +Language=English +%1 +. +MessageId=26073 +Language=English +%1 +. +MessageId=26074 +Language=English +%1 +. +MessageId=26075 +Language=English +%1 +. +MessageId=26076 +Language=English +%1 +. +MessageId=26077 +Language=English +%1 +. +MessageId=26078 +Language=English +%1 +. +MessageId=26079 +Language=English +%1 +. +MessageId=26080 +Language=English +%1 +. +MessageId=26081 +Language=English +%1 +. +MessageId=26082 +Language=English +%1 +. +MessageId=26083 +Language=English +%1 +. +MessageId=26084 +Language=English +%1 +. +MessageId=26085 +Language=English +%1 +. +MessageId=26086 +Language=English +%1 +. +MessageId=26087 +Language=English +%1 +. +MessageId=26088 +Language=English +%1 +. +MessageId=26089 +Language=English +%1 +. +MessageId=26090 +Language=English +%1 +. +MessageId=26091 +Language=English +%1 +. +MessageId=26092 +Language=English +%1 +. +MessageId=26093 +Language=English +%1 +. +MessageId=26094 +Language=English +%1 +. +MessageId=26095 +Language=English +%1 +. +MessageId=26096 +Language=English +%1 +. +MessageId=26097 +Language=English +%1 +. +MessageId=26098 +Language=English +%1 +. +MessageId=26099 +Language=English +%1 +. +MessageId=26100 +Language=English +%1 +. +MessageId=26101 +Language=English +%1 +. +MessageId=26102 +Language=English +%1 +. +MessageId=26103 +Language=English +%1 +. +MessageId=26104 +Language=English +%1 +. +MessageId=26105 +Language=English +%1 +. +MessageId=26106 +Language=English +%1 +. +MessageId=26107 +Language=English +%1 +. +MessageId=26108 +Language=English +%1 +. +MessageId=26109 +Language=English +%1 +. +MessageId=26110 +Language=English +%1 +. +MessageId=26111 +Language=English +%1 +. +MessageId=26112 +Language=English +%1 +. +MessageId=26113 +Language=English +%1 +. +MessageId=26114 +Language=English +%1 +. +MessageId=26115 +Language=English +%1 +. +MessageId=26116 +Language=English +%1 +. +MessageId=26117 +Language=English +%1 +. +MessageId=26118 +Language=English +%1 +. +MessageId=26119 +Language=English +%1 +. +MessageId=26120 +Language=English +%1 +. +MessageId=26121 +Language=English +%1 +. +MessageId=26122 +Language=English +%1 +. +MessageId=26123 +Language=English +%1 +. +MessageId=26124 +Language=English +%1 +. +MessageId=26125 +Language=English +%1 +. +MessageId=26126 +Language=English +%1 +. +MessageId=26127 +Language=English +%1 +. +MessageId=26128 +Language=English +%1 +. +MessageId=26129 +Language=English +%1 +. +MessageId=26130 +Language=English +%1 +. +MessageId=26131 +Language=English +%1 +. +MessageId=26132 +Language=English +%1 +. +MessageId=26133 +Language=English +%1 +. +MessageId=26134 +Language=English +%1 +. +MessageId=26135 +Language=English +%1 +. +MessageId=26136 +Language=English +%1 +. +MessageId=26137 +Language=English +%1 +. +MessageId=26138 +Language=English +%1 +. +MessageId=26139 +Language=English +%1 +. +MessageId=26140 +Language=English +%1 +. +MessageId=26141 +Language=English +%1 +. +MessageId=26142 +Language=English +%1 +. +MessageId=26143 +Language=English +%1 +. +MessageId=26144 +Language=English +%1 +. +MessageId=26145 +Language=English +%1 +. +MessageId=26146 +Language=English +%1 +. +MessageId=26147 +Language=English +%1 +. +MessageId=26148 +Language=English +%1 +. +MessageId=26149 +Language=English +%1 +. +MessageId=26150 +Language=English +%1 +. +MessageId=26151 +Language=English +%1 +. +MessageId=26152 +Language=English +%1 +. +MessageId=26153 +Language=English +%1 +. +MessageId=26154 +Language=English +%1 +. +MessageId=26155 +Language=English +%1 +. +MessageId=26156 +Language=English +%1 +. +MessageId=26157 +Language=English +%1 +. +MessageId=26158 +Language=English +%1 +. +MessageId=26159 +Language=English +%1 +. +MessageId=26160 +Language=English +%1 +. +MessageId=26161 +Language=English +%1 +. +MessageId=26162 +Language=English +%1 +. +MessageId=26163 +Language=English +%1 +. +MessageId=26164 +Language=English +%1 +. +MessageId=26165 +Language=English +%1 +. +MessageId=26166 +Language=English +%1 +. +MessageId=26167 +Language=English +%1 +. +MessageId=26168 +Language=English +%1 +. +MessageId=26169 +Language=English +%1 +. +MessageId=26170 +Language=English +%1 +. +MessageId=26171 +Language=English +%1 +. +MessageId=26172 +Language=English +%1 +. +MessageId=26173 +Language=English +%1 +. +MessageId=26174 +Language=English +%1 +. +MessageId=26175 +Language=English +%1 +. +MessageId=26176 +Language=English +%1 +. +MessageId=26177 +Language=English +%1 +. +MessageId=26178 +Language=English +%1 +. +MessageId=26179 +Language=English +%1 +. +MessageId=26180 +Language=English +%1 +. +MessageId=26181 +Language=English +%1 +. +MessageId=26182 +Language=English +%1 +. +MessageId=26183 +Language=English +%1 +. +MessageId=26184 +Language=English +%1 +. +MessageId=26185 +Language=English +%1 +. +MessageId=26186 +Language=English +%1 +. +MessageId=26187 +Language=English +%1 +. +MessageId=26188 +Language=English +%1 +. +MessageId=26189 +Language=English +%1 +. +MessageId=26190 +Language=English +%1 +. +MessageId=26191 +Language=English +%1 +. +MessageId=26192 +Language=English +%1 +. +MessageId=26193 +Language=English +%1 +. +MessageId=26194 +Language=English +%1 +. +MessageId=26195 +Language=English +%1 +. +MessageId=26196 +Language=English +%1 +. +MessageId=26197 +Language=English +%1 +. +MessageId=26198 +Language=English +%1 +. +MessageId=26199 +Language=English +%1 +. +MessageId=26200 +Language=English +%1 +. +MessageId=26201 +Language=English +%1 +. +MessageId=26202 +Language=English +%1 +. +MessageId=26203 +Language=English +%1 +. +MessageId=26204 +Language=English +%1 +. +MessageId=26205 +Language=English +%1 +. +MessageId=26206 +Language=English +%1 +. +MessageId=26207 +Language=English +%1 +. +MessageId=26208 +Language=English +%1 +. +MessageId=26209 +Language=English +%1 +. +MessageId=26210 +Language=English +%1 +. +MessageId=26211 +Language=English +%1 +. +MessageId=26212 +Language=English +%1 +. +MessageId=26213 +Language=English +%1 +. +MessageId=26214 +Language=English +%1 +. +MessageId=26215 +Language=English +%1 +. +MessageId=26216 +Language=English +%1 +. +MessageId=26217 +Language=English +%1 +. +MessageId=26218 +Language=English +%1 +. +MessageId=26219 +Language=English +%1 +. +MessageId=26220 +Language=English +%1 +. +MessageId=26221 +Language=English +%1 +. +MessageId=26222 +Language=English +%1 +. +MessageId=26223 +Language=English +%1 +. +MessageId=26224 +Language=English +%1 +. +MessageId=26225 +Language=English +%1 +. +MessageId=26226 +Language=English +%1 +. +MessageId=26227 +Language=English +%1 +. +MessageId=26228 +Language=English +%1 +. +MessageId=26229 +Language=English +%1 +. +MessageId=26230 +Language=English +%1 +. +MessageId=26231 +Language=English +%1 +. +MessageId=26232 +Language=English +%1 +. +MessageId=26233 +Language=English +%1 +. +MessageId=26234 +Language=English +%1 +. +MessageId=26235 +Language=English +%1 +. +MessageId=26236 +Language=English +%1 +. +MessageId=26237 +Language=English +%1 +. +MessageId=26238 +Language=English +%1 +. +MessageId=26239 +Language=English +%1 +. +MessageId=26240 +Language=English +%1 +. +MessageId=26241 +Language=English +%1 +. +MessageId=26242 +Language=English +%1 +. +MessageId=26243 +Language=English +%1 +. +MessageId=26244 +Language=English +%1 +. +MessageId=26245 +Language=English +%1 +. +MessageId=26246 +Language=English +%1 +. +MessageId=26247 +Language=English +%1 +. +MessageId=26248 +Language=English +%1 +. +MessageId=26249 +Language=English +%1 +. +MessageId=26250 +Language=English +%1 +. +MessageId=26251 +Language=English +%1 +. +MessageId=26252 +Language=English +%1 +. +MessageId=26253 +Language=English +%1 +. +MessageId=26254 +Language=English +%1 +. +MessageId=26255 +Language=English +%1 +. +MessageId=26256 +Language=English +%1 +. +MessageId=26257 +Language=English +%1 +. +MessageId=26258 +Language=English +%1 +. +MessageId=26259 +Language=English +%1 +. +MessageId=26260 +Language=English +%1 +. +MessageId=26261 +Language=English +%1 +. +MessageId=26262 +Language=English +%1 +. +MessageId=26263 +Language=English +%1 +. +MessageId=26264 +Language=English +%1 +. +MessageId=26265 +Language=English +%1 +. +MessageId=26266 +Language=English +%1 +. +MessageId=26267 +Language=English +%1 +. +MessageId=26268 +Language=English +%1 +. +MessageId=26269 +Language=English +%1 +. +MessageId=26270 +Language=English +%1 +. +MessageId=26271 +Language=English +%1 +. +MessageId=26272 +Language=English +%1 +. +MessageId=26273 +Language=English +%1 +. +MessageId=26274 +Language=English +%1 +. +MessageId=26275 +Language=English +%1 +. +MessageId=26276 +Language=English +%1 +. +MessageId=26277 +Language=English +%1 +. +MessageId=26278 +Language=English +%1 +. +MessageId=26279 +Language=English +%1 +. +MessageId=26280 +Language=English +%1 +. +MessageId=26281 +Language=English +%1 +. +MessageId=26282 +Language=English +%1 +. +MessageId=26283 +Language=English +%1 +. +MessageId=26284 +Language=English +%1 +. +MessageId=26285 +Language=English +%1 +. +MessageId=26286 +Language=English +%1 +. +MessageId=26287 +Language=English +%1 +. +MessageId=26288 +Language=English +%1 +. +MessageId=26289 +Language=English +%1 +. +MessageId=26290 +Language=English +%1 +. +MessageId=26291 +Language=English +%1 +. +MessageId=26292 +Language=English +%1 +. +MessageId=26293 +Language=English +%1 +. +MessageId=26294 +Language=English +%1 +. +MessageId=26295 +Language=English +%1 +. +MessageId=26296 +Language=English +%1 +. +MessageId=26297 +Language=English +%1 +. +MessageId=26298 +Language=English +%1 +. +MessageId=26299 +Language=English +%1 +. +MessageId=26300 +Language=English +%1 +. +MessageId=26301 +Language=English +%1 +. +MessageId=26302 +Language=English +%1 +. +MessageId=26303 +Language=English +%1 +. +MessageId=26304 +Language=English +%1 +. +MessageId=26305 +Language=English +%1 +. +MessageId=26306 +Language=English +%1 +. +MessageId=26307 +Language=English +%1 +. +MessageId=26308 +Language=English +%1 +. +MessageId=26309 +Language=English +%1 +. +MessageId=26310 +Language=English +%1 +. +MessageId=26311 +Language=English +%1 +. +MessageId=26312 +Language=English +%1 +. +MessageId=26313 +Language=English +%1 +. +MessageId=26314 +Language=English +%1 +. +MessageId=26315 +Language=English +%1 +. +MessageId=26316 +Language=English +%1 +. +MessageId=26317 +Language=English +%1 +. +MessageId=26318 +Language=English +%1 +. +MessageId=26319 +Language=English +%1 +. +MessageId=26320 +Language=English +%1 +. +MessageId=26321 +Language=English +%1 +. +MessageId=26322 +Language=English +%1 +. +MessageId=26323 +Language=English +%1 +. +MessageId=26324 +Language=English +%1 +. +MessageId=26325 +Language=English +%1 +. +MessageId=26326 +Language=English +%1 +. +MessageId=26327 +Language=English +%1 +. +MessageId=26328 +Language=English +%1 +. +MessageId=26329 +Language=English +%1 +. +MessageId=26330 +Language=English +%1 +. +MessageId=26331 +Language=English +%1 +. +MessageId=26332 +Language=English +%1 +. +MessageId=26333 +Language=English +%1 +. +MessageId=26334 +Language=English +%1 +. +MessageId=26335 +Language=English +%1 +. +MessageId=26336 +Language=English +%1 +. +MessageId=26337 +Language=English +%1 +. +MessageId=26338 +Language=English +%1 +. +MessageId=26339 +Language=English +%1 +. +MessageId=26340 +Language=English +%1 +. +MessageId=26341 +Language=English +%1 +. +MessageId=26342 +Language=English +%1 +. +MessageId=26343 +Language=English +%1 +. +MessageId=26344 +Language=English +%1 +. +MessageId=26345 +Language=English +%1 +. +MessageId=26346 +Language=English +%1 +. +MessageId=26347 +Language=English +%1 +. +MessageId=26348 +Language=English +%1 +. +MessageId=26349 +Language=English +%1 +. +MessageId=26350 +Language=English +%1 +. +MessageId=26351 +Language=English +%1 +. +MessageId=26352 +Language=English +%1 +. +MessageId=26353 +Language=English +%1 +. +MessageId=26354 +Language=English +%1 +. +MessageId=26355 +Language=English +%1 +. +MessageId=26356 +Language=English +%1 +. +MessageId=26357 +Language=English +%1 +. +MessageId=26358 +Language=English +%1 +. +MessageId=26359 +Language=English +%1 +. +MessageId=26360 +Language=English +%1 +. +MessageId=26361 +Language=English +%1 +. +MessageId=26362 +Language=English +%1 +. +MessageId=26363 +Language=English +%1 +. +MessageId=26364 +Language=English +%1 +. +MessageId=26365 +Language=English +%1 +. +MessageId=26366 +Language=English +%1 +. +MessageId=26367 +Language=English +%1 +. +MessageId=26368 +Language=English +%1 +. +MessageId=26369 +Language=English +%1 +. +MessageId=26370 +Language=English +%1 +. +MessageId=26371 +Language=English +%1 +. +MessageId=26372 +Language=English +%1 +. +MessageId=26373 +Language=English +%1 +. +MessageId=26374 +Language=English +%1 +. +MessageId=26375 +Language=English +%1 +. +MessageId=26376 +Language=English +%1 +. +MessageId=26377 +Language=English +%1 +. +MessageId=26378 +Language=English +%1 +. +MessageId=26379 +Language=English +%1 +. +MessageId=26380 +Language=English +%1 +. +MessageId=26381 +Language=English +%1 +. +MessageId=26382 +Language=English +%1 +. +MessageId=26383 +Language=English +%1 +. +MessageId=26384 +Language=English +%1 +. +MessageId=26385 +Language=English +%1 +. +MessageId=26386 +Language=English +%1 +. +MessageId=26387 +Language=English +%1 +. +MessageId=26388 +Language=English +%1 +. +MessageId=26389 +Language=English +%1 +. +MessageId=26390 +Language=English +%1 +. +MessageId=26391 +Language=English +%1 +. +MessageId=26392 +Language=English +%1 +. +MessageId=26393 +Language=English +%1 +. +MessageId=26394 +Language=English +%1 +. +MessageId=26395 +Language=English +%1 +. +MessageId=26396 +Language=English +%1 +. +MessageId=26397 +Language=English +%1 +. +MessageId=26398 +Language=English +%1 +. +MessageId=26399 +Language=English +%1 +. +MessageId=26400 +Language=English +%1 +. +MessageId=26401 +Language=English +%1 +. +MessageId=26402 +Language=English +%1 +. +MessageId=26403 +Language=English +%1 +. +MessageId=26404 +Language=English +%1 +. +MessageId=26405 +Language=English +%1 +. +MessageId=26406 +Language=English +%1 +. +MessageId=26407 +Language=English +%1 +. +MessageId=26408 +Language=English +%1 +. +MessageId=26409 +Language=English +%1 +. +MessageId=26410 +Language=English +%1 +. +MessageId=26411 +Language=English +%1 +. +MessageId=26412 +Language=English +%1 +. +MessageId=26413 +Language=English +%1 +. +MessageId=26414 +Language=English +%1 +. +MessageId=26415 +Language=English +%1 +. +MessageId=26416 +Language=English +%1 +. +MessageId=26417 +Language=English +%1 +. +MessageId=26418 +Language=English +%1 +. +MessageId=26419 +Language=English +%1 +. +MessageId=26420 +Language=English +%1 +. +MessageId=26421 +Language=English +%1 +. +MessageId=26422 +Language=English +%1 +. +MessageId=26423 +Language=English +%1 +. +MessageId=26424 +Language=English +%1 +. +MessageId=26425 +Language=English +%1 +. +MessageId=26426 +Language=English +%1 +. +MessageId=26427 +Language=English +%1 +. +MessageId=26428 +Language=English +%1 +. +MessageId=26429 +Language=English +%1 +. +MessageId=26430 +Language=English +%1 +. +MessageId=26431 +Language=English +%1 +. +MessageId=26432 +Language=English +%1 +. +MessageId=26433 +Language=English +%1 +. +MessageId=26434 +Language=English +%1 +. +MessageId=26435 +Language=English +%1 +. +MessageId=26436 +Language=English +%1 +. +MessageId=26437 +Language=English +%1 +. +MessageId=26438 +Language=English +%1 +. +MessageId=26439 +Language=English +%1 +. +MessageId=26440 +Language=English +%1 +. +MessageId=26441 +Language=English +%1 +. +MessageId=26442 +Language=English +%1 +. +MessageId=26443 +Language=English +%1 +. +MessageId=26444 +Language=English +%1 +. +MessageId=26445 +Language=English +%1 +. +MessageId=26446 +Language=English +%1 +. +MessageId=26447 +Language=English +%1 +. +MessageId=26448 +Language=English +%1 +. +MessageId=26449 +Language=English +%1 +. +MessageId=26450 +Language=English +%1 +. +MessageId=26451 +Language=English +%1 +. +MessageId=26452 +Language=English +%1 +. +MessageId=26453 +Language=English +%1 +. +MessageId=26454 +Language=English +%1 +. +MessageId=26455 +Language=English +%1 +. +MessageId=26456 +Language=English +%1 +. +MessageId=26457 +Language=English +%1 +. +MessageId=26458 +Language=English +%1 +. +MessageId=26459 +Language=English +%1 +. +MessageId=26460 +Language=English +%1 +. +MessageId=26461 +Language=English +%1 +. +MessageId=26462 +Language=English +%1 +. +MessageId=26463 +Language=English +%1 +. +MessageId=26464 +Language=English +%1 +. +MessageId=26465 +Language=English +%1 +. +MessageId=26466 +Language=English +%1 +. +MessageId=26467 +Language=English +%1 +. +MessageId=26468 +Language=English +%1 +. +MessageId=26469 +Language=English +%1 +. +MessageId=26470 +Language=English +%1 +. +MessageId=26471 +Language=English +%1 +. +MessageId=26472 +Language=English +%1 +. +MessageId=26473 +Language=English +%1 +. +MessageId=26474 +Language=English +%1 +. +MessageId=26475 +Language=English +%1 +. +MessageId=26476 +Language=English +%1 +. +MessageId=26477 +Language=English +%1 +. +MessageId=26478 +Language=English +%1 +. +MessageId=26479 +Language=English +%1 +. +MessageId=26480 +Language=English +%1 +. +MessageId=26481 +Language=English +%1 +. +MessageId=26482 +Language=English +%1 +. +MessageId=26483 +Language=English +%1 +. +MessageId=26484 +Language=English +%1 +. +MessageId=26485 +Language=English +%1 +. +MessageId=26486 +Language=English +%1 +. +MessageId=26487 +Language=English +%1 +. +MessageId=26488 +Language=English +%1 +. +MessageId=26489 +Language=English +%1 +. +MessageId=26490 +Language=English +%1 +. +MessageId=26491 +Language=English +%1 +. +MessageId=26492 +Language=English +%1 +. +MessageId=26493 +Language=English +%1 +. +MessageId=26494 +Language=English +%1 +. +MessageId=26495 +Language=English +%1 +. +MessageId=26496 +Language=English +%1 +. +MessageId=26497 +Language=English +%1 +. +MessageId=26498 +Language=English +%1 +. +MessageId=26499 +Language=English +%1 +. +MessageId=26500 +Language=English +%1 +. +MessageId=26501 +Language=English +%1 +. +MessageId=26502 +Language=English +%1 +. +MessageId=26503 +Language=English +%1 +. +MessageId=26504 +Language=English +%1 +. +MessageId=26505 +Language=English +%1 +. +MessageId=26506 +Language=English +%1 +. +MessageId=26507 +Language=English +%1 +. +MessageId=26508 +Language=English +%1 +. +MessageId=26509 +Language=English +%1 +. +MessageId=26510 +Language=English +%1 +. +MessageId=26511 +Language=English +%1 +. +MessageId=26512 +Language=English +%1 +. +MessageId=26513 +Language=English +%1 +. +MessageId=26514 +Language=English +%1 +. +MessageId=26515 +Language=English +%1 +. +MessageId=26516 +Language=English +%1 +. +MessageId=26517 +Language=English +%1 +. +MessageId=26518 +Language=English +%1 +. +MessageId=26519 +Language=English +%1 +. +MessageId=26520 +Language=English +%1 +. +MessageId=26521 +Language=English +%1 +. +MessageId=26522 +Language=English +%1 +. +MessageId=26523 +Language=English +%1 +. +MessageId=26524 +Language=English +%1 +. +MessageId=26525 +Language=English +%1 +. +MessageId=26526 +Language=English +%1 +. +MessageId=26527 +Language=English +%1 +. +MessageId=26528 +Language=English +%1 +. +MessageId=26529 +Language=English +%1 +. +MessageId=26530 +Language=English +%1 +. +MessageId=26531 +Language=English +%1 +. +MessageId=26532 +Language=English +%1 +. +MessageId=26533 +Language=English +%1 +. +MessageId=26534 +Language=English +%1 +. +MessageId=26535 +Language=English +%1 +. +MessageId=26536 +Language=English +%1 +. +MessageId=26537 +Language=English +%1 +. +MessageId=26538 +Language=English +%1 +. +MessageId=26539 +Language=English +%1 +. +MessageId=26540 +Language=English +%1 +. +MessageId=26541 +Language=English +%1 +. +MessageId=26542 +Language=English +%1 +. +MessageId=26543 +Language=English +%1 +. +MessageId=26544 +Language=English +%1 +. +MessageId=26545 +Language=English +%1 +. +MessageId=26546 +Language=English +%1 +. +MessageId=26547 +Language=English +%1 +. +MessageId=26548 +Language=English +%1 +. +MessageId=26549 +Language=English +%1 +. +MessageId=26550 +Language=English +%1 +. +MessageId=26551 +Language=English +%1 +. +MessageId=26552 +Language=English +%1 +. +MessageId=26553 +Language=English +%1 +. +MessageId=26554 +Language=English +%1 +. +MessageId=26555 +Language=English +%1 +. +MessageId=26556 +Language=English +%1 +. +MessageId=26557 +Language=English +%1 +. +MessageId=26558 +Language=English +%1 +. +MessageId=26559 +Language=English +%1 +. +MessageId=26560 +Language=English +%1 +. +MessageId=26561 +Language=English +%1 +. +MessageId=26562 +Language=English +%1 +. +MessageId=26563 +Language=English +%1 +. +MessageId=26564 +Language=English +%1 +. +MessageId=26565 +Language=English +%1 +. +MessageId=26566 +Language=English +%1 +. +MessageId=26567 +Language=English +%1 +. +MessageId=26568 +Language=English +%1 +. +MessageId=26569 +Language=English +%1 +. +MessageId=26570 +Language=English +%1 +. +MessageId=26571 +Language=English +%1 +. +MessageId=26572 +Language=English +%1 +. +MessageId=26573 +Language=English +%1 +. +MessageId=26574 +Language=English +%1 +. +MessageId=26575 +Language=English +%1 +. +MessageId=26576 +Language=English +%1 +. +MessageId=26577 +Language=English +%1 +. +MessageId=26578 +Language=English +%1 +. +MessageId=26579 +Language=English +%1 +. +MessageId=26580 +Language=English +%1 +. +MessageId=26581 +Language=English +%1 +. +MessageId=26582 +Language=English +%1 +. +MessageId=26583 +Language=English +%1 +. +MessageId=26584 +Language=English +%1 +. +MessageId=26585 +Language=English +%1 +. +MessageId=26586 +Language=English +%1 +. +MessageId=26587 +Language=English +%1 +. +MessageId=26588 +Language=English +%1 +. +MessageId=26589 +Language=English +%1 +. +MessageId=26590 +Language=English +%1 +. +MessageId=26591 +Language=English +%1 +. +MessageId=26592 +Language=English +%1 +. +MessageId=26593 +Language=English +%1 +. +MessageId=26594 +Language=English +%1 +. +MessageId=26595 +Language=English +%1 +. +MessageId=26596 +Language=English +%1 +. +MessageId=26597 +Language=English +%1 +. +MessageId=26598 +Language=English +%1 +. +MessageId=26599 +Language=English +%1 +. +MessageId=26600 +Language=English +%1 +. +MessageId=26601 +Language=English +%1 +. +MessageId=26602 +Language=English +%1 +. +MessageId=26603 +Language=English +%1 +. +MessageId=26604 +Language=English +%1 +. +MessageId=26605 +Language=English +%1 +. +MessageId=26606 +Language=English +%1 +. +MessageId=26607 +Language=English +%1 +. +MessageId=26608 +Language=English +%1 +. +MessageId=26609 +Language=English +%1 +. +MessageId=26610 +Language=English +%1 +. +MessageId=26611 +Language=English +%1 +. +MessageId=26612 +Language=English +%1 +. +MessageId=26613 +Language=English +%1 +. +MessageId=26614 +Language=English +%1 +. +MessageId=26615 +Language=English +%1 +. +MessageId=26616 +Language=English +%1 +. +MessageId=26617 +Language=English +%1 +. +MessageId=26618 +Language=English +%1 +. +MessageId=26619 +Language=English +%1 +. +MessageId=26620 +Language=English +%1 +. +MessageId=26621 +Language=English +%1 +. +MessageId=26622 +Language=English +%1 +. +MessageId=26623 +Language=English +%1 +. +MessageId=26624 +Language=English +%1 +. +MessageId=26625 +Language=English +%1 +. +MessageId=26626 +Language=English +%1 +. +MessageId=26627 +Language=English +%1 +. +MessageId=26628 +Language=English +%1 +. +MessageId=26629 +Language=English +%1 +. +MessageId=26630 +Language=English +%1 +. +MessageId=26631 +Language=English +%1 +. +MessageId=26632 +Language=English +%1 +. +MessageId=26633 +Language=English +%1 +. +MessageId=26634 +Language=English +%1 +. +MessageId=26635 +Language=English +%1 +. +MessageId=26636 +Language=English +%1 +. +MessageId=26637 +Language=English +%1 +. +MessageId=26638 +Language=English +%1 +. +MessageId=26639 +Language=English +%1 +. +MessageId=26640 +Language=English +%1 +. +MessageId=26641 +Language=English +%1 +. +MessageId=26642 +Language=English +%1 +. +MessageId=26643 +Language=English +%1 +. +MessageId=26644 +Language=English +%1 +. +MessageId=26645 +Language=English +%1 +. +MessageId=26646 +Language=English +%1 +. +MessageId=26647 +Language=English +%1 +. +MessageId=26648 +Language=English +%1 +. +MessageId=26649 +Language=English +%1 +. +MessageId=26650 +Language=English +%1 +. +MessageId=26651 +Language=English +%1 +. +MessageId=26652 +Language=English +%1 +. +MessageId=26653 +Language=English +%1 +. +MessageId=26654 +Language=English +%1 +. +MessageId=26655 +Language=English +%1 +. +MessageId=26656 +Language=English +%1 +. +MessageId=26657 +Language=English +%1 +. +MessageId=26658 +Language=English +%1 +. +MessageId=26659 +Language=English +%1 +. +MessageId=26660 +Language=English +%1 +. +MessageId=26661 +Language=English +%1 +. +MessageId=26662 +Language=English +%1 +. +MessageId=26663 +Language=English +%1 +. +MessageId=26664 +Language=English +%1 +. +MessageId=26665 +Language=English +%1 +. +MessageId=26666 +Language=English +%1 +. +MessageId=26667 +Language=English +%1 +. +MessageId=26668 +Language=English +%1 +. +MessageId=26669 +Language=English +%1 +. +MessageId=26670 +Language=English +%1 +. +MessageId=26671 +Language=English +%1 +. +MessageId=26672 +Language=English +%1 +. +MessageId=26673 +Language=English +%1 +. +MessageId=26674 +Language=English +%1 +. +MessageId=26675 +Language=English +%1 +. +MessageId=26676 +Language=English +%1 +. +MessageId=26677 +Language=English +%1 +. +MessageId=26678 +Language=English +%1 +. +MessageId=26679 +Language=English +%1 +. +MessageId=26680 +Language=English +%1 +. +MessageId=26681 +Language=English +%1 +. +MessageId=26682 +Language=English +%1 +. +MessageId=26683 +Language=English +%1 +. +MessageId=26684 +Language=English +%1 +. +MessageId=26685 +Language=English +%1 +. +MessageId=26686 +Language=English +%1 +. +MessageId=26687 +Language=English +%1 +. +MessageId=26688 +Language=English +%1 +. +MessageId=26689 +Language=English +%1 +. +MessageId=26690 +Language=English +%1 +. +MessageId=26691 +Language=English +%1 +. +MessageId=26692 +Language=English +%1 +. +MessageId=26693 +Language=English +%1 +. +MessageId=26694 +Language=English +%1 +. +MessageId=26695 +Language=English +%1 +. +MessageId=26696 +Language=English +%1 +. +MessageId=26697 +Language=English +%1 +. +MessageId=26698 +Language=English +%1 +. +MessageId=26699 +Language=English +%1 +. +MessageId=26700 +Language=English +%1 +. +MessageId=26701 +Language=English +%1 +. +MessageId=26702 +Language=English +%1 +. +MessageId=26703 +Language=English +%1 +. +MessageId=26704 +Language=English +%1 +. +MessageId=26705 +Language=English +%1 +. +MessageId=26706 +Language=English +%1 +. +MessageId=26707 +Language=English +%1 +. +MessageId=26708 +Language=English +%1 +. +MessageId=26709 +Language=English +%1 +. +MessageId=26710 +Language=English +%1 +. +MessageId=26711 +Language=English +%1 +. +MessageId=26712 +Language=English +%1 +. +MessageId=26713 +Language=English +%1 +. +MessageId=26714 +Language=English +%1 +. +MessageId=26715 +Language=English +%1 +. +MessageId=26716 +Language=English +%1 +. +MessageId=26717 +Language=English +%1 +. +MessageId=26718 +Language=English +%1 +. +MessageId=26719 +Language=English +%1 +. +MessageId=26720 +Language=English +%1 +. +MessageId=26721 +Language=English +%1 +. +MessageId=26722 +Language=English +%1 +. +MessageId=26723 +Language=English +%1 +. +MessageId=26724 +Language=English +%1 +. +MessageId=26725 +Language=English +%1 +. +MessageId=26726 +Language=English +%1 +. +MessageId=26727 +Language=English +%1 +. +MessageId=26728 +Language=English +%1 +. +MessageId=26729 +Language=English +%1 +. +MessageId=26730 +Language=English +%1 +. +MessageId=26731 +Language=English +%1 +. +MessageId=26732 +Language=English +%1 +. +MessageId=26733 +Language=English +%1 +. +MessageId=26734 +Language=English +%1 +. +MessageId=26735 +Language=English +%1 +. +MessageId=26736 +Language=English +%1 +. +MessageId=26737 +Language=English +%1 +. +MessageId=26738 +Language=English +%1 +. +MessageId=26739 +Language=English +%1 +. +MessageId=26740 +Language=English +%1 +. +MessageId=26741 +Language=English +%1 +. +MessageId=26742 +Language=English +%1 +. +MessageId=26743 +Language=English +%1 +. +MessageId=26744 +Language=English +%1 +. +MessageId=26745 +Language=English +%1 +. +MessageId=26746 +Language=English +%1 +. +MessageId=26747 +Language=English +%1 +. +MessageId=26748 +Language=English +%1 +. +MessageId=26749 +Language=English +%1 +. +MessageId=26750 +Language=English +%1 +. +MessageId=26751 +Language=English +%1 +. +MessageId=26752 +Language=English +%1 +. +MessageId=26753 +Language=English +%1 +. +MessageId=26754 +Language=English +%1 +. +MessageId=26755 +Language=English +%1 +. +MessageId=26756 +Language=English +%1 +. +MessageId=26757 +Language=English +%1 +. +MessageId=26758 +Language=English +%1 +. +MessageId=26759 +Language=English +%1 +. +MessageId=26760 +Language=English +%1 +. +MessageId=26761 +Language=English +%1 +. +MessageId=26762 +Language=English +%1 +. +MessageId=26763 +Language=English +%1 +. +MessageId=26764 +Language=English +%1 +. +MessageId=26765 +Language=English +%1 +. +MessageId=26766 +Language=English +%1 +. +MessageId=26767 +Language=English +%1 +. +MessageId=26768 +Language=English +%1 +. +MessageId=26769 +Language=English +%1 +. +MessageId=26770 +Language=English +%1 +. +MessageId=26771 +Language=English +%1 +. +MessageId=26772 +Language=English +%1 +. +MessageId=26773 +Language=English +%1 +. +MessageId=26774 +Language=English +%1 +. +MessageId=26775 +Language=English +%1 +. +MessageId=26776 +Language=English +%1 +. +MessageId=26777 +Language=English +%1 +. +MessageId=26778 +Language=English +%1 +. +MessageId=26779 +Language=English +%1 +. +MessageId=26780 +Language=English +%1 +. +MessageId=26781 +Language=English +%1 +. +MessageId=26782 +Language=English +%1 +. +MessageId=26783 +Language=English +%1 +. +MessageId=26784 +Language=English +%1 +. +MessageId=26785 +Language=English +%1 +. +MessageId=26786 +Language=English +%1 +. +MessageId=26787 +Language=English +%1 +. +MessageId=26788 +Language=English +%1 +. +MessageId=26789 +Language=English +%1 +. +MessageId=26790 +Language=English +%1 +. +MessageId=26791 +Language=English +%1 +. +MessageId=26792 +Language=English +%1 +. +MessageId=26793 +Language=English +%1 +. +MessageId=26794 +Language=English +%1 +. +MessageId=26795 +Language=English +%1 +. +MessageId=26796 +Language=English +%1 +. +MessageId=26797 +Language=English +%1 +. +MessageId=26798 +Language=English +%1 +. +MessageId=26799 +Language=English +%1 +. +MessageId=26800 +Language=English +%1 +. +MessageId=26801 +Language=English +%1 +. +MessageId=26802 +Language=English +%1 +. +MessageId=26803 +Language=English +%1 +. +MessageId=26804 +Language=English +%1 +. +MessageId=26805 +Language=English +%1 +. +MessageId=26806 +Language=English +%1 +. +MessageId=26807 +Language=English +%1 +. +MessageId=26808 +Language=English +%1 +. +MessageId=26809 +Language=English +%1 +. +MessageId=26810 +Language=English +%1 +. +MessageId=26811 +Language=English +%1 +. +MessageId=26812 +Language=English +%1 +. +MessageId=26813 +Language=English +%1 +. +MessageId=26814 +Language=English +%1 +. +MessageId=26815 +Language=English +%1 +. +MessageId=26816 +Language=English +%1 +. +MessageId=26817 +Language=English +%1 +. +MessageId=26818 +Language=English +%1 +. +MessageId=26819 +Language=English +%1 +. +MessageId=26820 +Language=English +%1 +. +MessageId=26821 +Language=English +%1 +. +MessageId=26822 +Language=English +%1 +. +MessageId=26823 +Language=English +%1 +. +MessageId=26824 +Language=English +%1 +. +MessageId=26825 +Language=English +%1 +. +MessageId=26826 +Language=English +%1 +. +MessageId=26827 +Language=English +%1 +. +MessageId=26828 +Language=English +%1 +. +MessageId=26829 +Language=English +%1 +. +MessageId=26830 +Language=English +%1 +. +MessageId=26831 +Language=English +%1 +. +MessageId=26832 +Language=English +%1 +. +MessageId=26833 +Language=English +%1 +. +MessageId=26834 +Language=English +%1 +. +MessageId=26835 +Language=English +%1 +. +MessageId=26836 +Language=English +%1 +. +MessageId=26837 +Language=English +%1 +. +MessageId=26838 +Language=English +%1 +. +MessageId=26839 +Language=English +%1 +. +MessageId=26840 +Language=English +%1 +. +MessageId=26841 +Language=English +%1 +. +MessageId=26842 +Language=English +%1 +. +MessageId=26843 +Language=English +%1 +. +MessageId=26844 +Language=English +%1 +. +MessageId=26845 +Language=English +%1 +. +MessageId=26846 +Language=English +%1 +. +MessageId=26847 +Language=English +%1 +. +MessageId=26848 +Language=English +%1 +. +MessageId=26849 +Language=English +%1 +. +MessageId=26850 +Language=English +%1 +. +MessageId=26851 +Language=English +%1 +. +MessageId=26852 +Language=English +%1 +. +MessageId=26853 +Language=English +%1 +. +MessageId=26854 +Language=English +%1 +. +MessageId=26855 +Language=English +%1 +. +MessageId=26856 +Language=English +%1 +. +MessageId=26857 +Language=English +%1 +. +MessageId=26858 +Language=English +%1 +. +MessageId=26859 +Language=English +%1 +. +MessageId=26860 +Language=English +%1 +. +MessageId=26861 +Language=English +%1 +. +MessageId=26862 +Language=English +%1 +. +MessageId=26863 +Language=English +%1 +. +MessageId=26864 +Language=English +%1 +. +MessageId=26865 +Language=English +%1 +. +MessageId=26866 +Language=English +%1 +. +MessageId=26867 +Language=English +%1 +. +MessageId=26868 +Language=English +%1 +. +MessageId=26869 +Language=English +%1 +. +MessageId=26870 +Language=English +%1 +. +MessageId=26871 +Language=English +%1 +. +MessageId=26872 +Language=English +%1 +. +MessageId=26873 +Language=English +%1 +. +MessageId=26874 +Language=English +%1 +. +MessageId=26875 +Language=English +%1 +. +MessageId=26876 +Language=English +%1 +. +MessageId=26877 +Language=English +%1 +. +MessageId=26878 +Language=English +%1 +. +MessageId=26879 +Language=English +%1 +. +MessageId=26880 +Language=English +%1 +. +MessageId=26881 +Language=English +%1 +. +MessageId=26882 +Language=English +%1 +. +MessageId=26883 +Language=English +%1 +. +MessageId=26884 +Language=English +%1 +. +MessageId=26885 +Language=English +%1 +. +MessageId=26886 +Language=English +%1 +. +MessageId=26887 +Language=English +%1 +. +MessageId=26888 +Language=English +%1 +. +MessageId=26889 +Language=English +%1 +. +MessageId=26890 +Language=English +%1 +. +MessageId=26891 +Language=English +%1 +. +MessageId=26892 +Language=English +%1 +. +MessageId=26893 +Language=English +%1 +. +MessageId=26894 +Language=English +%1 +. +MessageId=26895 +Language=English +%1 +. +MessageId=26896 +Language=English +%1 +. +MessageId=26897 +Language=English +%1 +. +MessageId=26898 +Language=English +%1 +. +MessageId=26899 +Language=English +%1 +. +MessageId=26900 +Language=English +%1 +. +MessageId=26901 +Language=English +%1 +. +MessageId=26902 +Language=English +%1 +. +MessageId=26903 +Language=English +%1 +. +MessageId=26904 +Language=English +%1 +. +MessageId=26905 +Language=English +%1 +. +MessageId=26906 +Language=English +%1 +. +MessageId=26907 +Language=English +%1 +. +MessageId=26908 +Language=English +%1 +. +MessageId=26909 +Language=English +%1 +. +MessageId=26910 +Language=English +%1 +. +MessageId=26911 +Language=English +%1 +. +MessageId=26912 +Language=English +%1 +. +MessageId=26913 +Language=English +%1 +. +MessageId=26914 +Language=English +%1 +. +MessageId=26915 +Language=English +%1 +. +MessageId=26916 +Language=English +%1 +. +MessageId=26917 +Language=English +%1 +. +MessageId=26918 +Language=English +%1 +. +MessageId=26919 +Language=English +%1 +. +MessageId=26920 +Language=English +%1 +. +MessageId=26921 +Language=English +%1 +. +MessageId=26922 +Language=English +%1 +. +MessageId=26923 +Language=English +%1 +. +MessageId=26924 +Language=English +%1 +. +MessageId=26925 +Language=English +%1 +. +MessageId=26926 +Language=English +%1 +. +MessageId=26927 +Language=English +%1 +. +MessageId=26928 +Language=English +%1 +. +MessageId=26929 +Language=English +%1 +. +MessageId=26930 +Language=English +%1 +. +MessageId=26931 +Language=English +%1 +. +MessageId=26932 +Language=English +%1 +. +MessageId=26933 +Language=English +%1 +. +MessageId=26934 +Language=English +%1 +. +MessageId=26935 +Language=English +%1 +. +MessageId=26936 +Language=English +%1 +. +MessageId=26937 +Language=English +%1 +. +MessageId=26938 +Language=English +%1 +. +MessageId=26939 +Language=English +%1 +. +MessageId=26940 +Language=English +%1 +. +MessageId=26941 +Language=English +%1 +. +MessageId=26942 +Language=English +%1 +. +MessageId=26943 +Language=English +%1 +. +MessageId=26944 +Language=English +%1 +. +MessageId=26945 +Language=English +%1 +. +MessageId=26946 +Language=English +%1 +. +MessageId=26947 +Language=English +%1 +. +MessageId=26948 +Language=English +%1 +. +MessageId=26949 +Language=English +%1 +. +MessageId=26950 +Language=English +%1 +. +MessageId=26951 +Language=English +%1 +. +MessageId=26952 +Language=English +%1 +. +MessageId=26953 +Language=English +%1 +. +MessageId=26954 +Language=English +%1 +. +MessageId=26955 +Language=English +%1 +. +MessageId=26956 +Language=English +%1 +. +MessageId=26957 +Language=English +%1 +. +MessageId=26958 +Language=English +%1 +. +MessageId=26959 +Language=English +%1 +. +MessageId=26960 +Language=English +%1 +. +MessageId=26961 +Language=English +%1 +. +MessageId=26962 +Language=English +%1 +. +MessageId=26963 +Language=English +%1 +. +MessageId=26964 +Language=English +%1 +. +MessageId=26965 +Language=English +%1 +. +MessageId=26966 +Language=English +%1 +. +MessageId=26967 +Language=English +%1 +. +MessageId=26968 +Language=English +%1 +. +MessageId=26969 +Language=English +%1 +. +MessageId=26970 +Language=English +%1 +. +MessageId=26971 +Language=English +%1 +. +MessageId=26972 +Language=English +%1 +. +MessageId=26973 +Language=English +%1 +. +MessageId=26974 +Language=English +%1 +. +MessageId=26975 +Language=English +%1 +. +MessageId=26976 +Language=English +%1 +. +MessageId=26977 +Language=English +%1 +. +MessageId=26978 +Language=English +%1 +. +MessageId=26979 +Language=English +%1 +. +MessageId=26980 +Language=English +%1 +. +MessageId=26981 +Language=English +%1 +. +MessageId=26982 +Language=English +%1 +. +MessageId=26983 +Language=English +%1 +. +MessageId=26984 +Language=English +%1 +. +MessageId=26985 +Language=English +%1 +. +MessageId=26986 +Language=English +%1 +. +MessageId=26987 +Language=English +%1 +. +MessageId=26988 +Language=English +%1 +. +MessageId=26989 +Language=English +%1 +. +MessageId=26990 +Language=English +%1 +. +MessageId=26991 +Language=English +%1 +. +MessageId=26992 +Language=English +%1 +. +MessageId=26993 +Language=English +%1 +. +MessageId=26994 +Language=English +%1 +. +MessageId=26995 +Language=English +%1 +. +MessageId=26996 +Language=English +%1 +. +MessageId=26997 +Language=English +%1 +. +MessageId=26998 +Language=English +%1 +. +MessageId=26999 +Language=English +%1 +. +MessageId=27000 +Language=English +%1 +. +MessageId=27001 +Language=English +%1 +. +MessageId=27002 +Language=English +%1 +. +MessageId=27003 +Language=English +%1 +. +MessageId=27004 +Language=English +%1 +. +MessageId=27005 +Language=English +%1 +. +MessageId=27006 +Language=English +%1 +. +MessageId=27007 +Language=English +%1 +. +MessageId=27008 +Language=English +%1 +. +MessageId=27009 +Language=English +%1 +. +MessageId=27010 +Language=English +%1 +. +MessageId=27011 +Language=English +%1 +. +MessageId=27012 +Language=English +%1 +. +MessageId=27013 +Language=English +%1 +. +MessageId=27014 +Language=English +%1 +. +MessageId=27015 +Language=English +%1 +. +MessageId=27016 +Language=English +%1 +. +MessageId=27017 +Language=English +%1 +. +MessageId=27018 +Language=English +%1 +. +MessageId=27019 +Language=English +%1 +. +MessageId=27020 +Language=English +%1 +. +MessageId=27021 +Language=English +%1 +. +MessageId=27022 +Language=English +%1 +. +MessageId=27023 +Language=English +%1 +. +MessageId=27024 +Language=English +%1 +. +MessageId=27025 +Language=English +%1 +. +MessageId=27026 +Language=English +%1 +. +MessageId=27027 +Language=English +%1 +. +MessageId=27028 +Language=English +%1 +. +MessageId=27029 +Language=English +%1 +. +MessageId=27030 +Language=English +%1 +. +MessageId=27031 +Language=English +%1 +. +MessageId=27032 +Language=English +%1 +. +MessageId=27033 +Language=English +%1 +. +MessageId=27034 +Language=English +%1 +. +MessageId=27035 +Language=English +%1 +. +MessageId=27036 +Language=English +%1 +. +MessageId=27037 +Language=English +%1 +. +MessageId=27038 +Language=English +%1 +. +MessageId=27039 +Language=English +%1 +. +MessageId=27040 +Language=English +%1 +. +MessageId=27041 +Language=English +%1 +. +MessageId=27042 +Language=English +%1 +. +MessageId=27043 +Language=English +%1 +. +MessageId=27044 +Language=English +%1 +. +MessageId=27045 +Language=English +%1 +. +MessageId=27046 +Language=English +%1 +. +MessageId=27047 +Language=English +%1 +. +MessageId=27048 +Language=English +%1 +. +MessageId=27049 +Language=English +%1 +. +MessageId=27050 +Language=English +%1 +. +MessageId=27051 +Language=English +%1 +. +MessageId=27052 +Language=English +%1 +. +MessageId=27053 +Language=English +%1 +. +MessageId=27054 +Language=English +%1 +. +MessageId=27055 +Language=English +%1 +. +MessageId=27056 +Language=English +%1 +. +MessageId=27057 +Language=English +%1 +. +MessageId=27058 +Language=English +%1 +. +MessageId=27059 +Language=English +%1 +. +MessageId=27060 +Language=English +%1 +. +MessageId=27061 +Language=English +%1 +. +MessageId=27062 +Language=English +%1 +. +MessageId=27063 +Language=English +%1 +. +MessageId=27064 +Language=English +%1 +. +MessageId=27065 +Language=English +%1 +. +MessageId=27066 +Language=English +%1 +. +MessageId=27067 +Language=English +%1 +. +MessageId=27068 +Language=English +%1 +. +MessageId=27069 +Language=English +%1 +. +MessageId=27070 +Language=English +%1 +. +MessageId=27071 +Language=English +%1 +. +MessageId=27072 +Language=English +%1 +. +MessageId=27073 +Language=English +%1 +. +MessageId=27074 +Language=English +%1 +. +MessageId=27075 +Language=English +%1 +. +MessageId=27076 +Language=English +%1 +. +MessageId=27077 +Language=English +%1 +. +MessageId=27078 +Language=English +%1 +. +MessageId=27079 +Language=English +%1 +. +MessageId=27080 +Language=English +%1 +. +MessageId=27081 +Language=English +%1 +. +MessageId=27082 +Language=English +%1 +. +MessageId=27083 +Language=English +%1 +. +MessageId=27084 +Language=English +%1 +. +MessageId=27085 +Language=English +%1 +. +MessageId=27086 +Language=English +%1 +. +MessageId=27087 +Language=English +%1 +. +MessageId=27088 +Language=English +%1 +. +MessageId=27089 +Language=English +%1 +. +MessageId=27090 +Language=English +%1 +. +MessageId=27091 +Language=English +%1 +. +MessageId=27092 +Language=English +%1 +. +MessageId=27093 +Language=English +%1 +. +MessageId=27094 +Language=English +%1 +. +MessageId=27095 +Language=English +%1 +. +MessageId=27096 +Language=English +%1 +. +MessageId=27097 +Language=English +%1 +. +MessageId=27098 +Language=English +%1 +. +MessageId=27099 +Language=English +%1 +. +MessageId=27100 +Language=English +%1 +. +MessageId=27101 +Language=English +%1 +. +MessageId=27102 +Language=English +%1 +. +MessageId=27103 +Language=English +%1 +. +MessageId=27104 +Language=English +%1 +. +MessageId=27105 +Language=English +%1 +. +MessageId=27106 +Language=English +%1 +. +MessageId=27107 +Language=English +%1 +. +MessageId=27108 +Language=English +%1 +. +MessageId=27109 +Language=English +%1 +. +MessageId=27110 +Language=English +%1 +. +MessageId=27111 +Language=English +%1 +. +MessageId=27112 +Language=English +%1 +. +MessageId=27113 +Language=English +%1 +. +MessageId=27114 +Language=English +%1 +. +MessageId=27115 +Language=English +%1 +. +MessageId=27116 +Language=English +%1 +. +MessageId=27117 +Language=English +%1 +. +MessageId=27118 +Language=English +%1 +. +MessageId=27119 +Language=English +%1 +. +MessageId=27120 +Language=English +%1 +. +MessageId=27121 +Language=English +%1 +. +MessageId=27122 +Language=English +%1 +. +MessageId=27123 +Language=English +%1 +. +MessageId=27124 +Language=English +%1 +. +MessageId=27125 +Language=English +%1 +. +MessageId=27126 +Language=English +%1 +. +MessageId=27127 +Language=English +%1 +. +MessageId=27128 +Language=English +%1 +. +MessageId=27129 +Language=English +%1 +. +MessageId=27130 +Language=English +%1 +. +MessageId=27131 +Language=English +%1 +. +MessageId=27132 +Language=English +%1 +. +MessageId=27133 +Language=English +%1 +. +MessageId=27134 +Language=English +%1 +. +MessageId=27135 +Language=English +%1 +. +MessageId=27136 +Language=English +%1 +. +MessageId=27137 +Language=English +%1 +. +MessageId=27138 +Language=English +%1 +. +MessageId=27139 +Language=English +%1 +. +MessageId=27140 +Language=English +%1 +. +MessageId=27141 +Language=English +%1 +. +MessageId=27142 +Language=English +%1 +. +MessageId=27143 +Language=English +%1 +. +MessageId=27144 +Language=English +%1 +. +MessageId=27145 +Language=English +%1 +. +MessageId=27146 +Language=English +%1 +. +MessageId=27147 +Language=English +%1 +. +MessageId=27148 +Language=English +%1 +. +MessageId=27149 +Language=English +%1 +. +MessageId=27150 +Language=English +%1 +. +MessageId=27151 +Language=English +%1 +. +MessageId=27152 +Language=English +%1 +. +MessageId=27153 +Language=English +%1 +. +MessageId=27154 +Language=English +%1 +. +MessageId=27155 +Language=English +%1 +. +MessageId=27156 +Language=English +%1 +. +MessageId=27157 +Language=English +%1 +. +MessageId=27158 +Language=English +%1 +. +MessageId=27159 +Language=English +%1 +. +MessageId=27160 +Language=English +%1 +. +MessageId=27161 +Language=English +%1 +. +MessageId=27162 +Language=English +%1 +. +MessageId=27163 +Language=English +%1 +. +MessageId=27164 +Language=English +%1 +. +MessageId=27165 +Language=English +%1 +. +MessageId=27166 +Language=English +%1 +. +MessageId=27167 +Language=English +%1 +. +MessageId=27168 +Language=English +%1 +. +MessageId=27169 +Language=English +%1 +. +MessageId=27170 +Language=English +%1 +. +MessageId=27171 +Language=English +%1 +. +MessageId=27172 +Language=English +%1 +. +MessageId=27173 +Language=English +%1 +. +MessageId=27174 +Language=English +%1 +. +MessageId=27175 +Language=English +%1 +. +MessageId=27176 +Language=English +%1 +. +MessageId=27177 +Language=English +%1 +. +MessageId=27178 +Language=English +%1 +. +MessageId=27179 +Language=English +%1 +. +MessageId=27180 +Language=English +%1 +. +MessageId=27181 +Language=English +%1 +. +MessageId=27182 +Language=English +%1 +. +MessageId=27183 +Language=English +%1 +. +MessageId=27184 +Language=English +%1 +. +MessageId=27185 +Language=English +%1 +. +MessageId=27186 +Language=English +%1 +. +MessageId=27187 +Language=English +%1 +. +MessageId=27188 +Language=English +%1 +. +MessageId=27189 +Language=English +%1 +. +MessageId=27190 +Language=English +%1 +. +MessageId=27191 +Language=English +%1 +. +MessageId=27192 +Language=English +%1 +. +MessageId=27193 +Language=English +%1 +. +MessageId=27194 +Language=English +%1 +. +MessageId=27195 +Language=English +%1 +. +MessageId=27196 +Language=English +%1 +. +MessageId=27197 +Language=English +%1 +. +MessageId=27198 +Language=English +%1 +. +MessageId=27199 +Language=English +%1 +. +MessageId=27200 +Language=English +%1 +. +MessageId=27201 +Language=English +%1 +. +MessageId=27202 +Language=English +%1 +. +MessageId=27203 +Language=English +%1 +. +MessageId=27204 +Language=English +%1 +. +MessageId=27205 +Language=English +%1 +. +MessageId=27206 +Language=English +%1 +. +MessageId=27207 +Language=English +%1 +. +MessageId=27208 +Language=English +%1 +. +MessageId=27209 +Language=English +%1 +. +MessageId=27210 +Language=English +%1 +. +MessageId=27211 +Language=English +%1 +. +MessageId=27212 +Language=English +%1 +. +MessageId=27213 +Language=English +%1 +. +MessageId=27214 +Language=English +%1 +. +MessageId=27215 +Language=English +%1 +. +MessageId=27216 +Language=English +%1 +. +MessageId=27217 +Language=English +%1 +. +MessageId=27218 +Language=English +%1 +. +MessageId=27219 +Language=English +%1 +. +MessageId=27220 +Language=English +%1 +. +MessageId=27221 +Language=English +%1 +. +MessageId=27222 +Language=English +%1 +. +MessageId=27223 +Language=English +%1 +. +MessageId=27224 +Language=English +%1 +. +MessageId=27225 +Language=English +%1 +. +MessageId=27226 +Language=English +%1 +. +MessageId=27227 +Language=English +%1 +. +MessageId=27228 +Language=English +%1 +. +MessageId=27229 +Language=English +%1 +. +MessageId=27230 +Language=English +%1 +. +MessageId=27231 +Language=English +%1 +. +MessageId=27232 +Language=English +%1 +. +MessageId=27233 +Language=English +%1 +. +MessageId=27234 +Language=English +%1 +. +MessageId=27235 +Language=English +%1 +. +MessageId=27236 +Language=English +%1 +. +MessageId=27237 +Language=English +%1 +. +MessageId=27238 +Language=English +%1 +. +MessageId=27239 +Language=English +%1 +. +MessageId=27240 +Language=English +%1 +. +MessageId=27241 +Language=English +%1 +. +MessageId=27242 +Language=English +%1 +. +MessageId=27243 +Language=English +%1 +. +MessageId=27244 +Language=English +%1 +. +MessageId=27245 +Language=English +%1 +. +MessageId=27246 +Language=English +%1 +. +MessageId=27247 +Language=English +%1 +. +MessageId=27248 +Language=English +%1 +. +MessageId=27249 +Language=English +%1 +. +MessageId=27250 +Language=English +%1 +. +MessageId=27251 +Language=English +%1 +. +MessageId=27252 +Language=English +%1 +. +MessageId=27253 +Language=English +%1 +. +MessageId=27254 +Language=English +%1 +. +MessageId=27255 +Language=English +%1 +. +MessageId=27256 +Language=English +%1 +. +MessageId=27257 +Language=English +%1 +. +MessageId=27258 +Language=English +%1 +. +MessageId=27259 +Language=English +%1 +. +MessageId=27260 +Language=English +%1 +. +MessageId=27261 +Language=English +%1 +. +MessageId=27262 +Language=English +%1 +. +MessageId=27263 +Language=English +%1 +. +MessageId=27264 +Language=English +%1 +. +MessageId=27265 +Language=English +%1 +. +MessageId=27266 +Language=English +%1 +. +MessageId=27267 +Language=English +%1 +. +MessageId=27268 +Language=English +%1 +. +MessageId=27269 +Language=English +%1 +. +MessageId=27270 +Language=English +%1 +. +MessageId=27271 +Language=English +%1 +. +MessageId=27272 +Language=English +%1 +. +MessageId=27273 +Language=English +%1 +. +MessageId=27274 +Language=English +%1 +. +MessageId=27275 +Language=English +%1 +. +MessageId=27276 +Language=English +%1 +. +MessageId=27277 +Language=English +%1 +. +MessageId=27278 +Language=English +%1 +. +MessageId=27279 +Language=English +%1 +. +MessageId=27280 +Language=English +%1 +. +MessageId=27281 +Language=English +%1 +. +MessageId=27282 +Language=English +%1 +. +MessageId=27283 +Language=English +%1 +. +MessageId=27284 +Language=English +%1 +. +MessageId=27285 +Language=English +%1 +. +MessageId=27286 +Language=English +%1 +. +MessageId=27287 +Language=English +%1 +. +MessageId=27288 +Language=English +%1 +. +MessageId=27289 +Language=English +%1 +. +MessageId=27290 +Language=English +%1 +. +MessageId=27291 +Language=English +%1 +. +MessageId=27292 +Language=English +%1 +. +MessageId=27293 +Language=English +%1 +. +MessageId=27294 +Language=English +%1 +. +MessageId=27295 +Language=English +%1 +. +MessageId=27296 +Language=English +%1 +. +MessageId=27297 +Language=English +%1 +. +MessageId=27298 +Language=English +%1 +. +MessageId=27299 +Language=English +%1 +. +MessageId=27300 +Language=English +%1 +. +MessageId=27301 +Language=English +%1 +. +MessageId=27302 +Language=English +%1 +. +MessageId=27303 +Language=English +%1 +. +MessageId=27304 +Language=English +%1 +. +MessageId=27305 +Language=English +%1 +. +MessageId=27306 +Language=English +%1 +. +MessageId=27307 +Language=English +%1 +. +MessageId=27308 +Language=English +%1 +. +MessageId=27309 +Language=English +%1 +. +MessageId=27310 +Language=English +%1 +. +MessageId=27311 +Language=English +%1 +. +MessageId=27312 +Language=English +%1 +. +MessageId=27313 +Language=English +%1 +. +MessageId=27314 +Language=English +%1 +. +MessageId=27315 +Language=English +%1 +. +MessageId=27316 +Language=English +%1 +. +MessageId=27317 +Language=English +%1 +. +MessageId=27318 +Language=English +%1 +. +MessageId=27319 +Language=English +%1 +. +MessageId=27320 +Language=English +%1 +. +MessageId=27321 +Language=English +%1 +. +MessageId=27322 +Language=English +%1 +. +MessageId=27323 +Language=English +%1 +. +MessageId=27324 +Language=English +%1 +. +MessageId=27325 +Language=English +%1 +. +MessageId=27326 +Language=English +%1 +. +MessageId=27327 +Language=English +%1 +. +MessageId=27328 +Language=English +%1 +. +MessageId=27329 +Language=English +%1 +. +MessageId=27330 +Language=English +%1 +. +MessageId=27331 +Language=English +%1 +. +MessageId=27332 +Language=English +%1 +. +MessageId=27333 +Language=English +%1 +. +MessageId=27334 +Language=English +%1 +. +MessageId=27335 +Language=English +%1 +. +MessageId=27336 +Language=English +%1 +. +MessageId=27337 +Language=English +%1 +. +MessageId=27338 +Language=English +%1 +. +MessageId=27339 +Language=English +%1 +. +MessageId=27340 +Language=English +%1 +. +MessageId=27341 +Language=English +%1 +. +MessageId=27342 +Language=English +%1 +. +MessageId=27343 +Language=English +%1 +. +MessageId=27344 +Language=English +%1 +. +MessageId=27345 +Language=English +%1 +. +MessageId=27346 +Language=English +%1 +. +MessageId=27347 +Language=English +%1 +. +MessageId=27348 +Language=English +%1 +. +MessageId=27349 +Language=English +%1 +. +MessageId=27350 +Language=English +%1 +. +MessageId=27351 +Language=English +%1 +. +MessageId=27352 +Language=English +%1 +. +MessageId=27353 +Language=English +%1 +. +MessageId=27354 +Language=English +%1 +. +MessageId=27355 +Language=English +%1 +. +MessageId=27356 +Language=English +%1 +. +MessageId=27357 +Language=English +%1 +. +MessageId=27358 +Language=English +%1 +. +MessageId=27359 +Language=English +%1 +. +MessageId=27360 +Language=English +%1 +. +MessageId=27361 +Language=English +%1 +. +MessageId=27362 +Language=English +%1 +. +MessageId=27363 +Language=English +%1 +. +MessageId=27364 +Language=English +%1 +. +MessageId=27365 +Language=English +%1 +. +MessageId=27366 +Language=English +%1 +. +MessageId=27367 +Language=English +%1 +. +MessageId=27368 +Language=English +%1 +. +MessageId=27369 +Language=English +%1 +. +MessageId=27370 +Language=English +%1 +. +MessageId=27371 +Language=English +%1 +. +MessageId=27372 +Language=English +%1 +. +MessageId=27373 +Language=English +%1 +. +MessageId=27374 +Language=English +%1 +. +MessageId=27375 +Language=English +%1 +. +MessageId=27376 +Language=English +%1 +. +MessageId=27377 +Language=English +%1 +. +MessageId=27378 +Language=English +%1 +. +MessageId=27379 +Language=English +%1 +. +MessageId=27380 +Language=English +%1 +. +MessageId=27381 +Language=English +%1 +. +MessageId=27382 +Language=English +%1 +. +MessageId=27383 +Language=English +%1 +. +MessageId=27384 +Language=English +%1 +. +MessageId=27385 +Language=English +%1 +. +MessageId=27386 +Language=English +%1 +. +MessageId=27387 +Language=English +%1 +. +MessageId=27388 +Language=English +%1 +. +MessageId=27389 +Language=English +%1 +. +MessageId=27390 +Language=English +%1 +. +MessageId=27391 +Language=English +%1 +. +MessageId=27392 +Language=English +%1 +. +MessageId=27393 +Language=English +%1 +. +MessageId=27394 +Language=English +%1 +. +MessageId=27395 +Language=English +%1 +. +MessageId=27396 +Language=English +%1 +. +MessageId=27397 +Language=English +%1 +. +MessageId=27398 +Language=English +%1 +. +MessageId=27399 +Language=English +%1 +. +MessageId=27400 +Language=English +%1 +. +MessageId=27401 +Language=English +%1 +. +MessageId=27402 +Language=English +%1 +. +MessageId=27403 +Language=English +%1 +. +MessageId=27404 +Language=English +%1 +. +MessageId=27405 +Language=English +%1 +. +MessageId=27406 +Language=English +%1 +. +MessageId=27407 +Language=English +%1 +. +MessageId=27408 +Language=English +%1 +. +MessageId=27409 +Language=English +%1 +. +MessageId=27410 +Language=English +%1 +. +MessageId=27411 +Language=English +%1 +. +MessageId=27412 +Language=English +%1 +. +MessageId=27413 +Language=English +%1 +. +MessageId=27414 +Language=English +%1 +. +MessageId=27415 +Language=English +%1 +. +MessageId=27416 +Language=English +%1 +. +MessageId=27417 +Language=English +%1 +. +MessageId=27418 +Language=English +%1 +. +MessageId=27419 +Language=English +%1 +. +MessageId=27420 +Language=English +%1 +. +MessageId=27421 +Language=English +%1 +. +MessageId=27422 +Language=English +%1 +. +MessageId=27423 +Language=English +%1 +. +MessageId=27424 +Language=English +%1 +. +MessageId=27425 +Language=English +%1 +. +MessageId=27426 +Language=English +%1 +. +MessageId=27427 +Language=English +%1 +. +MessageId=27428 +Language=English +%1 +. +MessageId=27429 +Language=English +%1 +. +MessageId=27430 +Language=English +%1 +. +MessageId=27431 +Language=English +%1 +. +MessageId=27432 +Language=English +%1 +. +MessageId=27433 +Language=English +%1 +. +MessageId=27434 +Language=English +%1 +. +MessageId=27435 +Language=English +%1 +. +MessageId=27436 +Language=English +%1 +. +MessageId=27437 +Language=English +%1 +. +MessageId=27438 +Language=English +%1 +. +MessageId=27439 +Language=English +%1 +. +MessageId=27440 +Language=English +%1 +. +MessageId=27441 +Language=English +%1 +. +MessageId=27442 +Language=English +%1 +. +MessageId=27443 +Language=English +%1 +. +MessageId=27444 +Language=English +%1 +. +MessageId=27445 +Language=English +%1 +. +MessageId=27446 +Language=English +%1 +. +MessageId=27447 +Language=English +%1 +. +MessageId=27448 +Language=English +%1 +. +MessageId=27449 +Language=English +%1 +. +MessageId=27450 +Language=English +%1 +. +MessageId=27451 +Language=English +%1 +. +MessageId=27452 +Language=English +%1 +. +MessageId=27453 +Language=English +%1 +. +MessageId=27454 +Language=English +%1 +. +MessageId=27455 +Language=English +%1 +. +MessageId=27456 +Language=English +%1 +. +MessageId=27457 +Language=English +%1 +. +MessageId=27458 +Language=English +%1 +. +MessageId=27459 +Language=English +%1 +. +MessageId=27460 +Language=English +%1 +. +MessageId=27461 +Language=English +%1 +. +MessageId=27462 +Language=English +%1 +. +MessageId=27463 +Language=English +%1 +. +MessageId=27464 +Language=English +%1 +. +MessageId=27465 +Language=English +%1 +. +MessageId=27466 +Language=English +%1 +. +MessageId=27467 +Language=English +%1 +. +MessageId=27468 +Language=English +%1 +. +MessageId=27469 +Language=English +%1 +. +MessageId=27470 +Language=English +%1 +. +MessageId=27471 +Language=English +%1 +. +MessageId=27472 +Language=English +%1 +. +MessageId=27473 +Language=English +%1 +. +MessageId=27474 +Language=English +%1 +. +MessageId=27475 +Language=English +%1 +. +MessageId=27476 +Language=English +%1 +. +MessageId=27477 +Language=English +%1 +. +MessageId=27478 +Language=English +%1 +. +MessageId=27479 +Language=English +%1 +. +MessageId=27480 +Language=English +%1 +. +MessageId=27481 +Language=English +%1 +. +MessageId=27482 +Language=English +%1 +. +MessageId=27483 +Language=English +%1 +. +MessageId=27484 +Language=English +%1 +. +MessageId=27485 +Language=English +%1 +. +MessageId=27486 +Language=English +%1 +. +MessageId=27487 +Language=English +%1 +. +MessageId=27488 +Language=English +%1 +. +MessageId=27489 +Language=English +%1 +. +MessageId=27490 +Language=English +%1 +. +MessageId=27491 +Language=English +%1 +. +MessageId=27492 +Language=English +%1 +. +MessageId=27493 +Language=English +%1 +. +MessageId=27494 +Language=English +%1 +. +MessageId=27495 +Language=English +%1 +. +MessageId=27496 +Language=English +%1 +. +MessageId=27497 +Language=English +%1 +. +MessageId=27498 +Language=English +%1 +. +MessageId=27499 +Language=English +%1 +. +MessageId=27500 +Language=English +%1 +. +MessageId=27501 +Language=English +%1 +. +MessageId=27502 +Language=English +%1 +. +MessageId=27503 +Language=English +%1 +. +MessageId=27504 +Language=English +%1 +. +MessageId=27505 +Language=English +%1 +. +MessageId=27506 +Language=English +%1 +. +MessageId=27507 +Language=English +%1 +. +MessageId=27508 +Language=English +%1 +. +MessageId=27509 +Language=English +%1 +. +MessageId=27510 +Language=English +%1 +. +MessageId=27511 +Language=English +%1 +. +MessageId=27512 +Language=English +%1 +. +MessageId=27513 +Language=English +%1 +. +MessageId=27514 +Language=English +%1 +. +MessageId=27515 +Language=English +%1 +. +MessageId=27516 +Language=English +%1 +. +MessageId=27517 +Language=English +%1 +. +MessageId=27518 +Language=English +%1 +. +MessageId=27519 +Language=English +%1 +. +MessageId=27520 +Language=English +%1 +. +MessageId=27521 +Language=English +%1 +. +MessageId=27522 +Language=English +%1 +. +MessageId=27523 +Language=English +%1 +. +MessageId=27524 +Language=English +%1 +. +MessageId=27525 +Language=English +%1 +. +MessageId=27526 +Language=English +%1 +. +MessageId=27527 +Language=English +%1 +. +MessageId=27528 +Language=English +%1 +. +MessageId=27529 +Language=English +%1 +. +MessageId=27530 +Language=English +%1 +. +MessageId=27531 +Language=English +%1 +. +MessageId=27532 +Language=English +%1 +. +MessageId=27533 +Language=English +%1 +. +MessageId=27534 +Language=English +%1 +. +MessageId=27535 +Language=English +%1 +. +MessageId=27536 +Language=English +%1 +. +MessageId=27537 +Language=English +%1 +. +MessageId=27538 +Language=English +%1 +. +MessageId=27539 +Language=English +%1 +. +MessageId=27540 +Language=English +%1 +. +MessageId=27541 +Language=English +%1 +. +MessageId=27542 +Language=English +%1 +. +MessageId=27543 +Language=English +%1 +. +MessageId=27544 +Language=English +%1 +. +MessageId=27545 +Language=English +%1 +. +MessageId=27546 +Language=English +%1 +. +MessageId=27547 +Language=English +%1 +. +MessageId=27548 +Language=English +%1 +. +MessageId=27549 +Language=English +%1 +. +MessageId=27550 +Language=English +%1 +. +MessageId=27551 +Language=English +%1 +. +MessageId=27552 +Language=English +%1 +. +MessageId=27553 +Language=English +%1 +. +MessageId=27554 +Language=English +%1 +. +MessageId=27555 +Language=English +%1 +. +MessageId=27556 +Language=English +%1 +. +MessageId=27557 +Language=English +%1 +. +MessageId=27558 +Language=English +%1 +. +MessageId=27559 +Language=English +%1 +. +MessageId=27560 +Language=English +%1 +. +MessageId=27561 +Language=English +%1 +. +MessageId=27562 +Language=English +%1 +. +MessageId=27563 +Language=English +%1 +. +MessageId=27564 +Language=English +%1 +. +MessageId=27565 +Language=English +%1 +. +MessageId=27566 +Language=English +%1 +. +MessageId=27567 +Language=English +%1 +. +MessageId=27568 +Language=English +%1 +. +MessageId=27569 +Language=English +%1 +. +MessageId=27570 +Language=English +%1 +. +MessageId=27571 +Language=English +%1 +. +MessageId=27572 +Language=English +%1 +. +MessageId=27573 +Language=English +%1 +. +MessageId=27574 +Language=English +%1 +. +MessageId=27575 +Language=English +%1 +. +MessageId=27576 +Language=English +%1 +. +MessageId=27577 +Language=English +%1 +. +MessageId=27578 +Language=English +%1 +. +MessageId=27579 +Language=English +%1 +. +MessageId=27580 +Language=English +%1 +. +MessageId=27581 +Language=English +%1 +. +MessageId=27582 +Language=English +%1 +. +MessageId=27583 +Language=English +%1 +. +MessageId=27584 +Language=English +%1 +. +MessageId=27585 +Language=English +%1 +. +MessageId=27586 +Language=English +%1 +. +MessageId=27587 +Language=English +%1 +. +MessageId=27588 +Language=English +%1 +. +MessageId=27589 +Language=English +%1 +. +MessageId=27590 +Language=English +%1 +. +MessageId=27591 +Language=English +%1 +. +MessageId=27592 +Language=English +%1 +. +MessageId=27593 +Language=English +%1 +. +MessageId=27594 +Language=English +%1 +. +MessageId=27595 +Language=English +%1 +. +MessageId=27596 +Language=English +%1 +. +MessageId=27597 +Language=English +%1 +. +MessageId=27598 +Language=English +%1 +. +MessageId=27599 +Language=English +%1 +. +MessageId=27600 +Language=English +%1 +. +MessageId=27601 +Language=English +%1 +. +MessageId=27602 +Language=English +%1 +. +MessageId=27603 +Language=English +%1 +. +MessageId=27604 +Language=English +%1 +. +MessageId=27605 +Language=English +%1 +. +MessageId=27606 +Language=English +%1 +. +MessageId=27607 +Language=English +%1 +. +MessageId=27608 +Language=English +%1 +. +MessageId=27609 +Language=English +%1 +. +MessageId=27610 +Language=English +%1 +. +MessageId=27611 +Language=English +%1 +. +MessageId=27612 +Language=English +%1 +. +MessageId=27613 +Language=English +%1 +. +MessageId=27614 +Language=English +%1 +. +MessageId=27615 +Language=English +%1 +. +MessageId=27616 +Language=English +%1 +. +MessageId=27617 +Language=English +%1 +. +MessageId=27618 +Language=English +%1 +. +MessageId=27619 +Language=English +%1 +. +MessageId=27620 +Language=English +%1 +. +MessageId=27621 +Language=English +%1 +. +MessageId=27622 +Language=English +%1 +. +MessageId=27623 +Language=English +%1 +. +MessageId=27624 +Language=English +%1 +. +MessageId=27625 +Language=English +%1 +. +MessageId=27626 +Language=English +%1 +. +MessageId=27627 +Language=English +%1 +. +MessageId=27628 +Language=English +%1 +. +MessageId=27629 +Language=English +%1 +. +MessageId=27630 +Language=English +%1 +. +MessageId=27631 +Language=English +%1 +. +MessageId=27632 +Language=English +%1 +. +MessageId=27633 +Language=English +%1 +. +MessageId=27634 +Language=English +%1 +. +MessageId=27635 +Language=English +%1 +. +MessageId=27636 +Language=English +%1 +. +MessageId=27637 +Language=English +%1 +. +MessageId=27638 +Language=English +%1 +. +MessageId=27639 +Language=English +%1 +. +MessageId=27640 +Language=English +%1 +. +MessageId=27641 +Language=English +%1 +. +MessageId=27642 +Language=English +%1 +. +MessageId=27643 +Language=English +%1 +. +MessageId=27644 +Language=English +%1 +. +MessageId=27645 +Language=English +%1 +. +MessageId=27646 +Language=English +%1 +. +MessageId=27647 +Language=English +%1 +. +MessageId=27648 +Language=English +%1 +. +MessageId=27649 +Language=English +%1 +. +MessageId=27650 +Language=English +%1 +. +MessageId=27651 +Language=English +%1 +. +MessageId=27652 +Language=English +%1 +. +MessageId=27653 +Language=English +%1 +. +MessageId=27654 +Language=English +%1 +. +MessageId=27655 +Language=English +%1 +. +MessageId=27656 +Language=English +%1 +. +MessageId=27657 +Language=English +%1 +. +MessageId=27658 +Language=English +%1 +. +MessageId=27659 +Language=English +%1 +. +MessageId=27660 +Language=English +%1 +. +MessageId=27661 +Language=English +%1 +. +MessageId=27662 +Language=English +%1 +. +MessageId=27663 +Language=English +%1 +. +MessageId=27664 +Language=English +%1 +. +MessageId=27665 +Language=English +%1 +. +MessageId=27666 +Language=English +%1 +. +MessageId=27667 +Language=English +%1 +. +MessageId=27668 +Language=English +%1 +. +MessageId=27669 +Language=English +%1 +. +MessageId=27670 +Language=English +%1 +. +MessageId=27671 +Language=English +%1 +. +MessageId=27672 +Language=English +%1 +. +MessageId=27673 +Language=English +%1 +. +MessageId=27674 +Language=English +%1 +. +MessageId=27675 +Language=English +%1 +. +MessageId=27676 +Language=English +%1 +. +MessageId=27677 +Language=English +%1 +. +MessageId=27678 +Language=English +%1 +. +MessageId=27679 +Language=English +%1 +. +MessageId=27680 +Language=English +%1 +. +MessageId=27681 +Language=English +%1 +. +MessageId=27682 +Language=English +%1 +. +MessageId=27683 +Language=English +%1 +. +MessageId=27684 +Language=English +%1 +. +MessageId=27685 +Language=English +%1 +. +MessageId=27686 +Language=English +%1 +. +MessageId=27687 +Language=English +%1 +. +MessageId=27688 +Language=English +%1 +. +MessageId=27689 +Language=English +%1 +. +MessageId=27690 +Language=English +%1 +. +MessageId=27691 +Language=English +%1 +. +MessageId=27692 +Language=English +%1 +. +MessageId=27693 +Language=English +%1 +. +MessageId=27694 +Language=English +%1 +. +MessageId=27695 +Language=English +%1 +. +MessageId=27696 +Language=English +%1 +. +MessageId=27697 +Language=English +%1 +. +MessageId=27698 +Language=English +%1 +. +MessageId=27699 +Language=English +%1 +. +MessageId=27700 +Language=English +%1 +. +MessageId=27701 +Language=English +%1 +. +MessageId=27702 +Language=English +%1 +. +MessageId=27703 +Language=English +%1 +. +MessageId=27704 +Language=English +%1 +. +MessageId=27705 +Language=English +%1 +. +MessageId=27706 +Language=English +%1 +. +MessageId=27707 +Language=English +%1 +. +MessageId=27708 +Language=English +%1 +. +MessageId=27709 +Language=English +%1 +. +MessageId=27710 +Language=English +%1 +. +MessageId=27711 +Language=English +%1 +. +MessageId=27712 +Language=English +%1 +. +MessageId=27713 +Language=English +%1 +. +MessageId=27714 +Language=English +%1 +. +MessageId=27715 +Language=English +%1 +. +MessageId=27716 +Language=English +%1 +. +MessageId=27717 +Language=English +%1 +. +MessageId=27718 +Language=English +%1 +. +MessageId=27719 +Language=English +%1 +. +MessageId=27720 +Language=English +%1 +. +MessageId=27721 +Language=English +%1 +. +MessageId=27722 +Language=English +%1 +. +MessageId=27723 +Language=English +%1 +. +MessageId=27724 +Language=English +%1 +. +MessageId=27725 +Language=English +%1 +. +MessageId=27726 +Language=English +%1 +. +MessageId=27727 +Language=English +%1 +. +MessageId=27728 +Language=English +%1 +. +MessageId=27729 +Language=English +%1 +. +MessageId=27730 +Language=English +%1 +. +MessageId=27731 +Language=English +%1 +. +MessageId=27732 +Language=English +%1 +. +MessageId=27733 +Language=English +%1 +. +MessageId=27734 +Language=English +%1 +. +MessageId=27735 +Language=English +%1 +. +MessageId=27736 +Language=English +%1 +. +MessageId=27737 +Language=English +%1 +. +MessageId=27738 +Language=English +%1 +. +MessageId=27739 +Language=English +%1 +. +MessageId=27740 +Language=English +%1 +. +MessageId=27741 +Language=English +%1 +. +MessageId=27742 +Language=English +%1 +. +MessageId=27743 +Language=English +%1 +. +MessageId=27744 +Language=English +%1 +. +MessageId=27745 +Language=English +%1 +. +MessageId=27746 +Language=English +%1 +. +MessageId=27747 +Language=English +%1 +. +MessageId=27748 +Language=English +%1 +. +MessageId=27749 +Language=English +%1 +. +MessageId=27750 +Language=English +%1 +. +MessageId=27751 +Language=English +%1 +. +MessageId=27752 +Language=English +%1 +. +MessageId=27753 +Language=English +%1 +. +MessageId=27754 +Language=English +%1 +. +MessageId=27755 +Language=English +%1 +. +MessageId=27756 +Language=English +%1 +. +MessageId=27757 +Language=English +%1 +. +MessageId=27758 +Language=English +%1 +. +MessageId=27759 +Language=English +%1 +. +MessageId=27760 +Language=English +%1 +. +MessageId=27761 +Language=English +%1 +. +MessageId=27762 +Language=English +%1 +. +MessageId=27763 +Language=English +%1 +. +MessageId=27764 +Language=English +%1 +. +MessageId=27765 +Language=English +%1 +. +MessageId=27766 +Language=English +%1 +. +MessageId=27767 +Language=English +%1 +. +MessageId=27768 +Language=English +%1 +. +MessageId=27769 +Language=English +%1 +. +MessageId=27770 +Language=English +%1 +. +MessageId=27771 +Language=English +%1 +. +MessageId=27772 +Language=English +%1 +. +MessageId=27773 +Language=English +%1 +. +MessageId=27774 +Language=English +%1 +. +MessageId=27775 +Language=English +%1 +. +MessageId=27776 +Language=English +%1 +. +MessageId=27777 +Language=English +%1 +. +MessageId=27778 +Language=English +%1 +. +MessageId=27779 +Language=English +%1 +. +MessageId=27780 +Language=English +%1 +. +MessageId=27781 +Language=English +%1 +. +MessageId=27782 +Language=English +%1 +. +MessageId=27783 +Language=English +%1 +. +MessageId=27784 +Language=English +%1 +. +MessageId=27785 +Language=English +%1 +. +MessageId=27786 +Language=English +%1 +. +MessageId=27787 +Language=English +%1 +. +MessageId=27788 +Language=English +%1 +. +MessageId=27789 +Language=English +%1 +. +MessageId=27790 +Language=English +%1 +. +MessageId=27791 +Language=English +%1 +. +MessageId=27792 +Language=English +%1 +. +MessageId=27793 +Language=English +%1 +. +MessageId=27794 +Language=English +%1 +. +MessageId=27795 +Language=English +%1 +. +MessageId=27796 +Language=English +%1 +. +MessageId=27797 +Language=English +%1 +. +MessageId=27798 +Language=English +%1 +. +MessageId=27799 +Language=English +%1 +. +MessageId=27800 +Language=English +%1 +. +MessageId=27801 +Language=English +%1 +. +MessageId=27802 +Language=English +%1 +. +MessageId=27803 +Language=English +%1 +. +MessageId=27804 +Language=English +%1 +. +MessageId=27805 +Language=English +%1 +. +MessageId=27806 +Language=English +%1 +. +MessageId=27807 +Language=English +%1 +. +MessageId=27808 +Language=English +%1 +. +MessageId=27809 +Language=English +%1 +. +MessageId=27810 +Language=English +%1 +. +MessageId=27811 +Language=English +%1 +. +MessageId=27812 +Language=English +%1 +. +MessageId=27813 +Language=English +%1 +. +MessageId=27814 +Language=English +%1 +. +MessageId=27815 +Language=English +%1 +. +MessageId=27816 +Language=English +%1 +. +MessageId=27817 +Language=English +%1 +. +MessageId=27818 +Language=English +%1 +. +MessageId=27819 +Language=English +%1 +. +MessageId=27820 +Language=English +%1 +. +MessageId=27821 +Language=English +%1 +. +MessageId=27822 +Language=English +%1 +. +MessageId=27823 +Language=English +%1 +. +MessageId=27824 +Language=English +%1 +. +MessageId=27825 +Language=English +%1 +. +MessageId=27826 +Language=English +%1 +. +MessageId=27827 +Language=English +%1 +. +MessageId=27828 +Language=English +%1 +. +MessageId=27829 +Language=English +%1 +. +MessageId=27830 +Language=English +%1 +. +MessageId=27831 +Language=English +%1 +. +MessageId=27832 +Language=English +%1 +. +MessageId=27833 +Language=English +%1 +. +MessageId=27834 +Language=English +%1 +. +MessageId=27835 +Language=English +%1 +. +MessageId=27836 +Language=English +%1 +. +MessageId=27837 +Language=English +%1 +. +MessageId=27838 +Language=English +%1 +. +MessageId=27839 +Language=English +%1 +. +MessageId=27840 +Language=English +%1 +. +MessageId=27841 +Language=English +%1 +. +MessageId=27842 +Language=English +%1 +. +MessageId=27843 +Language=English +%1 +. +MessageId=27844 +Language=English +%1 +. +MessageId=27845 +Language=English +%1 +. +MessageId=27846 +Language=English +%1 +. +MessageId=27847 +Language=English +%1 +. +MessageId=27848 +Language=English +%1 +. +MessageId=27849 +Language=English +%1 +. +MessageId=27850 +Language=English +%1 +. +MessageId=27851 +Language=English +%1 +. +MessageId=27852 +Language=English +%1 +. +MessageId=27853 +Language=English +%1 +. +MessageId=27854 +Language=English +%1 +. +MessageId=27855 +Language=English +%1 +. +MessageId=27856 +Language=English +%1 +. +MessageId=27857 +Language=English +%1 +. +MessageId=27858 +Language=English +%1 +. +MessageId=27859 +Language=English +%1 +. +MessageId=27860 +Language=English +%1 +. +MessageId=27861 +Language=English +%1 +. +MessageId=27862 +Language=English +%1 +. +MessageId=27863 +Language=English +%1 +. +MessageId=27864 +Language=English +%1 +. +MessageId=27865 +Language=English +%1 +. +MessageId=27866 +Language=English +%1 +. +MessageId=27867 +Language=English +%1 +. +MessageId=27868 +Language=English +%1 +. +MessageId=27869 +Language=English +%1 +. +MessageId=27870 +Language=English +%1 +. +MessageId=27871 +Language=English +%1 +. +MessageId=27872 +Language=English +%1 +. +MessageId=27873 +Language=English +%1 +. +MessageId=27874 +Language=English +%1 +. +MessageId=27875 +Language=English +%1 +. +MessageId=27876 +Language=English +%1 +. +MessageId=27877 +Language=English +%1 +. +MessageId=27878 +Language=English +%1 +. +MessageId=27879 +Language=English +%1 +. +MessageId=27880 +Language=English +%1 +. +MessageId=27881 +Language=English +%1 +. +MessageId=27882 +Language=English +%1 +. +MessageId=27883 +Language=English +%1 +. +MessageId=27884 +Language=English +%1 +. +MessageId=27885 +Language=English +%1 +. +MessageId=27886 +Language=English +%1 +. +MessageId=27887 +Language=English +%1 +. +MessageId=27888 +Language=English +%1 +. +MessageId=27889 +Language=English +%1 +. +MessageId=27890 +Language=English +%1 +. +MessageId=27891 +Language=English +%1 +. +MessageId=27892 +Language=English +%1 +. +MessageId=27893 +Language=English +%1 +. +MessageId=27894 +Language=English +%1 +. +MessageId=27895 +Language=English +%1 +. +MessageId=27896 +Language=English +%1 +. +MessageId=27897 +Language=English +%1 +. +MessageId=27898 +Language=English +%1 +. +MessageId=27899 +Language=English +%1 +. +MessageId=27900 +Language=English +%1 +. +MessageId=27901 +Language=English +%1 +. +MessageId=27902 +Language=English +%1 +. +MessageId=27903 +Language=English +%1 +. +MessageId=27904 +Language=English +%1 +. +MessageId=27905 +Language=English +%1 +. +MessageId=27906 +Language=English +%1 +. +MessageId=27907 +Language=English +%1 +. +MessageId=27908 +Language=English +%1 +. +MessageId=27909 +Language=English +%1 +. +MessageId=27910 +Language=English +%1 +. +MessageId=27911 +Language=English +%1 +. +MessageId=27912 +Language=English +%1 +. +MessageId=27913 +Language=English +%1 +. +MessageId=27914 +Language=English +%1 +. +MessageId=27915 +Language=English +%1 +. +MessageId=27916 +Language=English +%1 +. +MessageId=27917 +Language=English +%1 +. +MessageId=27918 +Language=English +%1 +. +MessageId=27919 +Language=English +%1 +. +MessageId=27920 +Language=English +%1 +. +MessageId=27921 +Language=English +%1 +. +MessageId=27922 +Language=English +%1 +. +MessageId=27923 +Language=English +%1 +. +MessageId=27924 +Language=English +%1 +. +MessageId=27925 +Language=English +%1 +. +MessageId=27926 +Language=English +%1 +. +MessageId=27927 +Language=English +%1 +. +MessageId=27928 +Language=English +%1 +. +MessageId=27929 +Language=English +%1 +. +MessageId=27930 +Language=English +%1 +. +MessageId=27931 +Language=English +%1 +. +MessageId=27932 +Language=English +%1 +. +MessageId=27933 +Language=English +%1 +. +MessageId=27934 +Language=English +%1 +. +MessageId=27935 +Language=English +%1 +. +MessageId=27936 +Language=English +%1 +. +MessageId=27937 +Language=English +%1 +. +MessageId=27938 +Language=English +%1 +. +MessageId=27939 +Language=English +%1 +. +MessageId=27940 +Language=English +%1 +. +MessageId=27941 +Language=English +%1 +. +MessageId=27942 +Language=English +%1 +. +MessageId=27943 +Language=English +%1 +. +MessageId=27944 +Language=English +%1 +. +MessageId=27945 +Language=English +%1 +. +MessageId=27946 +Language=English +%1 +. +MessageId=27947 +Language=English +%1 +. +MessageId=27948 +Language=English +%1 +. +MessageId=27949 +Language=English +%1 +. +MessageId=27950 +Language=English +%1 +. +MessageId=27951 +Language=English +%1 +. +MessageId=27952 +Language=English +%1 +. +MessageId=27953 +Language=English +%1 +. +MessageId=27954 +Language=English +%1 +. +MessageId=27955 +Language=English +%1 +. +MessageId=27956 +Language=English +%1 +. +MessageId=27957 +Language=English +%1 +. +MessageId=27958 +Language=English +%1 +. +MessageId=27959 +Language=English +%1 +. +MessageId=27960 +Language=English +%1 +. +MessageId=27961 +Language=English +%1 +. +MessageId=27962 +Language=English +%1 +. +MessageId=27963 +Language=English +%1 +. +MessageId=27964 +Language=English +%1 +. +MessageId=27965 +Language=English +%1 +. +MessageId=27966 +Language=English +%1 +. +MessageId=27967 +Language=English +%1 +. +MessageId=27968 +Language=English +%1 +. +MessageId=27969 +Language=English +%1 +. +MessageId=27970 +Language=English +%1 +. +MessageId=27971 +Language=English +%1 +. +MessageId=27972 +Language=English +%1 +. +MessageId=27973 +Language=English +%1 +. +MessageId=27974 +Language=English +%1 +. +MessageId=27975 +Language=English +%1 +. +MessageId=27976 +Language=English +%1 +. +MessageId=27977 +Language=English +%1 +. +MessageId=27978 +Language=English +%1 +. +MessageId=27979 +Language=English +%1 +. +MessageId=27980 +Language=English +%1 +. +MessageId=27981 +Language=English +%1 +. +MessageId=27982 +Language=English +%1 +. +MessageId=27983 +Language=English +%1 +. +MessageId=27984 +Language=English +%1 +. +MessageId=27985 +Language=English +%1 +. +MessageId=27986 +Language=English +%1 +. +MessageId=27987 +Language=English +%1 +. +MessageId=27988 +Language=English +%1 +. +MessageId=27989 +Language=English +%1 +. +MessageId=27990 +Language=English +%1 +. +MessageId=27991 +Language=English +%1 +. +MessageId=27992 +Language=English +%1 +. +MessageId=27993 +Language=English +%1 +. +MessageId=27994 +Language=English +%1 +. +MessageId=27995 +Language=English +%1 +. +MessageId=27996 +Language=English +%1 +. +MessageId=27997 +Language=English +%1 +. +MessageId=27998 +Language=English +%1 +. +MessageId=27999 +Language=English +%1 +. +MessageId=28000 +Language=English +%1 +. +MessageId=28001 +Language=English +%1 +. +MessageId=28002 +Language=English +%1 +. +MessageId=28003 +Language=English +%1 +. +MessageId=28004 +Language=English +%1 +. +MessageId=28005 +Language=English +%1 +. +MessageId=28006 +Language=English +%1 +. +MessageId=28007 +Language=English +%1 +. +MessageId=28008 +Language=English +%1 +. +MessageId=28009 +Language=English +%1 +. +MessageId=28010 +Language=English +%1 +. +MessageId=28011 +Language=English +%1 +. +MessageId=28012 +Language=English +%1 +. +MessageId=28013 +Language=English +%1 +. +MessageId=28014 +Language=English +%1 +. +MessageId=28015 +Language=English +%1 +. +MessageId=28016 +Language=English +%1 +. +MessageId=28017 +Language=English +%1 +. +MessageId=28018 +Language=English +%1 +. +MessageId=28019 +Language=English +%1 +. +MessageId=28020 +Language=English +%1 +. +MessageId=28021 +Language=English +%1 +. +MessageId=28022 +Language=English +%1 +. +MessageId=28023 +Language=English +%1 +. +MessageId=28024 +Language=English +%1 +. +MessageId=28025 +Language=English +%1 +. +MessageId=28026 +Language=English +%1 +. +MessageId=28027 +Language=English +%1 +. +MessageId=28028 +Language=English +%1 +. +MessageId=28029 +Language=English +%1 +. +MessageId=28030 +Language=English +%1 +. +MessageId=28031 +Language=English +%1 +. +MessageId=28032 +Language=English +%1 +. +MessageId=28033 +Language=English +%1 +. +MessageId=28034 +Language=English +%1 +. +MessageId=28035 +Language=English +%1 +. +MessageId=28036 +Language=English +%1 +. +MessageId=28037 +Language=English +%1 +. +MessageId=28038 +Language=English +%1 +. +MessageId=28039 +Language=English +%1 +. +MessageId=28040 +Language=English +%1 +. +MessageId=28041 +Language=English +%1 +. +MessageId=28042 +Language=English +%1 +. +MessageId=28043 +Language=English +%1 +. +MessageId=28044 +Language=English +%1 +. +MessageId=28045 +Language=English +%1 +. +MessageId=28046 +Language=English +%1 +. +MessageId=28047 +Language=English +%1 +. +MessageId=28048 +Language=English +%1 +. +MessageId=28049 +Language=English +%1 +. +MessageId=28050 +Language=English +%1 +. +MessageId=28051 +Language=English +%1 +. +MessageId=28052 +Language=English +%1 +. +MessageId=28053 +Language=English +%1 +. +MessageId=28054 +Language=English +%1 +. +MessageId=28055 +Language=English +%1 +. +MessageId=28056 +Language=English +%1 +. +MessageId=28057 +Language=English +%1 +. +MessageId=28058 +Language=English +%1 +. +MessageId=28059 +Language=English +%1 +. +MessageId=28060 +Language=English +%1 +. +MessageId=28061 +Language=English +%1 +. +MessageId=28062 +Language=English +%1 +. +MessageId=28063 +Language=English +%1 +. +MessageId=28064 +Language=English +%1 +. +MessageId=28065 +Language=English +%1 +. +MessageId=28066 +Language=English +%1 +. +MessageId=28067 +Language=English +%1 +. +MessageId=28068 +Language=English +%1 +. +MessageId=28069 +Language=English +%1 +. +MessageId=28070 +Language=English +%1 +. +MessageId=28071 +Language=English +%1 +. +MessageId=28072 +Language=English +%1 +. +MessageId=28073 +Language=English +%1 +. +MessageId=28074 +Language=English +%1 +. +MessageId=28075 +Language=English +%1 +. +MessageId=28076 +Language=English +%1 +. +MessageId=28077 +Language=English +%1 +. +MessageId=28078 +Language=English +%1 +. +MessageId=28079 +Language=English +%1 +. +MessageId=28080 +Language=English +%1 +. +MessageId=28081 +Language=English +%1 +. +MessageId=28082 +Language=English +%1 +. +MessageId=28083 +Language=English +%1 +. +MessageId=28084 +Language=English +%1 +. +MessageId=28085 +Language=English +%1 +. +MessageId=28086 +Language=English +%1 +. +MessageId=28087 +Language=English +%1 +. +MessageId=28088 +Language=English +%1 +. +MessageId=28089 +Language=English +%1 +. +MessageId=28090 +Language=English +%1 +. +MessageId=28091 +Language=English +%1 +. +MessageId=28092 +Language=English +%1 +. +MessageId=28093 +Language=English +%1 +. +MessageId=28094 +Language=English +%1 +. +MessageId=28095 +Language=English +%1 +. +MessageId=28096 +Language=English +%1 +. +MessageId=28097 +Language=English +%1 +. +MessageId=28098 +Language=English +%1 +. +MessageId=28099 +Language=English +%1 +. +MessageId=28100 +Language=English +%1 +. +MessageId=28101 +Language=English +%1 +. +MessageId=28102 +Language=English +%1 +. +MessageId=28103 +Language=English +%1 +. +MessageId=28104 +Language=English +%1 +. +MessageId=28105 +Language=English +%1 +. +MessageId=28106 +Language=English +%1 +. +MessageId=28107 +Language=English +%1 +. +MessageId=28108 +Language=English +%1 +. +MessageId=28109 +Language=English +%1 +. +MessageId=28110 +Language=English +%1 +. +MessageId=28111 +Language=English +%1 +. +MessageId=28112 +Language=English +%1 +. +MessageId=28113 +Language=English +%1 +. +MessageId=28114 +Language=English +%1 +. +MessageId=28115 +Language=English +%1 +. +MessageId=28116 +Language=English +%1 +. +MessageId=28117 +Language=English +%1 +. +MessageId=28118 +Language=English +%1 +. +MessageId=28119 +Language=English +%1 +. +MessageId=28120 +Language=English +%1 +. +MessageId=28121 +Language=English +%1 +. +MessageId=28122 +Language=English +%1 +. +MessageId=28123 +Language=English +%1 +. +MessageId=28124 +Language=English +%1 +. +MessageId=28125 +Language=English +%1 +. +MessageId=28126 +Language=English +%1 +. +MessageId=28127 +Language=English +%1 +. +MessageId=28128 +Language=English +%1 +. +MessageId=28129 +Language=English +%1 +. +MessageId=28130 +Language=English +%1 +. +MessageId=28131 +Language=English +%1 +. +MessageId=28132 +Language=English +%1 +. +MessageId=28133 +Language=English +%1 +. +MessageId=28134 +Language=English +%1 +. +MessageId=28135 +Language=English +%1 +. +MessageId=28136 +Language=English +%1 +. +MessageId=28137 +Language=English +%1 +. +MessageId=28138 +Language=English +%1 +. +MessageId=28139 +Language=English +%1 +. +MessageId=28140 +Language=English +%1 +. +MessageId=28141 +Language=English +%1 +. +MessageId=28142 +Language=English +%1 +. +MessageId=28143 +Language=English +%1 +. +MessageId=28144 +Language=English +%1 +. +MessageId=28145 +Language=English +%1 +. +MessageId=28146 +Language=English +%1 +. +MessageId=28147 +Language=English +%1 +. +MessageId=28148 +Language=English +%1 +. +MessageId=28149 +Language=English +%1 +. +MessageId=28150 +Language=English +%1 +. +MessageId=28151 +Language=English +%1 +. +MessageId=28152 +Language=English +%1 +. +MessageId=28153 +Language=English +%1 +. +MessageId=28154 +Language=English +%1 +. +MessageId=28155 +Language=English +%1 +. +MessageId=28156 +Language=English +%1 +. +MessageId=28157 +Language=English +%1 +. +MessageId=28158 +Language=English +%1 +. +MessageId=28159 +Language=English +%1 +. +MessageId=28160 +Language=English +%1 +. +MessageId=28161 +Language=English +%1 +. +MessageId=28162 +Language=English +%1 +. +MessageId=28163 +Language=English +%1 +. +MessageId=28164 +Language=English +%1 +. +MessageId=28165 +Language=English +%1 +. +MessageId=28166 +Language=English +%1 +. +MessageId=28167 +Language=English +%1 +. +MessageId=28168 +Language=English +%1 +. +MessageId=28169 +Language=English +%1 +. +MessageId=28170 +Language=English +%1 +. +MessageId=28171 +Language=English +%1 +. +MessageId=28172 +Language=English +%1 +. +MessageId=28173 +Language=English +%1 +. +MessageId=28174 +Language=English +%1 +. +MessageId=28175 +Language=English +%1 +. +MessageId=28176 +Language=English +%1 +. +MessageId=28177 +Language=English +%1 +. +MessageId=28178 +Language=English +%1 +. +MessageId=28179 +Language=English +%1 +. +MessageId=28180 +Language=English +%1 +. +MessageId=28181 +Language=English +%1 +. +MessageId=28182 +Language=English +%1 +. +MessageId=28183 +Language=English +%1 +. +MessageId=28184 +Language=English +%1 +. +MessageId=28185 +Language=English +%1 +. +MessageId=28186 +Language=English +%1 +. +MessageId=28187 +Language=English +%1 +. +MessageId=28188 +Language=English +%1 +. +MessageId=28189 +Language=English +%1 +. +MessageId=28190 +Language=English +%1 +. +MessageId=28191 +Language=English +%1 +. +MessageId=28192 +Language=English +%1 +. +MessageId=28193 +Language=English +%1 +. +MessageId=28194 +Language=English +%1 +. +MessageId=28195 +Language=English +%1 +. +MessageId=28196 +Language=English +%1 +. +MessageId=28197 +Language=English +%1 +. +MessageId=28198 +Language=English +%1 +. +MessageId=28199 +Language=English +%1 +. +MessageId=28200 +Language=English +%1 +. +MessageId=28201 +Language=English +%1 +. +MessageId=28202 +Language=English +%1 +. +MessageId=28203 +Language=English +%1 +. +MessageId=28204 +Language=English +%1 +. +MessageId=28205 +Language=English +%1 +. +MessageId=28206 +Language=English +%1 +. +MessageId=28207 +Language=English +%1 +. +MessageId=28208 +Language=English +%1 +. +MessageId=28209 +Language=English +%1 +. +MessageId=28210 +Language=English +%1 +. +MessageId=28211 +Language=English +%1 +. +MessageId=28212 +Language=English +%1 +. +MessageId=28213 +Language=English +%1 +. +MessageId=28214 +Language=English +%1 +. +MessageId=28215 +Language=English +%1 +. +MessageId=28216 +Language=English +%1 +. +MessageId=28217 +Language=English +%1 +. +MessageId=28218 +Language=English +%1 +. +MessageId=28219 +Language=English +%1 +. +MessageId=28220 +Language=English +%1 +. +MessageId=28221 +Language=English +%1 +. +MessageId=28222 +Language=English +%1 +. +MessageId=28223 +Language=English +%1 +. +MessageId=28224 +Language=English +%1 +. +MessageId=28225 +Language=English +%1 +. +MessageId=28226 +Language=English +%1 +. +MessageId=28227 +Language=English +%1 +. +MessageId=28228 +Language=English +%1 +. +MessageId=28229 +Language=English +%1 +. +MessageId=28230 +Language=English +%1 +. +MessageId=28231 +Language=English +%1 +. +MessageId=28232 +Language=English +%1 +. +MessageId=28233 +Language=English +%1 +. +MessageId=28234 +Language=English +%1 +. +MessageId=28235 +Language=English +%1 +. +MessageId=28236 +Language=English +%1 +. +MessageId=28237 +Language=English +%1 +. +MessageId=28238 +Language=English +%1 +. +MessageId=28239 +Language=English +%1 +. +MessageId=28240 +Language=English +%1 +. +MessageId=28241 +Language=English +%1 +. +MessageId=28242 +Language=English +%1 +. +MessageId=28243 +Language=English +%1 +. +MessageId=28244 +Language=English +%1 +. +MessageId=28245 +Language=English +%1 +. +MessageId=28246 +Language=English +%1 +. +MessageId=28247 +Language=English +%1 +. +MessageId=28248 +Language=English +%1 +. +MessageId=28249 +Language=English +%1 +. +MessageId=28250 +Language=English +%1 +. +MessageId=28251 +Language=English +%1 +. +MessageId=28252 +Language=English +%1 +. +MessageId=28253 +Language=English +%1 +. +MessageId=28254 +Language=English +%1 +. +MessageId=28255 +Language=English +%1 +. +MessageId=28256 +Language=English +%1 +. +MessageId=28257 +Language=English +%1 +. +MessageId=28258 +Language=English +%1 +. +MessageId=28259 +Language=English +%1 +. +MessageId=28260 +Language=English +%1 +. +MessageId=28261 +Language=English +%1 +. +MessageId=28262 +Language=English +%1 +. +MessageId=28263 +Language=English +%1 +. +MessageId=28264 +Language=English +%1 +. +MessageId=28265 +Language=English +%1 +. +MessageId=28266 +Language=English +%1 +. +MessageId=28267 +Language=English +%1 +. +MessageId=28268 +Language=English +%1 +. +MessageId=28269 +Language=English +%1 +. +MessageId=28270 +Language=English +%1 +. +MessageId=28271 +Language=English +%1 +. +MessageId=28272 +Language=English +%1 +. +MessageId=28273 +Language=English +%1 +. +MessageId=28274 +Language=English +%1 +. +MessageId=28275 +Language=English +%1 +. +MessageId=28276 +Language=English +%1 +. +MessageId=28277 +Language=English +%1 +. +MessageId=28278 +Language=English +%1 +. +MessageId=28279 +Language=English +%1 +. +MessageId=28280 +Language=English +%1 +. +MessageId=28281 +Language=English +%1 +. +MessageId=28282 +Language=English +%1 +. +MessageId=28283 +Language=English +%1 +. +MessageId=28284 +Language=English +%1 +. +MessageId=28285 +Language=English +%1 +. +MessageId=28286 +Language=English +%1 +. +MessageId=28287 +Language=English +%1 +. +MessageId=28288 +Language=English +%1 +. +MessageId=28289 +Language=English +%1 +. +MessageId=28290 +Language=English +%1 +. +MessageId=28291 +Language=English +%1 +. +MessageId=28292 +Language=English +%1 +. +MessageId=28293 +Language=English +%1 +. +MessageId=28294 +Language=English +%1 +. +MessageId=28295 +Language=English +%1 +. +MessageId=28296 +Language=English +%1 +. +MessageId=28297 +Language=English +%1 +. +MessageId=28298 +Language=English +%1 +. +MessageId=28299 +Language=English +%1 +. +MessageId=28300 +Language=English +%1 +. +MessageId=28301 +Language=English +%1 +. +MessageId=28302 +Language=English +%1 +. +MessageId=28303 +Language=English +%1 +. +MessageId=28304 +Language=English +%1 +. +MessageId=28305 +Language=English +%1 +. +MessageId=28306 +Language=English +%1 +. +MessageId=28307 +Language=English +%1 +. +MessageId=28308 +Language=English +%1 +. +MessageId=28309 +Language=English +%1 +. +MessageId=28310 +Language=English +%1 +. +MessageId=28311 +Language=English +%1 +. +MessageId=28312 +Language=English +%1 +. +MessageId=28313 +Language=English +%1 +. +MessageId=28314 +Language=English +%1 +. +MessageId=28315 +Language=English +%1 +. +MessageId=28316 +Language=English +%1 +. +MessageId=28317 +Language=English +%1 +. +MessageId=28318 +Language=English +%1 +. +MessageId=28319 +Language=English +%1 +. +MessageId=28320 +Language=English +%1 +. +MessageId=28321 +Language=English +%1 +. +MessageId=28322 +Language=English +%1 +. +MessageId=28323 +Language=English +%1 +. +MessageId=28324 +Language=English +%1 +. +MessageId=28325 +Language=English +%1 +. +MessageId=28326 +Language=English +%1 +. +MessageId=28327 +Language=English +%1 +. +MessageId=28328 +Language=English +%1 +. +MessageId=28329 +Language=English +%1 +. +MessageId=28330 +Language=English +%1 +. +MessageId=28331 +Language=English +%1 +. +MessageId=28332 +Language=English +%1 +. +MessageId=28333 +Language=English +%1 +. +MessageId=28334 +Language=English +%1 +. +MessageId=28335 +Language=English +%1 +. +MessageId=28336 +Language=English +%1 +. +MessageId=28337 +Language=English +%1 +. +MessageId=28338 +Language=English +%1 +. +MessageId=28339 +Language=English +%1 +. +MessageId=28340 +Language=English +%1 +. +MessageId=28341 +Language=English +%1 +. +MessageId=28342 +Language=English +%1 +. +MessageId=28343 +Language=English +%1 +. +MessageId=28344 +Language=English +%1 +. +MessageId=28345 +Language=English +%1 +. +MessageId=28346 +Language=English +%1 +. +MessageId=28347 +Language=English +%1 +. +MessageId=28348 +Language=English +%1 +. +MessageId=28349 +Language=English +%1 +. +MessageId=28350 +Language=English +%1 +. +MessageId=28351 +Language=English +%1 +. +MessageId=28352 +Language=English +%1 +. +MessageId=28353 +Language=English +%1 +. +MessageId=28354 +Language=English +%1 +. +MessageId=28355 +Language=English +%1 +. +MessageId=28356 +Language=English +%1 +. +MessageId=28357 +Language=English +%1 +. +MessageId=28358 +Language=English +%1 +. +MessageId=28359 +Language=English +%1 +. +MessageId=28360 +Language=English +%1 +. +MessageId=28361 +Language=English +%1 +. +MessageId=28362 +Language=English +%1 +. +MessageId=28363 +Language=English +%1 +. +MessageId=28364 +Language=English +%1 +. +MessageId=28365 +Language=English +%1 +. +MessageId=28366 +Language=English +%1 +. +MessageId=28367 +Language=English +%1 +. +MessageId=28368 +Language=English +%1 +. +MessageId=28369 +Language=English +%1 +. +MessageId=28370 +Language=English +%1 +. +MessageId=28371 +Language=English +%1 +. +MessageId=28372 +Language=English +%1 +. +MessageId=28373 +Language=English +%1 +. +MessageId=28374 +Language=English +%1 +. +MessageId=28375 +Language=English +%1 +. +MessageId=28376 +Language=English +%1 +. +MessageId=28377 +Language=English +%1 +. +MessageId=28378 +Language=English +%1 +. +MessageId=28379 +Language=English +%1 +. +MessageId=28380 +Language=English +%1 +. +MessageId=28381 +Language=English +%1 +. +MessageId=28382 +Language=English +%1 +. +MessageId=28383 +Language=English +%1 +. +MessageId=28384 +Language=English +%1 +. +MessageId=28385 +Language=English +%1 +. +MessageId=28386 +Language=English +%1 +. +MessageId=28387 +Language=English +%1 +. +MessageId=28388 +Language=English +%1 +. +MessageId=28389 +Language=English +%1 +. +MessageId=28390 +Language=English +%1 +. +MessageId=28391 +Language=English +%1 +. +MessageId=28392 +Language=English +%1 +. +MessageId=28393 +Language=English +%1 +. +MessageId=28394 +Language=English +%1 +. +MessageId=28395 +Language=English +%1 +. +MessageId=28396 +Language=English +%1 +. +MessageId=28397 +Language=English +%1 +. +MessageId=28398 +Language=English +%1 +. +MessageId=28399 +Language=English +%1 +. +MessageId=28400 +Language=English +%1 +. +MessageId=28401 +Language=English +%1 +. +MessageId=28402 +Language=English +%1 +. +MessageId=28403 +Language=English +%1 +. +MessageId=28404 +Language=English +%1 +. +MessageId=28405 +Language=English +%1 +. +MessageId=28406 +Language=English +%1 +. +MessageId=28407 +Language=English +%1 +. +MessageId=28408 +Language=English +%1 +. +MessageId=28409 +Language=English +%1 +. +MessageId=28410 +Language=English +%1 +. +MessageId=28411 +Language=English +%1 +. +MessageId=28412 +Language=English +%1 +. +MessageId=28413 +Language=English +%1 +. +MessageId=28414 +Language=English +%1 +. +MessageId=28415 +Language=English +%1 +. +MessageId=28416 +Language=English +%1 +. +MessageId=28417 +Language=English +%1 +. +MessageId=28418 +Language=English +%1 +. +MessageId=28419 +Language=English +%1 +. +MessageId=28420 +Language=English +%1 +. +MessageId=28421 +Language=English +%1 +. +MessageId=28422 +Language=English +%1 +. +MessageId=28423 +Language=English +%1 +. +MessageId=28424 +Language=English +%1 +. +MessageId=28425 +Language=English +%1 +. +MessageId=28426 +Language=English +%1 +. +MessageId=28427 +Language=English +%1 +. +MessageId=28428 +Language=English +%1 +. +MessageId=28429 +Language=English +%1 +. +MessageId=28430 +Language=English +%1 +. +MessageId=28431 +Language=English +%1 +. +MessageId=28432 +Language=English +%1 +. +MessageId=28433 +Language=English +%1 +. +MessageId=28434 +Language=English +%1 +. +MessageId=28435 +Language=English +%1 +. +MessageId=28436 +Language=English +%1 +. +MessageId=28437 +Language=English +%1 +. +MessageId=28438 +Language=English +%1 +. +MessageId=28439 +Language=English +%1 +. +MessageId=28440 +Language=English +%1 +. +MessageId=28441 +Language=English +%1 +. +MessageId=28442 +Language=English +%1 +. +MessageId=28443 +Language=English +%1 +. +MessageId=28444 +Language=English +%1 +. +MessageId=28445 +Language=English +%1 +. +MessageId=28446 +Language=English +%1 +. +MessageId=28447 +Language=English +%1 +. +MessageId=28448 +Language=English +%1 +. +MessageId=28449 +Language=English +%1 +. +MessageId=28450 +Language=English +%1 +. +MessageId=28451 +Language=English +%1 +. +MessageId=28452 +Language=English +%1 +. +MessageId=28453 +Language=English +%1 +. +MessageId=28454 +Language=English +%1 +. +MessageId=28455 +Language=English +%1 +. +MessageId=28456 +Language=English +%1 +. +MessageId=28457 +Language=English +%1 +. +MessageId=28458 +Language=English +%1 +. +MessageId=28459 +Language=English +%1 +. +MessageId=28460 +Language=English +%1 +. +MessageId=28461 +Language=English +%1 +. +MessageId=28462 +Language=English +%1 +. +MessageId=28463 +Language=English +%1 +. +MessageId=28464 +Language=English +%1 +. +MessageId=28465 +Language=English +%1 +. +MessageId=28466 +Language=English +%1 +. +MessageId=28467 +Language=English +%1 +. +MessageId=28468 +Language=English +%1 +. +MessageId=28469 +Language=English +%1 +. +MessageId=28470 +Language=English +%1 +. +MessageId=28471 +Language=English +%1 +. +MessageId=28472 +Language=English +%1 +. +MessageId=28473 +Language=English +%1 +. +MessageId=28474 +Language=English +%1 +. +MessageId=28475 +Language=English +%1 +. +MessageId=28476 +Language=English +%1 +. +MessageId=28477 +Language=English +%1 +. +MessageId=28478 +Language=English +%1 +. +MessageId=28479 +Language=English +%1 +. +MessageId=28480 +Language=English +%1 +. +MessageId=28481 +Language=English +%1 +. +MessageId=28482 +Language=English +%1 +. +MessageId=28483 +Language=English +%1 +. +MessageId=28484 +Language=English +%1 +. +MessageId=28485 +Language=English +%1 +. +MessageId=28486 +Language=English +%1 +. +MessageId=28487 +Language=English +%1 +. +MessageId=28488 +Language=English +%1 +. +MessageId=28489 +Language=English +%1 +. +MessageId=28490 +Language=English +%1 +. +MessageId=28491 +Language=English +%1 +. +MessageId=28492 +Language=English +%1 +. +MessageId=28493 +Language=English +%1 +. +MessageId=28494 +Language=English +%1 +. +MessageId=28495 +Language=English +%1 +. +MessageId=28496 +Language=English +%1 +. +MessageId=28497 +Language=English +%1 +. +MessageId=28498 +Language=English +%1 +. +MessageId=28499 +Language=English +%1 +. +MessageId=28500 +Language=English +%1 +. +MessageId=28501 +Language=English +%1 +. +MessageId=28502 +Language=English +%1 +. +MessageId=28503 +Language=English +%1 +. +MessageId=28504 +Language=English +%1 +. +MessageId=28505 +Language=English +%1 +. +MessageId=28506 +Language=English +%1 +. +MessageId=28507 +Language=English +%1 +. +MessageId=28508 +Language=English +%1 +. +MessageId=28509 +Language=English +%1 +. +MessageId=28510 +Language=English +%1 +. +MessageId=28511 +Language=English +%1 +. +MessageId=28512 +Language=English +%1 +. +MessageId=28513 +Language=English +%1 +. +MessageId=28514 +Language=English +%1 +. +MessageId=28515 +Language=English +%1 +. +MessageId=28516 +Language=English +%1 +. +MessageId=28517 +Language=English +%1 +. +MessageId=28518 +Language=English +%1 +. +MessageId=28519 +Language=English +%1 +. +MessageId=28520 +Language=English +%1 +. +MessageId=28521 +Language=English +%1 +. +MessageId=28522 +Language=English +%1 +. +MessageId=28523 +Language=English +%1 +. +MessageId=28524 +Language=English +%1 +. +MessageId=28525 +Language=English +%1 +. +MessageId=28526 +Language=English +%1 +. +MessageId=28527 +Language=English +%1 +. +MessageId=28528 +Language=English +%1 +. +MessageId=28529 +Language=English +%1 +. +MessageId=28530 +Language=English +%1 +. +MessageId=28531 +Language=English +%1 +. +MessageId=28532 +Language=English +%1 +. +MessageId=28533 +Language=English +%1 +. +MessageId=28534 +Language=English +%1 +. +MessageId=28535 +Language=English +%1 +. +MessageId=28536 +Language=English +%1 +. +MessageId=28537 +Language=English +%1 +. +MessageId=28538 +Language=English +%1 +. +MessageId=28539 +Language=English +%1 +. +MessageId=28540 +Language=English +%1 +. +MessageId=28541 +Language=English +%1 +. +MessageId=28542 +Language=English +%1 +. +MessageId=28543 +Language=English +%1 +. +MessageId=28544 +Language=English +%1 +. +MessageId=28545 +Language=English +%1 +. +MessageId=28546 +Language=English +%1 +. +MessageId=28547 +Language=English +%1 +. +MessageId=28548 +Language=English +%1 +. +MessageId=28549 +Language=English +%1 +. +MessageId=28550 +Language=English +%1 +. +MessageId=28551 +Language=English +%1 +. +MessageId=28552 +Language=English +%1 +. +MessageId=28553 +Language=English +%1 +. +MessageId=28554 +Language=English +%1 +. +MessageId=28555 +Language=English +%1 +. +MessageId=28556 +Language=English +%1 +. +MessageId=28557 +Language=English +%1 +. +MessageId=28558 +Language=English +%1 +. +MessageId=28559 +Language=English +%1 +. +MessageId=28560 +Language=English +%1 +. +MessageId=28561 +Language=English +%1 +. +MessageId=28562 +Language=English +%1 +. +MessageId=28563 +Language=English +%1 +. +MessageId=28564 +Language=English +%1 +. +MessageId=28565 +Language=English +%1 +. +MessageId=28566 +Language=English +%1 +. +MessageId=28567 +Language=English +%1 +. +MessageId=28568 +Language=English +%1 +. +MessageId=28569 +Language=English +%1 +. +MessageId=28570 +Language=English +%1 +. +MessageId=28571 +Language=English +%1 +. +MessageId=28572 +Language=English +%1 +. +MessageId=28573 +Language=English +%1 +. +MessageId=28574 +Language=English +%1 +. +MessageId=28575 +Language=English +%1 +. +MessageId=28576 +Language=English +%1 +. +MessageId=28577 +Language=English +%1 +. +MessageId=28578 +Language=English +%1 +. +MessageId=28579 +Language=English +%1 +. +MessageId=28580 +Language=English +%1 +. +MessageId=28581 +Language=English +%1 +. +MessageId=28582 +Language=English +%1 +. +MessageId=28583 +Language=English +%1 +. +MessageId=28584 +Language=English +%1 +. +MessageId=28585 +Language=English +%1 +. +MessageId=28586 +Language=English +%1 +. +MessageId=28587 +Language=English +%1 +. +MessageId=28588 +Language=English +%1 +. +MessageId=28589 +Language=English +%1 +. +MessageId=28590 +Language=English +%1 +. +MessageId=28591 +Language=English +%1 +. +MessageId=28592 +Language=English +%1 +. +MessageId=28593 +Language=English +%1 +. +MessageId=28594 +Language=English +%1 +. +MessageId=28595 +Language=English +%1 +. +MessageId=28596 +Language=English +%1 +. +MessageId=28597 +Language=English +%1 +. +MessageId=28598 +Language=English +%1 +. +MessageId=28599 +Language=English +%1 +. +MessageId=28600 +Language=English +%1 +. +MessageId=28601 +Language=English +%1 +. +MessageId=28602 +Language=English +%1 +. +MessageId=28603 +Language=English +%1 +. +MessageId=28604 +Language=English +%1 +. +MessageId=28605 +Language=English +%1 +. +MessageId=28606 +Language=English +%1 +. +MessageId=28607 +Language=English +%1 +. +MessageId=28608 +Language=English +%1 +. +MessageId=28609 +Language=English +%1 +. +MessageId=28610 +Language=English +%1 +. +MessageId=28611 +Language=English +%1 +. +MessageId=28612 +Language=English +%1 +. +MessageId=28613 +Language=English +%1 +. +MessageId=28614 +Language=English +%1 +. +MessageId=28615 +Language=English +%1 +. +MessageId=28616 +Language=English +%1 +. +MessageId=28617 +Language=English +%1 +. +MessageId=28618 +Language=English +%1 +. +MessageId=28619 +Language=English +%1 +. +MessageId=28620 +Language=English +%1 +. +MessageId=28621 +Language=English +%1 +. +MessageId=28622 +Language=English +%1 +. +MessageId=28623 +Language=English +%1 +. +MessageId=28624 +Language=English +%1 +. +MessageId=28625 +Language=English +%1 +. +MessageId=28626 +Language=English +%1 +. +MessageId=28627 +Language=English +%1 +. +MessageId=28628 +Language=English +%1 +. +MessageId=28629 +Language=English +%1 +. +MessageId=28630 +Language=English +%1 +. +MessageId=28631 +Language=English +%1 +. +MessageId=28632 +Language=English +%1 +. +MessageId=28633 +Language=English +%1 +. +MessageId=28634 +Language=English +%1 +. +MessageId=28635 +Language=English +%1 +. +MessageId=28636 +Language=English +%1 +. +MessageId=28637 +Language=English +%1 +. +MessageId=28638 +Language=English +%1 +. +MessageId=28639 +Language=English +%1 +. +MessageId=28640 +Language=English +%1 +. +MessageId=28641 +Language=English +%1 +. +MessageId=28642 +Language=English +%1 +. +MessageId=28643 +Language=English +%1 +. +MessageId=28644 +Language=English +%1 +. +MessageId=28645 +Language=English +%1 +. +MessageId=28646 +Language=English +%1 +. +MessageId=28647 +Language=English +%1 +. +MessageId=28648 +Language=English +%1 +. +MessageId=28649 +Language=English +%1 +. +MessageId=28650 +Language=English +%1 +. +MessageId=28651 +Language=English +%1 +. +MessageId=28652 +Language=English +%1 +. +MessageId=28653 +Language=English +%1 +. +MessageId=28654 +Language=English +%1 +. +MessageId=28655 +Language=English +%1 +. +MessageId=28656 +Language=English +%1 +. +MessageId=28657 +Language=English +%1 +. +MessageId=28658 +Language=English +%1 +. +MessageId=28659 +Language=English +%1 +. +MessageId=28660 +Language=English +%1 +. +MessageId=28661 +Language=English +%1 +. +MessageId=28662 +Language=English +%1 +. +MessageId=28663 +Language=English +%1 +. +MessageId=28664 +Language=English +%1 +. +MessageId=28665 +Language=English +%1 +. +MessageId=28666 +Language=English +%1 +. +MessageId=28667 +Language=English +%1 +. +MessageId=28668 +Language=English +%1 +. +MessageId=28669 +Language=English +%1 +. +MessageId=28670 +Language=English +%1 +. +MessageId=28671 +Language=English +%1 +. +MessageId=28672 +Language=English +%1 +. +MessageId=28673 +Language=English +%1 +. +MessageId=28674 +Language=English +%1 +. +MessageId=28675 +Language=English +%1 +. +MessageId=28676 +Language=English +%1 +. +MessageId=28677 +Language=English +%1 +. +MessageId=28678 +Language=English +%1 +. +MessageId=28679 +Language=English +%1 +. +MessageId=28680 +Language=English +%1 +. +MessageId=28681 +Language=English +%1 +. +MessageId=28682 +Language=English +%1 +. +MessageId=28683 +Language=English +%1 +. +MessageId=28684 +Language=English +%1 +. +MessageId=28685 +Language=English +%1 +. +MessageId=28686 +Language=English +%1 +. +MessageId=28687 +Language=English +%1 +. +MessageId=28688 +Language=English +%1 +. +MessageId=28689 +Language=English +%1 +. +MessageId=28690 +Language=English +%1 +. +MessageId=28691 +Language=English +%1 +. +MessageId=28692 +Language=English +%1 +. +MessageId=28693 +Language=English +%1 +. +MessageId=28694 +Language=English +%1 +. +MessageId=28695 +Language=English +%1 +. +MessageId=28696 +Language=English +%1 +. +MessageId=28697 +Language=English +%1 +. +MessageId=28698 +Language=English +%1 +. +MessageId=28699 +Language=English +%1 +. +MessageId=28700 +Language=English +%1 +. +MessageId=28701 +Language=English +%1 +. +MessageId=28702 +Language=English +%1 +. +MessageId=28703 +Language=English +%1 +. +MessageId=28704 +Language=English +%1 +. +MessageId=28705 +Language=English +%1 +. +MessageId=28706 +Language=English +%1 +. +MessageId=28707 +Language=English +%1 +. +MessageId=28708 +Language=English +%1 +. +MessageId=28709 +Language=English +%1 +. +MessageId=28710 +Language=English +%1 +. +MessageId=28711 +Language=English +%1 +. +MessageId=28712 +Language=English +%1 +. +MessageId=28713 +Language=English +%1 +. +MessageId=28714 +Language=English +%1 +. +MessageId=28715 +Language=English +%1 +. +MessageId=28716 +Language=English +%1 +. +MessageId=28717 +Language=English +%1 +. +MessageId=28718 +Language=English +%1 +. +MessageId=28719 +Language=English +%1 +. +MessageId=28720 +Language=English +%1 +. +MessageId=28721 +Language=English +%1 +. +MessageId=28722 +Language=English +%1 +. +MessageId=28723 +Language=English +%1 +. +MessageId=28724 +Language=English +%1 +. +MessageId=28725 +Language=English +%1 +. +MessageId=28726 +Language=English +%1 +. +MessageId=28727 +Language=English +%1 +. +MessageId=28728 +Language=English +%1 +. +MessageId=28729 +Language=English +%1 +. +MessageId=28730 +Language=English +%1 +. +MessageId=28731 +Language=English +%1 +. +MessageId=28732 +Language=English +%1 +. +MessageId=28733 +Language=English +%1 +. +MessageId=28734 +Language=English +%1 +. +MessageId=28735 +Language=English +%1 +. +MessageId=28736 +Language=English +%1 +. +MessageId=28737 +Language=English +%1 +. +MessageId=28738 +Language=English +%1 +. +MessageId=28739 +Language=English +%1 +. +MessageId=28740 +Language=English +%1 +. +MessageId=28741 +Language=English +%1 +. +MessageId=28742 +Language=English +%1 +. +MessageId=28743 +Language=English +%1 +. +MessageId=28744 +Language=English +%1 +. +MessageId=28745 +Language=English +%1 +. +MessageId=28746 +Language=English +%1 +. +MessageId=28747 +Language=English +%1 +. +MessageId=28748 +Language=English +%1 +. +MessageId=28749 +Language=English +%1 +. +MessageId=28750 +Language=English +%1 +. +MessageId=28751 +Language=English +%1 +. +MessageId=28752 +Language=English +%1 +. +MessageId=28753 +Language=English +%1 +. +MessageId=28754 +Language=English +%1 +. +MessageId=28755 +Language=English +%1 +. +MessageId=28756 +Language=English +%1 +. +MessageId=28757 +Language=English +%1 +. +MessageId=28758 +Language=English +%1 +. +MessageId=28759 +Language=English +%1 +. +MessageId=28760 +Language=English +%1 +. +MessageId=28761 +Language=English +%1 +. +MessageId=28762 +Language=English +%1 +. +MessageId=28763 +Language=English +%1 +. +MessageId=28764 +Language=English +%1 +. +MessageId=28765 +Language=English +%1 +. +MessageId=28766 +Language=English +%1 +. +MessageId=28767 +Language=English +%1 +. +MessageId=28768 +Language=English +%1 +. +MessageId=28769 +Language=English +%1 +. +MessageId=28770 +Language=English +%1 +. +MessageId=28771 +Language=English +%1 +. +MessageId=28772 +Language=English +%1 +. +MessageId=28773 +Language=English +%1 +. +MessageId=28774 +Language=English +%1 +. +MessageId=28775 +Language=English +%1 +. +MessageId=28776 +Language=English +%1 +. +MessageId=28777 +Language=English +%1 +. +MessageId=28778 +Language=English +%1 +. +MessageId=28779 +Language=English +%1 +. +MessageId=28780 +Language=English +%1 +. +MessageId=28781 +Language=English +%1 +. +MessageId=28782 +Language=English +%1 +. +MessageId=28783 +Language=English +%1 +. +MessageId=28784 +Language=English +%1 +. +MessageId=28785 +Language=English +%1 +. +MessageId=28786 +Language=English +%1 +. +MessageId=28787 +Language=English +%1 +. +MessageId=28788 +Language=English +%1 +. +MessageId=28789 +Language=English +%1 +. +MessageId=28790 +Language=English +%1 +. +MessageId=28791 +Language=English +%1 +. +MessageId=28792 +Language=English +%1 +. +MessageId=28793 +Language=English +%1 +. +MessageId=28794 +Language=English +%1 +. +MessageId=28795 +Language=English +%1 +. +MessageId=28796 +Language=English +%1 +. +MessageId=28797 +Language=English +%1 +. +MessageId=28798 +Language=English +%1 +. +MessageId=28799 +Language=English +%1 +. +MessageId=28800 +Language=English +%1 +. +MessageId=28801 +Language=English +%1 +. +MessageId=28802 +Language=English +%1 +. +MessageId=28803 +Language=English +%1 +. +MessageId=28804 +Language=English +%1 +. +MessageId=28805 +Language=English +%1 +. +MessageId=28806 +Language=English +%1 +. +MessageId=28807 +Language=English +%1 +. +MessageId=28808 +Language=English +%1 +. +MessageId=28809 +Language=English +%1 +. +MessageId=28810 +Language=English +%1 +. +MessageId=28811 +Language=English +%1 +. +MessageId=28812 +Language=English +%1 +. +MessageId=28813 +Language=English +%1 +. +MessageId=28814 +Language=English +%1 +. +MessageId=28815 +Language=English +%1 +. +MessageId=28816 +Language=English +%1 +. +MessageId=28817 +Language=English +%1 +. +MessageId=28818 +Language=English +%1 +. +MessageId=28819 +Language=English +%1 +. +MessageId=28820 +Language=English +%1 +. +MessageId=28821 +Language=English +%1 +. +MessageId=28822 +Language=English +%1 +. +MessageId=28823 +Language=English +%1 +. +MessageId=28824 +Language=English +%1 +. +MessageId=28825 +Language=English +%1 +. +MessageId=28826 +Language=English +%1 +. +MessageId=28827 +Language=English +%1 +. +MessageId=28828 +Language=English +%1 +. +MessageId=28829 +Language=English +%1 +. +MessageId=28830 +Language=English +%1 +. +MessageId=28831 +Language=English +%1 +. +MessageId=28832 +Language=English +%1 +. +MessageId=28833 +Language=English +%1 +. +MessageId=28834 +Language=English +%1 +. +MessageId=28835 +Language=English +%1 +. +MessageId=28836 +Language=English +%1 +. +MessageId=28837 +Language=English +%1 +. +MessageId=28838 +Language=English +%1 +. +MessageId=28839 +Language=English +%1 +. +MessageId=28840 +Language=English +%1 +. +MessageId=28841 +Language=English +%1 +. +MessageId=28842 +Language=English +%1 +. +MessageId=28843 +Language=English +%1 +. +MessageId=28844 +Language=English +%1 +. +MessageId=28845 +Language=English +%1 +. +MessageId=28846 +Language=English +%1 +. +MessageId=28847 +Language=English +%1 +. +MessageId=28848 +Language=English +%1 +. +MessageId=28849 +Language=English +%1 +. +MessageId=28850 +Language=English +%1 +. +MessageId=28851 +Language=English +%1 +. +MessageId=28852 +Language=English +%1 +. +MessageId=28853 +Language=English +%1 +. +MessageId=28854 +Language=English +%1 +. +MessageId=28855 +Language=English +%1 +. +MessageId=28856 +Language=English +%1 +. +MessageId=28857 +Language=English +%1 +. +MessageId=28858 +Language=English +%1 +. +MessageId=28859 +Language=English +%1 +. +MessageId=28860 +Language=English +%1 +. +MessageId=28861 +Language=English +%1 +. +MessageId=28862 +Language=English +%1 +. +MessageId=28863 +Language=English +%1 +. +MessageId=28864 +Language=English +%1 +. +MessageId=28865 +Language=English +%1 +. +MessageId=28866 +Language=English +%1 +. +MessageId=28867 +Language=English +%1 +. +MessageId=28868 +Language=English +%1 +. +MessageId=28869 +Language=English +%1 +. +MessageId=28870 +Language=English +%1 +. +MessageId=28871 +Language=English +%1 +. +MessageId=28872 +Language=English +%1 +. +MessageId=28873 +Language=English +%1 +. +MessageId=28874 +Language=English +%1 +. +MessageId=28875 +Language=English +%1 +. +MessageId=28876 +Language=English +%1 +. +MessageId=28877 +Language=English +%1 +. +MessageId=28878 +Language=English +%1 +. +MessageId=28879 +Language=English +%1 +. +MessageId=28880 +Language=English +%1 +. +MessageId=28881 +Language=English +%1 +. +MessageId=28882 +Language=English +%1 +. +MessageId=28883 +Language=English +%1 +. +MessageId=28884 +Language=English +%1 +. +MessageId=28885 +Language=English +%1 +. +MessageId=28886 +Language=English +%1 +. +MessageId=28887 +Language=English +%1 +. +MessageId=28888 +Language=English +%1 +. +MessageId=28889 +Language=English +%1 +. +MessageId=28890 +Language=English +%1 +. +MessageId=28891 +Language=English +%1 +. +MessageId=28892 +Language=English +%1 +. +MessageId=28893 +Language=English +%1 +. +MessageId=28894 +Language=English +%1 +. +MessageId=28895 +Language=English +%1 +. +MessageId=28896 +Language=English +%1 +. +MessageId=28897 +Language=English +%1 +. +MessageId=28898 +Language=English +%1 +. +MessageId=28899 +Language=English +%1 +. +MessageId=28900 +Language=English +%1 +. +MessageId=28901 +Language=English +%1 +. +MessageId=28902 +Language=English +%1 +. +MessageId=28903 +Language=English +%1 +. +MessageId=28904 +Language=English +%1 +. +MessageId=28905 +Language=English +%1 +. +MessageId=28906 +Language=English +%1 +. +MessageId=28907 +Language=English +%1 +. +MessageId=28908 +Language=English +%1 +. +MessageId=28909 +Language=English +%1 +. +MessageId=28910 +Language=English +%1 +. +MessageId=28911 +Language=English +%1 +. +MessageId=28912 +Language=English +%1 +. +MessageId=28913 +Language=English +%1 +. +MessageId=28914 +Language=English +%1 +. +MessageId=28915 +Language=English +%1 +. +MessageId=28916 +Language=English +%1 +. +MessageId=28917 +Language=English +%1 +. +MessageId=28918 +Language=English +%1 +. +MessageId=28919 +Language=English +%1 +. +MessageId=28920 +Language=English +%1 +. +MessageId=28921 +Language=English +%1 +. +MessageId=28922 +Language=English +%1 +. +MessageId=28923 +Language=English +%1 +. +MessageId=28924 +Language=English +%1 +. +MessageId=28925 +Language=English +%1 +. +MessageId=28926 +Language=English +%1 +. +MessageId=28927 +Language=English +%1 +. +MessageId=28928 +Language=English +%1 +. +MessageId=28929 +Language=English +%1 +. +MessageId=28930 +Language=English +%1 +. +MessageId=28931 +Language=English +%1 +. +MessageId=28932 +Language=English +%1 +. +MessageId=28933 +Language=English +%1 +. +MessageId=28934 +Language=English +%1 +. +MessageId=28935 +Language=English +%1 +. +MessageId=28936 +Language=English +%1 +. +MessageId=28937 +Language=English +%1 +. +MessageId=28938 +Language=English +%1 +. +MessageId=28939 +Language=English +%1 +. +MessageId=28940 +Language=English +%1 +. +MessageId=28941 +Language=English +%1 +. +MessageId=28942 +Language=English +%1 +. +MessageId=28943 +Language=English +%1 +. +MessageId=28944 +Language=English +%1 +. +MessageId=28945 +Language=English +%1 +. +MessageId=28946 +Language=English +%1 +. +MessageId=28947 +Language=English +%1 +. +MessageId=28948 +Language=English +%1 +. +MessageId=28949 +Language=English +%1 +. +MessageId=28950 +Language=English +%1 +. +MessageId=28951 +Language=English +%1 +. +MessageId=28952 +Language=English +%1 +. +MessageId=28953 +Language=English +%1 +. +MessageId=28954 +Language=English +%1 +. +MessageId=28955 +Language=English +%1 +. +MessageId=28956 +Language=English +%1 +. +MessageId=28957 +Language=English +%1 +. +MessageId=28958 +Language=English +%1 +. +MessageId=28959 +Language=English +%1 +. +MessageId=28960 +Language=English +%1 +. +MessageId=28961 +Language=English +%1 +. +MessageId=28962 +Language=English +%1 +. +MessageId=28963 +Language=English +%1 +. +MessageId=28964 +Language=English +%1 +. +MessageId=28965 +Language=English +%1 +. +MessageId=28966 +Language=English +%1 +. +MessageId=28967 +Language=English +%1 +. +MessageId=28968 +Language=English +%1 +. +MessageId=28969 +Language=English +%1 +. +MessageId=28970 +Language=English +%1 +. +MessageId=28971 +Language=English +%1 +. +MessageId=28972 +Language=English +%1 +. +MessageId=28973 +Language=English +%1 +. +MessageId=28974 +Language=English +%1 +. +MessageId=28975 +Language=English +%1 +. +MessageId=28976 +Language=English +%1 +. +MessageId=28977 +Language=English +%1 +. +MessageId=28978 +Language=English +%1 +. +MessageId=28979 +Language=English +%1 +. +MessageId=28980 +Language=English +%1 +. +MessageId=28981 +Language=English +%1 +. +MessageId=28982 +Language=English +%1 +. +MessageId=28983 +Language=English +%1 +. +MessageId=28984 +Language=English +%1 +. +MessageId=28985 +Language=English +%1 +. +MessageId=28986 +Language=English +%1 +. +MessageId=28987 +Language=English +%1 +. +MessageId=28988 +Language=English +%1 +. +MessageId=28989 +Language=English +%1 +. +MessageId=28990 +Language=English +%1 +. +MessageId=28991 +Language=English +%1 +. +MessageId=28992 +Language=English +%1 +. +MessageId=28993 +Language=English +%1 +. +MessageId=28994 +Language=English +%1 +. +MessageId=28995 +Language=English +%1 +. +MessageId=28996 +Language=English +%1 +. +MessageId=28997 +Language=English +%1 +. +MessageId=28998 +Language=English +%1 +. +MessageId=28999 +Language=English +%1 +. +MessageId=29000 +Language=English +%1 +. +MessageId=29001 +Language=English +%1 +. +MessageId=29002 +Language=English +%1 +. +MessageId=29003 +Language=English +%1 +. +MessageId=29004 +Language=English +%1 +. +MessageId=29005 +Language=English +%1 +. +MessageId=29006 +Language=English +%1 +. +MessageId=29007 +Language=English +%1 +. +MessageId=29008 +Language=English +%1 +. +MessageId=29009 +Language=English +%1 +. +MessageId=29010 +Language=English +%1 +. +MessageId=29011 +Language=English +%1 +. +MessageId=29012 +Language=English +%1 +. +MessageId=29013 +Language=English +%1 +. +MessageId=29014 +Language=English +%1 +. +MessageId=29015 +Language=English +%1 +. +MessageId=29016 +Language=English +%1 +. +MessageId=29017 +Language=English +%1 +. +MessageId=29018 +Language=English +%1 +. +MessageId=29019 +Language=English +%1 +. +MessageId=29020 +Language=English +%1 +. +MessageId=29021 +Language=English +%1 +. +MessageId=29022 +Language=English +%1 +. +MessageId=29023 +Language=English +%1 +. +MessageId=29024 +Language=English +%1 +. +MessageId=29025 +Language=English +%1 +. +MessageId=29026 +Language=English +%1 +. +MessageId=29027 +Language=English +%1 +. +MessageId=29028 +Language=English +%1 +. +MessageId=29029 +Language=English +%1 +. +MessageId=29030 +Language=English +%1 +. +MessageId=29031 +Language=English +%1 +. +MessageId=29032 +Language=English +%1 +. +MessageId=29033 +Language=English +%1 +. +MessageId=29034 +Language=English +%1 +. +MessageId=29035 +Language=English +%1 +. +MessageId=29036 +Language=English +%1 +. +MessageId=29037 +Language=English +%1 +. +MessageId=29038 +Language=English +%1 +. +MessageId=29039 +Language=English +%1 +. +MessageId=29040 +Language=English +%1 +. +MessageId=29041 +Language=English +%1 +. +MessageId=29042 +Language=English +%1 +. +MessageId=29043 +Language=English +%1 +. +MessageId=29044 +Language=English +%1 +. +MessageId=29045 +Language=English +%1 +. +MessageId=29046 +Language=English +%1 +. +MessageId=29047 +Language=English +%1 +. +MessageId=29048 +Language=English +%1 +. +MessageId=29049 +Language=English +%1 +. +MessageId=29050 +Language=English +%1 +. +MessageId=29051 +Language=English +%1 +. +MessageId=29052 +Language=English +%1 +. +MessageId=29053 +Language=English +%1 +. +MessageId=29054 +Language=English +%1 +. +MessageId=29055 +Language=English +%1 +. +MessageId=29056 +Language=English +%1 +. +MessageId=29057 +Language=English +%1 +. +MessageId=29058 +Language=English +%1 +. +MessageId=29059 +Language=English +%1 +. +MessageId=29060 +Language=English +%1 +. +MessageId=29061 +Language=English +%1 +. +MessageId=29062 +Language=English +%1 +. +MessageId=29063 +Language=English +%1 +. +MessageId=29064 +Language=English +%1 +. +MessageId=29065 +Language=English +%1 +. +MessageId=29066 +Language=English +%1 +. +MessageId=29067 +Language=English +%1 +. +MessageId=29068 +Language=English +%1 +. +MessageId=29069 +Language=English +%1 +. +MessageId=29070 +Language=English +%1 +. +MessageId=29071 +Language=English +%1 +. +MessageId=29072 +Language=English +%1 +. +MessageId=29073 +Language=English +%1 +. +MessageId=29074 +Language=English +%1 +. +MessageId=29075 +Language=English +%1 +. +MessageId=29076 +Language=English +%1 +. +MessageId=29077 +Language=English +%1 +. +MessageId=29078 +Language=English +%1 +. +MessageId=29079 +Language=English +%1 +. +MessageId=29080 +Language=English +%1 +. +MessageId=29081 +Language=English +%1 +. +MessageId=29082 +Language=English +%1 +. +MessageId=29083 +Language=English +%1 +. +MessageId=29084 +Language=English +%1 +. +MessageId=29085 +Language=English +%1 +. +MessageId=29086 +Language=English +%1 +. +MessageId=29087 +Language=English +%1 +. +MessageId=29088 +Language=English +%1 +. +MessageId=29089 +Language=English +%1 +. +MessageId=29090 +Language=English +%1 +. +MessageId=29091 +Language=English +%1 +. +MessageId=29092 +Language=English +%1 +. +MessageId=29093 +Language=English +%1 +. +MessageId=29094 +Language=English +%1 +. +MessageId=29095 +Language=English +%1 +. +MessageId=29096 +Language=English +%1 +. +MessageId=29097 +Language=English +%1 +. +MessageId=29098 +Language=English +%1 +. +MessageId=29099 +Language=English +%1 +. +MessageId=29100 +Language=English +%1 +. +MessageId=29101 +Language=English +%1 +. +MessageId=29102 +Language=English +%1 +. +MessageId=29103 +Language=English +%1 +. +MessageId=29104 +Language=English +%1 +. +MessageId=29105 +Language=English +%1 +. +MessageId=29106 +Language=English +%1 +. +MessageId=29107 +Language=English +%1 +. +MessageId=29108 +Language=English +%1 +. +MessageId=29109 +Language=English +%1 +. +MessageId=29110 +Language=English +%1 +. +MessageId=29111 +Language=English +%1 +. +MessageId=29112 +Language=English +%1 +. +MessageId=29113 +Language=English +%1 +. +MessageId=29114 +Language=English +%1 +. +MessageId=29115 +Language=English +%1 +. +MessageId=29116 +Language=English +%1 +. +MessageId=29117 +Language=English +%1 +. +MessageId=29118 +Language=English +%1 +. +MessageId=29119 +Language=English +%1 +. +MessageId=29120 +Language=English +%1 +. +MessageId=29121 +Language=English +%1 +. +MessageId=29122 +Language=English +%1 +. +MessageId=29123 +Language=English +%1 +. +MessageId=29124 +Language=English +%1 +. +MessageId=29125 +Language=English +%1 +. +MessageId=29126 +Language=English +%1 +. +MessageId=29127 +Language=English +%1 +. +MessageId=29128 +Language=English +%1 +. +MessageId=29129 +Language=English +%1 +. +MessageId=29130 +Language=English +%1 +. +MessageId=29131 +Language=English +%1 +. +MessageId=29132 +Language=English +%1 +. +MessageId=29133 +Language=English +%1 +. +MessageId=29134 +Language=English +%1 +. +MessageId=29135 +Language=English +%1 +. +MessageId=29136 +Language=English +%1 +. +MessageId=29137 +Language=English +%1 +. +MessageId=29138 +Language=English +%1 +. +MessageId=29139 +Language=English +%1 +. +MessageId=29140 +Language=English +%1 +. +MessageId=29141 +Language=English +%1 +. +MessageId=29142 +Language=English +%1 +. +MessageId=29143 +Language=English +%1 +. +MessageId=29144 +Language=English +%1 +. +MessageId=29145 +Language=English +%1 +. +MessageId=29146 +Language=English +%1 +. +MessageId=29147 +Language=English +%1 +. +MessageId=29148 +Language=English +%1 +. +MessageId=29149 +Language=English +%1 +. +MessageId=29150 +Language=English +%1 +. +MessageId=29151 +Language=English +%1 +. +MessageId=29152 +Language=English +%1 +. +MessageId=29153 +Language=English +%1 +. +MessageId=29154 +Language=English +%1 +. +MessageId=29155 +Language=English +%1 +. +MessageId=29156 +Language=English +%1 +. +MessageId=29157 +Language=English +%1 +. +MessageId=29158 +Language=English +%1 +. +MessageId=29159 +Language=English +%1 +. +MessageId=29160 +Language=English +%1 +. +MessageId=29161 +Language=English +%1 +. +MessageId=29162 +Language=English +%1 +. +MessageId=29163 +Language=English +%1 +. +MessageId=29164 +Language=English +%1 +. +MessageId=29165 +Language=English +%1 +. +MessageId=29166 +Language=English +%1 +. +MessageId=29167 +Language=English +%1 +. +MessageId=29168 +Language=English +%1 +. +MessageId=29169 +Language=English +%1 +. +MessageId=29170 +Language=English +%1 +. +MessageId=29171 +Language=English +%1 +. +MessageId=29172 +Language=English +%1 +. +MessageId=29173 +Language=English +%1 +. +MessageId=29174 +Language=English +%1 +. +MessageId=29175 +Language=English +%1 +. +MessageId=29176 +Language=English +%1 +. +MessageId=29177 +Language=English +%1 +. +MessageId=29178 +Language=English +%1 +. +MessageId=29179 +Language=English +%1 +. +MessageId=29180 +Language=English +%1 +. +MessageId=29181 +Language=English +%1 +. +MessageId=29182 +Language=English +%1 +. +MessageId=29183 +Language=English +%1 +. +MessageId=29184 +Language=English +%1 +. +MessageId=29185 +Language=English +%1 +. +MessageId=29186 +Language=English +%1 +. +MessageId=29187 +Language=English +%1 +. +MessageId=29188 +Language=English +%1 +. +MessageId=29189 +Language=English +%1 +. +MessageId=29190 +Language=English +%1 +. +MessageId=29191 +Language=English +%1 +. +MessageId=29192 +Language=English +%1 +. +MessageId=29193 +Language=English +%1 +. +MessageId=29194 +Language=English +%1 +. +MessageId=29195 +Language=English +%1 +. +MessageId=29196 +Language=English +%1 +. +MessageId=29197 +Language=English +%1 +. +MessageId=29198 +Language=English +%1 +. +MessageId=29199 +Language=English +%1 +. +MessageId=29200 +Language=English +%1 +. +MessageId=29201 +Language=English +%1 +. +MessageId=29202 +Language=English +%1 +. +MessageId=29203 +Language=English +%1 +. +MessageId=29204 +Language=English +%1 +. +MessageId=29205 +Language=English +%1 +. +MessageId=29206 +Language=English +%1 +. +MessageId=29207 +Language=English +%1 +. +MessageId=29208 +Language=English +%1 +. +MessageId=29209 +Language=English +%1 +. +MessageId=29210 +Language=English +%1 +. +MessageId=29211 +Language=English +%1 +. +MessageId=29212 +Language=English +%1 +. +MessageId=29213 +Language=English +%1 +. +MessageId=29214 +Language=English +%1 +. +MessageId=29215 +Language=English +%1 +. +MessageId=29216 +Language=English +%1 +. +MessageId=29217 +Language=English +%1 +. +MessageId=29218 +Language=English +%1 +. +MessageId=29219 +Language=English +%1 +. +MessageId=29220 +Language=English +%1 +. +MessageId=29221 +Language=English +%1 +. +MessageId=29222 +Language=English +%1 +. +MessageId=29223 +Language=English +%1 +. +MessageId=29224 +Language=English +%1 +. +MessageId=29225 +Language=English +%1 +. +MessageId=29226 +Language=English +%1 +. +MessageId=29227 +Language=English +%1 +. +MessageId=29228 +Language=English +%1 +. +MessageId=29229 +Language=English +%1 +. +MessageId=29230 +Language=English +%1 +. +MessageId=29231 +Language=English +%1 +. +MessageId=29232 +Language=English +%1 +. +MessageId=29233 +Language=English +%1 +. +MessageId=29234 +Language=English +%1 +. +MessageId=29235 +Language=English +%1 +. +MessageId=29236 +Language=English +%1 +. +MessageId=29237 +Language=English +%1 +. +MessageId=29238 +Language=English +%1 +. +MessageId=29239 +Language=English +%1 +. +MessageId=29240 +Language=English +%1 +. +MessageId=29241 +Language=English +%1 +. +MessageId=29242 +Language=English +%1 +. +MessageId=29243 +Language=English +%1 +. +MessageId=29244 +Language=English +%1 +. +MessageId=29245 +Language=English +%1 +. +MessageId=29246 +Language=English +%1 +. +MessageId=29247 +Language=English +%1 +. +MessageId=29248 +Language=English +%1 +. +MessageId=29249 +Language=English +%1 +. +MessageId=29250 +Language=English +%1 +. +MessageId=29251 +Language=English +%1 +. +MessageId=29252 +Language=English +%1 +. +MessageId=29253 +Language=English +%1 +. +MessageId=29254 +Language=English +%1 +. +MessageId=29255 +Language=English +%1 +. +MessageId=29256 +Language=English +%1 +. +MessageId=29257 +Language=English +%1 +. +MessageId=29258 +Language=English +%1 +. +MessageId=29259 +Language=English +%1 +. +MessageId=29260 +Language=English +%1 +. +MessageId=29261 +Language=English +%1 +. +MessageId=29262 +Language=English +%1 +. +MessageId=29263 +Language=English +%1 +. +MessageId=29264 +Language=English +%1 +. +MessageId=29265 +Language=English +%1 +. +MessageId=29266 +Language=English +%1 +. +MessageId=29267 +Language=English +%1 +. +MessageId=29268 +Language=English +%1 +. +MessageId=29269 +Language=English +%1 +. +MessageId=29270 +Language=English +%1 +. +MessageId=29271 +Language=English +%1 +. +MessageId=29272 +Language=English +%1 +. +MessageId=29273 +Language=English +%1 +. +MessageId=29274 +Language=English +%1 +. +MessageId=29275 +Language=English +%1 +. +MessageId=29276 +Language=English +%1 +. +MessageId=29277 +Language=English +%1 +. +MessageId=29278 +Language=English +%1 +. +MessageId=29279 +Language=English +%1 +. +MessageId=29280 +Language=English +%1 +. +MessageId=29281 +Language=English +%1 +. +MessageId=29282 +Language=English +%1 +. +MessageId=29283 +Language=English +%1 +. +MessageId=29284 +Language=English +%1 +. +MessageId=29285 +Language=English +%1 +. +MessageId=29286 +Language=English +%1 +. +MessageId=29287 +Language=English +%1 +. +MessageId=29288 +Language=English +%1 +. +MessageId=29289 +Language=English +%1 +. +MessageId=29290 +Language=English +%1 +. +MessageId=29291 +Language=English +%1 +. +MessageId=29292 +Language=English +%1 +. +MessageId=29293 +Language=English +%1 +. +MessageId=29294 +Language=English +%1 +. +MessageId=29295 +Language=English +%1 +. +MessageId=29296 +Language=English +%1 +. +MessageId=29297 +Language=English +%1 +. +MessageId=29298 +Language=English +%1 +. +MessageId=29299 +Language=English +%1 +. +MessageId=29300 +Language=English +%1 +. +MessageId=29301 +Language=English +%1 +. +MessageId=29302 +Language=English +%1 +. +MessageId=29303 +Language=English +%1 +. +MessageId=29304 +Language=English +%1 +. +MessageId=29305 +Language=English +%1 +. +MessageId=29306 +Language=English +%1 +. +MessageId=29307 +Language=English +%1 +. +MessageId=29308 +Language=English +%1 +. +MessageId=29309 +Language=English +%1 +. +MessageId=29310 +Language=English +%1 +. +MessageId=29311 +Language=English +%1 +. +MessageId=29312 +Language=English +%1 +. +MessageId=29313 +Language=English +%1 +. +MessageId=29314 +Language=English +%1 +. +MessageId=29315 +Language=English +%1 +. +MessageId=29316 +Language=English +%1 +. +MessageId=29317 +Language=English +%1 +. +MessageId=29318 +Language=English +%1 +. +MessageId=29319 +Language=English +%1 +. +MessageId=29320 +Language=English +%1 +. +MessageId=29321 +Language=English +%1 +. +MessageId=29322 +Language=English +%1 +. +MessageId=29323 +Language=English +%1 +. +MessageId=29324 +Language=English +%1 +. +MessageId=29325 +Language=English +%1 +. +MessageId=29326 +Language=English +%1 +. +MessageId=29327 +Language=English +%1 +. +MessageId=29328 +Language=English +%1 +. +MessageId=29329 +Language=English +%1 +. +MessageId=29330 +Language=English +%1 +. +MessageId=29331 +Language=English +%1 +. +MessageId=29332 +Language=English +%1 +. +MessageId=29333 +Language=English +%1 +. +MessageId=29334 +Language=English +%1 +. +MessageId=29335 +Language=English +%1 +. +MessageId=29336 +Language=English +%1 +. +MessageId=29337 +Language=English +%1 +. +MessageId=29338 +Language=English +%1 +. +MessageId=29339 +Language=English +%1 +. +MessageId=29340 +Language=English +%1 +. +MessageId=29341 +Language=English +%1 +. +MessageId=29342 +Language=English +%1 +. +MessageId=29343 +Language=English +%1 +. +MessageId=29344 +Language=English +%1 +. +MessageId=29345 +Language=English +%1 +. +MessageId=29346 +Language=English +%1 +. +MessageId=29347 +Language=English +%1 +. +MessageId=29348 +Language=English +%1 +. +MessageId=29349 +Language=English +%1 +. +MessageId=29350 +Language=English +%1 +. +MessageId=29351 +Language=English +%1 +. +MessageId=29352 +Language=English +%1 +. +MessageId=29353 +Language=English +%1 +. +MessageId=29354 +Language=English +%1 +. +MessageId=29355 +Language=English +%1 +. +MessageId=29356 +Language=English +%1 +. +MessageId=29357 +Language=English +%1 +. +MessageId=29358 +Language=English +%1 +. +MessageId=29359 +Language=English +%1 +. +MessageId=29360 +Language=English +%1 +. +MessageId=29361 +Language=English +%1 +. +MessageId=29362 +Language=English +%1 +. +MessageId=29363 +Language=English +%1 +. +MessageId=29364 +Language=English +%1 +. +MessageId=29365 +Language=English +%1 +. +MessageId=29366 +Language=English +%1 +. +MessageId=29367 +Language=English +%1 +. +MessageId=29368 +Language=English +%1 +. +MessageId=29369 +Language=English +%1 +. +MessageId=29370 +Language=English +%1 +. +MessageId=29371 +Language=English +%1 +. +MessageId=29372 +Language=English +%1 +. +MessageId=29373 +Language=English +%1 +. +MessageId=29374 +Language=English +%1 +. +MessageId=29375 +Language=English +%1 +. +MessageId=29376 +Language=English +%1 +. +MessageId=29377 +Language=English +%1 +. +MessageId=29378 +Language=English +%1 +. +MessageId=29379 +Language=English +%1 +. +MessageId=29380 +Language=English +%1 +. +MessageId=29381 +Language=English +%1 +. +MessageId=29382 +Language=English +%1 +. +MessageId=29383 +Language=English +%1 +. +MessageId=29384 +Language=English +%1 +. +MessageId=29385 +Language=English +%1 +. +MessageId=29386 +Language=English +%1 +. +MessageId=29387 +Language=English +%1 +. +MessageId=29388 +Language=English +%1 +. +MessageId=29389 +Language=English +%1 +. +MessageId=29390 +Language=English +%1 +. +MessageId=29391 +Language=English +%1 +. +MessageId=29392 +Language=English +%1 +. +MessageId=29393 +Language=English +%1 +. +MessageId=29394 +Language=English +%1 +. +MessageId=29395 +Language=English +%1 +. +MessageId=29396 +Language=English +%1 +. +MessageId=29397 +Language=English +%1 +. +MessageId=29398 +Language=English +%1 +. +MessageId=29399 +Language=English +%1 +. +MessageId=29400 +Language=English +%1 +. +MessageId=29401 +Language=English +%1 +. +MessageId=29402 +Language=English +%1 +. +MessageId=29403 +Language=English +%1 +. +MessageId=29404 +Language=English +%1 +. +MessageId=29405 +Language=English +%1 +. +MessageId=29406 +Language=English +%1 +. +MessageId=29407 +Language=English +%1 +. +MessageId=29408 +Language=English +%1 +. +MessageId=29409 +Language=English +%1 +. +MessageId=29410 +Language=English +%1 +. +MessageId=29411 +Language=English +%1 +. +MessageId=29412 +Language=English +%1 +. +MessageId=29413 +Language=English +%1 +. +MessageId=29414 +Language=English +%1 +. +MessageId=29415 +Language=English +%1 +. +MessageId=29416 +Language=English +%1 +. +MessageId=29417 +Language=English +%1 +. +MessageId=29418 +Language=English +%1 +. +MessageId=29419 +Language=English +%1 +. +MessageId=29420 +Language=English +%1 +. +MessageId=29421 +Language=English +%1 +. +MessageId=29422 +Language=English +%1 +. +MessageId=29423 +Language=English +%1 +. +MessageId=29424 +Language=English +%1 +. +MessageId=29425 +Language=English +%1 +. +MessageId=29426 +Language=English +%1 +. +MessageId=29427 +Language=English +%1 +. +MessageId=29428 +Language=English +%1 +. +MessageId=29429 +Language=English +%1 +. +MessageId=29430 +Language=English +%1 +. +MessageId=29431 +Language=English +%1 +. +MessageId=29432 +Language=English +%1 +. +MessageId=29433 +Language=English +%1 +. +MessageId=29434 +Language=English +%1 +. +MessageId=29435 +Language=English +%1 +. +MessageId=29436 +Language=English +%1 +. +MessageId=29437 +Language=English +%1 +. +MessageId=29438 +Language=English +%1 +. +MessageId=29439 +Language=English +%1 +. +MessageId=29440 +Language=English +%1 +. +MessageId=29441 +Language=English +%1 +. +MessageId=29442 +Language=English +%1 +. +MessageId=29443 +Language=English +%1 +. +MessageId=29444 +Language=English +%1 +. +MessageId=29445 +Language=English +%1 +. +MessageId=29446 +Language=English +%1 +. +MessageId=29447 +Language=English +%1 +. +MessageId=29448 +Language=English +%1 +. +MessageId=29449 +Language=English +%1 +. +MessageId=29450 +Language=English +%1 +. +MessageId=29451 +Language=English +%1 +. +MessageId=29452 +Language=English +%1 +. +MessageId=29453 +Language=English +%1 +. +MessageId=29454 +Language=English +%1 +. +MessageId=29455 +Language=English +%1 +. +MessageId=29456 +Language=English +%1 +. +MessageId=29457 +Language=English +%1 +. +MessageId=29458 +Language=English +%1 +. +MessageId=29459 +Language=English +%1 +. +MessageId=29460 +Language=English +%1 +. +MessageId=29461 +Language=English +%1 +. +MessageId=29462 +Language=English +%1 +. +MessageId=29463 +Language=English +%1 +. +MessageId=29464 +Language=English +%1 +. +MessageId=29465 +Language=English +%1 +. +MessageId=29466 +Language=English +%1 +. +MessageId=29467 +Language=English +%1 +. +MessageId=29468 +Language=English +%1 +. +MessageId=29469 +Language=English +%1 +. +MessageId=29470 +Language=English +%1 +. +MessageId=29471 +Language=English +%1 +. +MessageId=29472 +Language=English +%1 +. +MessageId=29473 +Language=English +%1 +. +MessageId=29474 +Language=English +%1 +. +MessageId=29475 +Language=English +%1 +. +MessageId=29476 +Language=English +%1 +. +MessageId=29477 +Language=English +%1 +. +MessageId=29478 +Language=English +%1 +. +MessageId=29479 +Language=English +%1 +. +MessageId=29480 +Language=English +%1 +. +MessageId=29481 +Language=English +%1 +. +MessageId=29482 +Language=English +%1 +. +MessageId=29483 +Language=English +%1 +. +MessageId=29484 +Language=English +%1 +. +MessageId=29485 +Language=English +%1 +. +MessageId=29486 +Language=English +%1 +. +MessageId=29487 +Language=English +%1 +. +MessageId=29488 +Language=English +%1 +. +MessageId=29489 +Language=English +%1 +. +MessageId=29490 +Language=English +%1 +. +MessageId=29491 +Language=English +%1 +. +MessageId=29492 +Language=English +%1 +. +MessageId=29493 +Language=English +%1 +. +MessageId=29494 +Language=English +%1 +. +MessageId=29495 +Language=English +%1 +. +MessageId=29496 +Language=English +%1 +. +MessageId=29497 +Language=English +%1 +. +MessageId=29498 +Language=English +%1 +. +MessageId=29499 +Language=English +%1 +. +MessageId=29500 +Language=English +%1 +. +MessageId=29501 +Language=English +%1 +. +MessageId=29502 +Language=English +%1 +. +MessageId=29503 +Language=English +%1 +. +MessageId=29504 +Language=English +%1 +. +MessageId=29505 +Language=English +%1 +. +MessageId=29506 +Language=English +%1 +. +MessageId=29507 +Language=English +%1 +. +MessageId=29508 +Language=English +%1 +. +MessageId=29509 +Language=English +%1 +. +MessageId=29510 +Language=English +%1 +. +MessageId=29511 +Language=English +%1 +. +MessageId=29512 +Language=English +%1 +. +MessageId=29513 +Language=English +%1 +. +MessageId=29514 +Language=English +%1 +. +MessageId=29515 +Language=English +%1 +. +MessageId=29516 +Language=English +%1 +. +MessageId=29517 +Language=English +%1 +. +MessageId=29518 +Language=English +%1 +. +MessageId=29519 +Language=English +%1 +. +MessageId=29520 +Language=English +%1 +. +MessageId=29521 +Language=English +%1 +. +MessageId=29522 +Language=English +%1 +. +MessageId=29523 +Language=English +%1 +. +MessageId=29524 +Language=English +%1 +. +MessageId=29525 +Language=English +%1 +. +MessageId=29526 +Language=English +%1 +. +MessageId=29527 +Language=English +%1 +. +MessageId=29528 +Language=English +%1 +. +MessageId=29529 +Language=English +%1 +. +MessageId=29530 +Language=English +%1 +. +MessageId=29531 +Language=English +%1 +. +MessageId=29532 +Language=English +%1 +. +MessageId=29533 +Language=English +%1 +. +MessageId=29534 +Language=English +%1 +. +MessageId=29535 +Language=English +%1 +. +MessageId=29536 +Language=English +%1 +. +MessageId=29537 +Language=English +%1 +. +MessageId=29538 +Language=English +%1 +. +MessageId=29539 +Language=English +%1 +. +MessageId=29540 +Language=English +%1 +. +MessageId=29541 +Language=English +%1 +. +MessageId=29542 +Language=English +%1 +. +MessageId=29543 +Language=English +%1 +. +MessageId=29544 +Language=English +%1 +. +MessageId=29545 +Language=English +%1 +. +MessageId=29546 +Language=English +%1 +. +MessageId=29547 +Language=English +%1 +. +MessageId=29548 +Language=English +%1 +. +MessageId=29549 +Language=English +%1 +. +MessageId=29550 +Language=English +%1 +. +MessageId=29551 +Language=English +%1 +. +MessageId=29552 +Language=English +%1 +. +MessageId=29553 +Language=English +%1 +. +MessageId=29554 +Language=English +%1 +. +MessageId=29555 +Language=English +%1 +. +MessageId=29556 +Language=English +%1 +. +MessageId=29557 +Language=English +%1 +. +MessageId=29558 +Language=English +%1 +. +MessageId=29559 +Language=English +%1 +. +MessageId=29560 +Language=English +%1 +. +MessageId=29561 +Language=English +%1 +. +MessageId=29562 +Language=English +%1 +. +MessageId=29563 +Language=English +%1 +. +MessageId=29564 +Language=English +%1 +. +MessageId=29565 +Language=English +%1 +. +MessageId=29566 +Language=English +%1 +. +MessageId=29567 +Language=English +%1 +. +MessageId=29568 +Language=English +%1 +. +MessageId=29569 +Language=English +%1 +. +MessageId=29570 +Language=English +%1 +. +MessageId=29571 +Language=English +%1 +. +MessageId=29572 +Language=English +%1 +. +MessageId=29573 +Language=English +%1 +. +MessageId=29574 +Language=English +%1 +. +MessageId=29575 +Language=English +%1 +. +MessageId=29576 +Language=English +%1 +. +MessageId=29577 +Language=English +%1 +. +MessageId=29578 +Language=English +%1 +. +MessageId=29579 +Language=English +%1 +. +MessageId=29580 +Language=English +%1 +. +MessageId=29581 +Language=English +%1 +. +MessageId=29582 +Language=English +%1 +. +MessageId=29583 +Language=English +%1 +. +MessageId=29584 +Language=English +%1 +. +MessageId=29585 +Language=English +%1 +. +MessageId=29586 +Language=English +%1 +. +MessageId=29587 +Language=English +%1 +. +MessageId=29588 +Language=English +%1 +. +MessageId=29589 +Language=English +%1 +. +MessageId=29590 +Language=English +%1 +. +MessageId=29591 +Language=English +%1 +. +MessageId=29592 +Language=English +%1 +. +MessageId=29593 +Language=English +%1 +. +MessageId=29594 +Language=English +%1 +. +MessageId=29595 +Language=English +%1 +. +MessageId=29596 +Language=English +%1 +. +MessageId=29597 +Language=English +%1 +. +MessageId=29598 +Language=English +%1 +. +MessageId=29599 +Language=English +%1 +. +MessageId=29600 +Language=English +%1 +. +MessageId=29601 +Language=English +%1 +. +MessageId=29602 +Language=English +%1 +. +MessageId=29603 +Language=English +%1 +. +MessageId=29604 +Language=English +%1 +. +MessageId=29605 +Language=English +%1 +. +MessageId=29606 +Language=English +%1 +. +MessageId=29607 +Language=English +%1 +. +MessageId=29608 +Language=English +%1 +. +MessageId=29609 +Language=English +%1 +. +MessageId=29610 +Language=English +%1 +. +MessageId=29611 +Language=English +%1 +. +MessageId=29612 +Language=English +%1 +. +MessageId=29613 +Language=English +%1 +. +MessageId=29614 +Language=English +%1 +. +MessageId=29615 +Language=English +%1 +. +MessageId=29616 +Language=English +%1 +. +MessageId=29617 +Language=English +%1 +. +MessageId=29618 +Language=English +%1 +. +MessageId=29619 +Language=English +%1 +. +MessageId=29620 +Language=English +%1 +. +MessageId=29621 +Language=English +%1 +. +MessageId=29622 +Language=English +%1 +. +MessageId=29623 +Language=English +%1 +. +MessageId=29624 +Language=English +%1 +. +MessageId=29625 +Language=English +%1 +. +MessageId=29626 +Language=English +%1 +. +MessageId=29627 +Language=English +%1 +. +MessageId=29628 +Language=English +%1 +. +MessageId=29629 +Language=English +%1 +. +MessageId=29630 +Language=English +%1 +. +MessageId=29631 +Language=English +%1 +. +MessageId=29632 +Language=English +%1 +. +MessageId=29633 +Language=English +%1 +. +MessageId=29634 +Language=English +%1 +. +MessageId=29635 +Language=English +%1 +. +MessageId=29636 +Language=English +%1 +. +MessageId=29637 +Language=English +%1 +. +MessageId=29638 +Language=English +%1 +. +MessageId=29639 +Language=English +%1 +. +MessageId=29640 +Language=English +%1 +. +MessageId=29641 +Language=English +%1 +. +MessageId=29642 +Language=English +%1 +. +MessageId=29643 +Language=English +%1 +. +MessageId=29644 +Language=English +%1 +. +MessageId=29645 +Language=English +%1 +. +MessageId=29646 +Language=English +%1 +. +MessageId=29647 +Language=English +%1 +. +MessageId=29648 +Language=English +%1 +. +MessageId=29649 +Language=English +%1 +. +MessageId=29650 +Language=English +%1 +. +MessageId=29651 +Language=English +%1 +. +MessageId=29652 +Language=English +%1 +. +MessageId=29653 +Language=English +%1 +. +MessageId=29654 +Language=English +%1 +. +MessageId=29655 +Language=English +%1 +. +MessageId=29656 +Language=English +%1 +. +MessageId=29657 +Language=English +%1 +. +MessageId=29658 +Language=English +%1 +. +MessageId=29659 +Language=English +%1 +. +MessageId=29660 +Language=English +%1 +. +MessageId=29661 +Language=English +%1 +. +MessageId=29662 +Language=English +%1 +. +MessageId=29663 +Language=English +%1 +. +MessageId=29664 +Language=English +%1 +. +MessageId=29665 +Language=English +%1 +. +MessageId=29666 +Language=English +%1 +. +MessageId=29667 +Language=English +%1 +. +MessageId=29668 +Language=English +%1 +. +MessageId=29669 +Language=English +%1 +. +MessageId=29670 +Language=English +%1 +. +MessageId=29671 +Language=English +%1 +. +MessageId=29672 +Language=English +%1 +. +MessageId=29673 +Language=English +%1 +. +MessageId=29674 +Language=English +%1 +. +MessageId=29675 +Language=English +%1 +. +MessageId=29676 +Language=English +%1 +. +MessageId=29677 +Language=English +%1 +. +MessageId=29678 +Language=English +%1 +. +MessageId=29679 +Language=English +%1 +. +MessageId=29680 +Language=English +%1 +. +MessageId=29681 +Language=English +%1 +. +MessageId=29682 +Language=English +%1 +. +MessageId=29683 +Language=English +%1 +. +MessageId=29684 +Language=English +%1 +. +MessageId=29685 +Language=English +%1 +. +MessageId=29686 +Language=English +%1 +. +MessageId=29687 +Language=English +%1 +. +MessageId=29688 +Language=English +%1 +. +MessageId=29689 +Language=English +%1 +. +MessageId=29690 +Language=English +%1 +. +MessageId=29691 +Language=English +%1 +. +MessageId=29692 +Language=English +%1 +. +MessageId=29693 +Language=English +%1 +. +MessageId=29694 +Language=English +%1 +. +MessageId=29695 +Language=English +%1 +. +MessageId=29696 +Language=English +%1 +. +MessageId=29697 +Language=English +%1 +. +MessageId=29698 +Language=English +%1 +. +MessageId=29699 +Language=English +%1 +. +MessageId=29700 +Language=English +%1 +. +MessageId=29701 +Language=English +%1 +. +MessageId=29702 +Language=English +%1 +. +MessageId=29703 +Language=English +%1 +. +MessageId=29704 +Language=English +%1 +. +MessageId=29705 +Language=English +%1 +. +MessageId=29706 +Language=English +%1 +. +MessageId=29707 +Language=English +%1 +. +MessageId=29708 +Language=English +%1 +. +MessageId=29709 +Language=English +%1 +. +MessageId=29710 +Language=English +%1 +. +MessageId=29711 +Language=English +%1 +. +MessageId=29712 +Language=English +%1 +. +MessageId=29713 +Language=English +%1 +. +MessageId=29714 +Language=English +%1 +. +MessageId=29715 +Language=English +%1 +. +MessageId=29716 +Language=English +%1 +. +MessageId=29717 +Language=English +%1 +. +MessageId=29718 +Language=English +%1 +. +MessageId=29719 +Language=English +%1 +. +MessageId=29720 +Language=English +%1 +. +MessageId=29721 +Language=English +%1 +. +MessageId=29722 +Language=English +%1 +. +MessageId=29723 +Language=English +%1 +. +MessageId=29724 +Language=English +%1 +. +MessageId=29725 +Language=English +%1 +. +MessageId=29726 +Language=English +%1 +. +MessageId=29727 +Language=English +%1 +. +MessageId=29728 +Language=English +%1 +. +MessageId=29729 +Language=English +%1 +. +MessageId=29730 +Language=English +%1 +. +MessageId=29731 +Language=English +%1 +. +MessageId=29732 +Language=English +%1 +. +MessageId=29733 +Language=English +%1 +. +MessageId=29734 +Language=English +%1 +. +MessageId=29735 +Language=English +%1 +. +MessageId=29736 +Language=English +%1 +. +MessageId=29737 +Language=English +%1 +. +MessageId=29738 +Language=English +%1 +. +MessageId=29739 +Language=English +%1 +. +MessageId=29740 +Language=English +%1 +. +MessageId=29741 +Language=English +%1 +. +MessageId=29742 +Language=English +%1 +. +MessageId=29743 +Language=English +%1 +. +MessageId=29744 +Language=English +%1 +. +MessageId=29745 +Language=English +%1 +. +MessageId=29746 +Language=English +%1 +. +MessageId=29747 +Language=English +%1 +. +MessageId=29748 +Language=English +%1 +. +MessageId=29749 +Language=English +%1 +. +MessageId=29750 +Language=English +%1 +. +MessageId=29751 +Language=English +%1 +. +MessageId=29752 +Language=English +%1 +. +MessageId=29753 +Language=English +%1 +. +MessageId=29754 +Language=English +%1 +. +MessageId=29755 +Language=English +%1 +. +MessageId=29756 +Language=English +%1 +. +MessageId=29757 +Language=English +%1 +. +MessageId=29758 +Language=English +%1 +. +MessageId=29759 +Language=English +%1 +. +MessageId=29760 +Language=English +%1 +. +MessageId=29761 +Language=English +%1 +. +MessageId=29762 +Language=English +%1 +. +MessageId=29763 +Language=English +%1 +. +MessageId=29764 +Language=English +%1 +. +MessageId=29765 +Language=English +%1 +. +MessageId=29766 +Language=English +%1 +. +MessageId=29767 +Language=English +%1 +. +MessageId=29768 +Language=English +%1 +. +MessageId=29769 +Language=English +%1 +. +MessageId=29770 +Language=English +%1 +. +MessageId=29771 +Language=English +%1 +. +MessageId=29772 +Language=English +%1 +. +MessageId=29773 +Language=English +%1 +. +MessageId=29774 +Language=English +%1 +. +MessageId=29775 +Language=English +%1 +. +MessageId=29776 +Language=English +%1 +. +MessageId=29777 +Language=English +%1 +. +MessageId=29778 +Language=English +%1 +. +MessageId=29779 +Language=English +%1 +. +MessageId=29780 +Language=English +%1 +. +MessageId=29781 +Language=English +%1 +. +MessageId=29782 +Language=English +%1 +. +MessageId=29783 +Language=English +%1 +. +MessageId=29784 +Language=English +%1 +. +MessageId=29785 +Language=English +%1 +. +MessageId=29786 +Language=English +%1 +. +MessageId=29787 +Language=English +%1 +. +MessageId=29788 +Language=English +%1 +. +MessageId=29789 +Language=English +%1 +. +MessageId=29790 +Language=English +%1 +. +MessageId=29791 +Language=English +%1 +. +MessageId=29792 +Language=English +%1 +. +MessageId=29793 +Language=English +%1 +. +MessageId=29794 +Language=English +%1 +. +MessageId=29795 +Language=English +%1 +. +MessageId=29796 +Language=English +%1 +. +MessageId=29797 +Language=English +%1 +. +MessageId=29798 +Language=English +%1 +. +MessageId=29799 +Language=English +%1 +. +MessageId=29800 +Language=English +%1 +. +MessageId=29801 +Language=English +%1 +. +MessageId=29802 +Language=English +%1 +. +MessageId=29803 +Language=English +%1 +. +MessageId=29804 +Language=English +%1 +. +MessageId=29805 +Language=English +%1 +. +MessageId=29806 +Language=English +%1 +. +MessageId=29807 +Language=English +%1 +. +MessageId=29808 +Language=English +%1 +. +MessageId=29809 +Language=English +%1 +. +MessageId=29810 +Language=English +%1 +. +MessageId=29811 +Language=English +%1 +. +MessageId=29812 +Language=English +%1 +. +MessageId=29813 +Language=English +%1 +. +MessageId=29814 +Language=English +%1 +. +MessageId=29815 +Language=English +%1 +. +MessageId=29816 +Language=English +%1 +. +MessageId=29817 +Language=English +%1 +. +MessageId=29818 +Language=English +%1 +. +MessageId=29819 +Language=English +%1 +. +MessageId=29820 +Language=English +%1 +. +MessageId=29821 +Language=English +%1 +. +MessageId=29822 +Language=English +%1 +. +MessageId=29823 +Language=English +%1 +. +MessageId=29824 +Language=English +%1 +. +MessageId=29825 +Language=English +%1 +. +MessageId=29826 +Language=English +%1 +. +MessageId=29827 +Language=English +%1 +. +MessageId=29828 +Language=English +%1 +. +MessageId=29829 +Language=English +%1 +. +MessageId=29830 +Language=English +%1 +. +MessageId=29831 +Language=English +%1 +. +MessageId=29832 +Language=English +%1 +. +MessageId=29833 +Language=English +%1 +. +MessageId=29834 +Language=English +%1 +. +MessageId=29835 +Language=English +%1 +. +MessageId=29836 +Language=English +%1 +. +MessageId=29837 +Language=English +%1 +. +MessageId=29838 +Language=English +%1 +. +MessageId=29839 +Language=English +%1 +. +MessageId=29840 +Language=English +%1 +. +MessageId=29841 +Language=English +%1 +. +MessageId=29842 +Language=English +%1 +. +MessageId=29843 +Language=English +%1 +. +MessageId=29844 +Language=English +%1 +. +MessageId=29845 +Language=English +%1 +. +MessageId=29846 +Language=English +%1 +. +MessageId=29847 +Language=English +%1 +. +MessageId=29848 +Language=English +%1 +. +MessageId=29849 +Language=English +%1 +. +MessageId=29850 +Language=English +%1 +. +MessageId=29851 +Language=English +%1 +. +MessageId=29852 +Language=English +%1 +. +MessageId=29853 +Language=English +%1 +. +MessageId=29854 +Language=English +%1 +. +MessageId=29855 +Language=English +%1 +. +MessageId=29856 +Language=English +%1 +. +MessageId=29857 +Language=English +%1 +. +MessageId=29858 +Language=English +%1 +. +MessageId=29859 +Language=English +%1 +. +MessageId=29860 +Language=English +%1 +. +MessageId=29861 +Language=English +%1 +. +MessageId=29862 +Language=English +%1 +. +MessageId=29863 +Language=English +%1 +. +MessageId=29864 +Language=English +%1 +. +MessageId=29865 +Language=English +%1 +. +MessageId=29866 +Language=English +%1 +. +MessageId=29867 +Language=English +%1 +. +MessageId=29868 +Language=English +%1 +. +MessageId=29869 +Language=English +%1 +. +MessageId=29870 +Language=English +%1 +. +MessageId=29871 +Language=English +%1 +. +MessageId=29872 +Language=English +%1 +. +MessageId=29873 +Language=English +%1 +. +MessageId=29874 +Language=English +%1 +. +MessageId=29875 +Language=English +%1 +. +MessageId=29876 +Language=English +%1 +. +MessageId=29877 +Language=English +%1 +. +MessageId=29878 +Language=English +%1 +. +MessageId=29879 +Language=English +%1 +. +MessageId=29880 +Language=English +%1 +. +MessageId=29881 +Language=English +%1 +. +MessageId=29882 +Language=English +%1 +. +MessageId=29883 +Language=English +%1 +. +MessageId=29884 +Language=English +%1 +. +MessageId=29885 +Language=English +%1 +. +MessageId=29886 +Language=English +%1 +. +MessageId=29887 +Language=English +%1 +. +MessageId=29888 +Language=English +%1 +. +MessageId=29889 +Language=English +%1 +. +MessageId=29890 +Language=English +%1 +. +MessageId=29891 +Language=English +%1 +. +MessageId=29892 +Language=English +%1 +. +MessageId=29893 +Language=English +%1 +. +MessageId=29894 +Language=English +%1 +. +MessageId=29895 +Language=English +%1 +. +MessageId=29896 +Language=English +%1 +. +MessageId=29897 +Language=English +%1 +. +MessageId=29898 +Language=English +%1 +. +MessageId=29899 +Language=English +%1 +. +MessageId=29900 +Language=English +%1 +. +MessageId=29901 +Language=English +%1 +. +MessageId=29902 +Language=English +%1 +. +MessageId=29903 +Language=English +%1 +. +MessageId=29904 +Language=English +%1 +. +MessageId=29905 +Language=English +%1 +. +MessageId=29906 +Language=English +%1 +. +MessageId=29907 +Language=English +%1 +. +MessageId=29908 +Language=English +%1 +. +MessageId=29909 +Language=English +%1 +. +MessageId=29910 +Language=English +%1 +. +MessageId=29911 +Language=English +%1 +. +MessageId=29912 +Language=English +%1 +. +MessageId=29913 +Language=English +%1 +. +MessageId=29914 +Language=English +%1 +. +MessageId=29915 +Language=English +%1 +. +MessageId=29916 +Language=English +%1 +. +MessageId=29917 +Language=English +%1 +. +MessageId=29918 +Language=English +%1 +. +MessageId=29919 +Language=English +%1 +. +MessageId=29920 +Language=English +%1 +. +MessageId=29921 +Language=English +%1 +. +MessageId=29922 +Language=English +%1 +. +MessageId=29923 +Language=English +%1 +. +MessageId=29924 +Language=English +%1 +. +MessageId=29925 +Language=English +%1 +. +MessageId=29926 +Language=English +%1 +. +MessageId=29927 +Language=English +%1 +. +MessageId=29928 +Language=English +%1 +. +MessageId=29929 +Language=English +%1 +. +MessageId=29930 +Language=English +%1 +. +MessageId=29931 +Language=English +%1 +. +MessageId=29932 +Language=English +%1 +. +MessageId=29933 +Language=English +%1 +. +MessageId=29934 +Language=English +%1 +. +MessageId=29935 +Language=English +%1 +. +MessageId=29936 +Language=English +%1 +. +MessageId=29937 +Language=English +%1 +. +MessageId=29938 +Language=English +%1 +. +MessageId=29939 +Language=English +%1 +. +MessageId=29940 +Language=English +%1 +. +MessageId=29941 +Language=English +%1 +. +MessageId=29942 +Language=English +%1 +. +MessageId=29943 +Language=English +%1 +. +MessageId=29944 +Language=English +%1 +. +MessageId=29945 +Language=English +%1 +. +MessageId=29946 +Language=English +%1 +. +MessageId=29947 +Language=English +%1 +. +MessageId=29948 +Language=English +%1 +. +MessageId=29949 +Language=English +%1 +. +MessageId=29950 +Language=English +%1 +. +MessageId=29951 +Language=English +%1 +. +MessageId=29952 +Language=English +%1 +. +MessageId=29953 +Language=English +%1 +. +MessageId=29954 +Language=English +%1 +. +MessageId=29955 +Language=English +%1 +. +MessageId=29956 +Language=English +%1 +. +MessageId=29957 +Language=English +%1 +. +MessageId=29958 +Language=English +%1 +. +MessageId=29959 +Language=English +%1 +. +MessageId=29960 +Language=English +%1 +. +MessageId=29961 +Language=English +%1 +. +MessageId=29962 +Language=English +%1 +. +MessageId=29963 +Language=English +%1 +. +MessageId=29964 +Language=English +%1 +. +MessageId=29965 +Language=English +%1 +. +MessageId=29966 +Language=English +%1 +. +MessageId=29967 +Language=English +%1 +. +MessageId=29968 +Language=English +%1 +. +MessageId=29969 +Language=English +%1 +. +MessageId=29970 +Language=English +%1 +. +MessageId=29971 +Language=English +%1 +. +MessageId=29972 +Language=English +%1 +. +MessageId=29973 +Language=English +%1 +. +MessageId=29974 +Language=English +%1 +. +MessageId=29975 +Language=English +%1 +. +MessageId=29976 +Language=English +%1 +. +MessageId=29977 +Language=English +%1 +. +MessageId=29978 +Language=English +%1 +. +MessageId=29979 +Language=English +%1 +. +MessageId=29980 +Language=English +%1 +. +MessageId=29981 +Language=English +%1 +. +MessageId=29982 +Language=English +%1 +. +MessageId=29983 +Language=English +%1 +. +MessageId=29984 +Language=English +%1 +. +MessageId=29985 +Language=English +%1 +. +MessageId=29986 +Language=English +%1 +. +MessageId=29987 +Language=English +%1 +. +MessageId=29988 +Language=English +%1 +. +MessageId=29989 +Language=English +%1 +. +MessageId=29990 +Language=English +%1 +. +MessageId=29991 +Language=English +%1 +. +MessageId=29992 +Language=English +%1 +. +MessageId=29993 +Language=English +%1 +. +MessageId=29994 +Language=English +%1 +. +MessageId=29995 +Language=English +%1 +. +MessageId=29996 +Language=English +%1 +. +MessageId=29997 +Language=English +%1 +. +MessageId=29998 +Language=English +%1 +. +MessageId=29999 +Language=English +%1 +. +MessageId=30000 +Language=English +%1 +. +MessageId=30001 +Language=English +%1 +. +MessageId=30002 +Language=English +%1 +. +MessageId=30003 +Language=English +%1 +. +MessageId=30004 +Language=English +%1 +. +MessageId=30005 +Language=English +%1 +. +MessageId=30006 +Language=English +%1 +. +MessageId=30007 +Language=English +%1 +. +MessageId=30008 +Language=English +%1 +. +MessageId=30009 +Language=English +%1 +. +MessageId=30010 +Language=English +%1 +. +MessageId=30011 +Language=English +%1 +. +MessageId=30012 +Language=English +%1 +. +MessageId=30013 +Language=English +%1 +. +MessageId=30014 +Language=English +%1 +. +MessageId=30015 +Language=English +%1 +. +MessageId=30016 +Language=English +%1 +. +MessageId=30017 +Language=English +%1 +. +MessageId=30018 +Language=English +%1 +. +MessageId=30019 +Language=English +%1 +. +MessageId=30020 +Language=English +%1 +. +MessageId=30021 +Language=English +%1 +. +MessageId=30022 +Language=English +%1 +. +MessageId=30023 +Language=English +%1 +. +MessageId=30024 +Language=English +%1 +. +MessageId=30025 +Language=English +%1 +. +MessageId=30026 +Language=English +%1 +. +MessageId=30027 +Language=English +%1 +. +MessageId=30028 +Language=English +%1 +. +MessageId=30029 +Language=English +%1 +. +MessageId=30030 +Language=English +%1 +. +MessageId=30031 +Language=English +%1 +. +MessageId=30032 +Language=English +%1 +. +MessageId=30033 +Language=English +%1 +. +MessageId=30034 +Language=English +%1 +. +MessageId=30035 +Language=English +%1 +. +MessageId=30036 +Language=English +%1 +. +MessageId=30037 +Language=English +%1 +. +MessageId=30038 +Language=English +%1 +. +MessageId=30039 +Language=English +%1 +. +MessageId=30040 +Language=English +%1 +. +MessageId=30041 +Language=English +%1 +. +MessageId=30042 +Language=English +%1 +. +MessageId=30043 +Language=English +%1 +. +MessageId=30044 +Language=English +%1 +. +MessageId=30045 +Language=English +%1 +. +MessageId=30046 +Language=English +%1 +. +MessageId=30047 +Language=English +%1 +. +MessageId=30048 +Language=English +%1 +. +MessageId=30049 +Language=English +%1 +. +MessageId=30050 +Language=English +%1 +. +MessageId=30051 +Language=English +%1 +. +MessageId=30052 +Language=English +%1 +. +MessageId=30053 +Language=English +%1 +. +MessageId=30054 +Language=English +%1 +. +MessageId=30055 +Language=English +%1 +. +MessageId=30056 +Language=English +%1 +. +MessageId=30057 +Language=English +%1 +. +MessageId=30058 +Language=English +%1 +. +MessageId=30059 +Language=English +%1 +. +MessageId=30060 +Language=English +%1 +. +MessageId=30061 +Language=English +%1 +. +MessageId=30062 +Language=English +%1 +. +MessageId=30063 +Language=English +%1 +. +MessageId=30064 +Language=English +%1 +. +MessageId=30065 +Language=English +%1 +. +MessageId=30066 +Language=English +%1 +. +MessageId=30067 +Language=English +%1 +. +MessageId=30068 +Language=English +%1 +. +MessageId=30069 +Language=English +%1 +. +MessageId=30070 +Language=English +%1 +. +MessageId=30071 +Language=English +%1 +. +MessageId=30072 +Language=English +%1 +. +MessageId=30073 +Language=English +%1 +. +MessageId=30074 +Language=English +%1 +. +MessageId=30075 +Language=English +%1 +. +MessageId=30076 +Language=English +%1 +. +MessageId=30077 +Language=English +%1 +. +MessageId=30078 +Language=English +%1 +. +MessageId=30079 +Language=English +%1 +. +MessageId=30080 +Language=English +%1 +. +MessageId=30081 +Language=English +%1 +. +MessageId=30082 +Language=English +%1 +. +MessageId=30083 +Language=English +%1 +. +MessageId=30084 +Language=English +%1 +. +MessageId=30085 +Language=English +%1 +. +MessageId=30086 +Language=English +%1 +. +MessageId=30087 +Language=English +%1 +. +MessageId=30088 +Language=English +%1 +. +MessageId=30089 +Language=English +%1 +. +MessageId=30090 +Language=English +%1 +. +MessageId=30091 +Language=English +%1 +. +MessageId=30092 +Language=English +%1 +. +MessageId=30093 +Language=English +%1 +. +MessageId=30094 +Language=English +%1 +. +MessageId=30095 +Language=English +%1 +. +MessageId=30096 +Language=English +%1 +. +MessageId=30097 +Language=English +%1 +. +MessageId=30098 +Language=English +%1 +. +MessageId=30099 +Language=English +%1 +. +MessageId=30100 +Language=English +%1 +. +MessageId=30101 +Language=English +%1 +. +MessageId=30102 +Language=English +%1 +. +MessageId=30103 +Language=English +%1 +. +MessageId=30104 +Language=English +%1 +. +MessageId=30105 +Language=English +%1 +. +MessageId=30106 +Language=English +%1 +. +MessageId=30107 +Language=English +%1 +. +MessageId=30108 +Language=English +%1 +. +MessageId=30109 +Language=English +%1 +. +MessageId=30110 +Language=English +%1 +. +MessageId=30111 +Language=English +%1 +. +MessageId=30112 +Language=English +%1 +. +MessageId=30113 +Language=English +%1 +. +MessageId=30114 +Language=English +%1 +. +MessageId=30115 +Language=English +%1 +. +MessageId=30116 +Language=English +%1 +. +MessageId=30117 +Language=English +%1 +. +MessageId=30118 +Language=English +%1 +. +MessageId=30119 +Language=English +%1 +. +MessageId=30120 +Language=English +%1 +. +MessageId=30121 +Language=English +%1 +. +MessageId=30122 +Language=English +%1 +. +MessageId=30123 +Language=English +%1 +. +MessageId=30124 +Language=English +%1 +. +MessageId=30125 +Language=English +%1 +. +MessageId=30126 +Language=English +%1 +. +MessageId=30127 +Language=English +%1 +. +MessageId=30128 +Language=English +%1 +. +MessageId=30129 +Language=English +%1 +. +MessageId=30130 +Language=English +%1 +. +MessageId=30131 +Language=English +%1 +. +MessageId=30132 +Language=English +%1 +. +MessageId=30133 +Language=English +%1 +. +MessageId=30134 +Language=English +%1 +. +MessageId=30135 +Language=English +%1 +. +MessageId=30136 +Language=English +%1 +. +MessageId=30137 +Language=English +%1 +. +MessageId=30138 +Language=English +%1 +. +MessageId=30139 +Language=English +%1 +. +MessageId=30140 +Language=English +%1 +. +MessageId=30141 +Language=English +%1 +. +MessageId=30142 +Language=English +%1 +. +MessageId=30143 +Language=English +%1 +. +MessageId=30144 +Language=English +%1 +. +MessageId=30145 +Language=English +%1 +. +MessageId=30146 +Language=English +%1 +. +MessageId=30147 +Language=English +%1 +. +MessageId=30148 +Language=English +%1 +. +MessageId=30149 +Language=English +%1 +. +MessageId=30150 +Language=English +%1 +. +MessageId=30151 +Language=English +%1 +. +MessageId=30152 +Language=English +%1 +. +MessageId=30153 +Language=English +%1 +. +MessageId=30154 +Language=English +%1 +. +MessageId=30155 +Language=English +%1 +. +MessageId=30156 +Language=English +%1 +. +MessageId=30157 +Language=English +%1 +. +MessageId=30158 +Language=English +%1 +. +MessageId=30159 +Language=English +%1 +. +MessageId=30160 +Language=English +%1 +. +MessageId=30161 +Language=English +%1 +. +MessageId=30162 +Language=English +%1 +. +MessageId=30163 +Language=English +%1 +. +MessageId=30164 +Language=English +%1 +. +MessageId=30165 +Language=English +%1 +. +MessageId=30166 +Language=English +%1 +. +MessageId=30167 +Language=English +%1 +. +MessageId=30168 +Language=English +%1 +. +MessageId=30169 +Language=English +%1 +. +MessageId=30170 +Language=English +%1 +. +MessageId=30171 +Language=English +%1 +. +MessageId=30172 +Language=English +%1 +. +MessageId=30173 +Language=English +%1 +. +MessageId=30174 +Language=English +%1 +. +MessageId=30175 +Language=English +%1 +. +MessageId=30176 +Language=English +%1 +. +MessageId=30177 +Language=English +%1 +. +MessageId=30178 +Language=English +%1 +. +MessageId=30179 +Language=English +%1 +. +MessageId=30180 +Language=English +%1 +. +MessageId=30181 +Language=English +%1 +. +MessageId=30182 +Language=English +%1 +. +MessageId=30183 +Language=English +%1 +. +MessageId=30184 +Language=English +%1 +. +MessageId=30185 +Language=English +%1 +. +MessageId=30186 +Language=English +%1 +. +MessageId=30187 +Language=English +%1 +. +MessageId=30188 +Language=English +%1 +. +MessageId=30189 +Language=English +%1 +. +MessageId=30190 +Language=English +%1 +. +MessageId=30191 +Language=English +%1 +. +MessageId=30192 +Language=English +%1 +. +MessageId=30193 +Language=English +%1 +. +MessageId=30194 +Language=English +%1 +. +MessageId=30195 +Language=English +%1 +. +MessageId=30196 +Language=English +%1 +. +MessageId=30197 +Language=English +%1 +. +MessageId=30198 +Language=English +%1 +. +MessageId=30199 +Language=English +%1 +. +MessageId=30200 +Language=English +%1 +. +MessageId=30201 +Language=English +%1 +. +MessageId=30202 +Language=English +%1 +. +MessageId=30203 +Language=English +%1 +. +MessageId=30204 +Language=English +%1 +. +MessageId=30205 +Language=English +%1 +. +MessageId=30206 +Language=English +%1 +. +MessageId=30207 +Language=English +%1 +. +MessageId=30208 +Language=English +%1 +. +MessageId=30209 +Language=English +%1 +. +MessageId=30210 +Language=English +%1 +. +MessageId=30211 +Language=English +%1 +. +MessageId=30212 +Language=English +%1 +. +MessageId=30213 +Language=English +%1 +. +MessageId=30214 +Language=English +%1 +. +MessageId=30215 +Language=English +%1 +. +MessageId=30216 +Language=English +%1 +. +MessageId=30217 +Language=English +%1 +. +MessageId=30218 +Language=English +%1 +. +MessageId=30219 +Language=English +%1 +. +MessageId=30220 +Language=English +%1 +. +MessageId=30221 +Language=English +%1 +. +MessageId=30222 +Language=English +%1 +. +MessageId=30223 +Language=English +%1 +. +MessageId=30224 +Language=English +%1 +. +MessageId=30225 +Language=English +%1 +. +MessageId=30226 +Language=English +%1 +. +MessageId=30227 +Language=English +%1 +. +MessageId=30228 +Language=English +%1 +. +MessageId=30229 +Language=English +%1 +. +MessageId=30230 +Language=English +%1 +. +MessageId=30231 +Language=English +%1 +. +MessageId=30232 +Language=English +%1 +. +MessageId=30233 +Language=English +%1 +. +MessageId=30234 +Language=English +%1 +. +MessageId=30235 +Language=English +%1 +. +MessageId=30236 +Language=English +%1 +. +MessageId=30237 +Language=English +%1 +. +MessageId=30238 +Language=English +%1 +. +MessageId=30239 +Language=English +%1 +. +MessageId=30240 +Language=English +%1 +. +MessageId=30241 +Language=English +%1 +. +MessageId=30242 +Language=English +%1 +. +MessageId=30243 +Language=English +%1 +. +MessageId=30244 +Language=English +%1 +. +MessageId=30245 +Language=English +%1 +. +MessageId=30246 +Language=English +%1 +. +MessageId=30247 +Language=English +%1 +. +MessageId=30248 +Language=English +%1 +. +MessageId=30249 +Language=English +%1 +. +MessageId=30250 +Language=English +%1 +. +MessageId=30251 +Language=English +%1 +. +MessageId=30252 +Language=English +%1 +. +MessageId=30253 +Language=English +%1 +. +MessageId=30254 +Language=English +%1 +. +MessageId=30255 +Language=English +%1 +. +MessageId=30256 +Language=English +%1 +. +MessageId=30257 +Language=English +%1 +. +MessageId=30258 +Language=English +%1 +. +MessageId=30259 +Language=English +%1 +. +MessageId=30260 +Language=English +%1 +. +MessageId=30261 +Language=English +%1 +. +MessageId=30262 +Language=English +%1 +. +MessageId=30263 +Language=English +%1 +. +MessageId=30264 +Language=English +%1 +. +MessageId=30265 +Language=English +%1 +. +MessageId=30266 +Language=English +%1 +. +MessageId=30267 +Language=English +%1 +. +MessageId=30268 +Language=English +%1 +. +MessageId=30269 +Language=English +%1 +. +MessageId=30270 +Language=English +%1 +. +MessageId=30271 +Language=English +%1 +. +MessageId=30272 +Language=English +%1 +. +MessageId=30273 +Language=English +%1 +. +MessageId=30274 +Language=English +%1 +. +MessageId=30275 +Language=English +%1 +. +MessageId=30276 +Language=English +%1 +. +MessageId=30277 +Language=English +%1 +. +MessageId=30278 +Language=English +%1 +. +MessageId=30279 +Language=English +%1 +. +MessageId=30280 +Language=English +%1 +. +MessageId=30281 +Language=English +%1 +. +MessageId=30282 +Language=English +%1 +. +MessageId=30283 +Language=English +%1 +. +MessageId=30284 +Language=English +%1 +. +MessageId=30285 +Language=English +%1 +. +MessageId=30286 +Language=English +%1 +. +MessageId=30287 +Language=English +%1 +. +MessageId=30288 +Language=English +%1 +. +MessageId=30289 +Language=English +%1 +. +MessageId=30290 +Language=English +%1 +. +MessageId=30291 +Language=English +%1 +. +MessageId=30292 +Language=English +%1 +. +MessageId=30293 +Language=English +%1 +. +MessageId=30294 +Language=English +%1 +. +MessageId=30295 +Language=English +%1 +. +MessageId=30296 +Language=English +%1 +. +MessageId=30297 +Language=English +%1 +. +MessageId=30298 +Language=English +%1 +. +MessageId=30299 +Language=English +%1 +. +MessageId=30300 +Language=English +%1 +. +MessageId=30301 +Language=English +%1 +. +MessageId=30302 +Language=English +%1 +. +MessageId=30303 +Language=English +%1 +. +MessageId=30304 +Language=English +%1 +. +MessageId=30305 +Language=English +%1 +. +MessageId=30306 +Language=English +%1 +. +MessageId=30307 +Language=English +%1 +. +MessageId=30308 +Language=English +%1 +. +MessageId=30309 +Language=English +%1 +. +MessageId=30310 +Language=English +%1 +. +MessageId=30311 +Language=English +%1 +. +MessageId=30312 +Language=English +%1 +. +MessageId=30313 +Language=English +%1 +. +MessageId=30314 +Language=English +%1 +. +MessageId=30315 +Language=English +%1 +. +MessageId=30316 +Language=English +%1 +. +MessageId=30317 +Language=English +%1 +. +MessageId=30318 +Language=English +%1 +. +MessageId=30319 +Language=English +%1 +. +MessageId=30320 +Language=English +%1 +. +MessageId=30321 +Language=English +%1 +. +MessageId=30322 +Language=English +%1 +. +MessageId=30323 +Language=English +%1 +. +MessageId=30324 +Language=English +%1 +. +MessageId=30325 +Language=English +%1 +. +MessageId=30326 +Language=English +%1 +. +MessageId=30327 +Language=English +%1 +. +MessageId=30328 +Language=English +%1 +. +MessageId=30329 +Language=English +%1 +. +MessageId=30330 +Language=English +%1 +. +MessageId=30331 +Language=English +%1 +. +MessageId=30332 +Language=English +%1 +. +MessageId=30333 +Language=English +%1 +. +MessageId=30334 +Language=English +%1 +. +MessageId=30335 +Language=English +%1 +. +MessageId=30336 +Language=English +%1 +. +MessageId=30337 +Language=English +%1 +. +MessageId=30338 +Language=English +%1 +. +MessageId=30339 +Language=English +%1 +. +MessageId=30340 +Language=English +%1 +. +MessageId=30341 +Language=English +%1 +. +MessageId=30342 +Language=English +%1 +. +MessageId=30343 +Language=English +%1 +. +MessageId=30344 +Language=English +%1 +. +MessageId=30345 +Language=English +%1 +. +MessageId=30346 +Language=English +%1 +. +MessageId=30347 +Language=English +%1 +. +MessageId=30348 +Language=English +%1 +. +MessageId=30349 +Language=English +%1 +. +MessageId=30350 +Language=English +%1 +. +MessageId=30351 +Language=English +%1 +. +MessageId=30352 +Language=English +%1 +. +MessageId=30353 +Language=English +%1 +. +MessageId=30354 +Language=English +%1 +. +MessageId=30355 +Language=English +%1 +. +MessageId=30356 +Language=English +%1 +. +MessageId=30357 +Language=English +%1 +. +MessageId=30358 +Language=English +%1 +. +MessageId=30359 +Language=English +%1 +. +MessageId=30360 +Language=English +%1 +. +MessageId=30361 +Language=English +%1 +. +MessageId=30362 +Language=English +%1 +. +MessageId=30363 +Language=English +%1 +. +MessageId=30364 +Language=English +%1 +. +MessageId=30365 +Language=English +%1 +. +MessageId=30366 +Language=English +%1 +. +MessageId=30367 +Language=English +%1 +. +MessageId=30368 +Language=English +%1 +. +MessageId=30369 +Language=English +%1 +. +MessageId=30370 +Language=English +%1 +. +MessageId=30371 +Language=English +%1 +. +MessageId=30372 +Language=English +%1 +. +MessageId=30373 +Language=English +%1 +. +MessageId=30374 +Language=English +%1 +. +MessageId=30375 +Language=English +%1 +. +MessageId=30376 +Language=English +%1 +. +MessageId=30377 +Language=English +%1 +. +MessageId=30378 +Language=English +%1 +. +MessageId=30379 +Language=English +%1 +. +MessageId=30380 +Language=English +%1 +. +MessageId=30381 +Language=English +%1 +. +MessageId=30382 +Language=English +%1 +. +MessageId=30383 +Language=English +%1 +. +MessageId=30384 +Language=English +%1 +. +MessageId=30385 +Language=English +%1 +. +MessageId=30386 +Language=English +%1 +. +MessageId=30387 +Language=English +%1 +. +MessageId=30388 +Language=English +%1 +. +MessageId=30389 +Language=English +%1 +. +MessageId=30390 +Language=English +%1 +. +MessageId=30391 +Language=English +%1 +. +MessageId=30392 +Language=English +%1 +. +MessageId=30393 +Language=English +%1 +. +MessageId=30394 +Language=English +%1 +. +MessageId=30395 +Language=English +%1 +. +MessageId=30396 +Language=English +%1 +. +MessageId=30397 +Language=English +%1 +. +MessageId=30398 +Language=English +%1 +. +MessageId=30399 +Language=English +%1 +. +MessageId=30400 +Language=English +%1 +. +MessageId=30401 +Language=English +%1 +. +MessageId=30402 +Language=English +%1 +. +MessageId=30403 +Language=English +%1 +. +MessageId=30404 +Language=English +%1 +. +MessageId=30405 +Language=English +%1 +. +MessageId=30406 +Language=English +%1 +. +MessageId=30407 +Language=English +%1 +. +MessageId=30408 +Language=English +%1 +. +MessageId=30409 +Language=English +%1 +. +MessageId=30410 +Language=English +%1 +. +MessageId=30411 +Language=English +%1 +. +MessageId=30412 +Language=English +%1 +. +MessageId=30413 +Language=English +%1 +. +MessageId=30414 +Language=English +%1 +. +MessageId=30415 +Language=English +%1 +. +MessageId=30416 +Language=English +%1 +. +MessageId=30417 +Language=English +%1 +. +MessageId=30418 +Language=English +%1 +. +MessageId=30419 +Language=English +%1 +. +MessageId=30420 +Language=English +%1 +. +MessageId=30421 +Language=English +%1 +. +MessageId=30422 +Language=English +%1 +. +MessageId=30423 +Language=English +%1 +. +MessageId=30424 +Language=English +%1 +. +MessageId=30425 +Language=English +%1 +. +MessageId=30426 +Language=English +%1 +. +MessageId=30427 +Language=English +%1 +. +MessageId=30428 +Language=English +%1 +. +MessageId=30429 +Language=English +%1 +. +MessageId=30430 +Language=English +%1 +. +MessageId=30431 +Language=English +%1 +. +MessageId=30432 +Language=English +%1 +. +MessageId=30433 +Language=English +%1 +. +MessageId=30434 +Language=English +%1 +. +MessageId=30435 +Language=English +%1 +. +MessageId=30436 +Language=English +%1 +. +MessageId=30437 +Language=English +%1 +. +MessageId=30438 +Language=English +%1 +. +MessageId=30439 +Language=English +%1 +. +MessageId=30440 +Language=English +%1 +. +MessageId=30441 +Language=English +%1 +. +MessageId=30442 +Language=English +%1 +. +MessageId=30443 +Language=English +%1 +. +MessageId=30444 +Language=English +%1 +. +MessageId=30445 +Language=English +%1 +. +MessageId=30446 +Language=English +%1 +. +MessageId=30447 +Language=English +%1 +. +MessageId=30448 +Language=English +%1 +. +MessageId=30449 +Language=English +%1 +. +MessageId=30450 +Language=English +%1 +. +MessageId=30451 +Language=English +%1 +. +MessageId=30452 +Language=English +%1 +. +MessageId=30453 +Language=English +%1 +. +MessageId=30454 +Language=English +%1 +. +MessageId=30455 +Language=English +%1 +. +MessageId=30456 +Language=English +%1 +. +MessageId=30457 +Language=English +%1 +. +MessageId=30458 +Language=English +%1 +. +MessageId=30459 +Language=English +%1 +. +MessageId=30460 +Language=English +%1 +. +MessageId=30461 +Language=English +%1 +. +MessageId=30462 +Language=English +%1 +. +MessageId=30463 +Language=English +%1 +. +MessageId=30464 +Language=English +%1 +. +MessageId=30465 +Language=English +%1 +. +MessageId=30466 +Language=English +%1 +. +MessageId=30467 +Language=English +%1 +. +MessageId=30468 +Language=English +%1 +. +MessageId=30469 +Language=English +%1 +. +MessageId=30470 +Language=English +%1 +. +MessageId=30471 +Language=English +%1 +. +MessageId=30472 +Language=English +%1 +. +MessageId=30473 +Language=English +%1 +. +MessageId=30474 +Language=English +%1 +. +MessageId=30475 +Language=English +%1 +. +MessageId=30476 +Language=English +%1 +. +MessageId=30477 +Language=English +%1 +. +MessageId=30478 +Language=English +%1 +. +MessageId=30479 +Language=English +%1 +. +MessageId=30480 +Language=English +%1 +. +MessageId=30481 +Language=English +%1 +. +MessageId=30482 +Language=English +%1 +. +MessageId=30483 +Language=English +%1 +. +MessageId=30484 +Language=English +%1 +. +MessageId=30485 +Language=English +%1 +. +MessageId=30486 +Language=English +%1 +. +MessageId=30487 +Language=English +%1 +. +MessageId=30488 +Language=English +%1 +. +MessageId=30489 +Language=English +%1 +. +MessageId=30490 +Language=English +%1 +. +MessageId=30491 +Language=English +%1 +. +MessageId=30492 +Language=English +%1 +. +MessageId=30493 +Language=English +%1 +. +MessageId=30494 +Language=English +%1 +. +MessageId=30495 +Language=English +%1 +. +MessageId=30496 +Language=English +%1 +. +MessageId=30497 +Language=English +%1 +. +MessageId=30498 +Language=English +%1 +. +MessageId=30499 +Language=English +%1 +. +MessageId=30500 +Language=English +%1 +. +MessageId=30501 +Language=English +%1 +. +MessageId=30502 +Language=English +%1 +. +MessageId=30503 +Language=English +%1 +. +MessageId=30504 +Language=English +%1 +. +MessageId=30505 +Language=English +%1 +. +MessageId=30506 +Language=English +%1 +. +MessageId=30507 +Language=English +%1 +. +MessageId=30508 +Language=English +%1 +. +MessageId=30509 +Language=English +%1 +. +MessageId=30510 +Language=English +%1 +. +MessageId=30511 +Language=English +%1 +. +MessageId=30512 +Language=English +%1 +. +MessageId=30513 +Language=English +%1 +. +MessageId=30514 +Language=English +%1 +. +MessageId=30515 +Language=English +%1 +. +MessageId=30516 +Language=English +%1 +. +MessageId=30517 +Language=English +%1 +. +MessageId=30518 +Language=English +%1 +. +MessageId=30519 +Language=English +%1 +. +MessageId=30520 +Language=English +%1 +. +MessageId=30521 +Language=English +%1 +. +MessageId=30522 +Language=English +%1 +. +MessageId=30523 +Language=English +%1 +. +MessageId=30524 +Language=English +%1 +. +MessageId=30525 +Language=English +%1 +. +MessageId=30526 +Language=English +%1 +. +MessageId=30527 +Language=English +%1 +. +MessageId=30528 +Language=English +%1 +. +MessageId=30529 +Language=English +%1 +. +MessageId=30530 +Language=English +%1 +. +MessageId=30531 +Language=English +%1 +. +MessageId=30532 +Language=English +%1 +. +MessageId=30533 +Language=English +%1 +. +MessageId=30534 +Language=English +%1 +. +MessageId=30535 +Language=English +%1 +. +MessageId=30536 +Language=English +%1 +. +MessageId=30537 +Language=English +%1 +. +MessageId=30538 +Language=English +%1 +. +MessageId=30539 +Language=English +%1 +. +MessageId=30540 +Language=English +%1 +. +MessageId=30541 +Language=English +%1 +. +MessageId=30542 +Language=English +%1 +. +MessageId=30543 +Language=English +%1 +. +MessageId=30544 +Language=English +%1 +. +MessageId=30545 +Language=English +%1 +. +MessageId=30546 +Language=English +%1 +. +MessageId=30547 +Language=English +%1 +. +MessageId=30548 +Language=English +%1 +. +MessageId=30549 +Language=English +%1 +. +MessageId=30550 +Language=English +%1 +. +MessageId=30551 +Language=English +%1 +. +MessageId=30552 +Language=English +%1 +. +MessageId=30553 +Language=English +%1 +. +MessageId=30554 +Language=English +%1 +. +MessageId=30555 +Language=English +%1 +. +MessageId=30556 +Language=English +%1 +. +MessageId=30557 +Language=English +%1 +. +MessageId=30558 +Language=English +%1 +. +MessageId=30559 +Language=English +%1 +. +MessageId=30560 +Language=English +%1 +. +MessageId=30561 +Language=English +%1 +. +MessageId=30562 +Language=English +%1 +. +MessageId=30563 +Language=English +%1 +. +MessageId=30564 +Language=English +%1 +. +MessageId=30565 +Language=English +%1 +. +MessageId=30566 +Language=English +%1 +. +MessageId=30567 +Language=English +%1 +. +MessageId=30568 +Language=English +%1 +. +MessageId=30569 +Language=English +%1 +. +MessageId=30570 +Language=English +%1 +. +MessageId=30571 +Language=English +%1 +. +MessageId=30572 +Language=English +%1 +. +MessageId=30573 +Language=English +%1 +. +MessageId=30574 +Language=English +%1 +. +MessageId=30575 +Language=English +%1 +. +MessageId=30576 +Language=English +%1 +. +MessageId=30577 +Language=English +%1 +. +MessageId=30578 +Language=English +%1 +. +MessageId=30579 +Language=English +%1 +. +MessageId=30580 +Language=English +%1 +. +MessageId=30581 +Language=English +%1 +. +MessageId=30582 +Language=English +%1 +. +MessageId=30583 +Language=English +%1 +. +MessageId=30584 +Language=English +%1 +. +MessageId=30585 +Language=English +%1 +. +MessageId=30586 +Language=English +%1 +. +MessageId=30587 +Language=English +%1 +. +MessageId=30588 +Language=English +%1 +. +MessageId=30589 +Language=English +%1 +. +MessageId=30590 +Language=English +%1 +. +MessageId=30591 +Language=English +%1 +. +MessageId=30592 +Language=English +%1 +. +MessageId=30593 +Language=English +%1 +. +MessageId=30594 +Language=English +%1 +. +MessageId=30595 +Language=English +%1 +. +MessageId=30596 +Language=English +%1 +. +MessageId=30597 +Language=English +%1 +. +MessageId=30598 +Language=English +%1 +. +MessageId=30599 +Language=English +%1 +. +MessageId=30600 +Language=English +%1 +. +MessageId=30601 +Language=English +%1 +. +MessageId=30602 +Language=English +%1 +. +MessageId=30603 +Language=English +%1 +. +MessageId=30604 +Language=English +%1 +. +MessageId=30605 +Language=English +%1 +. +MessageId=30606 +Language=English +%1 +. +MessageId=30607 +Language=English +%1 +. +MessageId=30608 +Language=English +%1 +. +MessageId=30609 +Language=English +%1 +. +MessageId=30610 +Language=English +%1 +. +MessageId=30611 +Language=English +%1 +. +MessageId=30612 +Language=English +%1 +. +MessageId=30613 +Language=English +%1 +. +MessageId=30614 +Language=English +%1 +. +MessageId=30615 +Language=English +%1 +. +MessageId=30616 +Language=English +%1 +. +MessageId=30617 +Language=English +%1 +. +MessageId=30618 +Language=English +%1 +. +MessageId=30619 +Language=English +%1 +. +MessageId=30620 +Language=English +%1 +. +MessageId=30621 +Language=English +%1 +. +MessageId=30622 +Language=English +%1 +. +MessageId=30623 +Language=English +%1 +. +MessageId=30624 +Language=English +%1 +. +MessageId=30625 +Language=English +%1 +. +MessageId=30626 +Language=English +%1 +. +MessageId=30627 +Language=English +%1 +. +MessageId=30628 +Language=English +%1 +. +MessageId=30629 +Language=English +%1 +. +MessageId=30630 +Language=English +%1 +. +MessageId=30631 +Language=English +%1 +. +MessageId=30632 +Language=English +%1 +. +MessageId=30633 +Language=English +%1 +. +MessageId=30634 +Language=English +%1 +. +MessageId=30635 +Language=English +%1 +. +MessageId=30636 +Language=English +%1 +. +MessageId=30637 +Language=English +%1 +. +MessageId=30638 +Language=English +%1 +. +MessageId=30639 +Language=English +%1 +. +MessageId=30640 +Language=English +%1 +. +MessageId=30641 +Language=English +%1 +. +MessageId=30642 +Language=English +%1 +. +MessageId=30643 +Language=English +%1 +. +MessageId=30644 +Language=English +%1 +. +MessageId=30645 +Language=English +%1 +. +MessageId=30646 +Language=English +%1 +. +MessageId=30647 +Language=English +%1 +. +MessageId=30648 +Language=English +%1 +. +MessageId=30649 +Language=English +%1 +. +MessageId=30650 +Language=English +%1 +. +MessageId=30651 +Language=English +%1 +. +MessageId=30652 +Language=English +%1 +. +MessageId=30653 +Language=English +%1 +. +MessageId=30654 +Language=English +%1 +. +MessageId=30655 +Language=English +%1 +. +MessageId=30656 +Language=English +%1 +. +MessageId=30657 +Language=English +%1 +. +MessageId=30658 +Language=English +%1 +. +MessageId=30659 +Language=English +%1 +. +MessageId=30660 +Language=English +%1 +. +MessageId=30661 +Language=English +%1 +. +MessageId=30662 +Language=English +%1 +. +MessageId=30663 +Language=English +%1 +. +MessageId=30664 +Language=English +%1 +. +MessageId=30665 +Language=English +%1 +. +MessageId=30666 +Language=English +%1 +. +MessageId=30667 +Language=English +%1 +. +MessageId=30668 +Language=English +%1 +. +MessageId=30669 +Language=English +%1 +. +MessageId=30670 +Language=English +%1 +. +MessageId=30671 +Language=English +%1 +. +MessageId=30672 +Language=English +%1 +. +MessageId=30673 +Language=English +%1 +. +MessageId=30674 +Language=English +%1 +. +MessageId=30675 +Language=English +%1 +. +MessageId=30676 +Language=English +%1 +. +MessageId=30677 +Language=English +%1 +. +MessageId=30678 +Language=English +%1 +. +MessageId=30679 +Language=English +%1 +. +MessageId=30680 +Language=English +%1 +. +MessageId=30681 +Language=English +%1 +. +MessageId=30682 +Language=English +%1 +. +MessageId=30683 +Language=English +%1 +. +MessageId=30684 +Language=English +%1 +. +MessageId=30685 +Language=English +%1 +. +MessageId=30686 +Language=English +%1 +. +MessageId=30687 +Language=English +%1 +. +MessageId=30688 +Language=English +%1 +. +MessageId=30689 +Language=English +%1 +. +MessageId=30690 +Language=English +%1 +. +MessageId=30691 +Language=English +%1 +. +MessageId=30692 +Language=English +%1 +. +MessageId=30693 +Language=English +%1 +. +MessageId=30694 +Language=English +%1 +. +MessageId=30695 +Language=English +%1 +. +MessageId=30696 +Language=English +%1 +. +MessageId=30697 +Language=English +%1 +. +MessageId=30698 +Language=English +%1 +. +MessageId=30699 +Language=English +%1 +. +MessageId=30700 +Language=English +%1 +. +MessageId=30701 +Language=English +%1 +. +MessageId=30702 +Language=English +%1 +. +MessageId=30703 +Language=English +%1 +. +MessageId=30704 +Language=English +%1 +. +MessageId=30705 +Language=English +%1 +. +MessageId=30706 +Language=English +%1 +. +MessageId=30707 +Language=English +%1 +. +MessageId=30708 +Language=English +%1 +. +MessageId=30709 +Language=English +%1 +. +MessageId=30710 +Language=English +%1 +. +MessageId=30711 +Language=English +%1 +. +MessageId=30712 +Language=English +%1 +. +MessageId=30713 +Language=English +%1 +. +MessageId=30714 +Language=English +%1 +. +MessageId=30715 +Language=English +%1 +. +MessageId=30716 +Language=English +%1 +. +MessageId=30717 +Language=English +%1 +. +MessageId=30718 +Language=English +%1 +. +MessageId=30719 +Language=English +%1 +. +MessageId=30720 +Language=English +%1 +. +MessageId=30721 +Language=English +%1 +. +MessageId=30722 +Language=English +%1 +. +MessageId=30723 +Language=English +%1 +. +MessageId=30724 +Language=English +%1 +. +MessageId=30725 +Language=English +%1 +. +MessageId=30726 +Language=English +%1 +. +MessageId=30727 +Language=English +%1 +. +MessageId=30728 +Language=English +%1 +. +MessageId=30729 +Language=English +%1 +. +MessageId=30730 +Language=English +%1 +. +MessageId=30731 +Language=English +%1 +. +MessageId=30732 +Language=English +%1 +. +MessageId=30733 +Language=English +%1 +. +MessageId=30734 +Language=English +%1 +. +MessageId=30735 +Language=English +%1 +. +MessageId=30736 +Language=English +%1 +. +MessageId=30737 +Language=English +%1 +. +MessageId=30738 +Language=English +%1 +. +MessageId=30739 +Language=English +%1 +. +MessageId=30740 +Language=English +%1 +. +MessageId=30741 +Language=English +%1 +. +MessageId=30742 +Language=English +%1 +. +MessageId=30743 +Language=English +%1 +. +MessageId=30744 +Language=English +%1 +. +MessageId=30745 +Language=English +%1 +. +MessageId=30746 +Language=English +%1 +. +MessageId=30747 +Language=English +%1 +. +MessageId=30748 +Language=English +%1 +. +MessageId=30749 +Language=English +%1 +. +MessageId=30750 +Language=English +%1 +. +MessageId=30751 +Language=English +%1 +. +MessageId=30752 +Language=English +%1 +. +MessageId=30753 +Language=English +%1 +. +MessageId=30754 +Language=English +%1 +. +MessageId=30755 +Language=English +%1 +. +MessageId=30756 +Language=English +%1 +. +MessageId=30757 +Language=English +%1 +. +MessageId=30758 +Language=English +%1 +. +MessageId=30759 +Language=English +%1 +. +MessageId=30760 +Language=English +%1 +. +MessageId=30761 +Language=English +%1 +. +MessageId=30762 +Language=English +%1 +. +MessageId=30763 +Language=English +%1 +. +MessageId=30764 +Language=English +%1 +. +MessageId=30765 +Language=English +%1 +. +MessageId=30766 +Language=English +%1 +. +MessageId=30767 +Language=English +%1 +. +MessageId=30768 +Language=English +%1 +. +MessageId=30769 +Language=English +%1 +. +MessageId=30770 +Language=English +%1 +. +MessageId=30771 +Language=English +%1 +. +MessageId=30772 +Language=English +%1 +. +MessageId=30773 +Language=English +%1 +. +MessageId=30774 +Language=English +%1 +. +MessageId=30775 +Language=English +%1 +. +MessageId=30776 +Language=English +%1 +. +MessageId=30777 +Language=English +%1 +. +MessageId=30778 +Language=English +%1 +. +MessageId=30779 +Language=English +%1 +. +MessageId=30780 +Language=English +%1 +. +MessageId=30781 +Language=English +%1 +. +MessageId=30782 +Language=English +%1 +. +MessageId=30783 +Language=English +%1 +. +MessageId=30784 +Language=English +%1 +. +MessageId=30785 +Language=English +%1 +. +MessageId=30786 +Language=English +%1 +. +MessageId=30787 +Language=English +%1 +. +MessageId=30788 +Language=English +%1 +. +MessageId=30789 +Language=English +%1 +. +MessageId=30790 +Language=English +%1 +. +MessageId=30791 +Language=English +%1 +. +MessageId=30792 +Language=English +%1 +. +MessageId=30793 +Language=English +%1 +. +MessageId=30794 +Language=English +%1 +. +MessageId=30795 +Language=English +%1 +. +MessageId=30796 +Language=English +%1 +. +MessageId=30797 +Language=English +%1 +. +MessageId=30798 +Language=English +%1 +. +MessageId=30799 +Language=English +%1 +. +MessageId=30800 +Language=English +%1 +. +MessageId=30801 +Language=English +%1 +. +MessageId=30802 +Language=English +%1 +. +MessageId=30803 +Language=English +%1 +. +MessageId=30804 +Language=English +%1 +. +MessageId=30805 +Language=English +%1 +. +MessageId=30806 +Language=English +%1 +. +MessageId=30807 +Language=English +%1 +. +MessageId=30808 +Language=English +%1 +. +MessageId=30809 +Language=English +%1 +. +MessageId=30810 +Language=English +%1 +. +MessageId=30811 +Language=English +%1 +. +MessageId=30812 +Language=English +%1 +. +MessageId=30813 +Language=English +%1 +. +MessageId=30814 +Language=English +%1 +. +MessageId=30815 +Language=English +%1 +. +MessageId=30816 +Language=English +%1 +. +MessageId=30817 +Language=English +%1 +. +MessageId=30818 +Language=English +%1 +. +MessageId=30819 +Language=English +%1 +. +MessageId=30820 +Language=English +%1 +. +MessageId=30821 +Language=English +%1 +. +MessageId=30822 +Language=English +%1 +. +MessageId=30823 +Language=English +%1 +. +MessageId=30824 +Language=English +%1 +. +MessageId=30825 +Language=English +%1 +. +MessageId=30826 +Language=English +%1 +. +MessageId=30827 +Language=English +%1 +. +MessageId=30828 +Language=English +%1 +. +MessageId=30829 +Language=English +%1 +. +MessageId=30830 +Language=English +%1 +. +MessageId=30831 +Language=English +%1 +. +MessageId=30832 +Language=English +%1 +. +MessageId=30833 +Language=English +%1 +. +MessageId=30834 +Language=English +%1 +. +MessageId=30835 +Language=English +%1 +. +MessageId=30836 +Language=English +%1 +. +MessageId=30837 +Language=English +%1 +. +MessageId=30838 +Language=English +%1 +. +MessageId=30839 +Language=English +%1 +. +MessageId=30840 +Language=English +%1 +. +MessageId=30841 +Language=English +%1 +. +MessageId=30842 +Language=English +%1 +. +MessageId=30843 +Language=English +%1 +. +MessageId=30844 +Language=English +%1 +. +MessageId=30845 +Language=English +%1 +. +MessageId=30846 +Language=English +%1 +. +MessageId=30847 +Language=English +%1 +. +MessageId=30848 +Language=English +%1 +. +MessageId=30849 +Language=English +%1 +. +MessageId=30850 +Language=English +%1 +. +MessageId=30851 +Language=English +%1 +. +MessageId=30852 +Language=English +%1 +. +MessageId=30853 +Language=English +%1 +. +MessageId=30854 +Language=English +%1 +. +MessageId=30855 +Language=English +%1 +. +MessageId=30856 +Language=English +%1 +. +MessageId=30857 +Language=English +%1 +. +MessageId=30858 +Language=English +%1 +. +MessageId=30859 +Language=English +%1 +. +MessageId=30860 +Language=English +%1 +. +MessageId=30861 +Language=English +%1 +. +MessageId=30862 +Language=English +%1 +. +MessageId=30863 +Language=English +%1 +. +MessageId=30864 +Language=English +%1 +. +MessageId=30865 +Language=English +%1 +. +MessageId=30866 +Language=English +%1 +. +MessageId=30867 +Language=English +%1 +. +MessageId=30868 +Language=English +%1 +. +MessageId=30869 +Language=English +%1 +. +MessageId=30870 +Language=English +%1 +. +MessageId=30871 +Language=English +%1 +. +MessageId=30872 +Language=English +%1 +. +MessageId=30873 +Language=English +%1 +. +MessageId=30874 +Language=English +%1 +. +MessageId=30875 +Language=English +%1 +. +MessageId=30876 +Language=English +%1 +. +MessageId=30877 +Language=English +%1 +. +MessageId=30878 +Language=English +%1 +. +MessageId=30879 +Language=English +%1 +. +MessageId=30880 +Language=English +%1 +. +MessageId=30881 +Language=English +%1 +. +MessageId=30882 +Language=English +%1 +. +MessageId=30883 +Language=English +%1 +. +MessageId=30884 +Language=English +%1 +. +MessageId=30885 +Language=English +%1 +. +MessageId=30886 +Language=English +%1 +. +MessageId=30887 +Language=English +%1 +. +MessageId=30888 +Language=English +%1 +. +MessageId=30889 +Language=English +%1 +. +MessageId=30890 +Language=English +%1 +. +MessageId=30891 +Language=English +%1 +. +MessageId=30892 +Language=English +%1 +. +MessageId=30893 +Language=English +%1 +. +MessageId=30894 +Language=English +%1 +. +MessageId=30895 +Language=English +%1 +. +MessageId=30896 +Language=English +%1 +. +MessageId=30897 +Language=English +%1 +. +MessageId=30898 +Language=English +%1 +. +MessageId=30899 +Language=English +%1 +. +MessageId=30900 +Language=English +%1 +. +MessageId=30901 +Language=English +%1 +. +MessageId=30902 +Language=English +%1 +. +MessageId=30903 +Language=English +%1 +. +MessageId=30904 +Language=English +%1 +. +MessageId=30905 +Language=English +%1 +. +MessageId=30906 +Language=English +%1 +. +MessageId=30907 +Language=English +%1 +. +MessageId=30908 +Language=English +%1 +. +MessageId=30909 +Language=English +%1 +. +MessageId=30910 +Language=English +%1 +. +MessageId=30911 +Language=English +%1 +. +MessageId=30912 +Language=English +%1 +. +MessageId=30913 +Language=English +%1 +. +MessageId=30914 +Language=English +%1 +. +MessageId=30915 +Language=English +%1 +. +MessageId=30916 +Language=English +%1 +. +MessageId=30917 +Language=English +%1 +. +MessageId=30918 +Language=English +%1 +. +MessageId=30919 +Language=English +%1 +. +MessageId=30920 +Language=English +%1 +. +MessageId=30921 +Language=English +%1 +. +MessageId=30922 +Language=English +%1 +. +MessageId=30923 +Language=English +%1 +. +MessageId=30924 +Language=English +%1 +. +MessageId=30925 +Language=English +%1 +. +MessageId=30926 +Language=English +%1 +. +MessageId=30927 +Language=English +%1 +. +MessageId=30928 +Language=English +%1 +. +MessageId=30929 +Language=English +%1 +. +MessageId=30930 +Language=English +%1 +. +MessageId=30931 +Language=English +%1 +. +MessageId=30932 +Language=English +%1 +. +MessageId=30933 +Language=English +%1 +. +MessageId=30934 +Language=English +%1 +. +MessageId=30935 +Language=English +%1 +. +MessageId=30936 +Language=English +%1 +. +MessageId=30937 +Language=English +%1 +. +MessageId=30938 +Language=English +%1 +. +MessageId=30939 +Language=English +%1 +. +MessageId=30940 +Language=English +%1 +. +MessageId=30941 +Language=English +%1 +. +MessageId=30942 +Language=English +%1 +. +MessageId=30943 +Language=English +%1 +. +MessageId=30944 +Language=English +%1 +. +MessageId=30945 +Language=English +%1 +. +MessageId=30946 +Language=English +%1 +. +MessageId=30947 +Language=English +%1 +. +MessageId=30948 +Language=English +%1 +. +MessageId=30949 +Language=English +%1 +. +MessageId=30950 +Language=English +%1 +. +MessageId=30951 +Language=English +%1 +. +MessageId=30952 +Language=English +%1 +. +MessageId=30953 +Language=English +%1 +. +MessageId=30954 +Language=English +%1 +. +MessageId=30955 +Language=English +%1 +. +MessageId=30956 +Language=English +%1 +. +MessageId=30957 +Language=English +%1 +. +MessageId=30958 +Language=English +%1 +. +MessageId=30959 +Language=English +%1 +. +MessageId=30960 +Language=English +%1 +. +MessageId=30961 +Language=English +%1 +. +MessageId=30962 +Language=English +%1 +. +MessageId=30963 +Language=English +%1 +. +MessageId=30964 +Language=English +%1 +. +MessageId=30965 +Language=English +%1 +. +MessageId=30966 +Language=English +%1 +. +MessageId=30967 +Language=English +%1 +. +MessageId=30968 +Language=English +%1 +. +MessageId=30969 +Language=English +%1 +. +MessageId=30970 +Language=English +%1 +. +MessageId=30971 +Language=English +%1 +. +MessageId=30972 +Language=English +%1 +. +MessageId=30973 +Language=English +%1 +. +MessageId=30974 +Language=English +%1 +. +MessageId=30975 +Language=English +%1 +. +MessageId=30976 +Language=English +%1 +. +MessageId=30977 +Language=English +%1 +. +MessageId=30978 +Language=English +%1 +. +MessageId=30979 +Language=English +%1 +. +MessageId=30980 +Language=English +%1 +. +MessageId=30981 +Language=English +%1 +. +MessageId=30982 +Language=English +%1 +. +MessageId=30983 +Language=English +%1 +. +MessageId=30984 +Language=English +%1 +. +MessageId=30985 +Language=English +%1 +. +MessageId=30986 +Language=English +%1 +. +MessageId=30987 +Language=English +%1 +. +MessageId=30988 +Language=English +%1 +. +MessageId=30989 +Language=English +%1 +. +MessageId=30990 +Language=English +%1 +. +MessageId=30991 +Language=English +%1 +. +MessageId=30992 +Language=English +%1 +. +MessageId=30993 +Language=English +%1 +. +MessageId=30994 +Language=English +%1 +. +MessageId=30995 +Language=English +%1 +. +MessageId=30996 +Language=English +%1 +. +MessageId=30997 +Language=English +%1 +. +MessageId=30998 +Language=English +%1 +. +MessageId=30999 +Language=English +%1 +. +MessageId=31000 +Language=English +%1 +. +MessageId=31001 +Language=English +%1 +. +MessageId=31002 +Language=English +%1 +. +MessageId=31003 +Language=English +%1 +. +MessageId=31004 +Language=English +%1 +. +MessageId=31005 +Language=English +%1 +. +MessageId=31006 +Language=English +%1 +. +MessageId=31007 +Language=English +%1 +. +MessageId=31008 +Language=English +%1 +. +MessageId=31009 +Language=English +%1 +. +MessageId=31010 +Language=English +%1 +. +MessageId=31011 +Language=English +%1 +. +MessageId=31012 +Language=English +%1 +. +MessageId=31013 +Language=English +%1 +. +MessageId=31014 +Language=English +%1 +. +MessageId=31015 +Language=English +%1 +. +MessageId=31016 +Language=English +%1 +. +MessageId=31017 +Language=English +%1 +. +MessageId=31018 +Language=English +%1 +. +MessageId=31019 +Language=English +%1 +. +MessageId=31020 +Language=English +%1 +. +MessageId=31021 +Language=English +%1 +. +MessageId=31022 +Language=English +%1 +. +MessageId=31023 +Language=English +%1 +. +MessageId=31024 +Language=English +%1 +. +MessageId=31025 +Language=English +%1 +. +MessageId=31026 +Language=English +%1 +. +MessageId=31027 +Language=English +%1 +. +MessageId=31028 +Language=English +%1 +. +MessageId=31029 +Language=English +%1 +. +MessageId=31030 +Language=English +%1 +. +MessageId=31031 +Language=English +%1 +. +MessageId=31032 +Language=English +%1 +. +MessageId=31033 +Language=English +%1 +. +MessageId=31034 +Language=English +%1 +. +MessageId=31035 +Language=English +%1 +. +MessageId=31036 +Language=English +%1 +. +MessageId=31037 +Language=English +%1 +. +MessageId=31038 +Language=English +%1 +. +MessageId=31039 +Language=English +%1 +. +MessageId=31040 +Language=English +%1 +. +MessageId=31041 +Language=English +%1 +. +MessageId=31042 +Language=English +%1 +. +MessageId=31043 +Language=English +%1 +. +MessageId=31044 +Language=English +%1 +. +MessageId=31045 +Language=English +%1 +. +MessageId=31046 +Language=English +%1 +. +MessageId=31047 +Language=English +%1 +. +MessageId=31048 +Language=English +%1 +. +MessageId=31049 +Language=English +%1 +. +MessageId=31050 +Language=English +%1 +. +MessageId=31051 +Language=English +%1 +. +MessageId=31052 +Language=English +%1 +. +MessageId=31053 +Language=English +%1 +. +MessageId=31054 +Language=English +%1 +. +MessageId=31055 +Language=English +%1 +. +MessageId=31056 +Language=English +%1 +. +MessageId=31057 +Language=English +%1 +. +MessageId=31058 +Language=English +%1 +. +MessageId=31059 +Language=English +%1 +. +MessageId=31060 +Language=English +%1 +. +MessageId=31061 +Language=English +%1 +. +MessageId=31062 +Language=English +%1 +. +MessageId=31063 +Language=English +%1 +. +MessageId=31064 +Language=English +%1 +. +MessageId=31065 +Language=English +%1 +. +MessageId=31066 +Language=English +%1 +. +MessageId=31067 +Language=English +%1 +. +MessageId=31068 +Language=English +%1 +. +MessageId=31069 +Language=English +%1 +. +MessageId=31070 +Language=English +%1 +. +MessageId=31071 +Language=English +%1 +. +MessageId=31072 +Language=English +%1 +. +MessageId=31073 +Language=English +%1 +. +MessageId=31074 +Language=English +%1 +. +MessageId=31075 +Language=English +%1 +. +MessageId=31076 +Language=English +%1 +. +MessageId=31077 +Language=English +%1 +. +MessageId=31078 +Language=English +%1 +. +MessageId=31079 +Language=English +%1 +. +MessageId=31080 +Language=English +%1 +. +MessageId=31081 +Language=English +%1 +. +MessageId=31082 +Language=English +%1 +. +MessageId=31083 +Language=English +%1 +. +MessageId=31084 +Language=English +%1 +. +MessageId=31085 +Language=English +%1 +. +MessageId=31086 +Language=English +%1 +. +MessageId=31087 +Language=English +%1 +. +MessageId=31088 +Language=English +%1 +. +MessageId=31089 +Language=English +%1 +. +MessageId=31090 +Language=English +%1 +. +MessageId=31091 +Language=English +%1 +. +MessageId=31092 +Language=English +%1 +. +MessageId=31093 +Language=English +%1 +. +MessageId=31094 +Language=English +%1 +. +MessageId=31095 +Language=English +%1 +. +MessageId=31096 +Language=English +%1 +. +MessageId=31097 +Language=English +%1 +. +MessageId=31098 +Language=English +%1 +. +MessageId=31099 +Language=English +%1 +. +MessageId=31100 +Language=English +%1 +. +MessageId=31101 +Language=English +%1 +. +MessageId=31102 +Language=English +%1 +. +MessageId=31103 +Language=English +%1 +. +MessageId=31104 +Language=English +%1 +. +MessageId=31105 +Language=English +%1 +. +MessageId=31106 +Language=English +%1 +. +MessageId=31107 +Language=English +%1 +. +MessageId=31108 +Language=English +%1 +. +MessageId=31109 +Language=English +%1 +. +MessageId=31110 +Language=English +%1 +. +MessageId=31111 +Language=English +%1 +. +MessageId=31112 +Language=English +%1 +. +MessageId=31113 +Language=English +%1 +. +MessageId=31114 +Language=English +%1 +. +MessageId=31115 +Language=English +%1 +. +MessageId=31116 +Language=English +%1 +. +MessageId=31117 +Language=English +%1 +. +MessageId=31118 +Language=English +%1 +. +MessageId=31119 +Language=English +%1 +. +MessageId=31120 +Language=English +%1 +. +MessageId=31121 +Language=English +%1 +. +MessageId=31122 +Language=English +%1 +. +MessageId=31123 +Language=English +%1 +. +MessageId=31124 +Language=English +%1 +. +MessageId=31125 +Language=English +%1 +. +MessageId=31126 +Language=English +%1 +. +MessageId=31127 +Language=English +%1 +. +MessageId=31128 +Language=English +%1 +. +MessageId=31129 +Language=English +%1 +. +MessageId=31130 +Language=English +%1 +. +MessageId=31131 +Language=English +%1 +. +MessageId=31132 +Language=English +%1 +. +MessageId=31133 +Language=English +%1 +. +MessageId=31134 +Language=English +%1 +. +MessageId=31135 +Language=English +%1 +. +MessageId=31136 +Language=English +%1 +. +MessageId=31137 +Language=English +%1 +. +MessageId=31138 +Language=English +%1 +. +MessageId=31139 +Language=English +%1 +. +MessageId=31140 +Language=English +%1 +. +MessageId=31141 +Language=English +%1 +. +MessageId=31142 +Language=English +%1 +. +MessageId=31143 +Language=English +%1 +. +MessageId=31144 +Language=English +%1 +. +MessageId=31145 +Language=English +%1 +. +MessageId=31146 +Language=English +%1 +. +MessageId=31147 +Language=English +%1 +. +MessageId=31148 +Language=English +%1 +. +MessageId=31149 +Language=English +%1 +. +MessageId=31150 +Language=English +%1 +. +MessageId=31151 +Language=English +%1 +. +MessageId=31152 +Language=English +%1 +. +MessageId=31153 +Language=English +%1 +. +MessageId=31154 +Language=English +%1 +. +MessageId=31155 +Language=English +%1 +. +MessageId=31156 +Language=English +%1 +. +MessageId=31157 +Language=English +%1 +. +MessageId=31158 +Language=English +%1 +. +MessageId=31159 +Language=English +%1 +. +MessageId=31160 +Language=English +%1 +. +MessageId=31161 +Language=English +%1 +. +MessageId=31162 +Language=English +%1 +. +MessageId=31163 +Language=English +%1 +. +MessageId=31164 +Language=English +%1 +. +MessageId=31165 +Language=English +%1 +. +MessageId=31166 +Language=English +%1 +. +MessageId=31167 +Language=English +%1 +. +MessageId=31168 +Language=English +%1 +. +MessageId=31169 +Language=English +%1 +. +MessageId=31170 +Language=English +%1 +. +MessageId=31171 +Language=English +%1 +. +MessageId=31172 +Language=English +%1 +. +MessageId=31173 +Language=English +%1 +. +MessageId=31174 +Language=English +%1 +. +MessageId=31175 +Language=English +%1 +. +MessageId=31176 +Language=English +%1 +. +MessageId=31177 +Language=English +%1 +. +MessageId=31178 +Language=English +%1 +. +MessageId=31179 +Language=English +%1 +. +MessageId=31180 +Language=English +%1 +. +MessageId=31181 +Language=English +%1 +. +MessageId=31182 +Language=English +%1 +. +MessageId=31183 +Language=English +%1 +. +MessageId=31184 +Language=English +%1 +. +MessageId=31185 +Language=English +%1 +. +MessageId=31186 +Language=English +%1 +. +MessageId=31187 +Language=English +%1 +. +MessageId=31188 +Language=English +%1 +. +MessageId=31189 +Language=English +%1 +. +MessageId=31190 +Language=English +%1 +. +MessageId=31191 +Language=English +%1 +. +MessageId=31192 +Language=English +%1 +. +MessageId=31193 +Language=English +%1 +. +MessageId=31194 +Language=English +%1 +. +MessageId=31195 +Language=English +%1 +. +MessageId=31196 +Language=English +%1 +. +MessageId=31197 +Language=English +%1 +. +MessageId=31198 +Language=English +%1 +. +MessageId=31199 +Language=English +%1 +. +MessageId=31200 +Language=English +%1 +. +MessageId=31201 +Language=English +%1 +. +MessageId=31202 +Language=English +%1 +. +MessageId=31203 +Language=English +%1 +. +MessageId=31204 +Language=English +%1 +. +MessageId=31205 +Language=English +%1 +. +MessageId=31206 +Language=English +%1 +. +MessageId=31207 +Language=English +%1 +. +MessageId=31208 +Language=English +%1 +. +MessageId=31209 +Language=English +%1 +. +MessageId=31210 +Language=English +%1 +. +MessageId=31211 +Language=English +%1 +. +MessageId=31212 +Language=English +%1 +. +MessageId=31213 +Language=English +%1 +. +MessageId=31214 +Language=English +%1 +. +MessageId=31215 +Language=English +%1 +. +MessageId=31216 +Language=English +%1 +. +MessageId=31217 +Language=English +%1 +. +MessageId=31218 +Language=English +%1 +. +MessageId=31219 +Language=English +%1 +. +MessageId=31220 +Language=English +%1 +. +MessageId=31221 +Language=English +%1 +. +MessageId=31222 +Language=English +%1 +. +MessageId=31223 +Language=English +%1 +. +MessageId=31224 +Language=English +%1 +. +MessageId=31225 +Language=English +%1 +. +MessageId=31226 +Language=English +%1 +. +MessageId=31227 +Language=English +%1 +. +MessageId=31228 +Language=English +%1 +. +MessageId=31229 +Language=English +%1 +. +MessageId=31230 +Language=English +%1 +. +MessageId=31231 +Language=English +%1 +. +MessageId=31232 +Language=English +%1 +. +MessageId=31233 +Language=English +%1 +. +MessageId=31234 +Language=English +%1 +. +MessageId=31235 +Language=English +%1 +. +MessageId=31236 +Language=English +%1 +. +MessageId=31237 +Language=English +%1 +. +MessageId=31238 +Language=English +%1 +. +MessageId=31239 +Language=English +%1 +. +MessageId=31240 +Language=English +%1 +. +MessageId=31241 +Language=English +%1 +. +MessageId=31242 +Language=English +%1 +. +MessageId=31243 +Language=English +%1 +. +MessageId=31244 +Language=English +%1 +. +MessageId=31245 +Language=English +%1 +. +MessageId=31246 +Language=English +%1 +. +MessageId=31247 +Language=English +%1 +. +MessageId=31248 +Language=English +%1 +. +MessageId=31249 +Language=English +%1 +. +MessageId=31250 +Language=English +%1 +. +MessageId=31251 +Language=English +%1 +. +MessageId=31252 +Language=English +%1 +. +MessageId=31253 +Language=English +%1 +. +MessageId=31254 +Language=English +%1 +. +MessageId=31255 +Language=English +%1 +. +MessageId=31256 +Language=English +%1 +. +MessageId=31257 +Language=English +%1 +. +MessageId=31258 +Language=English +%1 +. +MessageId=31259 +Language=English +%1 +. +MessageId=31260 +Language=English +%1 +. +MessageId=31261 +Language=English +%1 +. +MessageId=31262 +Language=English +%1 +. +MessageId=31263 +Language=English +%1 +. +MessageId=31264 +Language=English +%1 +. +MessageId=31265 +Language=English +%1 +. +MessageId=31266 +Language=English +%1 +. +MessageId=31267 +Language=English +%1 +. +MessageId=31268 +Language=English +%1 +. +MessageId=31269 +Language=English +%1 +. +MessageId=31270 +Language=English +%1 +. +MessageId=31271 +Language=English +%1 +. +MessageId=31272 +Language=English +%1 +. +MessageId=31273 +Language=English +%1 +. +MessageId=31274 +Language=English +%1 +. +MessageId=31275 +Language=English +%1 +. +MessageId=31276 +Language=English +%1 +. +MessageId=31277 +Language=English +%1 +. +MessageId=31278 +Language=English +%1 +. +MessageId=31279 +Language=English +%1 +. +MessageId=31280 +Language=English +%1 +. +MessageId=31281 +Language=English +%1 +. +MessageId=31282 +Language=English +%1 +. +MessageId=31283 +Language=English +%1 +. +MessageId=31284 +Language=English +%1 +. +MessageId=31285 +Language=English +%1 +. +MessageId=31286 +Language=English +%1 +. +MessageId=31287 +Language=English +%1 +. +MessageId=31288 +Language=English +%1 +. +MessageId=31289 +Language=English +%1 +. +MessageId=31290 +Language=English +%1 +. +MessageId=31291 +Language=English +%1 +. +MessageId=31292 +Language=English +%1 +. +MessageId=31293 +Language=English +%1 +. +MessageId=31294 +Language=English +%1 +. +MessageId=31295 +Language=English +%1 +. +MessageId=31296 +Language=English +%1 +. +MessageId=31297 +Language=English +%1 +. +MessageId=31298 +Language=English +%1 +. +MessageId=31299 +Language=English +%1 +. +MessageId=31300 +Language=English +%1 +. +MessageId=31301 +Language=English +%1 +. +MessageId=31302 +Language=English +%1 +. +MessageId=31303 +Language=English +%1 +. +MessageId=31304 +Language=English +%1 +. +MessageId=31305 +Language=English +%1 +. +MessageId=31306 +Language=English +%1 +. +MessageId=31307 +Language=English +%1 +. +MessageId=31308 +Language=English +%1 +. +MessageId=31309 +Language=English +%1 +. +MessageId=31310 +Language=English +%1 +. +MessageId=31311 +Language=English +%1 +. +MessageId=31312 +Language=English +%1 +. +MessageId=31313 +Language=English +%1 +. +MessageId=31314 +Language=English +%1 +. +MessageId=31315 +Language=English +%1 +. +MessageId=31316 +Language=English +%1 +. +MessageId=31317 +Language=English +%1 +. +MessageId=31318 +Language=English +%1 +. +MessageId=31319 +Language=English +%1 +. +MessageId=31320 +Language=English +%1 +. +MessageId=31321 +Language=English +%1 +. +MessageId=31322 +Language=English +%1 +. +MessageId=31323 +Language=English +%1 +. +MessageId=31324 +Language=English +%1 +. +MessageId=31325 +Language=English +%1 +. +MessageId=31326 +Language=English +%1 +. +MessageId=31327 +Language=English +%1 +. +MessageId=31328 +Language=English +%1 +. +MessageId=31329 +Language=English +%1 +. +MessageId=31330 +Language=English +%1 +. +MessageId=31331 +Language=English +%1 +. +MessageId=31332 +Language=English +%1 +. +MessageId=31333 +Language=English +%1 +. +MessageId=31334 +Language=English +%1 +. +MessageId=31335 +Language=English +%1 +. +MessageId=31336 +Language=English +%1 +. +MessageId=31337 +Language=English +%1 +. +MessageId=31338 +Language=English +%1 +. +MessageId=31339 +Language=English +%1 +. +MessageId=31340 +Language=English +%1 +. +MessageId=31341 +Language=English +%1 +. +MessageId=31342 +Language=English +%1 +. +MessageId=31343 +Language=English +%1 +. +MessageId=31344 +Language=English +%1 +. +MessageId=31345 +Language=English +%1 +. +MessageId=31346 +Language=English +%1 +. +MessageId=31347 +Language=English +%1 +. +MessageId=31348 +Language=English +%1 +. +MessageId=31349 +Language=English +%1 +. +MessageId=31350 +Language=English +%1 +. +MessageId=31351 +Language=English +%1 +. +MessageId=31352 +Language=English +%1 +. +MessageId=31353 +Language=English +%1 +. +MessageId=31354 +Language=English +%1 +. +MessageId=31355 +Language=English +%1 +. +MessageId=31356 +Language=English +%1 +. +MessageId=31357 +Language=English +%1 +. +MessageId=31358 +Language=English +%1 +. +MessageId=31359 +Language=English +%1 +. +MessageId=31360 +Language=English +%1 +. +MessageId=31361 +Language=English +%1 +. +MessageId=31362 +Language=English +%1 +. +MessageId=31363 +Language=English +%1 +. +MessageId=31364 +Language=English +%1 +. +MessageId=31365 +Language=English +%1 +. +MessageId=31366 +Language=English +%1 +. +MessageId=31367 +Language=English +%1 +. +MessageId=31368 +Language=English +%1 +. +MessageId=31369 +Language=English +%1 +. +MessageId=31370 +Language=English +%1 +. +MessageId=31371 +Language=English +%1 +. +MessageId=31372 +Language=English +%1 +. +MessageId=31373 +Language=English +%1 +. +MessageId=31374 +Language=English +%1 +. +MessageId=31375 +Language=English +%1 +. +MessageId=31376 +Language=English +%1 +. +MessageId=31377 +Language=English +%1 +. +MessageId=31378 +Language=English +%1 +. +MessageId=31379 +Language=English +%1 +. +MessageId=31380 +Language=English +%1 +. +MessageId=31381 +Language=English +%1 +. +MessageId=31382 +Language=English +%1 +. +MessageId=31383 +Language=English +%1 +. +MessageId=31384 +Language=English +%1 +. +MessageId=31385 +Language=English +%1 +. +MessageId=31386 +Language=English +%1 +. +MessageId=31387 +Language=English +%1 +. +MessageId=31388 +Language=English +%1 +. +MessageId=31389 +Language=English +%1 +. +MessageId=31390 +Language=English +%1 +. +MessageId=31391 +Language=English +%1 +. +MessageId=31392 +Language=English +%1 +. +MessageId=31393 +Language=English +%1 +. +MessageId=31394 +Language=English +%1 +. +MessageId=31395 +Language=English +%1 +. +MessageId=31396 +Language=English +%1 +. +MessageId=31397 +Language=English +%1 +. +MessageId=31398 +Language=English +%1 +. +MessageId=31399 +Language=English +%1 +. +MessageId=31400 +Language=English +%1 +. +MessageId=31401 +Language=English +%1 +. +MessageId=31402 +Language=English +%1 +. +MessageId=31403 +Language=English +%1 +. +MessageId=31404 +Language=English +%1 +. +MessageId=31405 +Language=English +%1 +. +MessageId=31406 +Language=English +%1 +. +MessageId=31407 +Language=English +%1 +. +MessageId=31408 +Language=English +%1 +. +MessageId=31409 +Language=English +%1 +. +MessageId=31410 +Language=English +%1 +. +MessageId=31411 +Language=English +%1 +. +MessageId=31412 +Language=English +%1 +. +MessageId=31413 +Language=English +%1 +. +MessageId=31414 +Language=English +%1 +. +MessageId=31415 +Language=English +%1 +. +MessageId=31416 +Language=English +%1 +. +MessageId=31417 +Language=English +%1 +. +MessageId=31418 +Language=English +%1 +. +MessageId=31419 +Language=English +%1 +. +MessageId=31420 +Language=English +%1 +. +MessageId=31421 +Language=English +%1 +. +MessageId=31422 +Language=English +%1 +. +MessageId=31423 +Language=English +%1 +. +MessageId=31424 +Language=English +%1 +. +MessageId=31425 +Language=English +%1 +. +MessageId=31426 +Language=English +%1 +. +MessageId=31427 +Language=English +%1 +. +MessageId=31428 +Language=English +%1 +. +MessageId=31429 +Language=English +%1 +. +MessageId=31430 +Language=English +%1 +. +MessageId=31431 +Language=English +%1 +. +MessageId=31432 +Language=English +%1 +. +MessageId=31433 +Language=English +%1 +. +MessageId=31434 +Language=English +%1 +. +MessageId=31435 +Language=English +%1 +. +MessageId=31436 +Language=English +%1 +. +MessageId=31437 +Language=English +%1 +. +MessageId=31438 +Language=English +%1 +. +MessageId=31439 +Language=English +%1 +. +MessageId=31440 +Language=English +%1 +. +MessageId=31441 +Language=English +%1 +. +MessageId=31442 +Language=English +%1 +. +MessageId=31443 +Language=English +%1 +. +MessageId=31444 +Language=English +%1 +. +MessageId=31445 +Language=English +%1 +. +MessageId=31446 +Language=English +%1 +. +MessageId=31447 +Language=English +%1 +. +MessageId=31448 +Language=English +%1 +. +MessageId=31449 +Language=English +%1 +. +MessageId=31450 +Language=English +%1 +. +MessageId=31451 +Language=English +%1 +. +MessageId=31452 +Language=English +%1 +. +MessageId=31453 +Language=English +%1 +. +MessageId=31454 +Language=English +%1 +. +MessageId=31455 +Language=English +%1 +. +MessageId=31456 +Language=English +%1 +. +MessageId=31457 +Language=English +%1 +. +MessageId=31458 +Language=English +%1 +. +MessageId=31459 +Language=English +%1 +. +MessageId=31460 +Language=English +%1 +. +MessageId=31461 +Language=English +%1 +. +MessageId=31462 +Language=English +%1 +. +MessageId=31463 +Language=English +%1 +. +MessageId=31464 +Language=English +%1 +. +MessageId=31465 +Language=English +%1 +. +MessageId=31466 +Language=English +%1 +. +MessageId=31467 +Language=English +%1 +. +MessageId=31468 +Language=English +%1 +. +MessageId=31469 +Language=English +%1 +. +MessageId=31470 +Language=English +%1 +. +MessageId=31471 +Language=English +%1 +. +MessageId=31472 +Language=English +%1 +. +MessageId=31473 +Language=English +%1 +. +MessageId=31474 +Language=English +%1 +. +MessageId=31475 +Language=English +%1 +. +MessageId=31476 +Language=English +%1 +. +MessageId=31477 +Language=English +%1 +. +MessageId=31478 +Language=English +%1 +. +MessageId=31479 +Language=English +%1 +. +MessageId=31480 +Language=English +%1 +. +MessageId=31481 +Language=English +%1 +. +MessageId=31482 +Language=English +%1 +. +MessageId=31483 +Language=English +%1 +. +MessageId=31484 +Language=English +%1 +. +MessageId=31485 +Language=English +%1 +. +MessageId=31486 +Language=English +%1 +. +MessageId=31487 +Language=English +%1 +. +MessageId=31488 +Language=English +%1 +. +MessageId=31489 +Language=English +%1 +. +MessageId=31490 +Language=English +%1 +. +MessageId=31491 +Language=English +%1 +. +MessageId=31492 +Language=English +%1 +. +MessageId=31493 +Language=English +%1 +. +MessageId=31494 +Language=English +%1 +. +MessageId=31495 +Language=English +%1 +. +MessageId=31496 +Language=English +%1 +. +MessageId=31497 +Language=English +%1 +. +MessageId=31498 +Language=English +%1 +. +MessageId=31499 +Language=English +%1 +. +MessageId=31500 +Language=English +%1 +. +MessageId=31501 +Language=English +%1 +. +MessageId=31502 +Language=English +%1 +. +MessageId=31503 +Language=English +%1 +. +MessageId=31504 +Language=English +%1 +. +MessageId=31505 +Language=English +%1 +. +MessageId=31506 +Language=English +%1 +. +MessageId=31507 +Language=English +%1 +. +MessageId=31508 +Language=English +%1 +. +MessageId=31509 +Language=English +%1 +. +MessageId=31510 +Language=English +%1 +. +MessageId=31511 +Language=English +%1 +. +MessageId=31512 +Language=English +%1 +. +MessageId=31513 +Language=English +%1 +. +MessageId=31514 +Language=English +%1 +. +MessageId=31515 +Language=English +%1 +. +MessageId=31516 +Language=English +%1 +. +MessageId=31517 +Language=English +%1 +. +MessageId=31518 +Language=English +%1 +. +MessageId=31519 +Language=English +%1 +. +MessageId=31520 +Language=English +%1 +. +MessageId=31521 +Language=English +%1 +. +MessageId=31522 +Language=English +%1 +. +MessageId=31523 +Language=English +%1 +. +MessageId=31524 +Language=English +%1 +. +MessageId=31525 +Language=English +%1 +. +MessageId=31526 +Language=English +%1 +. +MessageId=31527 +Language=English +%1 +. +MessageId=31528 +Language=English +%1 +. +MessageId=31529 +Language=English +%1 +. +MessageId=31530 +Language=English +%1 +. +MessageId=31531 +Language=English +%1 +. +MessageId=31532 +Language=English +%1 +. +MessageId=31533 +Language=English +%1 +. +MessageId=31534 +Language=English +%1 +. +MessageId=31535 +Language=English +%1 +. +MessageId=31536 +Language=English +%1 +. +MessageId=31537 +Language=English +%1 +. +MessageId=31538 +Language=English +%1 +. +MessageId=31539 +Language=English +%1 +. +MessageId=31540 +Language=English +%1 +. +MessageId=31541 +Language=English +%1 +. +MessageId=31542 +Language=English +%1 +. +MessageId=31543 +Language=English +%1 +. +MessageId=31544 +Language=English +%1 +. +MessageId=31545 +Language=English +%1 +. +MessageId=31546 +Language=English +%1 +. +MessageId=31547 +Language=English +%1 +. +MessageId=31548 +Language=English +%1 +. +MessageId=31549 +Language=English +%1 +. +MessageId=31550 +Language=English +%1 +. +MessageId=31551 +Language=English +%1 +. +MessageId=31552 +Language=English +%1 +. +MessageId=31553 +Language=English +%1 +. +MessageId=31554 +Language=English +%1 +. +MessageId=31555 +Language=English +%1 +. +MessageId=31556 +Language=English +%1 +. +MessageId=31557 +Language=English +%1 +. +MessageId=31558 +Language=English +%1 +. +MessageId=31559 +Language=English +%1 +. +MessageId=31560 +Language=English +%1 +. +MessageId=31561 +Language=English +%1 +. +MessageId=31562 +Language=English +%1 +. +MessageId=31563 +Language=English +%1 +. +MessageId=31564 +Language=English +%1 +. +MessageId=31565 +Language=English +%1 +. +MessageId=31566 +Language=English +%1 +. +MessageId=31567 +Language=English +%1 +. +MessageId=31568 +Language=English +%1 +. +MessageId=31569 +Language=English +%1 +. +MessageId=31570 +Language=English +%1 +. +MessageId=31571 +Language=English +%1 +. +MessageId=31572 +Language=English +%1 +. +MessageId=31573 +Language=English +%1 +. +MessageId=31574 +Language=English +%1 +. +MessageId=31575 +Language=English +%1 +. +MessageId=31576 +Language=English +%1 +. +MessageId=31577 +Language=English +%1 +. +MessageId=31578 +Language=English +%1 +. +MessageId=31579 +Language=English +%1 +. +MessageId=31580 +Language=English +%1 +. +MessageId=31581 +Language=English +%1 +. +MessageId=31582 +Language=English +%1 +. +MessageId=31583 +Language=English +%1 +. +MessageId=31584 +Language=English +%1 +. +MessageId=31585 +Language=English +%1 +. +MessageId=31586 +Language=English +%1 +. +MessageId=31587 +Language=English +%1 +. +MessageId=31588 +Language=English +%1 +. +MessageId=31589 +Language=English +%1 +. +MessageId=31590 +Language=English +%1 +. +MessageId=31591 +Language=English +%1 +. +MessageId=31592 +Language=English +%1 +. +MessageId=31593 +Language=English +%1 +. +MessageId=31594 +Language=English +%1 +. +MessageId=31595 +Language=English +%1 +. +MessageId=31596 +Language=English +%1 +. +MessageId=31597 +Language=English +%1 +. +MessageId=31598 +Language=English +%1 +. +MessageId=31599 +Language=English +%1 +. +MessageId=31600 +Language=English +%1 +. +MessageId=31601 +Language=English +%1 +. +MessageId=31602 +Language=English +%1 +. +MessageId=31603 +Language=English +%1 +. +MessageId=31604 +Language=English +%1 +. +MessageId=31605 +Language=English +%1 +. +MessageId=31606 +Language=English +%1 +. +MessageId=31607 +Language=English +%1 +. +MessageId=31608 +Language=English +%1 +. +MessageId=31609 +Language=English +%1 +. +MessageId=31610 +Language=English +%1 +. +MessageId=31611 +Language=English +%1 +. +MessageId=31612 +Language=English +%1 +. +MessageId=31613 +Language=English +%1 +. +MessageId=31614 +Language=English +%1 +. +MessageId=31615 +Language=English +%1 +. +MessageId=31616 +Language=English +%1 +. +MessageId=31617 +Language=English +%1 +. +MessageId=31618 +Language=English +%1 +. +MessageId=31619 +Language=English +%1 +. +MessageId=31620 +Language=English +%1 +. +MessageId=31621 +Language=English +%1 +. +MessageId=31622 +Language=English +%1 +. +MessageId=31623 +Language=English +%1 +. +MessageId=31624 +Language=English +%1 +. +MessageId=31625 +Language=English +%1 +. +MessageId=31626 +Language=English +%1 +. +MessageId=31627 +Language=English +%1 +. +MessageId=31628 +Language=English +%1 +. +MessageId=31629 +Language=English +%1 +. +MessageId=31630 +Language=English +%1 +. +MessageId=31631 +Language=English +%1 +. +MessageId=31632 +Language=English +%1 +. +MessageId=31633 +Language=English +%1 +. +MessageId=31634 +Language=English +%1 +. +MessageId=31635 +Language=English +%1 +. +MessageId=31636 +Language=English +%1 +. +MessageId=31637 +Language=English +%1 +. +MessageId=31638 +Language=English +%1 +. +MessageId=31639 +Language=English +%1 +. +MessageId=31640 +Language=English +%1 +. +MessageId=31641 +Language=English +%1 +. +MessageId=31642 +Language=English +%1 +. +MessageId=31643 +Language=English +%1 +. +MessageId=31644 +Language=English +%1 +. +MessageId=31645 +Language=English +%1 +. +MessageId=31646 +Language=English +%1 +. +MessageId=31647 +Language=English +%1 +. +MessageId=31648 +Language=English +%1 +. +MessageId=31649 +Language=English +%1 +. +MessageId=31650 +Language=English +%1 +. +MessageId=31651 +Language=English +%1 +. +MessageId=31652 +Language=English +%1 +. +MessageId=31653 +Language=English +%1 +. +MessageId=31654 +Language=English +%1 +. +MessageId=31655 +Language=English +%1 +. +MessageId=31656 +Language=English +%1 +. +MessageId=31657 +Language=English +%1 +. +MessageId=31658 +Language=English +%1 +. +MessageId=31659 +Language=English +%1 +. +MessageId=31660 +Language=English +%1 +. +MessageId=31661 +Language=English +%1 +. +MessageId=31662 +Language=English +%1 +. +MessageId=31663 +Language=English +%1 +. +MessageId=31664 +Language=English +%1 +. +MessageId=31665 +Language=English +%1 +. +MessageId=31666 +Language=English +%1 +. +MessageId=31667 +Language=English +%1 +. +MessageId=31668 +Language=English +%1 +. +MessageId=31669 +Language=English +%1 +. +MessageId=31670 +Language=English +%1 +. +MessageId=31671 +Language=English +%1 +. +MessageId=31672 +Language=English +%1 +. +MessageId=31673 +Language=English +%1 +. +MessageId=31674 +Language=English +%1 +. +MessageId=31675 +Language=English +%1 +. +MessageId=31676 +Language=English +%1 +. +MessageId=31677 +Language=English +%1 +. +MessageId=31678 +Language=English +%1 +. +MessageId=31679 +Language=English +%1 +. +MessageId=31680 +Language=English +%1 +. +MessageId=31681 +Language=English +%1 +. +MessageId=31682 +Language=English +%1 +. +MessageId=31683 +Language=English +%1 +. +MessageId=31684 +Language=English +%1 +. +MessageId=31685 +Language=English +%1 +. +MessageId=31686 +Language=English +%1 +. +MessageId=31687 +Language=English +%1 +. +MessageId=31688 +Language=English +%1 +. +MessageId=31689 +Language=English +%1 +. +MessageId=31690 +Language=English +%1 +. +MessageId=31691 +Language=English +%1 +. +MessageId=31692 +Language=English +%1 +. +MessageId=31693 +Language=English +%1 +. +MessageId=31694 +Language=English +%1 +. +MessageId=31695 +Language=English +%1 +. +MessageId=31696 +Language=English +%1 +. +MessageId=31697 +Language=English +%1 +. +MessageId=31698 +Language=English +%1 +. +MessageId=31699 +Language=English +%1 +. +MessageId=31700 +Language=English +%1 +. +MessageId=31701 +Language=English +%1 +. +MessageId=31702 +Language=English +%1 +. +MessageId=31703 +Language=English +%1 +. +MessageId=31704 +Language=English +%1 +. +MessageId=31705 +Language=English +%1 +. +MessageId=31706 +Language=English +%1 +. +MessageId=31707 +Language=English +%1 +. +MessageId=31708 +Language=English +%1 +. +MessageId=31709 +Language=English +%1 +. +MessageId=31710 +Language=English +%1 +. +MessageId=31711 +Language=English +%1 +. +MessageId=31712 +Language=English +%1 +. +MessageId=31713 +Language=English +%1 +. +MessageId=31714 +Language=English +%1 +. +MessageId=31715 +Language=English +%1 +. +MessageId=31716 +Language=English +%1 +. +MessageId=31717 +Language=English +%1 +. +MessageId=31718 +Language=English +%1 +. +MessageId=31719 +Language=English +%1 +. +MessageId=31720 +Language=English +%1 +. +MessageId=31721 +Language=English +%1 +. +MessageId=31722 +Language=English +%1 +. +MessageId=31723 +Language=English +%1 +. +MessageId=31724 +Language=English +%1 +. +MessageId=31725 +Language=English +%1 +. +MessageId=31726 +Language=English +%1 +. +MessageId=31727 +Language=English +%1 +. +MessageId=31728 +Language=English +%1 +. +MessageId=31729 +Language=English +%1 +. +MessageId=31730 +Language=English +%1 +. +MessageId=31731 +Language=English +%1 +. +MessageId=31732 +Language=English +%1 +. +MessageId=31733 +Language=English +%1 +. +MessageId=31734 +Language=English +%1 +. +MessageId=31735 +Language=English +%1 +. +MessageId=31736 +Language=English +%1 +. +MessageId=31737 +Language=English +%1 +. +MessageId=31738 +Language=English +%1 +. +MessageId=31739 +Language=English +%1 +. +MessageId=31740 +Language=English +%1 +. +MessageId=31741 +Language=English +%1 +. +MessageId=31742 +Language=English +%1 +. +MessageId=31743 +Language=English +%1 +. +MessageId=31744 +Language=English +%1 +. +MessageId=31745 +Language=English +%1 +. +MessageId=31746 +Language=English +%1 +. +MessageId=31747 +Language=English +%1 +. +MessageId=31748 +Language=English +%1 +. +MessageId=31749 +Language=English +%1 +. +MessageId=31750 +Language=English +%1 +. +MessageId=31751 +Language=English +%1 +. +MessageId=31752 +Language=English +%1 +. +MessageId=31753 +Language=English +%1 +. +MessageId=31754 +Language=English +%1 +. +MessageId=31755 +Language=English +%1 +. +MessageId=31756 +Language=English +%1 +. +MessageId=31757 +Language=English +%1 +. +MessageId=31758 +Language=English +%1 +. +MessageId=31759 +Language=English +%1 +. +MessageId=31760 +Language=English +%1 +. +MessageId=31761 +Language=English +%1 +. +MessageId=31762 +Language=English +%1 +. +MessageId=31763 +Language=English +%1 +. +MessageId=31764 +Language=English +%1 +. +MessageId=31765 +Language=English +%1 +. +MessageId=31766 +Language=English +%1 +. +MessageId=31767 +Language=English +%1 +. +MessageId=31768 +Language=English +%1 +. +MessageId=31769 +Language=English +%1 +. +MessageId=31770 +Language=English +%1 +. +MessageId=31771 +Language=English +%1 +. +MessageId=31772 +Language=English +%1 +. +MessageId=31773 +Language=English +%1 +. +MessageId=31774 +Language=English +%1 +. +MessageId=31775 +Language=English +%1 +. +MessageId=31776 +Language=English +%1 +. +MessageId=31777 +Language=English +%1 +. +MessageId=31778 +Language=English +%1 +. +MessageId=31779 +Language=English +%1 +. +MessageId=31780 +Language=English +%1 +. +MessageId=31781 +Language=English +%1 +. +MessageId=31782 +Language=English +%1 +. +MessageId=31783 +Language=English +%1 +. +MessageId=31784 +Language=English +%1 +. +MessageId=31785 +Language=English +%1 +. +MessageId=31786 +Language=English +%1 +. +MessageId=31787 +Language=English +%1 +. +MessageId=31788 +Language=English +%1 +. +MessageId=31789 +Language=English +%1 +. +MessageId=31790 +Language=English +%1 +. +MessageId=31791 +Language=English +%1 +. +MessageId=31792 +Language=English +%1 +. +MessageId=31793 +Language=English +%1 +. +MessageId=31794 +Language=English +%1 +. +MessageId=31795 +Language=English +%1 +. +MessageId=31796 +Language=English +%1 +. +MessageId=31797 +Language=English +%1 +. +MessageId=31798 +Language=English +%1 +. +MessageId=31799 +Language=English +%1 +. +MessageId=31800 +Language=English +%1 +. +MessageId=31801 +Language=English +%1 +. +MessageId=31802 +Language=English +%1 +. +MessageId=31803 +Language=English +%1 +. +MessageId=31804 +Language=English +%1 +. +MessageId=31805 +Language=English +%1 +. +MessageId=31806 +Language=English +%1 +. +MessageId=31807 +Language=English +%1 +. +MessageId=31808 +Language=English +%1 +. +MessageId=31809 +Language=English +%1 +. +MessageId=31810 +Language=English +%1 +. +MessageId=31811 +Language=English +%1 +. +MessageId=31812 +Language=English +%1 +. +MessageId=31813 +Language=English +%1 +. +MessageId=31814 +Language=English +%1 +. +MessageId=31815 +Language=English +%1 +. +MessageId=31816 +Language=English +%1 +. +MessageId=31817 +Language=English +%1 +. +MessageId=31818 +Language=English +%1 +. +MessageId=31819 +Language=English +%1 +. +MessageId=31820 +Language=English +%1 +. +MessageId=31821 +Language=English +%1 +. +MessageId=31822 +Language=English +%1 +. +MessageId=31823 +Language=English +%1 +. +MessageId=31824 +Language=English +%1 +. +MessageId=31825 +Language=English +%1 +. +MessageId=31826 +Language=English +%1 +. +MessageId=31827 +Language=English +%1 +. +MessageId=31828 +Language=English +%1 +. +MessageId=31829 +Language=English +%1 +. +MessageId=31830 +Language=English +%1 +. +MessageId=31831 +Language=English +%1 +. +MessageId=31832 +Language=English +%1 +. +MessageId=31833 +Language=English +%1 +. +MessageId=31834 +Language=English +%1 +. +MessageId=31835 +Language=English +%1 +. +MessageId=31836 +Language=English +%1 +. +MessageId=31837 +Language=English +%1 +. +MessageId=31838 +Language=English +%1 +. +MessageId=31839 +Language=English +%1 +. +MessageId=31840 +Language=English +%1 +. +MessageId=31841 +Language=English +%1 +. +MessageId=31842 +Language=English +%1 +. +MessageId=31843 +Language=English +%1 +. +MessageId=31844 +Language=English +%1 +. +MessageId=31845 +Language=English +%1 +. +MessageId=31846 +Language=English +%1 +. +MessageId=31847 +Language=English +%1 +. +MessageId=31848 +Language=English +%1 +. +MessageId=31849 +Language=English +%1 +. +MessageId=31850 +Language=English +%1 +. +MessageId=31851 +Language=English +%1 +. +MessageId=31852 +Language=English +%1 +. +MessageId=31853 +Language=English +%1 +. +MessageId=31854 +Language=English +%1 +. +MessageId=31855 +Language=English +%1 +. +MessageId=31856 +Language=English +%1 +. +MessageId=31857 +Language=English +%1 +. +MessageId=31858 +Language=English +%1 +. +MessageId=31859 +Language=English +%1 +. +MessageId=31860 +Language=English +%1 +. +MessageId=31861 +Language=English +%1 +. +MessageId=31862 +Language=English +%1 +. +MessageId=31863 +Language=English +%1 +. +MessageId=31864 +Language=English +%1 +. +MessageId=31865 +Language=English +%1 +. +MessageId=31866 +Language=English +%1 +. +MessageId=31867 +Language=English +%1 +. +MessageId=31868 +Language=English +%1 +. +MessageId=31869 +Language=English +%1 +. +MessageId=31870 +Language=English +%1 +. +MessageId=31871 +Language=English +%1 +. +MessageId=31872 +Language=English +%1 +. +MessageId=31873 +Language=English +%1 +. +MessageId=31874 +Language=English +%1 +. +MessageId=31875 +Language=English +%1 +. +MessageId=31876 +Language=English +%1 +. +MessageId=31877 +Language=English +%1 +. +MessageId=31878 +Language=English +%1 +. +MessageId=31879 +Language=English +%1 +. +MessageId=31880 +Language=English +%1 +. +MessageId=31881 +Language=English +%1 +. +MessageId=31882 +Language=English +%1 +. +MessageId=31883 +Language=English +%1 +. +MessageId=31884 +Language=English +%1 +. +MessageId=31885 +Language=English +%1 +. +MessageId=31886 +Language=English +%1 +. +MessageId=31887 +Language=English +%1 +. +MessageId=31888 +Language=English +%1 +. +MessageId=31889 +Language=English +%1 +. +MessageId=31890 +Language=English +%1 +. +MessageId=31891 +Language=English +%1 +. +MessageId=31892 +Language=English +%1 +. +MessageId=31893 +Language=English +%1 +. +MessageId=31894 +Language=English +%1 +. +MessageId=31895 +Language=English +%1 +. +MessageId=31896 +Language=English +%1 +. +MessageId=31897 +Language=English +%1 +. +MessageId=31898 +Language=English +%1 +. +MessageId=31899 +Language=English +%1 +. +MessageId=31900 +Language=English +%1 +. +MessageId=31901 +Language=English +%1 +. +MessageId=31902 +Language=English +%1 +. +MessageId=31903 +Language=English +%1 +. +MessageId=31904 +Language=English +%1 +. +MessageId=31905 +Language=English +%1 +. +MessageId=31906 +Language=English +%1 +. +MessageId=31907 +Language=English +%1 +. +MessageId=31908 +Language=English +%1 +. +MessageId=31909 +Language=English +%1 +. +MessageId=31910 +Language=English +%1 +. +MessageId=31911 +Language=English +%1 +. +MessageId=31912 +Language=English +%1 +. +MessageId=31913 +Language=English +%1 +. +MessageId=31914 +Language=English +%1 +. +MessageId=31915 +Language=English +%1 +. +MessageId=31916 +Language=English +%1 +. +MessageId=31917 +Language=English +%1 +. +MessageId=31918 +Language=English +%1 +. +MessageId=31919 +Language=English +%1 +. +MessageId=31920 +Language=English +%1 +. +MessageId=31921 +Language=English +%1 +. +MessageId=31922 +Language=English +%1 +. +MessageId=31923 +Language=English +%1 +. +MessageId=31924 +Language=English +%1 +. +MessageId=31925 +Language=English +%1 +. +MessageId=31926 +Language=English +%1 +. +MessageId=31927 +Language=English +%1 +. +MessageId=31928 +Language=English +%1 +. +MessageId=31929 +Language=English +%1 +. +MessageId=31930 +Language=English +%1 +. +MessageId=31931 +Language=English +%1 +. +MessageId=31932 +Language=English +%1 +. +MessageId=31933 +Language=English +%1 +. +MessageId=31934 +Language=English +%1 +. +MessageId=31935 +Language=English +%1 +. +MessageId=31936 +Language=English +%1 +. +MessageId=31937 +Language=English +%1 +. +MessageId=31938 +Language=English +%1 +. +MessageId=31939 +Language=English +%1 +. +MessageId=31940 +Language=English +%1 +. +MessageId=31941 +Language=English +%1 +. +MessageId=31942 +Language=English +%1 +. +MessageId=31943 +Language=English +%1 +. +MessageId=31944 +Language=English +%1 +. +MessageId=31945 +Language=English +%1 +. +MessageId=31946 +Language=English +%1 +. +MessageId=31947 +Language=English +%1 +. +MessageId=31948 +Language=English +%1 +. +MessageId=31949 +Language=English +%1 +. +MessageId=31950 +Language=English +%1 +. +MessageId=31951 +Language=English +%1 +. +MessageId=31952 +Language=English +%1 +. +MessageId=31953 +Language=English +%1 +. +MessageId=31954 +Language=English +%1 +. +MessageId=31955 +Language=English +%1 +. +MessageId=31956 +Language=English +%1 +. +MessageId=31957 +Language=English +%1 +. +MessageId=31958 +Language=English +%1 +. +MessageId=31959 +Language=English +%1 +. +MessageId=31960 +Language=English +%1 +. +MessageId=31961 +Language=English +%1 +. +MessageId=31962 +Language=English +%1 +. +MessageId=31963 +Language=English +%1 +. +MessageId=31964 +Language=English +%1 +. +MessageId=31965 +Language=English +%1 +. +MessageId=31966 +Language=English +%1 +. +MessageId=31967 +Language=English +%1 +. +MessageId=31968 +Language=English +%1 +. +MessageId=31969 +Language=English +%1 +. +MessageId=31970 +Language=English +%1 +. +MessageId=31971 +Language=English +%1 +. +MessageId=31972 +Language=English +%1 +. +MessageId=31973 +Language=English +%1 +. +MessageId=31974 +Language=English +%1 +. +MessageId=31975 +Language=English +%1 +. +MessageId=31976 +Language=English +%1 +. +MessageId=31977 +Language=English +%1 +. +MessageId=31978 +Language=English +%1 +. +MessageId=31979 +Language=English +%1 +. +MessageId=31980 +Language=English +%1 +. +MessageId=31981 +Language=English +%1 +. +MessageId=31982 +Language=English +%1 +. +MessageId=31983 +Language=English +%1 +. +MessageId=31984 +Language=English +%1 +. +MessageId=31985 +Language=English +%1 +. +MessageId=31986 +Language=English +%1 +. +MessageId=31987 +Language=English +%1 +. +MessageId=31988 +Language=English +%1 +. +MessageId=31989 +Language=English +%1 +. +MessageId=31990 +Language=English +%1 +. +MessageId=31991 +Language=English +%1 +. +MessageId=31992 +Language=English +%1 +. +MessageId=31993 +Language=English +%1 +. +MessageId=31994 +Language=English +%1 +. +MessageId=31995 +Language=English +%1 +. +MessageId=31996 +Language=English +%1 +. +MessageId=31997 +Language=English +%1 +. +MessageId=31998 +Language=English +%1 +. +MessageId=31999 +Language=English +%1 +. +MessageId=32000 +Language=English +%1 +. +MessageId=32001 +Language=English +%1 +. +MessageId=32002 +Language=English +%1 +. +MessageId=32003 +Language=English +%1 +. +MessageId=32004 +Language=English +%1 +. +MessageId=32005 +Language=English +%1 +. +MessageId=32006 +Language=English +%1 +. +MessageId=32007 +Language=English +%1 +. +MessageId=32008 +Language=English +%1 +. +MessageId=32009 +Language=English +%1 +. +MessageId=32010 +Language=English +%1 +. +MessageId=32011 +Language=English +%1 +. +MessageId=32012 +Language=English +%1 +. +MessageId=32013 +Language=English +%1 +. +MessageId=32014 +Language=English +%1 +. +MessageId=32015 +Language=English +%1 +. +MessageId=32016 +Language=English +%1 +. +MessageId=32017 +Language=English +%1 +. +MessageId=32018 +Language=English +%1 +. +MessageId=32019 +Language=English +%1 +. +MessageId=32020 +Language=English +%1 +. +MessageId=32021 +Language=English +%1 +. +MessageId=32022 +Language=English +%1 +. +MessageId=32023 +Language=English +%1 +. +MessageId=32024 +Language=English +%1 +. +MessageId=32025 +Language=English +%1 +. +MessageId=32026 +Language=English +%1 +. +MessageId=32027 +Language=English +%1 +. +MessageId=32028 +Language=English +%1 +. +MessageId=32029 +Language=English +%1 +. +MessageId=32030 +Language=English +%1 +. +MessageId=32031 +Language=English +%1 +. +MessageId=32032 +Language=English +%1 +. +MessageId=32033 +Language=English +%1 +. +MessageId=32034 +Language=English +%1 +. +MessageId=32035 +Language=English +%1 +. +MessageId=32036 +Language=English +%1 +. +MessageId=32037 +Language=English +%1 +. +MessageId=32038 +Language=English +%1 +. +MessageId=32039 +Language=English +%1 +. +MessageId=32040 +Language=English +%1 +. +MessageId=32041 +Language=English +%1 +. +MessageId=32042 +Language=English +%1 +. +MessageId=32043 +Language=English +%1 +. +MessageId=32044 +Language=English +%1 +. +MessageId=32045 +Language=English +%1 +. +MessageId=32046 +Language=English +%1 +. +MessageId=32047 +Language=English +%1 +. +MessageId=32048 +Language=English +%1 +. +MessageId=32049 +Language=English +%1 +. +MessageId=32050 +Language=English +%1 +. +MessageId=32051 +Language=English +%1 +. +MessageId=32052 +Language=English +%1 +. +MessageId=32053 +Language=English +%1 +. +MessageId=32054 +Language=English +%1 +. +MessageId=32055 +Language=English +%1 +. +MessageId=32056 +Language=English +%1 +. +MessageId=32057 +Language=English +%1 +. +MessageId=32058 +Language=English +%1 +. +MessageId=32059 +Language=English +%1 +. +MessageId=32060 +Language=English +%1 +. +MessageId=32061 +Language=English +%1 +. +MessageId=32062 +Language=English +%1 +. +MessageId=32063 +Language=English +%1 +. +MessageId=32064 +Language=English +%1 +. +MessageId=32065 +Language=English +%1 +. +MessageId=32066 +Language=English +%1 +. +MessageId=32067 +Language=English +%1 +. +MessageId=32068 +Language=English +%1 +. +MessageId=32069 +Language=English +%1 +. +MessageId=32070 +Language=English +%1 +. +MessageId=32071 +Language=English +%1 +. +MessageId=32072 +Language=English +%1 +. +MessageId=32073 +Language=English +%1 +. +MessageId=32074 +Language=English +%1 +. +MessageId=32075 +Language=English +%1 +. +MessageId=32076 +Language=English +%1 +. +MessageId=32077 +Language=English +%1 +. +MessageId=32078 +Language=English +%1 +. +MessageId=32079 +Language=English +%1 +. +MessageId=32080 +Language=English +%1 +. +MessageId=32081 +Language=English +%1 +. +MessageId=32082 +Language=English +%1 +. +MessageId=32083 +Language=English +%1 +. +MessageId=32084 +Language=English +%1 +. +MessageId=32085 +Language=English +%1 +. +MessageId=32086 +Language=English +%1 +. +MessageId=32087 +Language=English +%1 +. +MessageId=32088 +Language=English +%1 +. +MessageId=32089 +Language=English +%1 +. +MessageId=32090 +Language=English +%1 +. +MessageId=32091 +Language=English +%1 +. +MessageId=32092 +Language=English +%1 +. +MessageId=32093 +Language=English +%1 +. +MessageId=32094 +Language=English +%1 +. +MessageId=32095 +Language=English +%1 +. +MessageId=32096 +Language=English +%1 +. +MessageId=32097 +Language=English +%1 +. +MessageId=32098 +Language=English +%1 +. +MessageId=32099 +Language=English +%1 +. +MessageId=32100 +Language=English +%1 +. +MessageId=32101 +Language=English +%1 +. +MessageId=32102 +Language=English +%1 +. +MessageId=32103 +Language=English +%1 +. +MessageId=32104 +Language=English +%1 +. +MessageId=32105 +Language=English +%1 +. +MessageId=32106 +Language=English +%1 +. +MessageId=32107 +Language=English +%1 +. +MessageId=32108 +Language=English +%1 +. +MessageId=32109 +Language=English +%1 +. +MessageId=32110 +Language=English +%1 +. +MessageId=32111 +Language=English +%1 +. +MessageId=32112 +Language=English +%1 +. +MessageId=32113 +Language=English +%1 +. +MessageId=32114 +Language=English +%1 +. +MessageId=32115 +Language=English +%1 +. +MessageId=32116 +Language=English +%1 +. +MessageId=32117 +Language=English +%1 +. +MessageId=32118 +Language=English +%1 +. +MessageId=32119 +Language=English +%1 +. +MessageId=32120 +Language=English +%1 +. +MessageId=32121 +Language=English +%1 +. +MessageId=32122 +Language=English +%1 +. +MessageId=32123 +Language=English +%1 +. +MessageId=32124 +Language=English +%1 +. +MessageId=32125 +Language=English +%1 +. +MessageId=32126 +Language=English +%1 +. +MessageId=32127 +Language=English +%1 +. +MessageId=32128 +Language=English +%1 +. +MessageId=32129 +Language=English +%1 +. +MessageId=32130 +Language=English +%1 +. +MessageId=32131 +Language=English +%1 +. +MessageId=32132 +Language=English +%1 +. +MessageId=32133 +Language=English +%1 +. +MessageId=32134 +Language=English +%1 +. +MessageId=32135 +Language=English +%1 +. +MessageId=32136 +Language=English +%1 +. +MessageId=32137 +Language=English +%1 +. +MessageId=32138 +Language=English +%1 +. +MessageId=32139 +Language=English +%1 +. +MessageId=32140 +Language=English +%1 +. +MessageId=32141 +Language=English +%1 +. +MessageId=32142 +Language=English +%1 +. +MessageId=32143 +Language=English +%1 +. +MessageId=32144 +Language=English +%1 +. +MessageId=32145 +Language=English +%1 +. +MessageId=32146 +Language=English +%1 +. +MessageId=32147 +Language=English +%1 +. +MessageId=32148 +Language=English +%1 +. +MessageId=32149 +Language=English +%1 +. +MessageId=32150 +Language=English +%1 +. +MessageId=32151 +Language=English +%1 +. +MessageId=32152 +Language=English +%1 +. +MessageId=32153 +Language=English +%1 +. +MessageId=32154 +Language=English +%1 +. +MessageId=32155 +Language=English +%1 +. +MessageId=32156 +Language=English +%1 +. +MessageId=32157 +Language=English +%1 +. +MessageId=32158 +Language=English +%1 +. +MessageId=32159 +Language=English +%1 +. +MessageId=32160 +Language=English +%1 +. +MessageId=32161 +Language=English +%1 +. +MessageId=32162 +Language=English +%1 +. +MessageId=32163 +Language=English +%1 +. +MessageId=32164 +Language=English +%1 +. +MessageId=32165 +Language=English +%1 +. +MessageId=32166 +Language=English +%1 +. +MessageId=32167 +Language=English +%1 +. +MessageId=32168 +Language=English +%1 +. +MessageId=32169 +Language=English +%1 +. +MessageId=32170 +Language=English +%1 +. +MessageId=32171 +Language=English +%1 +. +MessageId=32172 +Language=English +%1 +. +MessageId=32173 +Language=English +%1 +. +MessageId=32174 +Language=English +%1 +. +MessageId=32175 +Language=English +%1 +. +MessageId=32176 +Language=English +%1 +. +MessageId=32177 +Language=English +%1 +. +MessageId=32178 +Language=English +%1 +. +MessageId=32179 +Language=English +%1 +. +MessageId=32180 +Language=English +%1 +. +MessageId=32181 +Language=English +%1 +. +MessageId=32182 +Language=English +%1 +. +MessageId=32183 +Language=English +%1 +. +MessageId=32184 +Language=English +%1 +. +MessageId=32185 +Language=English +%1 +. +MessageId=32186 +Language=English +%1 +. +MessageId=32187 +Language=English +%1 +. +MessageId=32188 +Language=English +%1 +. +MessageId=32189 +Language=English +%1 +. +MessageId=32190 +Language=English +%1 +. +MessageId=32191 +Language=English +%1 +. +MessageId=32192 +Language=English +%1 +. +MessageId=32193 +Language=English +%1 +. +MessageId=32194 +Language=English +%1 +. +MessageId=32195 +Language=English +%1 +. +MessageId=32196 +Language=English +%1 +. +MessageId=32197 +Language=English +%1 +. +MessageId=32198 +Language=English +%1 +. +MessageId=32199 +Language=English +%1 +. +MessageId=32200 +Language=English +%1 +. +MessageId=32201 +Language=English +%1 +. +MessageId=32202 +Language=English +%1 +. +MessageId=32203 +Language=English +%1 +. +MessageId=32204 +Language=English +%1 +. +MessageId=32205 +Language=English +%1 +. +MessageId=32206 +Language=English +%1 +. +MessageId=32207 +Language=English +%1 +. +MessageId=32208 +Language=English +%1 +. +MessageId=32209 +Language=English +%1 +. +MessageId=32210 +Language=English +%1 +. +MessageId=32211 +Language=English +%1 +. +MessageId=32212 +Language=English +%1 +. +MessageId=32213 +Language=English +%1 +. +MessageId=32214 +Language=English +%1 +. +MessageId=32215 +Language=English +%1 +. +MessageId=32216 +Language=English +%1 +. +MessageId=32217 +Language=English +%1 +. +MessageId=32218 +Language=English +%1 +. +MessageId=32219 +Language=English +%1 +. +MessageId=32220 +Language=English +%1 +. +MessageId=32221 +Language=English +%1 +. +MessageId=32222 +Language=English +%1 +. +MessageId=32223 +Language=English +%1 +. +MessageId=32224 +Language=English +%1 +. +MessageId=32225 +Language=English +%1 +. +MessageId=32226 +Language=English +%1 +. +MessageId=32227 +Language=English +%1 +. +MessageId=32228 +Language=English +%1 +. +MessageId=32229 +Language=English +%1 +. +MessageId=32230 +Language=English +%1 +. +MessageId=32231 +Language=English +%1 +. +MessageId=32232 +Language=English +%1 +. +MessageId=32233 +Language=English +%1 +. +MessageId=32234 +Language=English +%1 +. +MessageId=32235 +Language=English +%1 +. +MessageId=32236 +Language=English +%1 +. +MessageId=32237 +Language=English +%1 +. +MessageId=32238 +Language=English +%1 +. +MessageId=32239 +Language=English +%1 +. +MessageId=32240 +Language=English +%1 +. +MessageId=32241 +Language=English +%1 +. +MessageId=32242 +Language=English +%1 +. +MessageId=32243 +Language=English +%1 +. +MessageId=32244 +Language=English +%1 +. +MessageId=32245 +Language=English +%1 +. +MessageId=32246 +Language=English +%1 +. +MessageId=32247 +Language=English +%1 +. +MessageId=32248 +Language=English +%1 +. +MessageId=32249 +Language=English +%1 +. +MessageId=32250 +Language=English +%1 +. +MessageId=32251 +Language=English +%1 +. +MessageId=32252 +Language=English +%1 +. +MessageId=32253 +Language=English +%1 +. +MessageId=32254 +Language=English +%1 +. +MessageId=32255 +Language=English +%1 +. +MessageId=32256 +Language=English +%1 +. +MessageId=32257 +Language=English +%1 +. +MessageId=32258 +Language=English +%1 +. +MessageId=32259 +Language=English +%1 +. +MessageId=32260 +Language=English +%1 +. +MessageId=32261 +Language=English +%1 +. +MessageId=32262 +Language=English +%1 +. +MessageId=32263 +Language=English +%1 +. +MessageId=32264 +Language=English +%1 +. +MessageId=32265 +Language=English +%1 +. +MessageId=32266 +Language=English +%1 +. +MessageId=32267 +Language=English +%1 +. +MessageId=32268 +Language=English +%1 +. +MessageId=32269 +Language=English +%1 +. +MessageId=32270 +Language=English +%1 +. +MessageId=32271 +Language=English +%1 +. +MessageId=32272 +Language=English +%1 +. +MessageId=32273 +Language=English +%1 +. +MessageId=32274 +Language=English +%1 +. +MessageId=32275 +Language=English +%1 +. +MessageId=32276 +Language=English +%1 +. +MessageId=32277 +Language=English +%1 +. +MessageId=32278 +Language=English +%1 +. +MessageId=32279 +Language=English +%1 +. +MessageId=32280 +Language=English +%1 +. +MessageId=32281 +Language=English +%1 +. +MessageId=32282 +Language=English +%1 +. +MessageId=32283 +Language=English +%1 +. +MessageId=32284 +Language=English +%1 +. +MessageId=32285 +Language=English +%1 +. +MessageId=32286 +Language=English +%1 +. +MessageId=32287 +Language=English +%1 +. +MessageId=32288 +Language=English +%1 +. +MessageId=32289 +Language=English +%1 +. +MessageId=32290 +Language=English +%1 +. +MessageId=32291 +Language=English +%1 +. +MessageId=32292 +Language=English +%1 +. +MessageId=32293 +Language=English +%1 +. +MessageId=32294 +Language=English +%1 +. +MessageId=32295 +Language=English +%1 +. +MessageId=32296 +Language=English +%1 +. +MessageId=32297 +Language=English +%1 +. +MessageId=32298 +Language=English +%1 +. +MessageId=32299 +Language=English +%1 +. +MessageId=32300 +Language=English +%1 +. +MessageId=32301 +Language=English +%1 +. +MessageId=32302 +Language=English +%1 +. +MessageId=32303 +Language=English +%1 +. +MessageId=32304 +Language=English +%1 +. +MessageId=32305 +Language=English +%1 +. +MessageId=32306 +Language=English +%1 +. +MessageId=32307 +Language=English +%1 +. +MessageId=32308 +Language=English +%1 +. +MessageId=32309 +Language=English +%1 +. +MessageId=32310 +Language=English +%1 +. +MessageId=32311 +Language=English +%1 +. +MessageId=32312 +Language=English +%1 +. +MessageId=32313 +Language=English +%1 +. +MessageId=32314 +Language=English +%1 +. +MessageId=32315 +Language=English +%1 +. +MessageId=32316 +Language=English +%1 +. +MessageId=32317 +Language=English +%1 +. +MessageId=32318 +Language=English +%1 +. +MessageId=32319 +Language=English +%1 +. +MessageId=32320 +Language=English +%1 +. +MessageId=32321 +Language=English +%1 +. +MessageId=32322 +Language=English +%1 +. +MessageId=32323 +Language=English +%1 +. +MessageId=32324 +Language=English +%1 +. +MessageId=32325 +Language=English +%1 +. +MessageId=32326 +Language=English +%1 +. +MessageId=32327 +Language=English +%1 +. +MessageId=32328 +Language=English +%1 +. +MessageId=32329 +Language=English +%1 +. +MessageId=32330 +Language=English +%1 +. +MessageId=32331 +Language=English +%1 +. +MessageId=32332 +Language=English +%1 +. +MessageId=32333 +Language=English +%1 +. +MessageId=32334 +Language=English +%1 +. +MessageId=32335 +Language=English +%1 +. +MessageId=32336 +Language=English +%1 +. +MessageId=32337 +Language=English +%1 +. +MessageId=32338 +Language=English +%1 +. +MessageId=32339 +Language=English +%1 +. +MessageId=32340 +Language=English +%1 +. +MessageId=32341 +Language=English +%1 +. +MessageId=32342 +Language=English +%1 +. +MessageId=32343 +Language=English +%1 +. +MessageId=32344 +Language=English +%1 +. +MessageId=32345 +Language=English +%1 +. +MessageId=32346 +Language=English +%1 +. +MessageId=32347 +Language=English +%1 +. +MessageId=32348 +Language=English +%1 +. +MessageId=32349 +Language=English +%1 +. +MessageId=32350 +Language=English +%1 +. +MessageId=32351 +Language=English +%1 +. +MessageId=32352 +Language=English +%1 +. +MessageId=32353 +Language=English +%1 +. +MessageId=32354 +Language=English +%1 +. +MessageId=32355 +Language=English +%1 +. +MessageId=32356 +Language=English +%1 +. +MessageId=32357 +Language=English +%1 +. +MessageId=32358 +Language=English +%1 +. +MessageId=32359 +Language=English +%1 +. +MessageId=32360 +Language=English +%1 +. +MessageId=32361 +Language=English +%1 +. +MessageId=32362 +Language=English +%1 +. +MessageId=32363 +Language=English +%1 +. +MessageId=32364 +Language=English +%1 +. +MessageId=32365 +Language=English +%1 +. +MessageId=32366 +Language=English +%1 +. +MessageId=32367 +Language=English +%1 +. +MessageId=32368 +Language=English +%1 +. +MessageId=32369 +Language=English +%1 +. +MessageId=32370 +Language=English +%1 +. +MessageId=32371 +Language=English +%1 +. +MessageId=32372 +Language=English +%1 +. +MessageId=32373 +Language=English +%1 +. +MessageId=32374 +Language=English +%1 +. +MessageId=32375 +Language=English +%1 +. +MessageId=32376 +Language=English +%1 +. +MessageId=32377 +Language=English +%1 +. +MessageId=32378 +Language=English +%1 +. +MessageId=32379 +Language=English +%1 +. +MessageId=32380 +Language=English +%1 +. +MessageId=32381 +Language=English +%1 +. +MessageId=32382 +Language=English +%1 +. +MessageId=32383 +Language=English +%1 +. +MessageId=32384 +Language=English +%1 +. +MessageId=32385 +Language=English +%1 +. +MessageId=32386 +Language=English +%1 +. +MessageId=32387 +Language=English +%1 +. +MessageId=32388 +Language=English +%1 +. +MessageId=32389 +Language=English +%1 +. +MessageId=32390 +Language=English +%1 +. +MessageId=32391 +Language=English +%1 +. +MessageId=32392 +Language=English +%1 +. +MessageId=32393 +Language=English +%1 +. +MessageId=32394 +Language=English +%1 +. +MessageId=32395 +Language=English +%1 +. +MessageId=32396 +Language=English +%1 +. +MessageId=32397 +Language=English +%1 +. +MessageId=32398 +Language=English +%1 +. +MessageId=32399 +Language=English +%1 +. +MessageId=32400 +Language=English +%1 +. +MessageId=32401 +Language=English +%1 +. +MessageId=32402 +Language=English +%1 +. +MessageId=32403 +Language=English +%1 +. +MessageId=32404 +Language=English +%1 +. +MessageId=32405 +Language=English +%1 +. +MessageId=32406 +Language=English +%1 +. +MessageId=32407 +Language=English +%1 +. +MessageId=32408 +Language=English +%1 +. +MessageId=32409 +Language=English +%1 +. +MessageId=32410 +Language=English +%1 +. +MessageId=32411 +Language=English +%1 +. +MessageId=32412 +Language=English +%1 +. +MessageId=32413 +Language=English +%1 +. +MessageId=32414 +Language=English +%1 +. +MessageId=32415 +Language=English +%1 +. +MessageId=32416 +Language=English +%1 +. +MessageId=32417 +Language=English +%1 +. +MessageId=32418 +Language=English +%1 +. +MessageId=32419 +Language=English +%1 +. +MessageId=32420 +Language=English +%1 +. +MessageId=32421 +Language=English +%1 +. +MessageId=32422 +Language=English +%1 +. +MessageId=32423 +Language=English +%1 +. +MessageId=32424 +Language=English +%1 +. +MessageId=32425 +Language=English +%1 +. +MessageId=32426 +Language=English +%1 +. +MessageId=32427 +Language=English +%1 +. +MessageId=32428 +Language=English +%1 +. +MessageId=32429 +Language=English +%1 +. +MessageId=32430 +Language=English +%1 +. +MessageId=32431 +Language=English +%1 +. +MessageId=32432 +Language=English +%1 +. +MessageId=32433 +Language=English +%1 +. +MessageId=32434 +Language=English +%1 +. +MessageId=32435 +Language=English +%1 +. +MessageId=32436 +Language=English +%1 +. +MessageId=32437 +Language=English +%1 +. +MessageId=32438 +Language=English +%1 +. +MessageId=32439 +Language=English +%1 +. +MessageId=32440 +Language=English +%1 +. +MessageId=32441 +Language=English +%1 +. +MessageId=32442 +Language=English +%1 +. +MessageId=32443 +Language=English +%1 +. +MessageId=32444 +Language=English +%1 +. +MessageId=32445 +Language=English +%1 +. +MessageId=32446 +Language=English +%1 +. +MessageId=32447 +Language=English +%1 +. +MessageId=32448 +Language=English +%1 +. +MessageId=32449 +Language=English +%1 +. +MessageId=32450 +Language=English +%1 +. +MessageId=32451 +Language=English +%1 +. +MessageId=32452 +Language=English +%1 +. +MessageId=32453 +Language=English +%1 +. +MessageId=32454 +Language=English +%1 +. +MessageId=32455 +Language=English +%1 +. +MessageId=32456 +Language=English +%1 +. +MessageId=32457 +Language=English +%1 +. +MessageId=32458 +Language=English +%1 +. +MessageId=32459 +Language=English +%1 +. +MessageId=32460 +Language=English +%1 +. +MessageId=32461 +Language=English +%1 +. +MessageId=32462 +Language=English +%1 +. +MessageId=32463 +Language=English +%1 +. +MessageId=32464 +Language=English +%1 +. +MessageId=32465 +Language=English +%1 +. +MessageId=32466 +Language=English +%1 +. +MessageId=32467 +Language=English +%1 +. +MessageId=32468 +Language=English +%1 +. +MessageId=32469 +Language=English +%1 +. +MessageId=32470 +Language=English +%1 +. +MessageId=32471 +Language=English +%1 +. +MessageId=32472 +Language=English +%1 +. +MessageId=32473 +Language=English +%1 +. +MessageId=32474 +Language=English +%1 +. +MessageId=32475 +Language=English +%1 +. +MessageId=32476 +Language=English +%1 +. +MessageId=32477 +Language=English +%1 +. +MessageId=32478 +Language=English +%1 +. +MessageId=32479 +Language=English +%1 +. +MessageId=32480 +Language=English +%1 +. +MessageId=32481 +Language=English +%1 +. +MessageId=32482 +Language=English +%1 +. +MessageId=32483 +Language=English +%1 +. +MessageId=32484 +Language=English +%1 +. +MessageId=32485 +Language=English +%1 +. +MessageId=32486 +Language=English +%1 +. +MessageId=32487 +Language=English +%1 +. +MessageId=32488 +Language=English +%1 +. +MessageId=32489 +Language=English +%1 +. +MessageId=32490 +Language=English +%1 +. +MessageId=32491 +Language=English +%1 +. +MessageId=32492 +Language=English +%1 +. +MessageId=32493 +Language=English +%1 +. +MessageId=32494 +Language=English +%1 +. +MessageId=32495 +Language=English +%1 +. +MessageId=32496 +Language=English +%1 +. +MessageId=32497 +Language=English +%1 +. +MessageId=32498 +Language=English +%1 +. +MessageId=32499 +Language=English +%1 +. +MessageId=32500 +Language=English +%1 +. +MessageId=32501 +Language=English +%1 +. +MessageId=32502 +Language=English +%1 +. +MessageId=32503 +Language=English +%1 +. +MessageId=32504 +Language=English +%1 +. +MessageId=32505 +Language=English +%1 +. +MessageId=32506 +Language=English +%1 +. +MessageId=32507 +Language=English +%1 +. +MessageId=32508 +Language=English +%1 +. +MessageId=32509 +Language=English +%1 +. +MessageId=32510 +Language=English +%1 +. +MessageId=32511 +Language=English +%1 +. +MessageId=32512 +Language=English +%1 +. +MessageId=32513 +Language=English +%1 +. +MessageId=32514 +Language=English +%1 +. +MessageId=32515 +Language=English +%1 +. +MessageId=32516 +Language=English +%1 +. +MessageId=32517 +Language=English +%1 +. +MessageId=32518 +Language=English +%1 +. +MessageId=32519 +Language=English +%1 +. +MessageId=32520 +Language=English +%1 +. +MessageId=32521 +Language=English +%1 +. +MessageId=32522 +Language=English +%1 +. +MessageId=32523 +Language=English +%1 +. +MessageId=32524 +Language=English +%1 +. +MessageId=32525 +Language=English +%1 +. +MessageId=32526 +Language=English +%1 +. +MessageId=32527 +Language=English +%1 +. +MessageId=32528 +Language=English +%1 +. +MessageId=32529 +Language=English +%1 +. +MessageId=32530 +Language=English +%1 +. +MessageId=32531 +Language=English +%1 +. +MessageId=32532 +Language=English +%1 +. +MessageId=32533 +Language=English +%1 +. +MessageId=32534 +Language=English +%1 +. +MessageId=32535 +Language=English +%1 +. +MessageId=32536 +Language=English +%1 +. +MessageId=32537 +Language=English +%1 +. +MessageId=32538 +Language=English +%1 +. +MessageId=32539 +Language=English +%1 +. +MessageId=32540 +Language=English +%1 +. +MessageId=32541 +Language=English +%1 +. +MessageId=32542 +Language=English +%1 +. +MessageId=32543 +Language=English +%1 +. +MessageId=32544 +Language=English +%1 +. +MessageId=32545 +Language=English +%1 +. +MessageId=32546 +Language=English +%1 +. +MessageId=32547 +Language=English +%1 +. +MessageId=32548 +Language=English +%1 +. +MessageId=32549 +Language=English +%1 +. +MessageId=32550 +Language=English +%1 +. +MessageId=32551 +Language=English +%1 +. +MessageId=32552 +Language=English +%1 +. +MessageId=32553 +Language=English +%1 +. +MessageId=32554 +Language=English +%1 +. +MessageId=32555 +Language=English +%1 +. +MessageId=32556 +Language=English +%1 +. +MessageId=32557 +Language=English +%1 +. +MessageId=32558 +Language=English +%1 +. +MessageId=32559 +Language=English +%1 +. +MessageId=32560 +Language=English +%1 +. +MessageId=32561 +Language=English +%1 +. +MessageId=32562 +Language=English +%1 +. +MessageId=32563 +Language=English +%1 +. +MessageId=32564 +Language=English +%1 +. +MessageId=32565 +Language=English +%1 +. +MessageId=32566 +Language=English +%1 +. +MessageId=32567 +Language=English +%1 +. +MessageId=32568 +Language=English +%1 +. +MessageId=32569 +Language=English +%1 +. +MessageId=32570 +Language=English +%1 +. +MessageId=32571 +Language=English +%1 +. +MessageId=32572 +Language=English +%1 +. +MessageId=32573 +Language=English +%1 +. +MessageId=32574 +Language=English +%1 +. +MessageId=32575 +Language=English +%1 +. +MessageId=32576 +Language=English +%1 +. +MessageId=32577 +Language=English +%1 +. +MessageId=32578 +Language=English +%1 +. +MessageId=32579 +Language=English +%1 +. +MessageId=32580 +Language=English +%1 +. +MessageId=32581 +Language=English +%1 +. +MessageId=32582 +Language=English +%1 +. +MessageId=32583 +Language=English +%1 +. +MessageId=32584 +Language=English +%1 +. +MessageId=32585 +Language=English +%1 +. +MessageId=32586 +Language=English +%1 +. +MessageId=32587 +Language=English +%1 +. +MessageId=32588 +Language=English +%1 +. +MessageId=32589 +Language=English +%1 +. +MessageId=32590 +Language=English +%1 +. +MessageId=32591 +Language=English +%1 +. +MessageId=32592 +Language=English +%1 +. +MessageId=32593 +Language=English +%1 +. +MessageId=32594 +Language=English +%1 +. +MessageId=32595 +Language=English +%1 +. +MessageId=32596 +Language=English +%1 +. +MessageId=32597 +Language=English +%1 +. +MessageId=32598 +Language=English +%1 +. +MessageId=32599 +Language=English +%1 +. +MessageId=32600 +Language=English +%1 +. +MessageId=32601 +Language=English +%1 +. +MessageId=32602 +Language=English +%1 +. +MessageId=32603 +Language=English +%1 +. +MessageId=32604 +Language=English +%1 +. +MessageId=32605 +Language=English +%1 +. +MessageId=32606 +Language=English +%1 +. +MessageId=32607 +Language=English +%1 +. +MessageId=32608 +Language=English +%1 +. +MessageId=32609 +Language=English +%1 +. +MessageId=32610 +Language=English +%1 +. +MessageId=32611 +Language=English +%1 +. +MessageId=32612 +Language=English +%1 +. +MessageId=32613 +Language=English +%1 +. +MessageId=32614 +Language=English +%1 +. +MessageId=32615 +Language=English +%1 +. +MessageId=32616 +Language=English +%1 +. +MessageId=32617 +Language=English +%1 +. +MessageId=32618 +Language=English +%1 +. +MessageId=32619 +Language=English +%1 +. +MessageId=32620 +Language=English +%1 +. +MessageId=32621 +Language=English +%1 +. +MessageId=32622 +Language=English +%1 +. +MessageId=32623 +Language=English +%1 +. +MessageId=32624 +Language=English +%1 +. +MessageId=32625 +Language=English +%1 +. +MessageId=32626 +Language=English +%1 +. +MessageId=32627 +Language=English +%1 +. +MessageId=32628 +Language=English +%1 +. +MessageId=32629 +Language=English +%1 +. +MessageId=32630 +Language=English +%1 +. +MessageId=32631 +Language=English +%1 +. +MessageId=32632 +Language=English +%1 +. +MessageId=32633 +Language=English +%1 +. +MessageId=32634 +Language=English +%1 +. +MessageId=32635 +Language=English +%1 +. +MessageId=32636 +Language=English +%1 +. +MessageId=32637 +Language=English +%1 +. +MessageId=32638 +Language=English +%1 +. +MessageId=32639 +Language=English +%1 +. +MessageId=32640 +Language=English +%1 +. +MessageId=32641 +Language=English +%1 +. +MessageId=32642 +Language=English +%1 +. +MessageId=32643 +Language=English +%1 +. +MessageId=32644 +Language=English +%1 +. +MessageId=32645 +Language=English +%1 +. +MessageId=32646 +Language=English +%1 +. +MessageId=32647 +Language=English +%1 +. +MessageId=32648 +Language=English +%1 +. +MessageId=32649 +Language=English +%1 +. +MessageId=32650 +Language=English +%1 +. +MessageId=32651 +Language=English +%1 +. +MessageId=32652 +Language=English +%1 +. +MessageId=32653 +Language=English +%1 +. +MessageId=32654 +Language=English +%1 +. +MessageId=32655 +Language=English +%1 +. +MessageId=32656 +Language=English +%1 +. +MessageId=32657 +Language=English +%1 +. +MessageId=32658 +Language=English +%1 +. +MessageId=32659 +Language=English +%1 +. +MessageId=32660 +Language=English +%1 +. +MessageId=32661 +Language=English +%1 +. +MessageId=32662 +Language=English +%1 +. +MessageId=32663 +Language=English +%1 +. +MessageId=32664 +Language=English +%1 +. +MessageId=32665 +Language=English +%1 +. +MessageId=32666 +Language=English +%1 +. +MessageId=32667 +Language=English +%1 +. +MessageId=32668 +Language=English +%1 +. +MessageId=32669 +Language=English +%1 +. +MessageId=32670 +Language=English +%1 +. +MessageId=32671 +Language=English +%1 +. +MessageId=32672 +Language=English +%1 +. +MessageId=32673 +Language=English +%1 +. +MessageId=32674 +Language=English +%1 +. +MessageId=32675 +Language=English +%1 +. +MessageId=32676 +Language=English +%1 +. +MessageId=32677 +Language=English +%1 +. +MessageId=32678 +Language=English +%1 +. +MessageId=32679 +Language=English +%1 +. +MessageId=32680 +Language=English +%1 +. +MessageId=32681 +Language=English +%1 +. +MessageId=32682 +Language=English +%1 +. +MessageId=32683 +Language=English +%1 +. +MessageId=32684 +Language=English +%1 +. +MessageId=32685 +Language=English +%1 +. +MessageId=32686 +Language=English +%1 +. +MessageId=32687 +Language=English +%1 +. +MessageId=32688 +Language=English +%1 +. +MessageId=32689 +Language=English +%1 +. +MessageId=32690 +Language=English +%1 +. +MessageId=32691 +Language=English +%1 +. +MessageId=32692 +Language=English +%1 +. +MessageId=32693 +Language=English +%1 +. +MessageId=32694 +Language=English +%1 +. +MessageId=32695 +Language=English +%1 +. +MessageId=32696 +Language=English +%1 +. +MessageId=32697 +Language=English +%1 +. +MessageId=32698 +Language=English +%1 +. +MessageId=32699 +Language=English +%1 +. +MessageId=32700 +Language=English +%1 +. +MessageId=32701 +Language=English +%1 +. +MessageId=32702 +Language=English +%1 +. +MessageId=32703 +Language=English +%1 +. +MessageId=32704 +Language=English +%1 +. +MessageId=32705 +Language=English +%1 +. +MessageId=32706 +Language=English +%1 +. +MessageId=32707 +Language=English +%1 +. +MessageId=32708 +Language=English +%1 +. +MessageId=32709 +Language=English +%1 +. +MessageId=32710 +Language=English +%1 +. +MessageId=32711 +Language=English +%1 +. +MessageId=32712 +Language=English +%1 +. +MessageId=32713 +Language=English +%1 +. +MessageId=32714 +Language=English +%1 +. +MessageId=32715 +Language=English +%1 +. +MessageId=32716 +Language=English +%1 +. +MessageId=32717 +Language=English +%1 +. +MessageId=32718 +Language=English +%1 +. +MessageId=32719 +Language=English +%1 +. +MessageId=32720 +Language=English +%1 +. +MessageId=32721 +Language=English +%1 +. +MessageId=32722 +Language=English +%1 +. +MessageId=32723 +Language=English +%1 +. +MessageId=32724 +Language=English +%1 +. +MessageId=32725 +Language=English +%1 +. +MessageId=32726 +Language=English +%1 +. +MessageId=32727 +Language=English +%1 +. +MessageId=32728 +Language=English +%1 +. +MessageId=32729 +Language=English +%1 +. +MessageId=32730 +Language=English +%1 +. +MessageId=32731 +Language=English +%1 +. +MessageId=32732 +Language=English +%1 +. +MessageId=32733 +Language=English +%1 +. +MessageId=32734 +Language=English +%1 +. +MessageId=32735 +Language=English +%1 +. +MessageId=32736 +Language=English +%1 +. +MessageId=32737 +Language=English +%1 +. +MessageId=32738 +Language=English +%1 +. +MessageId=32739 +Language=English +%1 +. +MessageId=32740 +Language=English +%1 +. +MessageId=32741 +Language=English +%1 +. +MessageId=32742 +Language=English +%1 +. +MessageId=32743 +Language=English +%1 +. +MessageId=32744 +Language=English +%1 +. +MessageId=32745 +Language=English +%1 +. +MessageId=32746 +Language=English +%1 +. +MessageId=32747 +Language=English +%1 +. +MessageId=32748 +Language=English +%1 +. +MessageId=32749 +Language=English +%1 +. +MessageId=32750 +Language=English +%1 +. +MessageId=32751 +Language=English +%1 +. +MessageId=32752 +Language=English +%1 +. +MessageId=32753 +Language=English +%1 +. +MessageId=32754 +Language=English +%1 +. +MessageId=32755 +Language=English +%1 +. +MessageId=32756 +Language=English +%1 +. +MessageId=32757 +Language=English +%1 +. +MessageId=32758 +Language=English +%1 +. +MessageId=32759 +Language=English +%1 +. +MessageId=32760 +Language=English +%1 +. +MessageId=32761 +Language=English +%1 +. +MessageId=32762 +Language=English +%1 +. +MessageId=32763 +Language=English +%1 +. +MessageId=32764 +Language=English +%1 +. +MessageId=32765 +Language=English +%1 +. +MessageId=32766 +Language=English +%1 +. +MessageId=32767 +Language=English +%1 +. +MessageId=32768 +Language=English +%1 +. +MessageId=32769 +Language=English +%1 +. +MessageId=32770 +Language=English +%1 +. +MessageId=32771 +Language=English +%1 +. +MessageId=32772 +Language=English +%1 +. +MessageId=32773 +Language=English +%1 +. +MessageId=32774 +Language=English +%1 +. +MessageId=32775 +Language=English +%1 +. +MessageId=32776 +Language=English +%1 +. +MessageId=32777 +Language=English +%1 +. +MessageId=32778 +Language=English +%1 +. +MessageId=32779 +Language=English +%1 +. +MessageId=32780 +Language=English +%1 +. +MessageId=32781 +Language=English +%1 +. +MessageId=32782 +Language=English +%1 +. +MessageId=32783 +Language=English +%1 +. +MessageId=32784 +Language=English +%1 +. +MessageId=32785 +Language=English +%1 +. +MessageId=32786 +Language=English +%1 +. +MessageId=32787 +Language=English +%1 +. +MessageId=32788 +Language=English +%1 +. +MessageId=32789 +Language=English +%1 +. +MessageId=32790 +Language=English +%1 +. +MessageId=32791 +Language=English +%1 +. +MessageId=32792 +Language=English +%1 +. +MessageId=32793 +Language=English +%1 +. +MessageId=32794 +Language=English +%1 +. +MessageId=32795 +Language=English +%1 +. +MessageId=32796 +Language=English +%1 +. +MessageId=32797 +Language=English +%1 +. +MessageId=32798 +Language=English +%1 +. +MessageId=32799 +Language=English +%1 +. +MessageId=32800 +Language=English +%1 +. +MessageId=32801 +Language=English +%1 +. +MessageId=32802 +Language=English +%1 +. +MessageId=32803 +Language=English +%1 +. +MessageId=32804 +Language=English +%1 +. +MessageId=32805 +Language=English +%1 +. +MessageId=32806 +Language=English +%1 +. +MessageId=32807 +Language=English +%1 +. +MessageId=32808 +Language=English +%1 +. +MessageId=32809 +Language=English +%1 +. +MessageId=32810 +Language=English +%1 +. +MessageId=32811 +Language=English +%1 +. +MessageId=32812 +Language=English +%1 +. +MessageId=32813 +Language=English +%1 +. +MessageId=32814 +Language=English +%1 +. +MessageId=32815 +Language=English +%1 +. +MessageId=32816 +Language=English +%1 +. +MessageId=32817 +Language=English +%1 +. +MessageId=32818 +Language=English +%1 +. +MessageId=32819 +Language=English +%1 +. +MessageId=32820 +Language=English +%1 +. +MessageId=32821 +Language=English +%1 +. +MessageId=32822 +Language=English +%1 +. +MessageId=32823 +Language=English +%1 +. +MessageId=32824 +Language=English +%1 +. +MessageId=32825 +Language=English +%1 +. +MessageId=32826 +Language=English +%1 +. +MessageId=32827 +Language=English +%1 +. +MessageId=32828 +Language=English +%1 +. +MessageId=32829 +Language=English +%1 +. +MessageId=32830 +Language=English +%1 +. +MessageId=32831 +Language=English +%1 +. +MessageId=32832 +Language=English +%1 +. +MessageId=32833 +Language=English +%1 +. +MessageId=32834 +Language=English +%1 +. +MessageId=32835 +Language=English +%1 +. +MessageId=32836 +Language=English +%1 +. +MessageId=32837 +Language=English +%1 +. +MessageId=32838 +Language=English +%1 +. +MessageId=32839 +Language=English +%1 +. +MessageId=32840 +Language=English +%1 +. +MessageId=32841 +Language=English +%1 +. +MessageId=32842 +Language=English +%1 +. +MessageId=32843 +Language=English +%1 +. +MessageId=32844 +Language=English +%1 +. +MessageId=32845 +Language=English +%1 +. +MessageId=32846 +Language=English +%1 +. +MessageId=32847 +Language=English +%1 +. +MessageId=32848 +Language=English +%1 +. +MessageId=32849 +Language=English +%1 +. +MessageId=32850 +Language=English +%1 +. +MessageId=32851 +Language=English +%1 +. +MessageId=32852 +Language=English +%1 +. +MessageId=32853 +Language=English +%1 +. +MessageId=32854 +Language=English +%1 +. +MessageId=32855 +Language=English +%1 +. +MessageId=32856 +Language=English +%1 +. +MessageId=32857 +Language=English +%1 +. +MessageId=32858 +Language=English +%1 +. +MessageId=32859 +Language=English +%1 +. +MessageId=32860 +Language=English +%1 +. +MessageId=32861 +Language=English +%1 +. +MessageId=32862 +Language=English +%1 +. +MessageId=32863 +Language=English +%1 +. +MessageId=32864 +Language=English +%1 +. +MessageId=32865 +Language=English +%1 +. +MessageId=32866 +Language=English +%1 +. +MessageId=32867 +Language=English +%1 +. +MessageId=32868 +Language=English +%1 +. +MessageId=32869 +Language=English +%1 +. +MessageId=32870 +Language=English +%1 +. +MessageId=32871 +Language=English +%1 +. +MessageId=32872 +Language=English +%1 +. +MessageId=32873 +Language=English +%1 +. +MessageId=32874 +Language=English +%1 +. +MessageId=32875 +Language=English +%1 +. +MessageId=32876 +Language=English +%1 +. +MessageId=32877 +Language=English +%1 +. +MessageId=32878 +Language=English +%1 +. +MessageId=32879 +Language=English +%1 +. +MessageId=32880 +Language=English +%1 +. +MessageId=32881 +Language=English +%1 +. +MessageId=32882 +Language=English +%1 +. +MessageId=32883 +Language=English +%1 +. +MessageId=32884 +Language=English +%1 +. +MessageId=32885 +Language=English +%1 +. +MessageId=32886 +Language=English +%1 +. +MessageId=32887 +Language=English +%1 +. +MessageId=32888 +Language=English +%1 +. +MessageId=32889 +Language=English +%1 +. +MessageId=32890 +Language=English +%1 +. +MessageId=32891 +Language=English +%1 +. +MessageId=32892 +Language=English +%1 +. +MessageId=32893 +Language=English +%1 +. +MessageId=32894 +Language=English +%1 +. +MessageId=32895 +Language=English +%1 +. +MessageId=32896 +Language=English +%1 +. +MessageId=32897 +Language=English +%1 +. +MessageId=32898 +Language=English +%1 +. +MessageId=32899 +Language=English +%1 +. +MessageId=32900 +Language=English +%1 +. +MessageId=32901 +Language=English +%1 +. +MessageId=32902 +Language=English +%1 +. +MessageId=32903 +Language=English +%1 +. +MessageId=32904 +Language=English +%1 +. +MessageId=32905 +Language=English +%1 +. +MessageId=32906 +Language=English +%1 +. +MessageId=32907 +Language=English +%1 +. +MessageId=32908 +Language=English +%1 +. +MessageId=32909 +Language=English +%1 +. +MessageId=32910 +Language=English +%1 +. +MessageId=32911 +Language=English +%1 +. +MessageId=32912 +Language=English +%1 +. +MessageId=32913 +Language=English +%1 +. +MessageId=32914 +Language=English +%1 +. +MessageId=32915 +Language=English +%1 +. +MessageId=32916 +Language=English +%1 +. +MessageId=32917 +Language=English +%1 +. +MessageId=32918 +Language=English +%1 +. +MessageId=32919 +Language=English +%1 +. +MessageId=32920 +Language=English +%1 +. +MessageId=32921 +Language=English +%1 +. +MessageId=32922 +Language=English +%1 +. +MessageId=32923 +Language=English +%1 +. +MessageId=32924 +Language=English +%1 +. +MessageId=32925 +Language=English +%1 +. +MessageId=32926 +Language=English +%1 +. +MessageId=32927 +Language=English +%1 +. +MessageId=32928 +Language=English +%1 +. +MessageId=32929 +Language=English +%1 +. +MessageId=32930 +Language=English +%1 +. +MessageId=32931 +Language=English +%1 +. +MessageId=32932 +Language=English +%1 +. +MessageId=32933 +Language=English +%1 +. +MessageId=32934 +Language=English +%1 +. +MessageId=32935 +Language=English +%1 +. +MessageId=32936 +Language=English +%1 +. +MessageId=32937 +Language=English +%1 +. +MessageId=32938 +Language=English +%1 +. +MessageId=32939 +Language=English +%1 +. +MessageId=32940 +Language=English +%1 +. +MessageId=32941 +Language=English +%1 +. +MessageId=32942 +Language=English +%1 +. +MessageId=32943 +Language=English +%1 +. +MessageId=32944 +Language=English +%1 +. +MessageId=32945 +Language=English +%1 +. +MessageId=32946 +Language=English +%1 +. +MessageId=32947 +Language=English +%1 +. +MessageId=32948 +Language=English +%1 +. +MessageId=32949 +Language=English +%1 +. +MessageId=32950 +Language=English +%1 +. +MessageId=32951 +Language=English +%1 +. +MessageId=32952 +Language=English +%1 +. +MessageId=32953 +Language=English +%1 +. +MessageId=32954 +Language=English +%1 +. +MessageId=32955 +Language=English +%1 +. +MessageId=32956 +Language=English +%1 +. +MessageId=32957 +Language=English +%1 +. +MessageId=32958 +Language=English +%1 +. +MessageId=32959 +Language=English +%1 +. +MessageId=32960 +Language=English +%1 +. +MessageId=32961 +Language=English +%1 +. +MessageId=32962 +Language=English +%1 +. +MessageId=32963 +Language=English +%1 +. +MessageId=32964 +Language=English +%1 +. +MessageId=32965 +Language=English +%1 +. +MessageId=32966 +Language=English +%1 +. +MessageId=32967 +Language=English +%1 +. +MessageId=32968 +Language=English +%1 +. +MessageId=32969 +Language=English +%1 +. +MessageId=32970 +Language=English +%1 +. +MessageId=32971 +Language=English +%1 +. +MessageId=32972 +Language=English +%1 +. +MessageId=32973 +Language=English +%1 +. +MessageId=32974 +Language=English +%1 +. +MessageId=32975 +Language=English +%1 +. +MessageId=32976 +Language=English +%1 +. +MessageId=32977 +Language=English +%1 +. +MessageId=32978 +Language=English +%1 +. +MessageId=32979 +Language=English +%1 +. +MessageId=32980 +Language=English +%1 +. +MessageId=32981 +Language=English +%1 +. +MessageId=32982 +Language=English +%1 +. +MessageId=32983 +Language=English +%1 +. +MessageId=32984 +Language=English +%1 +. +MessageId=32985 +Language=English +%1 +. +MessageId=32986 +Language=English +%1 +. +MessageId=32987 +Language=English +%1 +. +MessageId=32988 +Language=English +%1 +. +MessageId=32989 +Language=English +%1 +. +MessageId=32990 +Language=English +%1 +. +MessageId=32991 +Language=English +%1 +. +MessageId=32992 +Language=English +%1 +. +MessageId=32993 +Language=English +%1 +. +MessageId=32994 +Language=English +%1 +. +MessageId=32995 +Language=English +%1 +. +MessageId=32996 +Language=English +%1 +. +MessageId=32997 +Language=English +%1 +. +MessageId=32998 +Language=English +%1 +. +MessageId=32999 +Language=English +%1 +. +MessageId=33000 +Language=English +%1 +. +MessageId=33001 +Language=English +%1 +. +MessageId=33002 +Language=English +%1 +. +MessageId=33003 +Language=English +%1 +. +MessageId=33004 +Language=English +%1 +. +MessageId=33005 +Language=English +%1 +. +MessageId=33006 +Language=English +%1 +. +MessageId=33007 +Language=English +%1 +. +MessageId=33008 +Language=English +%1 +. +MessageId=33009 +Language=English +%1 +. +MessageId=33010 +Language=English +%1 +. +MessageId=33011 +Language=English +%1 +. +MessageId=33012 +Language=English +%1 +. +MessageId=33013 +Language=English +%1 +. +MessageId=33014 +Language=English +%1 +. +MessageId=33015 +Language=English +%1 +. +MessageId=33016 +Language=English +%1 +. +MessageId=33017 +Language=English +%1 +. +MessageId=33018 +Language=English +%1 +. +MessageId=33019 +Language=English +%1 +. +MessageId=33020 +Language=English +%1 +. +MessageId=33021 +Language=English +%1 +. +MessageId=33022 +Language=English +%1 +. +MessageId=33023 +Language=English +%1 +. +MessageId=33024 +Language=English +%1 +. +MessageId=33025 +Language=English +%1 +. +MessageId=33026 +Language=English +%1 +. +MessageId=33027 +Language=English +%1 +. +MessageId=33028 +Language=English +%1 +. +MessageId=33029 +Language=English +%1 +. +MessageId=33030 +Language=English +%1 +. +MessageId=33031 +Language=English +%1 +. +MessageId=33032 +Language=English +%1 +. +MessageId=33033 +Language=English +%1 +. +MessageId=33034 +Language=English +%1 +. +MessageId=33035 +Language=English +%1 +. +MessageId=33036 +Language=English +%1 +. +MessageId=33037 +Language=English +%1 +. +MessageId=33038 +Language=English +%1 +. +MessageId=33039 +Language=English +%1 +. +MessageId=33040 +Language=English +%1 +. +MessageId=33041 +Language=English +%1 +. +MessageId=33042 +Language=English +%1 +. +MessageId=33043 +Language=English +%1 +. +MessageId=33044 +Language=English +%1 +. +MessageId=33045 +Language=English +%1 +. +MessageId=33046 +Language=English +%1 +. +MessageId=33047 +Language=English +%1 +. +MessageId=33048 +Language=English +%1 +. +MessageId=33049 +Language=English +%1 +. +MessageId=33050 +Language=English +%1 +. +MessageId=33051 +Language=English +%1 +. +MessageId=33052 +Language=English +%1 +. +MessageId=33053 +Language=English +%1 +. +MessageId=33054 +Language=English +%1 +. +MessageId=33055 +Language=English +%1 +. +MessageId=33056 +Language=English +%1 +. +MessageId=33057 +Language=English +%1 +. +MessageId=33058 +Language=English +%1 +. +MessageId=33059 +Language=English +%1 +. +MessageId=33060 +Language=English +%1 +. +MessageId=33061 +Language=English +%1 +. +MessageId=33062 +Language=English +%1 +. +MessageId=33063 +Language=English +%1 +. +MessageId=33064 +Language=English +%1 +. +MessageId=33065 +Language=English +%1 +. +MessageId=33066 +Language=English +%1 +. +MessageId=33067 +Language=English +%1 +. +MessageId=33068 +Language=English +%1 +. +MessageId=33069 +Language=English +%1 +. +MessageId=33070 +Language=English +%1 +. +MessageId=33071 +Language=English +%1 +. +MessageId=33072 +Language=English +%1 +. +MessageId=33073 +Language=English +%1 +. +MessageId=33074 +Language=English +%1 +. +MessageId=33075 +Language=English +%1 +. +MessageId=33076 +Language=English +%1 +. +MessageId=33077 +Language=English +%1 +. +MessageId=33078 +Language=English +%1 +. +MessageId=33079 +Language=English +%1 +. +MessageId=33080 +Language=English +%1 +. +MessageId=33081 +Language=English +%1 +. +MessageId=33082 +Language=English +%1 +. +MessageId=33083 +Language=English +%1 +. +MessageId=33084 +Language=English +%1 +. +MessageId=33085 +Language=English +%1 +. +MessageId=33086 +Language=English +%1 +. +MessageId=33087 +Language=English +%1 +. +MessageId=33088 +Language=English +%1 +. +MessageId=33089 +Language=English +%1 +. +MessageId=33090 +Language=English +%1 +. +MessageId=33091 +Language=English +%1 +. +MessageId=33092 +Language=English +%1 +. +MessageId=33093 +Language=English +%1 +. +MessageId=33094 +Language=English +%1 +. +MessageId=33095 +Language=English +%1 +. +MessageId=33096 +Language=English +%1 +. +MessageId=33097 +Language=English +%1 +. +MessageId=33098 +Language=English +%1 +. +MessageId=33099 +Language=English +%1 +. +MessageId=33100 +Language=English +%1 +. +MessageId=33101 +Language=English +%1 +. +MessageId=33102 +Language=English +%1 +. +MessageId=33103 +Language=English +%1 +. +MessageId=33104 +Language=English +%1 +. +MessageId=33105 +Language=English +%1 +. +MessageId=33106 +Language=English +%1 +. +MessageId=33107 +Language=English +%1 +. +MessageId=33108 +Language=English +%1 +. +MessageId=33109 +Language=English +%1 +. +MessageId=33110 +Language=English +%1 +. +MessageId=33111 +Language=English +%1 +. +MessageId=33112 +Language=English +%1 +. +MessageId=33113 +Language=English +%1 +. +MessageId=33114 +Language=English +%1 +. +MessageId=33115 +Language=English +%1 +. +MessageId=33116 +Language=English +%1 +. +MessageId=33117 +Language=English +%1 +. +MessageId=33118 +Language=English +%1 +. +MessageId=33119 +Language=English +%1 +. +MessageId=33120 +Language=English +%1 +. +MessageId=33121 +Language=English +%1 +. +MessageId=33122 +Language=English +%1 +. +MessageId=33123 +Language=English +%1 +. +MessageId=33124 +Language=English +%1 +. +MessageId=33125 +Language=English +%1 +. +MessageId=33126 +Language=English +%1 +. +MessageId=33127 +Language=English +%1 +. +MessageId=33128 +Language=English +%1 +. +MessageId=33129 +Language=English +%1 +. +MessageId=33130 +Language=English +%1 +. +MessageId=33131 +Language=English +%1 +. +MessageId=33132 +Language=English +%1 +. +MessageId=33133 +Language=English +%1 +. +MessageId=33134 +Language=English +%1 +. +MessageId=33135 +Language=English +%1 +. +MessageId=33136 +Language=English +%1 +. +MessageId=33137 +Language=English +%1 +. +MessageId=33138 +Language=English +%1 +. +MessageId=33139 +Language=English +%1 +. +MessageId=33140 +Language=English +%1 +. +MessageId=33141 +Language=English +%1 +. +MessageId=33142 +Language=English +%1 +. +MessageId=33143 +Language=English +%1 +. +MessageId=33144 +Language=English +%1 +. +MessageId=33145 +Language=English +%1 +. +MessageId=33146 +Language=English +%1 +. +MessageId=33147 +Language=English +%1 +. +MessageId=33148 +Language=English +%1 +. +MessageId=33149 +Language=English +%1 +. +MessageId=33150 +Language=English +%1 +. +MessageId=33151 +Language=English +%1 +. +MessageId=33152 +Language=English +%1 +. +MessageId=33153 +Language=English +%1 +. +MessageId=33154 +Language=English +%1 +. +MessageId=33155 +Language=English +%1 +. +MessageId=33156 +Language=English +%1 +. +MessageId=33157 +Language=English +%1 +. +MessageId=33158 +Language=English +%1 +. +MessageId=33159 +Language=English +%1 +. +MessageId=33160 +Language=English +%1 +. +MessageId=33161 +Language=English +%1 +. +MessageId=33162 +Language=English +%1 +. +MessageId=33163 +Language=English +%1 +. +MessageId=33164 +Language=English +%1 +. +MessageId=33165 +Language=English +%1 +. +MessageId=33166 +Language=English +%1 +. +MessageId=33167 +Language=English +%1 +. +MessageId=33168 +Language=English +%1 +. +MessageId=33169 +Language=English +%1 +. +MessageId=33170 +Language=English +%1 +. +MessageId=33171 +Language=English +%1 +. +MessageId=33172 +Language=English +%1 +. +MessageId=33173 +Language=English +%1 +. +MessageId=33174 +Language=English +%1 +. +MessageId=33175 +Language=English +%1 +. +MessageId=33176 +Language=English +%1 +. +MessageId=33177 +Language=English +%1 +. +MessageId=33178 +Language=English +%1 +. +MessageId=33179 +Language=English +%1 +. +MessageId=33180 +Language=English +%1 +. +MessageId=33181 +Language=English +%1 +. +MessageId=33182 +Language=English +%1 +. +MessageId=33183 +Language=English +%1 +. +MessageId=33184 +Language=English +%1 +. +MessageId=33185 +Language=English +%1 +. +MessageId=33186 +Language=English +%1 +. +MessageId=33187 +Language=English +%1 +. +MessageId=33188 +Language=English +%1 +. +MessageId=33189 +Language=English +%1 +. +MessageId=33190 +Language=English +%1 +. +MessageId=33191 +Language=English +%1 +. +MessageId=33192 +Language=English +%1 +. +MessageId=33193 +Language=English +%1 +. +MessageId=33194 +Language=English +%1 +. +MessageId=33195 +Language=English +%1 +. +MessageId=33196 +Language=English +%1 +. +MessageId=33197 +Language=English +%1 +. +MessageId=33198 +Language=English +%1 +. +MessageId=33199 +Language=English +%1 +. +MessageId=33200 +Language=English +%1 +. +MessageId=33201 +Language=English +%1 +. +MessageId=33202 +Language=English +%1 +. +MessageId=33203 +Language=English +%1 +. +MessageId=33204 +Language=English +%1 +. +MessageId=33205 +Language=English +%1 +. +MessageId=33206 +Language=English +%1 +. +MessageId=33207 +Language=English +%1 +. +MessageId=33208 +Language=English +%1 +. +MessageId=33209 +Language=English +%1 +. +MessageId=33210 +Language=English +%1 +. +MessageId=33211 +Language=English +%1 +. +MessageId=33212 +Language=English +%1 +. +MessageId=33213 +Language=English +%1 +. +MessageId=33214 +Language=English +%1 +. +MessageId=33215 +Language=English +%1 +. +MessageId=33216 +Language=English +%1 +. +MessageId=33217 +Language=English +%1 +. +MessageId=33218 +Language=English +%1 +. +MessageId=33219 +Language=English +%1 +. +MessageId=33220 +Language=English +%1 +. +MessageId=33221 +Language=English +%1 +. +MessageId=33222 +Language=English +%1 +. +MessageId=33223 +Language=English +%1 +. +MessageId=33224 +Language=English +%1 +. +MessageId=33225 +Language=English +%1 +. +MessageId=33226 +Language=English +%1 +. +MessageId=33227 +Language=English +%1 +. +MessageId=33228 +Language=English +%1 +. +MessageId=33229 +Language=English +%1 +. +MessageId=33230 +Language=English +%1 +. +MessageId=33231 +Language=English +%1 +. +MessageId=33232 +Language=English +%1 +. +MessageId=33233 +Language=English +%1 +. +MessageId=33234 +Language=English +%1 +. +MessageId=33235 +Language=English +%1 +. +MessageId=33236 +Language=English +%1 +. +MessageId=33237 +Language=English +%1 +. +MessageId=33238 +Language=English +%1 +. +MessageId=33239 +Language=English +%1 +. +MessageId=33240 +Language=English +%1 +. +MessageId=33241 +Language=English +%1 +. +MessageId=33242 +Language=English +%1 +. +MessageId=33243 +Language=English +%1 +. +MessageId=33244 +Language=English +%1 +. +MessageId=33245 +Language=English +%1 +. +MessageId=33246 +Language=English +%1 +. +MessageId=33247 +Language=English +%1 +. +MessageId=33248 +Language=English +%1 +. +MessageId=33249 +Language=English +%1 +. +MessageId=33250 +Language=English +%1 +. +MessageId=33251 +Language=English +%1 +. +MessageId=33252 +Language=English +%1 +. +MessageId=33253 +Language=English +%1 +. +MessageId=33254 +Language=English +%1 +. +MessageId=33255 +Language=English +%1 +. +MessageId=33256 +Language=English +%1 +. +MessageId=33257 +Language=English +%1 +. +MessageId=33258 +Language=English +%1 +. +MessageId=33259 +Language=English +%1 +. +MessageId=33260 +Language=English +%1 +. +MessageId=33261 +Language=English +%1 +. +MessageId=33262 +Language=English +%1 +. +MessageId=33263 +Language=English +%1 +. +MessageId=33264 +Language=English +%1 +. +MessageId=33265 +Language=English +%1 +. +MessageId=33266 +Language=English +%1 +. +MessageId=33267 +Language=English +%1 +. +MessageId=33268 +Language=English +%1 +. +MessageId=33269 +Language=English +%1 +. +MessageId=33270 +Language=English +%1 +. +MessageId=33271 +Language=English +%1 +. +MessageId=33272 +Language=English +%1 +. +MessageId=33273 +Language=English +%1 +. +MessageId=33274 +Language=English +%1 +. +MessageId=33275 +Language=English +%1 +. +MessageId=33276 +Language=English +%1 +. +MessageId=33277 +Language=English +%1 +. +MessageId=33278 +Language=English +%1 +. +MessageId=33279 +Language=English +%1 +. +MessageId=33280 +Language=English +%1 +. +MessageId=33281 +Language=English +%1 +. +MessageId=33282 +Language=English +%1 +. +MessageId=33283 +Language=English +%1 +. +MessageId=33284 +Language=English +%1 +. +MessageId=33285 +Language=English +%1 +. +MessageId=33286 +Language=English +%1 +. +MessageId=33287 +Language=English +%1 +. +MessageId=33288 +Language=English +%1 +. +MessageId=33289 +Language=English +%1 +. +MessageId=33290 +Language=English +%1 +. +MessageId=33291 +Language=English +%1 +. +MessageId=33292 +Language=English +%1 +. +MessageId=33293 +Language=English +%1 +. +MessageId=33294 +Language=English +%1 +. +MessageId=33295 +Language=English +%1 +. +MessageId=33296 +Language=English +%1 +. +MessageId=33297 +Language=English +%1 +. +MessageId=33298 +Language=English +%1 +. +MessageId=33299 +Language=English +%1 +. +MessageId=33300 +Language=English +%1 +. +MessageId=33301 +Language=English +%1 +. +MessageId=33302 +Language=English +%1 +. +MessageId=33303 +Language=English +%1 +. +MessageId=33304 +Language=English +%1 +. +MessageId=33305 +Language=English +%1 +. +MessageId=33306 +Language=English +%1 +. +MessageId=33307 +Language=English +%1 +. +MessageId=33308 +Language=English +%1 +. +MessageId=33309 +Language=English +%1 +. +MessageId=33310 +Language=English +%1 +. +MessageId=33311 +Language=English +%1 +. +MessageId=33312 +Language=English +%1 +. +MessageId=33313 +Language=English +%1 +. +MessageId=33314 +Language=English +%1 +. +MessageId=33315 +Language=English +%1 +. +MessageId=33316 +Language=English +%1 +. +MessageId=33317 +Language=English +%1 +. +MessageId=33318 +Language=English +%1 +. +MessageId=33319 +Language=English +%1 +. +MessageId=33320 +Language=English +%1 +. +MessageId=33321 +Language=English +%1 +. +MessageId=33322 +Language=English +%1 +. +MessageId=33323 +Language=English +%1 +. +MessageId=33324 +Language=English +%1 +. +MessageId=33325 +Language=English +%1 +. +MessageId=33326 +Language=English +%1 +. +MessageId=33327 +Language=English +%1 +. +MessageId=33328 +Language=English +%1 +. +MessageId=33329 +Language=English +%1 +. +MessageId=33330 +Language=English +%1 +. +MessageId=33331 +Language=English +%1 +. +MessageId=33332 +Language=English +%1 +. +MessageId=33333 +Language=English +%1 +. +MessageId=33334 +Language=English +%1 +. +MessageId=33335 +Language=English +%1 +. +MessageId=33336 +Language=English +%1 +. +MessageId=33337 +Language=English +%1 +. +MessageId=33338 +Language=English +%1 +. +MessageId=33339 +Language=English +%1 +. +MessageId=33340 +Language=English +%1 +. +MessageId=33341 +Language=English +%1 +. +MessageId=33342 +Language=English +%1 +. +MessageId=33343 +Language=English +%1 +. +MessageId=33344 +Language=English +%1 +. +MessageId=33345 +Language=English +%1 +. +MessageId=33346 +Language=English +%1 +. +MessageId=33347 +Language=English +%1 +. +MessageId=33348 +Language=English +%1 +. +MessageId=33349 +Language=English +%1 +. +MessageId=33350 +Language=English +%1 +. +MessageId=33351 +Language=English +%1 +. +MessageId=33352 +Language=English +%1 +. +MessageId=33353 +Language=English +%1 +. +MessageId=33354 +Language=English +%1 +. +MessageId=33355 +Language=English +%1 +. +MessageId=33356 +Language=English +%1 +. +MessageId=33357 +Language=English +%1 +. +MessageId=33358 +Language=English +%1 +. +MessageId=33359 +Language=English +%1 +. +MessageId=33360 +Language=English +%1 +. +MessageId=33361 +Language=English +%1 +. +MessageId=33362 +Language=English +%1 +. +MessageId=33363 +Language=English +%1 +. +MessageId=33364 +Language=English +%1 +. +MessageId=33365 +Language=English +%1 +. +MessageId=33366 +Language=English +%1 +. +MessageId=33367 +Language=English +%1 +. +MessageId=33368 +Language=English +%1 +. +MessageId=33369 +Language=English +%1 +. +MessageId=33370 +Language=English +%1 +. +MessageId=33371 +Language=English +%1 +. +MessageId=33372 +Language=English +%1 +. +MessageId=33373 +Language=English +%1 +. +MessageId=33374 +Language=English +%1 +. +MessageId=33375 +Language=English +%1 +. +MessageId=33376 +Language=English +%1 +. +MessageId=33377 +Language=English +%1 +. +MessageId=33378 +Language=English +%1 +. +MessageId=33379 +Language=English +%1 +. +MessageId=33380 +Language=English +%1 +. +MessageId=33381 +Language=English +%1 +. +MessageId=33382 +Language=English +%1 +. +MessageId=33383 +Language=English +%1 +. +MessageId=33384 +Language=English +%1 +. +MessageId=33385 +Language=English +%1 +. +MessageId=33386 +Language=English +%1 +. +MessageId=33387 +Language=English +%1 +. +MessageId=33388 +Language=English +%1 +. +MessageId=33389 +Language=English +%1 +. +MessageId=33390 +Language=English +%1 +. +MessageId=33391 +Language=English +%1 +. +MessageId=33392 +Language=English +%1 +. +MessageId=33393 +Language=English +%1 +. +MessageId=33394 +Language=English +%1 +. +MessageId=33395 +Language=English +%1 +. +MessageId=33396 +Language=English +%1 +. +MessageId=33397 +Language=English +%1 +. +MessageId=33398 +Language=English +%1 +. +MessageId=33399 +Language=English +%1 +. +MessageId=33400 +Language=English +%1 +. +MessageId=33401 +Language=English +%1 +. +MessageId=33402 +Language=English +%1 +. +MessageId=33403 +Language=English +%1 +. +MessageId=33404 +Language=English +%1 +. +MessageId=33405 +Language=English +%1 +. +MessageId=33406 +Language=English +%1 +. +MessageId=33407 +Language=English +%1 +. +MessageId=33408 +Language=English +%1 +. +MessageId=33409 +Language=English +%1 +. +MessageId=33410 +Language=English +%1 +. +MessageId=33411 +Language=English +%1 +. +MessageId=33412 +Language=English +%1 +. +MessageId=33413 +Language=English +%1 +. +MessageId=33414 +Language=English +%1 +. +MessageId=33415 +Language=English +%1 +. +MessageId=33416 +Language=English +%1 +. +MessageId=33417 +Language=English +%1 +. +MessageId=33418 +Language=English +%1 +. +MessageId=33419 +Language=English +%1 +. +MessageId=33420 +Language=English +%1 +. +MessageId=33421 +Language=English +%1 +. +MessageId=33422 +Language=English +%1 +. +MessageId=33423 +Language=English +%1 +. +MessageId=33424 +Language=English +%1 +. +MessageId=33425 +Language=English +%1 +. +MessageId=33426 +Language=English +%1 +. +MessageId=33427 +Language=English +%1 +. +MessageId=33428 +Language=English +%1 +. +MessageId=33429 +Language=English +%1 +. +MessageId=33430 +Language=English +%1 +. +MessageId=33431 +Language=English +%1 +. +MessageId=33432 +Language=English +%1 +. +MessageId=33433 +Language=English +%1 +. +MessageId=33434 +Language=English +%1 +. +MessageId=33435 +Language=English +%1 +. +MessageId=33436 +Language=English +%1 +. +MessageId=33437 +Language=English +%1 +. +MessageId=33438 +Language=English +%1 +. +MessageId=33439 +Language=English +%1 +. +MessageId=33440 +Language=English +%1 +. +MessageId=33441 +Language=English +%1 +. +MessageId=33442 +Language=English +%1 +. +MessageId=33443 +Language=English +%1 +. +MessageId=33444 +Language=English +%1 +. +MessageId=33445 +Language=English +%1 +. +MessageId=33446 +Language=English +%1 +. +MessageId=33447 +Language=English +%1 +. +MessageId=33448 +Language=English +%1 +. +MessageId=33449 +Language=English +%1 +. +MessageId=33450 +Language=English +%1 +. +MessageId=33451 +Language=English +%1 +. +MessageId=33452 +Language=English +%1 +. +MessageId=33453 +Language=English +%1 +. +MessageId=33454 +Language=English +%1 +. +MessageId=33455 +Language=English +%1 +. +MessageId=33456 +Language=English +%1 +. +MessageId=33457 +Language=English +%1 +. +MessageId=33458 +Language=English +%1 +. +MessageId=33459 +Language=English +%1 +. +MessageId=33460 +Language=English +%1 +. +MessageId=33461 +Language=English +%1 +. +MessageId=33462 +Language=English +%1 +. +MessageId=33463 +Language=English +%1 +. +MessageId=33464 +Language=English +%1 +. +MessageId=33465 +Language=English +%1 +. +MessageId=33466 +Language=English +%1 +. +MessageId=33467 +Language=English +%1 +. +MessageId=33468 +Language=English +%1 +. +MessageId=33469 +Language=English +%1 +. +MessageId=33470 +Language=English +%1 +. +MessageId=33471 +Language=English +%1 +. +MessageId=33472 +Language=English +%1 +. +MessageId=33473 +Language=English +%1 +. +MessageId=33474 +Language=English +%1 +. +MessageId=33475 +Language=English +%1 +. +MessageId=33476 +Language=English +%1 +. +MessageId=33477 +Language=English +%1 +. +MessageId=33478 +Language=English +%1 +. +MessageId=33479 +Language=English +%1 +. +MessageId=33480 +Language=English +%1 +. +MessageId=33481 +Language=English +%1 +. +MessageId=33482 +Language=English +%1 +. +MessageId=33483 +Language=English +%1 +. +MessageId=33484 +Language=English +%1 +. +MessageId=33485 +Language=English +%1 +. +MessageId=33486 +Language=English +%1 +. +MessageId=33487 +Language=English +%1 +. +MessageId=33488 +Language=English +%1 +. +MessageId=33489 +Language=English +%1 +. +MessageId=33490 +Language=English +%1 +. +MessageId=33491 +Language=English +%1 +. +MessageId=33492 +Language=English +%1 +. +MessageId=33493 +Language=English +%1 +. +MessageId=33494 +Language=English +%1 +. +MessageId=33495 +Language=English +%1 +. +MessageId=33496 +Language=English +%1 +. +MessageId=33497 +Language=English +%1 +. +MessageId=33498 +Language=English +%1 +. +MessageId=33499 +Language=English +%1 +. +MessageId=33500 +Language=English +%1 +. +MessageId=33501 +Language=English +%1 +. +MessageId=33502 +Language=English +%1 +. +MessageId=33503 +Language=English +%1 +. +MessageId=33504 +Language=English +%1 +. +MessageId=33505 +Language=English +%1 +. +MessageId=33506 +Language=English +%1 +. +MessageId=33507 +Language=English +%1 +. +MessageId=33508 +Language=English +%1 +. +MessageId=33509 +Language=English +%1 +. +MessageId=33510 +Language=English +%1 +. +MessageId=33511 +Language=English +%1 +. +MessageId=33512 +Language=English +%1 +. +MessageId=33513 +Language=English +%1 +. +MessageId=33514 +Language=English +%1 +. +MessageId=33515 +Language=English +%1 +. +MessageId=33516 +Language=English +%1 +. +MessageId=33517 +Language=English +%1 +. +MessageId=33518 +Language=English +%1 +. +MessageId=33519 +Language=English +%1 +. +MessageId=33520 +Language=English +%1 +. +MessageId=33521 +Language=English +%1 +. +MessageId=33522 +Language=English +%1 +. +MessageId=33523 +Language=English +%1 +. +MessageId=33524 +Language=English +%1 +. +MessageId=33525 +Language=English +%1 +. +MessageId=33526 +Language=English +%1 +. +MessageId=33527 +Language=English +%1 +. +MessageId=33528 +Language=English +%1 +. +MessageId=33529 +Language=English +%1 +. +MessageId=33530 +Language=English +%1 +. +MessageId=33531 +Language=English +%1 +. +MessageId=33532 +Language=English +%1 +. +MessageId=33533 +Language=English +%1 +. +MessageId=33534 +Language=English +%1 +. +MessageId=33535 +Language=English +%1 +. +MessageId=33536 +Language=English +%1 +. +MessageId=33537 +Language=English +%1 +. +MessageId=33538 +Language=English +%1 +. +MessageId=33539 +Language=English +%1 +. +MessageId=33540 +Language=English +%1 +. +MessageId=33541 +Language=English +%1 +. +MessageId=33542 +Language=English +%1 +. +MessageId=33543 +Language=English +%1 +. +MessageId=33544 +Language=English +%1 +. +MessageId=33545 +Language=English +%1 +. +MessageId=33546 +Language=English +%1 +. +MessageId=33547 +Language=English +%1 +. +MessageId=33548 +Language=English +%1 +. +MessageId=33549 +Language=English +%1 +. +MessageId=33550 +Language=English +%1 +. +MessageId=33551 +Language=English +%1 +. +MessageId=33552 +Language=English +%1 +. +MessageId=33553 +Language=English +%1 +. +MessageId=33554 +Language=English +%1 +. +MessageId=33555 +Language=English +%1 +. +MessageId=33556 +Language=English +%1 +. +MessageId=33557 +Language=English +%1 +. +MessageId=33558 +Language=English +%1 +. +MessageId=33559 +Language=English +%1 +. +MessageId=33560 +Language=English +%1 +. +MessageId=33561 +Language=English +%1 +. +MessageId=33562 +Language=English +%1 +. +MessageId=33563 +Language=English +%1 +. +MessageId=33564 +Language=English +%1 +. +MessageId=33565 +Language=English +%1 +. +MessageId=33566 +Language=English +%1 +. +MessageId=33567 +Language=English +%1 +. +MessageId=33568 +Language=English +%1 +. +MessageId=33569 +Language=English +%1 +. +MessageId=33570 +Language=English +%1 +. +MessageId=33571 +Language=English +%1 +. +MessageId=33572 +Language=English +%1 +. +MessageId=33573 +Language=English +%1 +. +MessageId=33574 +Language=English +%1 +. +MessageId=33575 +Language=English +%1 +. +MessageId=33576 +Language=English +%1 +. +MessageId=33577 +Language=English +%1 +. +MessageId=33578 +Language=English +%1 +. +MessageId=33579 +Language=English +%1 +. +MessageId=33580 +Language=English +%1 +. +MessageId=33581 +Language=English +%1 +. +MessageId=33582 +Language=English +%1 +. +MessageId=33583 +Language=English +%1 +. +MessageId=33584 +Language=English +%1 +. +MessageId=33585 +Language=English +%1 +. +MessageId=33586 +Language=English +%1 +. +MessageId=33587 +Language=English +%1 +. +MessageId=33588 +Language=English +%1 +. +MessageId=33589 +Language=English +%1 +. +MessageId=33590 +Language=English +%1 +. +MessageId=33591 +Language=English +%1 +. +MessageId=33592 +Language=English +%1 +. +MessageId=33593 +Language=English +%1 +. +MessageId=33594 +Language=English +%1 +. +MessageId=33595 +Language=English +%1 +. +MessageId=33596 +Language=English +%1 +. +MessageId=33597 +Language=English +%1 +. +MessageId=33598 +Language=English +%1 +. +MessageId=33599 +Language=English +%1 +. +MessageId=33600 +Language=English +%1 +. +MessageId=33601 +Language=English +%1 +. +MessageId=33602 +Language=English +%1 +. +MessageId=33603 +Language=English +%1 +. +MessageId=33604 +Language=English +%1 +. +MessageId=33605 +Language=English +%1 +. +MessageId=33606 +Language=English +%1 +. +MessageId=33607 +Language=English +%1 +. +MessageId=33608 +Language=English +%1 +. +MessageId=33609 +Language=English +%1 +. +MessageId=33610 +Language=English +%1 +. +MessageId=33611 +Language=English +%1 +. +MessageId=33612 +Language=English +%1 +. +MessageId=33613 +Language=English +%1 +. +MessageId=33614 +Language=English +%1 +. +MessageId=33615 +Language=English +%1 +. +MessageId=33616 +Language=English +%1 +. +MessageId=33617 +Language=English +%1 +. +MessageId=33618 +Language=English +%1 +. +MessageId=33619 +Language=English +%1 +. +MessageId=33620 +Language=English +%1 +. +MessageId=33621 +Language=English +%1 +. +MessageId=33622 +Language=English +%1 +. +MessageId=33623 +Language=English +%1 +. +MessageId=33624 +Language=English +%1 +. +MessageId=33625 +Language=English +%1 +. +MessageId=33626 +Language=English +%1 +. +MessageId=33627 +Language=English +%1 +. +MessageId=33628 +Language=English +%1 +. +MessageId=33629 +Language=English +%1 +. +MessageId=33630 +Language=English +%1 +. +MessageId=33631 +Language=English +%1 +. +MessageId=33632 +Language=English +%1 +. +MessageId=33633 +Language=English +%1 +. +MessageId=33634 +Language=English +%1 +. +MessageId=33635 +Language=English +%1 +. +MessageId=33636 +Language=English +%1 +. +MessageId=33637 +Language=English +%1 +. +MessageId=33638 +Language=English +%1 +. +MessageId=33639 +Language=English +%1 +. +MessageId=33640 +Language=English +%1 +. +MessageId=33641 +Language=English +%1 +. +MessageId=33642 +Language=English +%1 +. +MessageId=33643 +Language=English +%1 +. +MessageId=33644 +Language=English +%1 +. +MessageId=33645 +Language=English +%1 +. +MessageId=33646 +Language=English +%1 +. +MessageId=33647 +Language=English +%1 +. +MessageId=33648 +Language=English +%1 +. +MessageId=33649 +Language=English +%1 +. +MessageId=33650 +Language=English +%1 +. +MessageId=33651 +Language=English +%1 +. +MessageId=33652 +Language=English +%1 +. +MessageId=33653 +Language=English +%1 +. +MessageId=33654 +Language=English +%1 +. +MessageId=33655 +Language=English +%1 +. +MessageId=33656 +Language=English +%1 +. +MessageId=33657 +Language=English +%1 +. +MessageId=33658 +Language=English +%1 +. +MessageId=33659 +Language=English +%1 +. +MessageId=33660 +Language=English +%1 +. +MessageId=33661 +Language=English +%1 +. +MessageId=33662 +Language=English +%1 +. +MessageId=33663 +Language=English +%1 +. +MessageId=33664 +Language=English +%1 +. +MessageId=33665 +Language=English +%1 +. +MessageId=33666 +Language=English +%1 +. +MessageId=33667 +Language=English +%1 +. +MessageId=33668 +Language=English +%1 +. +MessageId=33669 +Language=English +%1 +. +MessageId=33670 +Language=English +%1 +. +MessageId=33671 +Language=English +%1 +. +MessageId=33672 +Language=English +%1 +. +MessageId=33673 +Language=English +%1 +. +MessageId=33674 +Language=English +%1 +. +MessageId=33675 +Language=English +%1 +. +MessageId=33676 +Language=English +%1 +. +MessageId=33677 +Language=English +%1 +. +MessageId=33678 +Language=English +%1 +. +MessageId=33679 +Language=English +%1 +. +MessageId=33680 +Language=English +%1 +. +MessageId=33681 +Language=English +%1 +. +MessageId=33682 +Language=English +%1 +. +MessageId=33683 +Language=English +%1 +. +MessageId=33684 +Language=English +%1 +. +MessageId=33685 +Language=English +%1 +. +MessageId=33686 +Language=English +%1 +. +MessageId=33687 +Language=English +%1 +. +MessageId=33688 +Language=English +%1 +. +MessageId=33689 +Language=English +%1 +. +MessageId=33690 +Language=English +%1 +. +MessageId=33691 +Language=English +%1 +. +MessageId=33692 +Language=English +%1 +. +MessageId=33693 +Language=English +%1 +. +MessageId=33694 +Language=English +%1 +. +MessageId=33695 +Language=English +%1 +. +MessageId=33696 +Language=English +%1 +. +MessageId=33697 +Language=English +%1 +. +MessageId=33698 +Language=English +%1 +. +MessageId=33699 +Language=English +%1 +. +MessageId=33700 +Language=English +%1 +. +MessageId=33701 +Language=English +%1 +. +MessageId=33702 +Language=English +%1 +. +MessageId=33703 +Language=English +%1 +. +MessageId=33704 +Language=English +%1 +. +MessageId=33705 +Language=English +%1 +. +MessageId=33706 +Language=English +%1 +. +MessageId=33707 +Language=English +%1 +. +MessageId=33708 +Language=English +%1 +. +MessageId=33709 +Language=English +%1 +. +MessageId=33710 +Language=English +%1 +. +MessageId=33711 +Language=English +%1 +. +MessageId=33712 +Language=English +%1 +. +MessageId=33713 +Language=English +%1 +. +MessageId=33714 +Language=English +%1 +. +MessageId=33715 +Language=English +%1 +. +MessageId=33716 +Language=English +%1 +. +MessageId=33717 +Language=English +%1 +. +MessageId=33718 +Language=English +%1 +. +MessageId=33719 +Language=English +%1 +. +MessageId=33720 +Language=English +%1 +. +MessageId=33721 +Language=English +%1 +. +MessageId=33722 +Language=English +%1 +. +MessageId=33723 +Language=English +%1 +. +MessageId=33724 +Language=English +%1 +. +MessageId=33725 +Language=English +%1 +. +MessageId=33726 +Language=English +%1 +. +MessageId=33727 +Language=English +%1 +. +MessageId=33728 +Language=English +%1 +. +MessageId=33729 +Language=English +%1 +. +MessageId=33730 +Language=English +%1 +. +MessageId=33731 +Language=English +%1 +. +MessageId=33732 +Language=English +%1 +. +MessageId=33733 +Language=English +%1 +. +MessageId=33734 +Language=English +%1 +. +MessageId=33735 +Language=English +%1 +. +MessageId=33736 +Language=English +%1 +. +MessageId=33737 +Language=English +%1 +. +MessageId=33738 +Language=English +%1 +. +MessageId=33739 +Language=English +%1 +. +MessageId=33740 +Language=English +%1 +. +MessageId=33741 +Language=English +%1 +. +MessageId=33742 +Language=English +%1 +. +MessageId=33743 +Language=English +%1 +. +MessageId=33744 +Language=English +%1 +. +MessageId=33745 +Language=English +%1 +. +MessageId=33746 +Language=English +%1 +. +MessageId=33747 +Language=English +%1 +. +MessageId=33748 +Language=English +%1 +. +MessageId=33749 +Language=English +%1 +. +MessageId=33750 +Language=English +%1 +. +MessageId=33751 +Language=English +%1 +. +MessageId=33752 +Language=English +%1 +. +MessageId=33753 +Language=English +%1 +. +MessageId=33754 +Language=English +%1 +. +MessageId=33755 +Language=English +%1 +. +MessageId=33756 +Language=English +%1 +. +MessageId=33757 +Language=English +%1 +. +MessageId=33758 +Language=English +%1 +. +MessageId=33759 +Language=English +%1 +. +MessageId=33760 +Language=English +%1 +. +MessageId=33761 +Language=English +%1 +. +MessageId=33762 +Language=English +%1 +. +MessageId=33763 +Language=English +%1 +. +MessageId=33764 +Language=English +%1 +. +MessageId=33765 +Language=English +%1 +. +MessageId=33766 +Language=English +%1 +. +MessageId=33767 +Language=English +%1 +. +MessageId=33768 +Language=English +%1 +. +MessageId=33769 +Language=English +%1 +. +MessageId=33770 +Language=English +%1 +. +MessageId=33771 +Language=English +%1 +. +MessageId=33772 +Language=English +%1 +. +MessageId=33773 +Language=English +%1 +. +MessageId=33774 +Language=English +%1 +. +MessageId=33775 +Language=English +%1 +. +MessageId=33776 +Language=English +%1 +. +MessageId=33777 +Language=English +%1 +. +MessageId=33778 +Language=English +%1 +. +MessageId=33779 +Language=English +%1 +. +MessageId=33780 +Language=English +%1 +. +MessageId=33781 +Language=English +%1 +. +MessageId=33782 +Language=English +%1 +. +MessageId=33783 +Language=English +%1 +. +MessageId=33784 +Language=English +%1 +. +MessageId=33785 +Language=English +%1 +. +MessageId=33786 +Language=English +%1 +. +MessageId=33787 +Language=English +%1 +. +MessageId=33788 +Language=English +%1 +. +MessageId=33789 +Language=English +%1 +. +MessageId=33790 +Language=English +%1 +. +MessageId=33791 +Language=English +%1 +. +MessageId=33792 +Language=English +%1 +. +MessageId=33793 +Language=English +%1 +. +MessageId=33794 +Language=English +%1 +. +MessageId=33795 +Language=English +%1 +. +MessageId=33796 +Language=English +%1 +. +MessageId=33797 +Language=English +%1 +. +MessageId=33798 +Language=English +%1 +. +MessageId=33799 +Language=English +%1 +. +MessageId=33800 +Language=English +%1 +. +MessageId=33801 +Language=English +%1 +. +MessageId=33802 +Language=English +%1 +. +MessageId=33803 +Language=English +%1 +. +MessageId=33804 +Language=English +%1 +. +MessageId=33805 +Language=English +%1 +. +MessageId=33806 +Language=English +%1 +. +MessageId=33807 +Language=English +%1 +. +MessageId=33808 +Language=English +%1 +. +MessageId=33809 +Language=English +%1 +. +MessageId=33810 +Language=English +%1 +. +MessageId=33811 +Language=English +%1 +. +MessageId=33812 +Language=English +%1 +. +MessageId=33813 +Language=English +%1 +. +MessageId=33814 +Language=English +%1 +. +MessageId=33815 +Language=English +%1 +. +MessageId=33816 +Language=English +%1 +. +MessageId=33817 +Language=English +%1 +. +MessageId=33818 +Language=English +%1 +. +MessageId=33819 +Language=English +%1 +. +MessageId=33820 +Language=English +%1 +. +MessageId=33821 +Language=English +%1 +. +MessageId=33822 +Language=English +%1 +. +MessageId=33823 +Language=English +%1 +. +MessageId=33824 +Language=English +%1 +. +MessageId=33825 +Language=English +%1 +. +MessageId=33826 +Language=English +%1 +. +MessageId=33827 +Language=English +%1 +. +MessageId=33828 +Language=English +%1 +. +MessageId=33829 +Language=English +%1 +. +MessageId=33830 +Language=English +%1 +. +MessageId=33831 +Language=English +%1 +. +MessageId=33832 +Language=English +%1 +. +MessageId=33833 +Language=English +%1 +. +MessageId=33834 +Language=English +%1 +. +MessageId=33835 +Language=English +%1 +. +MessageId=33836 +Language=English +%1 +. +MessageId=33837 +Language=English +%1 +. +MessageId=33838 +Language=English +%1 +. +MessageId=33839 +Language=English +%1 +. +MessageId=33840 +Language=English +%1 +. +MessageId=33841 +Language=English +%1 +. +MessageId=33842 +Language=English +%1 +. +MessageId=33843 +Language=English +%1 +. +MessageId=33844 +Language=English +%1 +. +MessageId=33845 +Language=English +%1 +. +MessageId=33846 +Language=English +%1 +. +MessageId=33847 +Language=English +%1 +. +MessageId=33848 +Language=English +%1 +. +MessageId=33849 +Language=English +%1 +. +MessageId=33850 +Language=English +%1 +. +MessageId=33851 +Language=English +%1 +. +MessageId=33852 +Language=English +%1 +. +MessageId=33853 +Language=English +%1 +. +MessageId=33854 +Language=English +%1 +. +MessageId=33855 +Language=English +%1 +. +MessageId=33856 +Language=English +%1 +. +MessageId=33857 +Language=English +%1 +. +MessageId=33858 +Language=English +%1 +. +MessageId=33859 +Language=English +%1 +. +MessageId=33860 +Language=English +%1 +. +MessageId=33861 +Language=English +%1 +. +MessageId=33862 +Language=English +%1 +. +MessageId=33863 +Language=English +%1 +. +MessageId=33864 +Language=English +%1 +. +MessageId=33865 +Language=English +%1 +. +MessageId=33866 +Language=English +%1 +. +MessageId=33867 +Language=English +%1 +. +MessageId=33868 +Language=English +%1 +. +MessageId=33869 +Language=English +%1 +. +MessageId=33870 +Language=English +%1 +. +MessageId=33871 +Language=English +%1 +. +MessageId=33872 +Language=English +%1 +. +MessageId=33873 +Language=English +%1 +. +MessageId=33874 +Language=English +%1 +. +MessageId=33875 +Language=English +%1 +. +MessageId=33876 +Language=English +%1 +. +MessageId=33877 +Language=English +%1 +. +MessageId=33878 +Language=English +%1 +. +MessageId=33879 +Language=English +%1 +. +MessageId=33880 +Language=English +%1 +. +MessageId=33881 +Language=English +%1 +. +MessageId=33882 +Language=English +%1 +. +MessageId=33883 +Language=English +%1 +. +MessageId=33884 +Language=English +%1 +. +MessageId=33885 +Language=English +%1 +. +MessageId=33886 +Language=English +%1 +. +MessageId=33887 +Language=English +%1 +. +MessageId=33888 +Language=English +%1 +. +MessageId=33889 +Language=English +%1 +. +MessageId=33890 +Language=English +%1 +. +MessageId=33891 +Language=English +%1 +. +MessageId=33892 +Language=English +%1 +. +MessageId=33893 +Language=English +%1 +. +MessageId=33894 +Language=English +%1 +. +MessageId=33895 +Language=English +%1 +. +MessageId=33896 +Language=English +%1 +. +MessageId=33897 +Language=English +%1 +. +MessageId=33898 +Language=English +%1 +. +MessageId=33899 +Language=English +%1 +. +MessageId=33900 +Language=English +%1 +. +MessageId=33901 +Language=English +%1 +. +MessageId=33902 +Language=English +%1 +. +MessageId=33903 +Language=English +%1 +. +MessageId=33904 +Language=English +%1 +. +MessageId=33905 +Language=English +%1 +. +MessageId=33906 +Language=English +%1 +. +MessageId=33907 +Language=English +%1 +. +MessageId=33908 +Language=English +%1 +. +MessageId=33909 +Language=English +%1 +. +MessageId=33910 +Language=English +%1 +. +MessageId=33911 +Language=English +%1 +. +MessageId=33912 +Language=English +%1 +. +MessageId=33913 +Language=English +%1 +. +MessageId=33914 +Language=English +%1 +. +MessageId=33915 +Language=English +%1 +. +MessageId=33916 +Language=English +%1 +. +MessageId=33917 +Language=English +%1 +. +MessageId=33918 +Language=English +%1 +. +MessageId=33919 +Language=English +%1 +. +MessageId=33920 +Language=English +%1 +. +MessageId=33921 +Language=English +%1 +. +MessageId=33922 +Language=English +%1 +. +MessageId=33923 +Language=English +%1 +. +MessageId=33924 +Language=English +%1 +. +MessageId=33925 +Language=English +%1 +. +MessageId=33926 +Language=English +%1 +. +MessageId=33927 +Language=English +%1 +. +MessageId=33928 +Language=English +%1 +. +MessageId=33929 +Language=English +%1 +. +MessageId=33930 +Language=English +%1 +. +MessageId=33931 +Language=English +%1 +. +MessageId=33932 +Language=English +%1 +. +MessageId=33933 +Language=English +%1 +. +MessageId=33934 +Language=English +%1 +. +MessageId=33935 +Language=English +%1 +. +MessageId=33936 +Language=English +%1 +. +MessageId=33937 +Language=English +%1 +. +MessageId=33938 +Language=English +%1 +. +MessageId=33939 +Language=English +%1 +. +MessageId=33940 +Language=English +%1 +. +MessageId=33941 +Language=English +%1 +. +MessageId=33942 +Language=English +%1 +. +MessageId=33943 +Language=English +%1 +. +MessageId=33944 +Language=English +%1 +. +MessageId=33945 +Language=English +%1 +. +MessageId=33946 +Language=English +%1 +. +MessageId=33947 +Language=English +%1 +. +MessageId=33948 +Language=English +%1 +. +MessageId=33949 +Language=English +%1 +. +MessageId=33950 +Language=English +%1 +. +MessageId=33951 +Language=English +%1 +. +MessageId=33952 +Language=English +%1 +. +MessageId=33953 +Language=English +%1 +. +MessageId=33954 +Language=English +%1 +. +MessageId=33955 +Language=English +%1 +. +MessageId=33956 +Language=English +%1 +. +MessageId=33957 +Language=English +%1 +. +MessageId=33958 +Language=English +%1 +. +MessageId=33959 +Language=English +%1 +. +MessageId=33960 +Language=English +%1 +. +MessageId=33961 +Language=English +%1 +. +MessageId=33962 +Language=English +%1 +. +MessageId=33963 +Language=English +%1 +. +MessageId=33964 +Language=English +%1 +. +MessageId=33965 +Language=English +%1 +. +MessageId=33966 +Language=English +%1 +. +MessageId=33967 +Language=English +%1 +. +MessageId=33968 +Language=English +%1 +. +MessageId=33969 +Language=English +%1 +. +MessageId=33970 +Language=English +%1 +. +MessageId=33971 +Language=English +%1 +. +MessageId=33972 +Language=English +%1 +. +MessageId=33973 +Language=English +%1 +. +MessageId=33974 +Language=English +%1 +. +MessageId=33975 +Language=English +%1 +. +MessageId=33976 +Language=English +%1 +. +MessageId=33977 +Language=English +%1 +. +MessageId=33978 +Language=English +%1 +. +MessageId=33979 +Language=English +%1 +. +MessageId=33980 +Language=English +%1 +. +MessageId=33981 +Language=English +%1 +. +MessageId=33982 +Language=English +%1 +. +MessageId=33983 +Language=English +%1 +. +MessageId=33984 +Language=English +%1 +. +MessageId=33985 +Language=English +%1 +. +MessageId=33986 +Language=English +%1 +. +MessageId=33987 +Language=English +%1 +. +MessageId=33988 +Language=English +%1 +. +MessageId=33989 +Language=English +%1 +. +MessageId=33990 +Language=English +%1 +. +MessageId=33991 +Language=English +%1 +. +MessageId=33992 +Language=English +%1 +. +MessageId=33993 +Language=English +%1 +. +MessageId=33994 +Language=English +%1 +. +MessageId=33995 +Language=English +%1 +. +MessageId=33996 +Language=English +%1 +. +MessageId=33997 +Language=English +%1 +. +MessageId=33998 +Language=English +%1 +. +MessageId=33999 +Language=English +%1 +. +MessageId=34000 +Language=English +%1 +. +MessageId=34001 +Language=English +%1 +. +MessageId=34002 +Language=English +%1 +. +MessageId=34003 +Language=English +%1 +. +MessageId=34004 +Language=English +%1 +. +MessageId=34005 +Language=English +%1 +. +MessageId=34006 +Language=English +%1 +. +MessageId=34007 +Language=English +%1 +. +MessageId=34008 +Language=English +%1 +. +MessageId=34009 +Language=English +%1 +. +MessageId=34010 +Language=English +%1 +. +MessageId=34011 +Language=English +%1 +. +MessageId=34012 +Language=English +%1 +. +MessageId=34013 +Language=English +%1 +. +MessageId=34014 +Language=English +%1 +. +MessageId=34015 +Language=English +%1 +. +MessageId=34016 +Language=English +%1 +. +MessageId=34017 +Language=English +%1 +. +MessageId=34018 +Language=English +%1 +. +MessageId=34019 +Language=English +%1 +. +MessageId=34020 +Language=English +%1 +. +MessageId=34021 +Language=English +%1 +. +MessageId=34022 +Language=English +%1 +. +MessageId=34023 +Language=English +%1 +. +MessageId=34024 +Language=English +%1 +. +MessageId=34025 +Language=English +%1 +. +MessageId=34026 +Language=English +%1 +. +MessageId=34027 +Language=English +%1 +. +MessageId=34028 +Language=English +%1 +. +MessageId=34029 +Language=English +%1 +. +MessageId=34030 +Language=English +%1 +. +MessageId=34031 +Language=English +%1 +. +MessageId=34032 +Language=English +%1 +. +MessageId=34033 +Language=English +%1 +. +MessageId=34034 +Language=English +%1 +. +MessageId=34035 +Language=English +%1 +. +MessageId=34036 +Language=English +%1 +. +MessageId=34037 +Language=English +%1 +. +MessageId=34038 +Language=English +%1 +. +MessageId=34039 +Language=English +%1 +. +MessageId=34040 +Language=English +%1 +. +MessageId=34041 +Language=English +%1 +. +MessageId=34042 +Language=English +%1 +. +MessageId=34043 +Language=English +%1 +. +MessageId=34044 +Language=English +%1 +. +MessageId=34045 +Language=English +%1 +. +MessageId=34046 +Language=English +%1 +. +MessageId=34047 +Language=English +%1 +. +MessageId=34048 +Language=English +%1 +. +MessageId=34049 +Language=English +%1 +. +MessageId=34050 +Language=English +%1 +. +MessageId=34051 +Language=English +%1 +. +MessageId=34052 +Language=English +%1 +. +MessageId=34053 +Language=English +%1 +. +MessageId=34054 +Language=English +%1 +. +MessageId=34055 +Language=English +%1 +. +MessageId=34056 +Language=English +%1 +. +MessageId=34057 +Language=English +%1 +. +MessageId=34058 +Language=English +%1 +. +MessageId=34059 +Language=English +%1 +. +MessageId=34060 +Language=English +%1 +. +MessageId=34061 +Language=English +%1 +. +MessageId=34062 +Language=English +%1 +. +MessageId=34063 +Language=English +%1 +. +MessageId=34064 +Language=English +%1 +. +MessageId=34065 +Language=English +%1 +. +MessageId=34066 +Language=English +%1 +. +MessageId=34067 +Language=English +%1 +. +MessageId=34068 +Language=English +%1 +. +MessageId=34069 +Language=English +%1 +. +MessageId=34070 +Language=English +%1 +. +MessageId=34071 +Language=English +%1 +. +MessageId=34072 +Language=English +%1 +. +MessageId=34073 +Language=English +%1 +. +MessageId=34074 +Language=English +%1 +. +MessageId=34075 +Language=English +%1 +. +MessageId=34076 +Language=English +%1 +. +MessageId=34077 +Language=English +%1 +. +MessageId=34078 +Language=English +%1 +. +MessageId=34079 +Language=English +%1 +. +MessageId=34080 +Language=English +%1 +. +MessageId=34081 +Language=English +%1 +. +MessageId=34082 +Language=English +%1 +. +MessageId=34083 +Language=English +%1 +. +MessageId=34084 +Language=English +%1 +. +MessageId=34085 +Language=English +%1 +. +MessageId=34086 +Language=English +%1 +. +MessageId=34087 +Language=English +%1 +. +MessageId=34088 +Language=English +%1 +. +MessageId=34089 +Language=English +%1 +. +MessageId=34090 +Language=English +%1 +. +MessageId=34091 +Language=English +%1 +. +MessageId=34092 +Language=English +%1 +. +MessageId=34093 +Language=English +%1 +. +MessageId=34094 +Language=English +%1 +. +MessageId=34095 +Language=English +%1 +. +MessageId=34096 +Language=English +%1 +. +MessageId=34097 +Language=English +%1 +. +MessageId=34098 +Language=English +%1 +. +MessageId=34099 +Language=English +%1 +. +MessageId=34100 +Language=English +%1 +. +MessageId=34101 +Language=English +%1 +. +MessageId=34102 +Language=English +%1 +. +MessageId=34103 +Language=English +%1 +. +MessageId=34104 +Language=English +%1 +. +MessageId=34105 +Language=English +%1 +. +MessageId=34106 +Language=English +%1 +. +MessageId=34107 +Language=English +%1 +. +MessageId=34108 +Language=English +%1 +. +MessageId=34109 +Language=English +%1 +. +MessageId=34110 +Language=English +%1 +. +MessageId=34111 +Language=English +%1 +. +MessageId=34112 +Language=English +%1 +. +MessageId=34113 +Language=English +%1 +. +MessageId=34114 +Language=English +%1 +. +MessageId=34115 +Language=English +%1 +. +MessageId=34116 +Language=English +%1 +. +MessageId=34117 +Language=English +%1 +. +MessageId=34118 +Language=English +%1 +. +MessageId=34119 +Language=English +%1 +. +MessageId=34120 +Language=English +%1 +. +MessageId=34121 +Language=English +%1 +. +MessageId=34122 +Language=English +%1 +. +MessageId=34123 +Language=English +%1 +. +MessageId=34124 +Language=English +%1 +. +MessageId=34125 +Language=English +%1 +. +MessageId=34126 +Language=English +%1 +. +MessageId=34127 +Language=English +%1 +. +MessageId=34128 +Language=English +%1 +. +MessageId=34129 +Language=English +%1 +. +MessageId=34130 +Language=English +%1 +. +MessageId=34131 +Language=English +%1 +. +MessageId=34132 +Language=English +%1 +. +MessageId=34133 +Language=English +%1 +. +MessageId=34134 +Language=English +%1 +. +MessageId=34135 +Language=English +%1 +. +MessageId=34136 +Language=English +%1 +. +MessageId=34137 +Language=English +%1 +. +MessageId=34138 +Language=English +%1 +. +MessageId=34139 +Language=English +%1 +. +MessageId=34140 +Language=English +%1 +. +MessageId=34141 +Language=English +%1 +. +MessageId=34142 +Language=English +%1 +. +MessageId=34143 +Language=English +%1 +. +MessageId=34144 +Language=English +%1 +. +MessageId=34145 +Language=English +%1 +. +MessageId=34146 +Language=English +%1 +. +MessageId=34147 +Language=English +%1 +. +MessageId=34148 +Language=English +%1 +. +MessageId=34149 +Language=English +%1 +. +MessageId=34150 +Language=English +%1 +. +MessageId=34151 +Language=English +%1 +. +MessageId=34152 +Language=English +%1 +. +MessageId=34153 +Language=English +%1 +. +MessageId=34154 +Language=English +%1 +. +MessageId=34155 +Language=English +%1 +. +MessageId=34156 +Language=English +%1 +. +MessageId=34157 +Language=English +%1 +. +MessageId=34158 +Language=English +%1 +. +MessageId=34159 +Language=English +%1 +. +MessageId=34160 +Language=English +%1 +. +MessageId=34161 +Language=English +%1 +. +MessageId=34162 +Language=English +%1 +. +MessageId=34163 +Language=English +%1 +. +MessageId=34164 +Language=English +%1 +. +MessageId=34165 +Language=English +%1 +. +MessageId=34166 +Language=English +%1 +. +MessageId=34167 +Language=English +%1 +. +MessageId=34168 +Language=English +%1 +. +MessageId=34169 +Language=English +%1 +. +MessageId=34170 +Language=English +%1 +. +MessageId=34171 +Language=English +%1 +. +MessageId=34172 +Language=English +%1 +. +MessageId=34173 +Language=English +%1 +. +MessageId=34174 +Language=English +%1 +. +MessageId=34175 +Language=English +%1 +. +MessageId=34176 +Language=English +%1 +. +MessageId=34177 +Language=English +%1 +. +MessageId=34178 +Language=English +%1 +. +MessageId=34179 +Language=English +%1 +. +MessageId=34180 +Language=English +%1 +. +MessageId=34181 +Language=English +%1 +. +MessageId=34182 +Language=English +%1 +. +MessageId=34183 +Language=English +%1 +. +MessageId=34184 +Language=English +%1 +. +MessageId=34185 +Language=English +%1 +. +MessageId=34186 +Language=English +%1 +. +MessageId=34187 +Language=English +%1 +. +MessageId=34188 +Language=English +%1 +. +MessageId=34189 +Language=English +%1 +. +MessageId=34190 +Language=English +%1 +. +MessageId=34191 +Language=English +%1 +. +MessageId=34192 +Language=English +%1 +. +MessageId=34193 +Language=English +%1 +. +MessageId=34194 +Language=English +%1 +. +MessageId=34195 +Language=English +%1 +. +MessageId=34196 +Language=English +%1 +. +MessageId=34197 +Language=English +%1 +. +MessageId=34198 +Language=English +%1 +. +MessageId=34199 +Language=English +%1 +. +MessageId=34200 +Language=English +%1 +. +MessageId=34201 +Language=English +%1 +. +MessageId=34202 +Language=English +%1 +. +MessageId=34203 +Language=English +%1 +. +MessageId=34204 +Language=English +%1 +. +MessageId=34205 +Language=English +%1 +. +MessageId=34206 +Language=English +%1 +. +MessageId=34207 +Language=English +%1 +. +MessageId=34208 +Language=English +%1 +. +MessageId=34209 +Language=English +%1 +. +MessageId=34210 +Language=English +%1 +. +MessageId=34211 +Language=English +%1 +. +MessageId=34212 +Language=English +%1 +. +MessageId=34213 +Language=English +%1 +. +MessageId=34214 +Language=English +%1 +. +MessageId=34215 +Language=English +%1 +. +MessageId=34216 +Language=English +%1 +. +MessageId=34217 +Language=English +%1 +. +MessageId=34218 +Language=English +%1 +. +MessageId=34219 +Language=English +%1 +. +MessageId=34220 +Language=English +%1 +. +MessageId=34221 +Language=English +%1 +. +MessageId=34222 +Language=English +%1 +. +MessageId=34223 +Language=English +%1 +. +MessageId=34224 +Language=English +%1 +. +MessageId=34225 +Language=English +%1 +. +MessageId=34226 +Language=English +%1 +. +MessageId=34227 +Language=English +%1 +. +MessageId=34228 +Language=English +%1 +. +MessageId=34229 +Language=English +%1 +. +MessageId=34230 +Language=English +%1 +. +MessageId=34231 +Language=English +%1 +. +MessageId=34232 +Language=English +%1 +. +MessageId=34233 +Language=English +%1 +. +MessageId=34234 +Language=English +%1 +. +MessageId=34235 +Language=English +%1 +. +MessageId=34236 +Language=English +%1 +. +MessageId=34237 +Language=English +%1 +. +MessageId=34238 +Language=English +%1 +. +MessageId=34239 +Language=English +%1 +. +MessageId=34240 +Language=English +%1 +. +MessageId=34241 +Language=English +%1 +. +MessageId=34242 +Language=English +%1 +. +MessageId=34243 +Language=English +%1 +. +MessageId=34244 +Language=English +%1 +. +MessageId=34245 +Language=English +%1 +. +MessageId=34246 +Language=English +%1 +. +MessageId=34247 +Language=English +%1 +. +MessageId=34248 +Language=English +%1 +. +MessageId=34249 +Language=English +%1 +. +MessageId=34250 +Language=English +%1 +. +MessageId=34251 +Language=English +%1 +. +MessageId=34252 +Language=English +%1 +. +MessageId=34253 +Language=English +%1 +. +MessageId=34254 +Language=English +%1 +. +MessageId=34255 +Language=English +%1 +. +MessageId=34256 +Language=English +%1 +. +MessageId=34257 +Language=English +%1 +. +MessageId=34258 +Language=English +%1 +. +MessageId=34259 +Language=English +%1 +. +MessageId=34260 +Language=English +%1 +. +MessageId=34261 +Language=English +%1 +. +MessageId=34262 +Language=English +%1 +. +MessageId=34263 +Language=English +%1 +. +MessageId=34264 +Language=English +%1 +. +MessageId=34265 +Language=English +%1 +. +MessageId=34266 +Language=English +%1 +. +MessageId=34267 +Language=English +%1 +. +MessageId=34268 +Language=English +%1 +. +MessageId=34269 +Language=English +%1 +. +MessageId=34270 +Language=English +%1 +. +MessageId=34271 +Language=English +%1 +. +MessageId=34272 +Language=English +%1 +. +MessageId=34273 +Language=English +%1 +. +MessageId=34274 +Language=English +%1 +. +MessageId=34275 +Language=English +%1 +. +MessageId=34276 +Language=English +%1 +. +MessageId=34277 +Language=English +%1 +. +MessageId=34278 +Language=English +%1 +. +MessageId=34279 +Language=English +%1 +. +MessageId=34280 +Language=English +%1 +. +MessageId=34281 +Language=English +%1 +. +MessageId=34282 +Language=English +%1 +. +MessageId=34283 +Language=English +%1 +. +MessageId=34284 +Language=English +%1 +. +MessageId=34285 +Language=English +%1 +. +MessageId=34286 +Language=English +%1 +. +MessageId=34287 +Language=English +%1 +. +MessageId=34288 +Language=English +%1 +. +MessageId=34289 +Language=English +%1 +. +MessageId=34290 +Language=English +%1 +. +MessageId=34291 +Language=English +%1 +. +MessageId=34292 +Language=English +%1 +. +MessageId=34293 +Language=English +%1 +. +MessageId=34294 +Language=English +%1 +. +MessageId=34295 +Language=English +%1 +. +MessageId=34296 +Language=English +%1 +. +MessageId=34297 +Language=English +%1 +. +MessageId=34298 +Language=English +%1 +. +MessageId=34299 +Language=English +%1 +. +MessageId=34300 +Language=English +%1 +. +MessageId=34301 +Language=English +%1 +. +MessageId=34302 +Language=English +%1 +. +MessageId=34303 +Language=English +%1 +. +MessageId=34304 +Language=English +%1 +. +MessageId=34305 +Language=English +%1 +. +MessageId=34306 +Language=English +%1 +. +MessageId=34307 +Language=English +%1 +. +MessageId=34308 +Language=English +%1 +. +MessageId=34309 +Language=English +%1 +. +MessageId=34310 +Language=English +%1 +. +MessageId=34311 +Language=English +%1 +. +MessageId=34312 +Language=English +%1 +. +MessageId=34313 +Language=English +%1 +. +MessageId=34314 +Language=English +%1 +. +MessageId=34315 +Language=English +%1 +. +MessageId=34316 +Language=English +%1 +. +MessageId=34317 +Language=English +%1 +. +MessageId=34318 +Language=English +%1 +. +MessageId=34319 +Language=English +%1 +. +MessageId=34320 +Language=English +%1 +. +MessageId=34321 +Language=English +%1 +. +MessageId=34322 +Language=English +%1 +. +MessageId=34323 +Language=English +%1 +. +MessageId=34324 +Language=English +%1 +. +MessageId=34325 +Language=English +%1 +. +MessageId=34326 +Language=English +%1 +. +MessageId=34327 +Language=English +%1 +. +MessageId=34328 +Language=English +%1 +. +MessageId=34329 +Language=English +%1 +. +MessageId=34330 +Language=English +%1 +. +MessageId=34331 +Language=English +%1 +. +MessageId=34332 +Language=English +%1 +. +MessageId=34333 +Language=English +%1 +. +MessageId=34334 +Language=English +%1 +. +MessageId=34335 +Language=English +%1 +. +MessageId=34336 +Language=English +%1 +. +MessageId=34337 +Language=English +%1 +. +MessageId=34338 +Language=English +%1 +. +MessageId=34339 +Language=English +%1 +. +MessageId=34340 +Language=English +%1 +. +MessageId=34341 +Language=English +%1 +. +MessageId=34342 +Language=English +%1 +. +MessageId=34343 +Language=English +%1 +. +MessageId=34344 +Language=English +%1 +. +MessageId=34345 +Language=English +%1 +. +MessageId=34346 +Language=English +%1 +. +MessageId=34347 +Language=English +%1 +. +MessageId=34348 +Language=English +%1 +. +MessageId=34349 +Language=English +%1 +. +MessageId=34350 +Language=English +%1 +. +MessageId=34351 +Language=English +%1 +. +MessageId=34352 +Language=English +%1 +. +MessageId=34353 +Language=English +%1 +. +MessageId=34354 +Language=English +%1 +. +MessageId=34355 +Language=English +%1 +. +MessageId=34356 +Language=English +%1 +. +MessageId=34357 +Language=English +%1 +. +MessageId=34358 +Language=English +%1 +. +MessageId=34359 +Language=English +%1 +. +MessageId=34360 +Language=English +%1 +. +MessageId=34361 +Language=English +%1 +. +MessageId=34362 +Language=English +%1 +. +MessageId=34363 +Language=English +%1 +. +MessageId=34364 +Language=English +%1 +. +MessageId=34365 +Language=English +%1 +. +MessageId=34366 +Language=English +%1 +. +MessageId=34367 +Language=English +%1 +. +MessageId=34368 +Language=English +%1 +. +MessageId=34369 +Language=English +%1 +. +MessageId=34370 +Language=English +%1 +. +MessageId=34371 +Language=English +%1 +. +MessageId=34372 +Language=English +%1 +. +MessageId=34373 +Language=English +%1 +. +MessageId=34374 +Language=English +%1 +. +MessageId=34375 +Language=English +%1 +. +MessageId=34376 +Language=English +%1 +. +MessageId=34377 +Language=English +%1 +. +MessageId=34378 +Language=English +%1 +. +MessageId=34379 +Language=English +%1 +. +MessageId=34380 +Language=English +%1 +. +MessageId=34381 +Language=English +%1 +. +MessageId=34382 +Language=English +%1 +. +MessageId=34383 +Language=English +%1 +. +MessageId=34384 +Language=English +%1 +. +MessageId=34385 +Language=English +%1 +. +MessageId=34386 +Language=English +%1 +. +MessageId=34387 +Language=English +%1 +. +MessageId=34388 +Language=English +%1 +. +MessageId=34389 +Language=English +%1 +. +MessageId=34390 +Language=English +%1 +. +MessageId=34391 +Language=English +%1 +. +MessageId=34392 +Language=English +%1 +. +MessageId=34393 +Language=English +%1 +. +MessageId=34394 +Language=English +%1 +. +MessageId=34395 +Language=English +%1 +. +MessageId=34396 +Language=English +%1 +. +MessageId=34397 +Language=English +%1 +. +MessageId=34398 +Language=English +%1 +. +MessageId=34399 +Language=English +%1 +. +MessageId=34400 +Language=English +%1 +. +MessageId=34401 +Language=English +%1 +. +MessageId=34402 +Language=English +%1 +. +MessageId=34403 +Language=English +%1 +. +MessageId=34404 +Language=English +%1 +. +MessageId=34405 +Language=English +%1 +. +MessageId=34406 +Language=English +%1 +. +MessageId=34407 +Language=English +%1 +. +MessageId=34408 +Language=English +%1 +. +MessageId=34409 +Language=English +%1 +. +MessageId=34410 +Language=English +%1 +. +MessageId=34411 +Language=English +%1 +. +MessageId=34412 +Language=English +%1 +. +MessageId=34413 +Language=English +%1 +. +MessageId=34414 +Language=English +%1 +. +MessageId=34415 +Language=English +%1 +. +MessageId=34416 +Language=English +%1 +. +MessageId=34417 +Language=English +%1 +. +MessageId=34418 +Language=English +%1 +. +MessageId=34419 +Language=English +%1 +. +MessageId=34420 +Language=English +%1 +. +MessageId=34421 +Language=English +%1 +. +MessageId=34422 +Language=English +%1 +. +MessageId=34423 +Language=English +%1 +. +MessageId=34424 +Language=English +%1 +. +MessageId=34425 +Language=English +%1 +. +MessageId=34426 +Language=English +%1 +. +MessageId=34427 +Language=English +%1 +. +MessageId=34428 +Language=English +%1 +. +MessageId=34429 +Language=English +%1 +. +MessageId=34430 +Language=English +%1 +. +MessageId=34431 +Language=English +%1 +. +MessageId=34432 +Language=English +%1 +. +MessageId=34433 +Language=English +%1 +. +MessageId=34434 +Language=English +%1 +. +MessageId=34435 +Language=English +%1 +. +MessageId=34436 +Language=English +%1 +. +MessageId=34437 +Language=English +%1 +. +MessageId=34438 +Language=English +%1 +. +MessageId=34439 +Language=English +%1 +. +MessageId=34440 +Language=English +%1 +. +MessageId=34441 +Language=English +%1 +. +MessageId=34442 +Language=English +%1 +. +MessageId=34443 +Language=English +%1 +. +MessageId=34444 +Language=English +%1 +. +MessageId=34445 +Language=English +%1 +. +MessageId=34446 +Language=English +%1 +. +MessageId=34447 +Language=English +%1 +. +MessageId=34448 +Language=English +%1 +. +MessageId=34449 +Language=English +%1 +. +MessageId=34450 +Language=English +%1 +. +MessageId=34451 +Language=English +%1 +. +MessageId=34452 +Language=English +%1 +. +MessageId=34453 +Language=English +%1 +. +MessageId=34454 +Language=English +%1 +. +MessageId=34455 +Language=English +%1 +. +MessageId=34456 +Language=English +%1 +. +MessageId=34457 +Language=English +%1 +. +MessageId=34458 +Language=English +%1 +. +MessageId=34459 +Language=English +%1 +. +MessageId=34460 +Language=English +%1 +. +MessageId=34461 +Language=English +%1 +. +MessageId=34462 +Language=English +%1 +. +MessageId=34463 +Language=English +%1 +. +MessageId=34464 +Language=English +%1 +. +MessageId=34465 +Language=English +%1 +. +MessageId=34466 +Language=English +%1 +. +MessageId=34467 +Language=English +%1 +. +MessageId=34468 +Language=English +%1 +. +MessageId=34469 +Language=English +%1 +. +MessageId=34470 +Language=English +%1 +. +MessageId=34471 +Language=English +%1 +. +MessageId=34472 +Language=English +%1 +. +MessageId=34473 +Language=English +%1 +. +MessageId=34474 +Language=English +%1 +. +MessageId=34475 +Language=English +%1 +. +MessageId=34476 +Language=English +%1 +. +MessageId=34477 +Language=English +%1 +. +MessageId=34478 +Language=English +%1 +. +MessageId=34479 +Language=English +%1 +. +MessageId=34480 +Language=English +%1 +. +MessageId=34481 +Language=English +%1 +. +MessageId=34482 +Language=English +%1 +. +MessageId=34483 +Language=English +%1 +. +MessageId=34484 +Language=English +%1 +. +MessageId=34485 +Language=English +%1 +. +MessageId=34486 +Language=English +%1 +. +MessageId=34487 +Language=English +%1 +. +MessageId=34488 +Language=English +%1 +. +MessageId=34489 +Language=English +%1 +. +MessageId=34490 +Language=English +%1 +. +MessageId=34491 +Language=English +%1 +. +MessageId=34492 +Language=English +%1 +. +MessageId=34493 +Language=English +%1 +. +MessageId=34494 +Language=English +%1 +. +MessageId=34495 +Language=English +%1 +. +MessageId=34496 +Language=English +%1 +. +MessageId=34497 +Language=English +%1 +. +MessageId=34498 +Language=English +%1 +. +MessageId=34499 +Language=English +%1 +. +MessageId=34500 +Language=English +%1 +. +MessageId=34501 +Language=English +%1 +. +MessageId=34502 +Language=English +%1 +. +MessageId=34503 +Language=English +%1 +. +MessageId=34504 +Language=English +%1 +. +MessageId=34505 +Language=English +%1 +. +MessageId=34506 +Language=English +%1 +. +MessageId=34507 +Language=English +%1 +. +MessageId=34508 +Language=English +%1 +. +MessageId=34509 +Language=English +%1 +. +MessageId=34510 +Language=English +%1 +. +MessageId=34511 +Language=English +%1 +. +MessageId=34512 +Language=English +%1 +. +MessageId=34513 +Language=English +%1 +. +MessageId=34514 +Language=English +%1 +. +MessageId=34515 +Language=English +%1 +. +MessageId=34516 +Language=English +%1 +. +MessageId=34517 +Language=English +%1 +. +MessageId=34518 +Language=English +%1 +. +MessageId=34519 +Language=English +%1 +. +MessageId=34520 +Language=English +%1 +. +MessageId=34521 +Language=English +%1 +. +MessageId=34522 +Language=English +%1 +. +MessageId=34523 +Language=English +%1 +. +MessageId=34524 +Language=English +%1 +. +MessageId=34525 +Language=English +%1 +. +MessageId=34526 +Language=English +%1 +. +MessageId=34527 +Language=English +%1 +. +MessageId=34528 +Language=English +%1 +. +MessageId=34529 +Language=English +%1 +. +MessageId=34530 +Language=English +%1 +. +MessageId=34531 +Language=English +%1 +. +MessageId=34532 +Language=English +%1 +. +MessageId=34533 +Language=English +%1 +. +MessageId=34534 +Language=English +%1 +. +MessageId=34535 +Language=English +%1 +. +MessageId=34536 +Language=English +%1 +. +MessageId=34537 +Language=English +%1 +. +MessageId=34538 +Language=English +%1 +. +MessageId=34539 +Language=English +%1 +. +MessageId=34540 +Language=English +%1 +. +MessageId=34541 +Language=English +%1 +. +MessageId=34542 +Language=English +%1 +. +MessageId=34543 +Language=English +%1 +. +MessageId=34544 +Language=English +%1 +. +MessageId=34545 +Language=English +%1 +. +MessageId=34546 +Language=English +%1 +. +MessageId=34547 +Language=English +%1 +. +MessageId=34548 +Language=English +%1 +. +MessageId=34549 +Language=English +%1 +. +MessageId=34550 +Language=English +%1 +. +MessageId=34551 +Language=English +%1 +. +MessageId=34552 +Language=English +%1 +. +MessageId=34553 +Language=English +%1 +. +MessageId=34554 +Language=English +%1 +. +MessageId=34555 +Language=English +%1 +. +MessageId=34556 +Language=English +%1 +. +MessageId=34557 +Language=English +%1 +. +MessageId=34558 +Language=English +%1 +. +MessageId=34559 +Language=English +%1 +. +MessageId=34560 +Language=English +%1 +. +MessageId=34561 +Language=English +%1 +. +MessageId=34562 +Language=English +%1 +. +MessageId=34563 +Language=English +%1 +. +MessageId=34564 +Language=English +%1 +. +MessageId=34565 +Language=English +%1 +. +MessageId=34566 +Language=English +%1 +. +MessageId=34567 +Language=English +%1 +. +MessageId=34568 +Language=English +%1 +. +MessageId=34569 +Language=English +%1 +. +MessageId=34570 +Language=English +%1 +. +MessageId=34571 +Language=English +%1 +. +MessageId=34572 +Language=English +%1 +. +MessageId=34573 +Language=English +%1 +. +MessageId=34574 +Language=English +%1 +. +MessageId=34575 +Language=English +%1 +. +MessageId=34576 +Language=English +%1 +. +MessageId=34577 +Language=English +%1 +. +MessageId=34578 +Language=English +%1 +. +MessageId=34579 +Language=English +%1 +. +MessageId=34580 +Language=English +%1 +. +MessageId=34581 +Language=English +%1 +. +MessageId=34582 +Language=English +%1 +. +MessageId=34583 +Language=English +%1 +. +MessageId=34584 +Language=English +%1 +. +MessageId=34585 +Language=English +%1 +. +MessageId=34586 +Language=English +%1 +. +MessageId=34587 +Language=English +%1 +. +MessageId=34588 +Language=English +%1 +. +MessageId=34589 +Language=English +%1 +. +MessageId=34590 +Language=English +%1 +. +MessageId=34591 +Language=English +%1 +. +MessageId=34592 +Language=English +%1 +. +MessageId=34593 +Language=English +%1 +. +MessageId=34594 +Language=English +%1 +. +MessageId=34595 +Language=English +%1 +. +MessageId=34596 +Language=English +%1 +. +MessageId=34597 +Language=English +%1 +. +MessageId=34598 +Language=English +%1 +. +MessageId=34599 +Language=English +%1 +. +MessageId=34600 +Language=English +%1 +. +MessageId=34601 +Language=English +%1 +. +MessageId=34602 +Language=English +%1 +. +MessageId=34603 +Language=English +%1 +. +MessageId=34604 +Language=English +%1 +. +MessageId=34605 +Language=English +%1 +. +MessageId=34606 +Language=English +%1 +. +MessageId=34607 +Language=English +%1 +. +MessageId=34608 +Language=English +%1 +. +MessageId=34609 +Language=English +%1 +. +MessageId=34610 +Language=English +%1 +. +MessageId=34611 +Language=English +%1 +. +MessageId=34612 +Language=English +%1 +. +MessageId=34613 +Language=English +%1 +. +MessageId=34614 +Language=English +%1 +. +MessageId=34615 +Language=English +%1 +. +MessageId=34616 +Language=English +%1 +. +MessageId=34617 +Language=English +%1 +. +MessageId=34618 +Language=English +%1 +. +MessageId=34619 +Language=English +%1 +. +MessageId=34620 +Language=English +%1 +. +MessageId=34621 +Language=English +%1 +. +MessageId=34622 +Language=English +%1 +. +MessageId=34623 +Language=English +%1 +. +MessageId=34624 +Language=English +%1 +. +MessageId=34625 +Language=English +%1 +. +MessageId=34626 +Language=English +%1 +. +MessageId=34627 +Language=English +%1 +. +MessageId=34628 +Language=English +%1 +. +MessageId=34629 +Language=English +%1 +. +MessageId=34630 +Language=English +%1 +. +MessageId=34631 +Language=English +%1 +. +MessageId=34632 +Language=English +%1 +. +MessageId=34633 +Language=English +%1 +. +MessageId=34634 +Language=English +%1 +. +MessageId=34635 +Language=English +%1 +. +MessageId=34636 +Language=English +%1 +. +MessageId=34637 +Language=English +%1 +. +MessageId=34638 +Language=English +%1 +. +MessageId=34639 +Language=English +%1 +. +MessageId=34640 +Language=English +%1 +. +MessageId=34641 +Language=English +%1 +. +MessageId=34642 +Language=English +%1 +. +MessageId=34643 +Language=English +%1 +. +MessageId=34644 +Language=English +%1 +. +MessageId=34645 +Language=English +%1 +. +MessageId=34646 +Language=English +%1 +. +MessageId=34647 +Language=English +%1 +. +MessageId=34648 +Language=English +%1 +. +MessageId=34649 +Language=English +%1 +. +MessageId=34650 +Language=English +%1 +. +MessageId=34651 +Language=English +%1 +. +MessageId=34652 +Language=English +%1 +. +MessageId=34653 +Language=English +%1 +. +MessageId=34654 +Language=English +%1 +. +MessageId=34655 +Language=English +%1 +. +MessageId=34656 +Language=English +%1 +. +MessageId=34657 +Language=English +%1 +. +MessageId=34658 +Language=English +%1 +. +MessageId=34659 +Language=English +%1 +. +MessageId=34660 +Language=English +%1 +. +MessageId=34661 +Language=English +%1 +. +MessageId=34662 +Language=English +%1 +. +MessageId=34663 +Language=English +%1 +. +MessageId=34664 +Language=English +%1 +. +MessageId=34665 +Language=English +%1 +. +MessageId=34666 +Language=English +%1 +. +MessageId=34667 +Language=English +%1 +. +MessageId=34668 +Language=English +%1 +. +MessageId=34669 +Language=English +%1 +. +MessageId=34670 +Language=English +%1 +. +MessageId=34671 +Language=English +%1 +. +MessageId=34672 +Language=English +%1 +. +MessageId=34673 +Language=English +%1 +. +MessageId=34674 +Language=English +%1 +. +MessageId=34675 +Language=English +%1 +. +MessageId=34676 +Language=English +%1 +. +MessageId=34677 +Language=English +%1 +. +MessageId=34678 +Language=English +%1 +. +MessageId=34679 +Language=English +%1 +. +MessageId=34680 +Language=English +%1 +. +MessageId=34681 +Language=English +%1 +. +MessageId=34682 +Language=English +%1 +. +MessageId=34683 +Language=English +%1 +. +MessageId=34684 +Language=English +%1 +. +MessageId=34685 +Language=English +%1 +. +MessageId=34686 +Language=English +%1 +. +MessageId=34687 +Language=English +%1 +. +MessageId=34688 +Language=English +%1 +. +MessageId=34689 +Language=English +%1 +. +MessageId=34690 +Language=English +%1 +. +MessageId=34691 +Language=English +%1 +. +MessageId=34692 +Language=English +%1 +. +MessageId=34693 +Language=English +%1 +. +MessageId=34694 +Language=English +%1 +. +MessageId=34695 +Language=English +%1 +. +MessageId=34696 +Language=English +%1 +. +MessageId=34697 +Language=English +%1 +. +MessageId=34698 +Language=English +%1 +. +MessageId=34699 +Language=English +%1 +. +MessageId=34700 +Language=English +%1 +. +MessageId=34701 +Language=English +%1 +. +MessageId=34702 +Language=English +%1 +. +MessageId=34703 +Language=English +%1 +. +MessageId=34704 +Language=English +%1 +. +MessageId=34705 +Language=English +%1 +. +MessageId=34706 +Language=English +%1 +. +MessageId=34707 +Language=English +%1 +. +MessageId=34708 +Language=English +%1 +. +MessageId=34709 +Language=English +%1 +. +MessageId=34710 +Language=English +%1 +. +MessageId=34711 +Language=English +%1 +. +MessageId=34712 +Language=English +%1 +. +MessageId=34713 +Language=English +%1 +. +MessageId=34714 +Language=English +%1 +. +MessageId=34715 +Language=English +%1 +. +MessageId=34716 +Language=English +%1 +. +MessageId=34717 +Language=English +%1 +. +MessageId=34718 +Language=English +%1 +. +MessageId=34719 +Language=English +%1 +. +MessageId=34720 +Language=English +%1 +. +MessageId=34721 +Language=English +%1 +. +MessageId=34722 +Language=English +%1 +. +MessageId=34723 +Language=English +%1 +. +MessageId=34724 +Language=English +%1 +. +MessageId=34725 +Language=English +%1 +. +MessageId=34726 +Language=English +%1 +. +MessageId=34727 +Language=English +%1 +. +MessageId=34728 +Language=English +%1 +. +MessageId=34729 +Language=English +%1 +. +MessageId=34730 +Language=English +%1 +. +MessageId=34731 +Language=English +%1 +. +MessageId=34732 +Language=English +%1 +. +MessageId=34733 +Language=English +%1 +. +MessageId=34734 +Language=English +%1 +. +MessageId=34735 +Language=English +%1 +. +MessageId=34736 +Language=English +%1 +. +MessageId=34737 +Language=English +%1 +. +MessageId=34738 +Language=English +%1 +. +MessageId=34739 +Language=English +%1 +. +MessageId=34740 +Language=English +%1 +. +MessageId=34741 +Language=English +%1 +. +MessageId=34742 +Language=English +%1 +. +MessageId=34743 +Language=English +%1 +. +MessageId=34744 +Language=English +%1 +. +MessageId=34745 +Language=English +%1 +. +MessageId=34746 +Language=English +%1 +. +MessageId=34747 +Language=English +%1 +. +MessageId=34748 +Language=English +%1 +. +MessageId=34749 +Language=English +%1 +. +MessageId=34750 +Language=English +%1 +. +MessageId=34751 +Language=English +%1 +. +MessageId=34752 +Language=English +%1 +. +MessageId=34753 +Language=English +%1 +. +MessageId=34754 +Language=English +%1 +. +MessageId=34755 +Language=English +%1 +. +MessageId=34756 +Language=English +%1 +. +MessageId=34757 +Language=English +%1 +. +MessageId=34758 +Language=English +%1 +. +MessageId=34759 +Language=English +%1 +. +MessageId=34760 +Language=English +%1 +. +MessageId=34761 +Language=English +%1 +. +MessageId=34762 +Language=English +%1 +. +MessageId=34763 +Language=English +%1 +. +MessageId=34764 +Language=English +%1 +. +MessageId=34765 +Language=English +%1 +. +MessageId=34766 +Language=English +%1 +. +MessageId=34767 +Language=English +%1 +. +MessageId=34768 +Language=English +%1 +. +MessageId=34769 +Language=English +%1 +. +MessageId=34770 +Language=English +%1 +. +MessageId=34771 +Language=English +%1 +. +MessageId=34772 +Language=English +%1 +. +MessageId=34773 +Language=English +%1 +. +MessageId=34774 +Language=English +%1 +. +MessageId=34775 +Language=English +%1 +. +MessageId=34776 +Language=English +%1 +. +MessageId=34777 +Language=English +%1 +. +MessageId=34778 +Language=English +%1 +. +MessageId=34779 +Language=English +%1 +. +MessageId=34780 +Language=English +%1 +. +MessageId=34781 +Language=English +%1 +. +MessageId=34782 +Language=English +%1 +. +MessageId=34783 +Language=English +%1 +. +MessageId=34784 +Language=English +%1 +. +MessageId=34785 +Language=English +%1 +. +MessageId=34786 +Language=English +%1 +. +MessageId=34787 +Language=English +%1 +. +MessageId=34788 +Language=English +%1 +. +MessageId=34789 +Language=English +%1 +. +MessageId=34790 +Language=English +%1 +. +MessageId=34791 +Language=English +%1 +. +MessageId=34792 +Language=English +%1 +. +MessageId=34793 +Language=English +%1 +. +MessageId=34794 +Language=English +%1 +. +MessageId=34795 +Language=English +%1 +. +MessageId=34796 +Language=English +%1 +. +MessageId=34797 +Language=English +%1 +. +MessageId=34798 +Language=English +%1 +. +MessageId=34799 +Language=English +%1 +. +MessageId=34800 +Language=English +%1 +. +MessageId=34801 +Language=English +%1 +. +MessageId=34802 +Language=English +%1 +. +MessageId=34803 +Language=English +%1 +. +MessageId=34804 +Language=English +%1 +. +MessageId=34805 +Language=English +%1 +. +MessageId=34806 +Language=English +%1 +. +MessageId=34807 +Language=English +%1 +. +MessageId=34808 +Language=English +%1 +. +MessageId=34809 +Language=English +%1 +. +MessageId=34810 +Language=English +%1 +. +MessageId=34811 +Language=English +%1 +. +MessageId=34812 +Language=English +%1 +. +MessageId=34813 +Language=English +%1 +. +MessageId=34814 +Language=English +%1 +. +MessageId=34815 +Language=English +%1 +. +MessageId=34816 +Language=English +%1 +. +MessageId=34817 +Language=English +%1 +. +MessageId=34818 +Language=English +%1 +. +MessageId=34819 +Language=English +%1 +. +MessageId=34820 +Language=English +%1 +. +MessageId=34821 +Language=English +%1 +. +MessageId=34822 +Language=English +%1 +. +MessageId=34823 +Language=English +%1 +. +MessageId=34824 +Language=English +%1 +. +MessageId=34825 +Language=English +%1 +. +MessageId=34826 +Language=English +%1 +. +MessageId=34827 +Language=English +%1 +. +MessageId=34828 +Language=English +%1 +. +MessageId=34829 +Language=English +%1 +. +MessageId=34830 +Language=English +%1 +. +MessageId=34831 +Language=English +%1 +. +MessageId=34832 +Language=English +%1 +. +MessageId=34833 +Language=English +%1 +. +MessageId=34834 +Language=English +%1 +. +MessageId=34835 +Language=English +%1 +. +MessageId=34836 +Language=English +%1 +. +MessageId=34837 +Language=English +%1 +. +MessageId=34838 +Language=English +%1 +. +MessageId=34839 +Language=English +%1 +. +MessageId=34840 +Language=English +%1 +. +MessageId=34841 +Language=English +%1 +. +MessageId=34842 +Language=English +%1 +. +MessageId=34843 +Language=English +%1 +. +MessageId=34844 +Language=English +%1 +. +MessageId=34845 +Language=English +%1 +. +MessageId=34846 +Language=English +%1 +. +MessageId=34847 +Language=English +%1 +. +MessageId=34848 +Language=English +%1 +. +MessageId=34849 +Language=English +%1 +. +MessageId=34850 +Language=English +%1 +. +MessageId=34851 +Language=English +%1 +. +MessageId=34852 +Language=English +%1 +. +MessageId=34853 +Language=English +%1 +. +MessageId=34854 +Language=English +%1 +. +MessageId=34855 +Language=English +%1 +. +MessageId=34856 +Language=English +%1 +. +MessageId=34857 +Language=English +%1 +. +MessageId=34858 +Language=English +%1 +. +MessageId=34859 +Language=English +%1 +. +MessageId=34860 +Language=English +%1 +. +MessageId=34861 +Language=English +%1 +. +MessageId=34862 +Language=English +%1 +. +MessageId=34863 +Language=English +%1 +. +MessageId=34864 +Language=English +%1 +. +MessageId=34865 +Language=English +%1 +. +MessageId=34866 +Language=English +%1 +. +MessageId=34867 +Language=English +%1 +. +MessageId=34868 +Language=English +%1 +. +MessageId=34869 +Language=English +%1 +. +MessageId=34870 +Language=English +%1 +. +MessageId=34871 +Language=English +%1 +. +MessageId=34872 +Language=English +%1 +. +MessageId=34873 +Language=English +%1 +. +MessageId=34874 +Language=English +%1 +. +MessageId=34875 +Language=English +%1 +. +MessageId=34876 +Language=English +%1 +. +MessageId=34877 +Language=English +%1 +. +MessageId=34878 +Language=English +%1 +. +MessageId=34879 +Language=English +%1 +. +MessageId=34880 +Language=English +%1 +. +MessageId=34881 +Language=English +%1 +. +MessageId=34882 +Language=English +%1 +. +MessageId=34883 +Language=English +%1 +. +MessageId=34884 +Language=English +%1 +. +MessageId=34885 +Language=English +%1 +. +MessageId=34886 +Language=English +%1 +. +MessageId=34887 +Language=English +%1 +. +MessageId=34888 +Language=English +%1 +. +MessageId=34889 +Language=English +%1 +. +MessageId=34890 +Language=English +%1 +. +MessageId=34891 +Language=English +%1 +. +MessageId=34892 +Language=English +%1 +. +MessageId=34893 +Language=English +%1 +. +MessageId=34894 +Language=English +%1 +. +MessageId=34895 +Language=English +%1 +. +MessageId=34896 +Language=English +%1 +. +MessageId=34897 +Language=English +%1 +. +MessageId=34898 +Language=English +%1 +. +MessageId=34899 +Language=English +%1 +. +MessageId=34900 +Language=English +%1 +. +MessageId=34901 +Language=English +%1 +. +MessageId=34902 +Language=English +%1 +. +MessageId=34903 +Language=English +%1 +. +MessageId=34904 +Language=English +%1 +. +MessageId=34905 +Language=English +%1 +. +MessageId=34906 +Language=English +%1 +. +MessageId=34907 +Language=English +%1 +. +MessageId=34908 +Language=English +%1 +. +MessageId=34909 +Language=English +%1 +. +MessageId=34910 +Language=English +%1 +. +MessageId=34911 +Language=English +%1 +. +MessageId=34912 +Language=English +%1 +. +MessageId=34913 +Language=English +%1 +. +MessageId=34914 +Language=English +%1 +. +MessageId=34915 +Language=English +%1 +. +MessageId=34916 +Language=English +%1 +. +MessageId=34917 +Language=English +%1 +. +MessageId=34918 +Language=English +%1 +. +MessageId=34919 +Language=English +%1 +. +MessageId=34920 +Language=English +%1 +. +MessageId=34921 +Language=English +%1 +. +MessageId=34922 +Language=English +%1 +. +MessageId=34923 +Language=English +%1 +. +MessageId=34924 +Language=English +%1 +. +MessageId=34925 +Language=English +%1 +. +MessageId=34926 +Language=English +%1 +. +MessageId=34927 +Language=English +%1 +. +MessageId=34928 +Language=English +%1 +. +MessageId=34929 +Language=English +%1 +. +MessageId=34930 +Language=English +%1 +. +MessageId=34931 +Language=English +%1 +. +MessageId=34932 +Language=English +%1 +. +MessageId=34933 +Language=English +%1 +. +MessageId=34934 +Language=English +%1 +. +MessageId=34935 +Language=English +%1 +. +MessageId=34936 +Language=English +%1 +. +MessageId=34937 +Language=English +%1 +. +MessageId=34938 +Language=English +%1 +. +MessageId=34939 +Language=English +%1 +. +MessageId=34940 +Language=English +%1 +. +MessageId=34941 +Language=English +%1 +. +MessageId=34942 +Language=English +%1 +. +MessageId=34943 +Language=English +%1 +. +MessageId=34944 +Language=English +%1 +. +MessageId=34945 +Language=English +%1 +. +MessageId=34946 +Language=English +%1 +. +MessageId=34947 +Language=English +%1 +. +MessageId=34948 +Language=English +%1 +. +MessageId=34949 +Language=English +%1 +. +MessageId=34950 +Language=English +%1 +. +MessageId=34951 +Language=English +%1 +. +MessageId=34952 +Language=English +%1 +. +MessageId=34953 +Language=English +%1 +. +MessageId=34954 +Language=English +%1 +. +MessageId=34955 +Language=English +%1 +. +MessageId=34956 +Language=English +%1 +. +MessageId=34957 +Language=English +%1 +. +MessageId=34958 +Language=English +%1 +. +MessageId=34959 +Language=English +%1 +. +MessageId=34960 +Language=English +%1 +. +MessageId=34961 +Language=English +%1 +. +MessageId=34962 +Language=English +%1 +. +MessageId=34963 +Language=English +%1 +. +MessageId=34964 +Language=English +%1 +. +MessageId=34965 +Language=English +%1 +. +MessageId=34966 +Language=English +%1 +. +MessageId=34967 +Language=English +%1 +. +MessageId=34968 +Language=English +%1 +. +MessageId=34969 +Language=English +%1 +. +MessageId=34970 +Language=English +%1 +. +MessageId=34971 +Language=English +%1 +. +MessageId=34972 +Language=English +%1 +. +MessageId=34973 +Language=English +%1 +. +MessageId=34974 +Language=English +%1 +. +MessageId=34975 +Language=English +%1 +. +MessageId=34976 +Language=English +%1 +. +MessageId=34977 +Language=English +%1 +. +MessageId=34978 +Language=English +%1 +. +MessageId=34979 +Language=English +%1 +. +MessageId=34980 +Language=English +%1 +. +MessageId=34981 +Language=English +%1 +. +MessageId=34982 +Language=English +%1 +. +MessageId=34983 +Language=English +%1 +. +MessageId=34984 +Language=English +%1 +. +MessageId=34985 +Language=English +%1 +. +MessageId=34986 +Language=English +%1 +. +MessageId=34987 +Language=English +%1 +. +MessageId=34988 +Language=English +%1 +. +MessageId=34989 +Language=English +%1 +. +MessageId=34990 +Language=English +%1 +. +MessageId=34991 +Language=English +%1 +. +MessageId=34992 +Language=English +%1 +. +MessageId=34993 +Language=English +%1 +. +MessageId=34994 +Language=English +%1 +. +MessageId=34995 +Language=English +%1 +. +MessageId=34996 +Language=English +%1 +. +MessageId=34997 +Language=English +%1 +. +MessageId=34998 +Language=English +%1 +. +MessageId=34999 +Language=English +%1 +. +MessageId=35000 +Language=English +%1 +. +MessageId=35001 +Language=English +%1 +. +MessageId=35002 +Language=English +%1 +. +MessageId=35003 +Language=English +%1 +. +MessageId=35004 +Language=English +%1 +. +MessageId=35005 +Language=English +%1 +. +MessageId=35006 +Language=English +%1 +. +MessageId=35007 +Language=English +%1 +. +MessageId=35008 +Language=English +%1 +. +MessageId=35009 +Language=English +%1 +. +MessageId=35010 +Language=English +%1 +. +MessageId=35011 +Language=English +%1 +. +MessageId=35012 +Language=English +%1 +. +MessageId=35013 +Language=English +%1 +. +MessageId=35014 +Language=English +%1 +. +MessageId=35015 +Language=English +%1 +. +MessageId=35016 +Language=English +%1 +. +MessageId=35017 +Language=English +%1 +. +MessageId=35018 +Language=English +%1 +. +MessageId=35019 +Language=English +%1 +. +MessageId=35020 +Language=English +%1 +. +MessageId=35021 +Language=English +%1 +. +MessageId=35022 +Language=English +%1 +. +MessageId=35023 +Language=English +%1 +. +MessageId=35024 +Language=English +%1 +. +MessageId=35025 +Language=English +%1 +. +MessageId=35026 +Language=English +%1 +. +MessageId=35027 +Language=English +%1 +. +MessageId=35028 +Language=English +%1 +. +MessageId=35029 +Language=English +%1 +. +MessageId=35030 +Language=English +%1 +. +MessageId=35031 +Language=English +%1 +. +MessageId=35032 +Language=English +%1 +. +MessageId=35033 +Language=English +%1 +. +MessageId=35034 +Language=English +%1 +. +MessageId=35035 +Language=English +%1 +. +MessageId=35036 +Language=English +%1 +. +MessageId=35037 +Language=English +%1 +. +MessageId=35038 +Language=English +%1 +. +MessageId=35039 +Language=English +%1 +. +MessageId=35040 +Language=English +%1 +. +MessageId=35041 +Language=English +%1 +. +MessageId=35042 +Language=English +%1 +. +MessageId=35043 +Language=English +%1 +. +MessageId=35044 +Language=English +%1 +. +MessageId=35045 +Language=English +%1 +. +MessageId=35046 +Language=English +%1 +. +MessageId=35047 +Language=English +%1 +. +MessageId=35048 +Language=English +%1 +. +MessageId=35049 +Language=English +%1 +. +MessageId=35050 +Language=English +%1 +. +MessageId=35051 +Language=English +%1 +. +MessageId=35052 +Language=English +%1 +. +MessageId=35053 +Language=English +%1 +. +MessageId=35054 +Language=English +%1 +. +MessageId=35055 +Language=English +%1 +. +MessageId=35056 +Language=English +%1 +. +MessageId=35057 +Language=English +%1 +. +MessageId=35058 +Language=English +%1 +. +MessageId=35059 +Language=English +%1 +. +MessageId=35060 +Language=English +%1 +. +MessageId=35061 +Language=English +%1 +. +MessageId=35062 +Language=English +%1 +. +MessageId=35063 +Language=English +%1 +. +MessageId=35064 +Language=English +%1 +. +MessageId=35065 +Language=English +%1 +. +MessageId=35066 +Language=English +%1 +. +MessageId=35067 +Language=English +%1 +. +MessageId=35068 +Language=English +%1 +. +MessageId=35069 +Language=English +%1 +. +MessageId=35070 +Language=English +%1 +. +MessageId=35071 +Language=English +%1 +. +MessageId=35072 +Language=English +%1 +. +MessageId=35073 +Language=English +%1 +. +MessageId=35074 +Language=English +%1 +. +MessageId=35075 +Language=English +%1 +. +MessageId=35076 +Language=English +%1 +. +MessageId=35077 +Language=English +%1 +. +MessageId=35078 +Language=English +%1 +. +MessageId=35079 +Language=English +%1 +. +MessageId=35080 +Language=English +%1 +. +MessageId=35081 +Language=English +%1 +. +MessageId=35082 +Language=English +%1 +. +MessageId=35083 +Language=English +%1 +. +MessageId=35084 +Language=English +%1 +. +MessageId=35085 +Language=English +%1 +. +MessageId=35086 +Language=English +%1 +. +MessageId=35087 +Language=English +%1 +. +MessageId=35088 +Language=English +%1 +. +MessageId=35089 +Language=English +%1 +. +MessageId=35090 +Language=English +%1 +. +MessageId=35091 +Language=English +%1 +. +MessageId=35092 +Language=English +%1 +. +MessageId=35093 +Language=English +%1 +. +MessageId=35094 +Language=English +%1 +. +MessageId=35095 +Language=English +%1 +. +MessageId=35096 +Language=English +%1 +. +MessageId=35097 +Language=English +%1 +. +MessageId=35098 +Language=English +%1 +. +MessageId=35099 +Language=English +%1 +. +MessageId=35100 +Language=English +%1 +. +MessageId=35101 +Language=English +%1 +. +MessageId=35102 +Language=English +%1 +. +MessageId=35103 +Language=English +%1 +. +MessageId=35104 +Language=English +%1 +. +MessageId=35105 +Language=English +%1 +. +MessageId=35106 +Language=English +%1 +. +MessageId=35107 +Language=English +%1 +. +MessageId=35108 +Language=English +%1 +. +MessageId=35109 +Language=English +%1 +. +MessageId=35110 +Language=English +%1 +. +MessageId=35111 +Language=English +%1 +. +MessageId=35112 +Language=English +%1 +. +MessageId=35113 +Language=English +%1 +. +MessageId=35114 +Language=English +%1 +. +MessageId=35115 +Language=English +%1 +. +MessageId=35116 +Language=English +%1 +. +MessageId=35117 +Language=English +%1 +. +MessageId=35118 +Language=English +%1 +. +MessageId=35119 +Language=English +%1 +. +MessageId=35120 +Language=English +%1 +. +MessageId=35121 +Language=English +%1 +. +MessageId=35122 +Language=English +%1 +. +MessageId=35123 +Language=English +%1 +. +MessageId=35124 +Language=English +%1 +. +MessageId=35125 +Language=English +%1 +. +MessageId=35126 +Language=English +%1 +. +MessageId=35127 +Language=English +%1 +. +MessageId=35128 +Language=English +%1 +. +MessageId=35129 +Language=English +%1 +. +MessageId=35130 +Language=English +%1 +. +MessageId=35131 +Language=English +%1 +. +MessageId=35132 +Language=English +%1 +. +MessageId=35133 +Language=English +%1 +. +MessageId=35134 +Language=English +%1 +. +MessageId=35135 +Language=English +%1 +. +MessageId=35136 +Language=English +%1 +. +MessageId=35137 +Language=English +%1 +. +MessageId=35138 +Language=English +%1 +. +MessageId=35139 +Language=English +%1 +. +MessageId=35140 +Language=English +%1 +. +MessageId=35141 +Language=English +%1 +. +MessageId=35142 +Language=English +%1 +. +MessageId=35143 +Language=English +%1 +. +MessageId=35144 +Language=English +%1 +. +MessageId=35145 +Language=English +%1 +. +MessageId=35146 +Language=English +%1 +. +MessageId=35147 +Language=English +%1 +. +MessageId=35148 +Language=English +%1 +. +MessageId=35149 +Language=English +%1 +. +MessageId=35150 +Language=English +%1 +. +MessageId=35151 +Language=English +%1 +. +MessageId=35152 +Language=English +%1 +. +MessageId=35153 +Language=English +%1 +. +MessageId=35154 +Language=English +%1 +. +MessageId=35155 +Language=English +%1 +. +MessageId=35156 +Language=English +%1 +. +MessageId=35157 +Language=English +%1 +. +MessageId=35158 +Language=English +%1 +. +MessageId=35159 +Language=English +%1 +. +MessageId=35160 +Language=English +%1 +. +MessageId=35161 +Language=English +%1 +. +MessageId=35162 +Language=English +%1 +. +MessageId=35163 +Language=English +%1 +. +MessageId=35164 +Language=English +%1 +. +MessageId=35165 +Language=English +%1 +. +MessageId=35166 +Language=English +%1 +. +MessageId=35167 +Language=English +%1 +. +MessageId=35168 +Language=English +%1 +. +MessageId=35169 +Language=English +%1 +. +MessageId=35170 +Language=English +%1 +. +MessageId=35171 +Language=English +%1 +. +MessageId=35172 +Language=English +%1 +. +MessageId=35173 +Language=English +%1 +. +MessageId=35174 +Language=English +%1 +. +MessageId=35175 +Language=English +%1 +. +MessageId=35176 +Language=English +%1 +. +MessageId=35177 +Language=English +%1 +. +MessageId=35178 +Language=English +%1 +. +MessageId=35179 +Language=English +%1 +. +MessageId=35180 +Language=English +%1 +. +MessageId=35181 +Language=English +%1 +. +MessageId=35182 +Language=English +%1 +. +MessageId=35183 +Language=English +%1 +. +MessageId=35184 +Language=English +%1 +. +MessageId=35185 +Language=English +%1 +. +MessageId=35186 +Language=English +%1 +. +MessageId=35187 +Language=English +%1 +. +MessageId=35188 +Language=English +%1 +. +MessageId=35189 +Language=English +%1 +. +MessageId=35190 +Language=English +%1 +. +MessageId=35191 +Language=English +%1 +. +MessageId=35192 +Language=English +%1 +. +MessageId=35193 +Language=English +%1 +. +MessageId=35194 +Language=English +%1 +. +MessageId=35195 +Language=English +%1 +. +MessageId=35196 +Language=English +%1 +. +MessageId=35197 +Language=English +%1 +. +MessageId=35198 +Language=English +%1 +. +MessageId=35199 +Language=English +%1 +. +MessageId=35200 +Language=English +%1 +. +MessageId=35201 +Language=English +%1 +. +MessageId=35202 +Language=English +%1 +. +MessageId=35203 +Language=English +%1 +. +MessageId=35204 +Language=English +%1 +. +MessageId=35205 +Language=English +%1 +. +MessageId=35206 +Language=English +%1 +. +MessageId=35207 +Language=English +%1 +. +MessageId=35208 +Language=English +%1 +. +MessageId=35209 +Language=English +%1 +. +MessageId=35210 +Language=English +%1 +. +MessageId=35211 +Language=English +%1 +. +MessageId=35212 +Language=English +%1 +. +MessageId=35213 +Language=English +%1 +. +MessageId=35214 +Language=English +%1 +. +MessageId=35215 +Language=English +%1 +. +MessageId=35216 +Language=English +%1 +. +MessageId=35217 +Language=English +%1 +. +MessageId=35218 +Language=English +%1 +. +MessageId=35219 +Language=English +%1 +. +MessageId=35220 +Language=English +%1 +. +MessageId=35221 +Language=English +%1 +. +MessageId=35222 +Language=English +%1 +. +MessageId=35223 +Language=English +%1 +. +MessageId=35224 +Language=English +%1 +. +MessageId=35225 +Language=English +%1 +. +MessageId=35226 +Language=English +%1 +. +MessageId=35227 +Language=English +%1 +. +MessageId=35228 +Language=English +%1 +. +MessageId=35229 +Language=English +%1 +. +MessageId=35230 +Language=English +%1 +. +MessageId=35231 +Language=English +%1 +. +MessageId=35232 +Language=English +%1 +. +MessageId=35233 +Language=English +%1 +. +MessageId=35234 +Language=English +%1 +. +MessageId=35235 +Language=English +%1 +. +MessageId=35236 +Language=English +%1 +. +MessageId=35237 +Language=English +%1 +. +MessageId=35238 +Language=English +%1 +. +MessageId=35239 +Language=English +%1 +. +MessageId=35240 +Language=English +%1 +. +MessageId=35241 +Language=English +%1 +. +MessageId=35242 +Language=English +%1 +. +MessageId=35243 +Language=English +%1 +. +MessageId=35244 +Language=English +%1 +. +MessageId=35245 +Language=English +%1 +. +MessageId=35246 +Language=English +%1 +. +MessageId=35247 +Language=English +%1 +. +MessageId=35248 +Language=English +%1 +. +MessageId=35249 +Language=English +%1 +. +MessageId=35250 +Language=English +%1 +. +MessageId=35251 +Language=English +%1 +. +MessageId=35252 +Language=English +%1 +. +MessageId=35253 +Language=English +%1 +. +MessageId=35254 +Language=English +%1 +. +MessageId=35255 +Language=English +%1 +. +MessageId=35256 +Language=English +%1 +. +MessageId=35257 +Language=English +%1 +. +MessageId=35258 +Language=English +%1 +. +MessageId=35259 +Language=English +%1 +. +MessageId=35260 +Language=English +%1 +. +MessageId=35261 +Language=English +%1 +. +MessageId=35262 +Language=English +%1 +. +MessageId=35263 +Language=English +%1 +. +MessageId=35264 +Language=English +%1 +. +MessageId=35265 +Language=English +%1 +. +MessageId=35266 +Language=English +%1 +. +MessageId=35267 +Language=English +%1 +. +MessageId=35268 +Language=English +%1 +. +MessageId=35269 +Language=English +%1 +. +MessageId=35270 +Language=English +%1 +. +MessageId=35271 +Language=English +%1 +. +MessageId=35272 +Language=English +%1 +. +MessageId=35273 +Language=English +%1 +. +MessageId=35274 +Language=English +%1 +. +MessageId=35275 +Language=English +%1 +. +MessageId=35276 +Language=English +%1 +. +MessageId=35277 +Language=English +%1 +. +MessageId=35278 +Language=English +%1 +. +MessageId=35279 +Language=English +%1 +. +MessageId=35280 +Language=English +%1 +. +MessageId=35281 +Language=English +%1 +. +MessageId=35282 +Language=English +%1 +. +MessageId=35283 +Language=English +%1 +. +MessageId=35284 +Language=English +%1 +. +MessageId=35285 +Language=English +%1 +. +MessageId=35286 +Language=English +%1 +. +MessageId=35287 +Language=English +%1 +. +MessageId=35288 +Language=English +%1 +. +MessageId=35289 +Language=English +%1 +. +MessageId=35290 +Language=English +%1 +. +MessageId=35291 +Language=English +%1 +. +MessageId=35292 +Language=English +%1 +. +MessageId=35293 +Language=English +%1 +. +MessageId=35294 +Language=English +%1 +. +MessageId=35295 +Language=English +%1 +. +MessageId=35296 +Language=English +%1 +. +MessageId=35297 +Language=English +%1 +. +MessageId=35298 +Language=English +%1 +. +MessageId=35299 +Language=English +%1 +. +MessageId=35300 +Language=English +%1 +. +MessageId=35301 +Language=English +%1 +. +MessageId=35302 +Language=English +%1 +. +MessageId=35303 +Language=English +%1 +. +MessageId=35304 +Language=English +%1 +. +MessageId=35305 +Language=English +%1 +. +MessageId=35306 +Language=English +%1 +. +MessageId=35307 +Language=English +%1 +. +MessageId=35308 +Language=English +%1 +. +MessageId=35309 +Language=English +%1 +. +MessageId=35310 +Language=English +%1 +. +MessageId=35311 +Language=English +%1 +. +MessageId=35312 +Language=English +%1 +. +MessageId=35313 +Language=English +%1 +. +MessageId=35314 +Language=English +%1 +. +MessageId=35315 +Language=English +%1 +. +MessageId=35316 +Language=English +%1 +. +MessageId=35317 +Language=English +%1 +. +MessageId=35318 +Language=English +%1 +. +MessageId=35319 +Language=English +%1 +. +MessageId=35320 +Language=English +%1 +. +MessageId=35321 +Language=English +%1 +. +MessageId=35322 +Language=English +%1 +. +MessageId=35323 +Language=English +%1 +. +MessageId=35324 +Language=English +%1 +. +MessageId=35325 +Language=English +%1 +. +MessageId=35326 +Language=English +%1 +. +MessageId=35327 +Language=English +%1 +. +MessageId=35328 +Language=English +%1 +. +MessageId=35329 +Language=English +%1 +. +MessageId=35330 +Language=English +%1 +. +MessageId=35331 +Language=English +%1 +. +MessageId=35332 +Language=English +%1 +. +MessageId=35333 +Language=English +%1 +. +MessageId=35334 +Language=English +%1 +. +MessageId=35335 +Language=English +%1 +. +MessageId=35336 +Language=English +%1 +. +MessageId=35337 +Language=English +%1 +. +MessageId=35338 +Language=English +%1 +. +MessageId=35339 +Language=English +%1 +. +MessageId=35340 +Language=English +%1 +. +MessageId=35341 +Language=English +%1 +. +MessageId=35342 +Language=English +%1 +. +MessageId=35343 +Language=English +%1 +. +MessageId=35344 +Language=English +%1 +. +MessageId=35345 +Language=English +%1 +. +MessageId=35346 +Language=English +%1 +. +MessageId=35347 +Language=English +%1 +. +MessageId=35348 +Language=English +%1 +. +MessageId=35349 +Language=English +%1 +. +MessageId=35350 +Language=English +%1 +. +MessageId=35351 +Language=English +%1 +. +MessageId=35352 +Language=English +%1 +. +MessageId=35353 +Language=English +%1 +. +MessageId=35354 +Language=English +%1 +. +MessageId=35355 +Language=English +%1 +. +MessageId=35356 +Language=English +%1 +. +MessageId=35357 +Language=English +%1 +. +MessageId=35358 +Language=English +%1 +. +MessageId=35359 +Language=English +%1 +. +MessageId=35360 +Language=English +%1 +. +MessageId=35361 +Language=English +%1 +. +MessageId=35362 +Language=English +%1 +. +MessageId=35363 +Language=English +%1 +. +MessageId=35364 +Language=English +%1 +. +MessageId=35365 +Language=English +%1 +. +MessageId=35366 +Language=English +%1 +. +MessageId=35367 +Language=English +%1 +. +MessageId=35368 +Language=English +%1 +. +MessageId=35369 +Language=English +%1 +. +MessageId=35370 +Language=English +%1 +. +MessageId=35371 +Language=English +%1 +. +MessageId=35372 +Language=English +%1 +. +MessageId=35373 +Language=English +%1 +. +MessageId=35374 +Language=English +%1 +. +MessageId=35375 +Language=English +%1 +. +MessageId=35376 +Language=English +%1 +. +MessageId=35377 +Language=English +%1 +. +MessageId=35378 +Language=English +%1 +. +MessageId=35379 +Language=English +%1 +. +MessageId=35380 +Language=English +%1 +. +MessageId=35381 +Language=English +%1 +. +MessageId=35382 +Language=English +%1 +. +MessageId=35383 +Language=English +%1 +. +MessageId=35384 +Language=English +%1 +. +MessageId=35385 +Language=English +%1 +. +MessageId=35386 +Language=English +%1 +. +MessageId=35387 +Language=English +%1 +. +MessageId=35388 +Language=English +%1 +. +MessageId=35389 +Language=English +%1 +. +MessageId=35390 +Language=English +%1 +. +MessageId=35391 +Language=English +%1 +. +MessageId=35392 +Language=English +%1 +. +MessageId=35393 +Language=English +%1 +. +MessageId=35394 +Language=English +%1 +. +MessageId=35395 +Language=English +%1 +. +MessageId=35396 +Language=English +%1 +. +MessageId=35397 +Language=English +%1 +. +MessageId=35398 +Language=English +%1 +. +MessageId=35399 +Language=English +%1 +. +MessageId=35400 +Language=English +%1 +. +MessageId=35401 +Language=English +%1 +. +MessageId=35402 +Language=English +%1 +. +MessageId=35403 +Language=English +%1 +. +MessageId=35404 +Language=English +%1 +. +MessageId=35405 +Language=English +%1 +. +MessageId=35406 +Language=English +%1 +. +MessageId=35407 +Language=English +%1 +. +MessageId=35408 +Language=English +%1 +. +MessageId=35409 +Language=English +%1 +. +MessageId=35410 +Language=English +%1 +. +MessageId=35411 +Language=English +%1 +. +MessageId=35412 +Language=English +%1 +. +MessageId=35413 +Language=English +%1 +. +MessageId=35414 +Language=English +%1 +. +MessageId=35415 +Language=English +%1 +. +MessageId=35416 +Language=English +%1 +. +MessageId=35417 +Language=English +%1 +. +MessageId=35418 +Language=English +%1 +. +MessageId=35419 +Language=English +%1 +. +MessageId=35420 +Language=English +%1 +. +MessageId=35421 +Language=English +%1 +. +MessageId=35422 +Language=English +%1 +. +MessageId=35423 +Language=English +%1 +. +MessageId=35424 +Language=English +%1 +. +MessageId=35425 +Language=English +%1 +. +MessageId=35426 +Language=English +%1 +. +MessageId=35427 +Language=English +%1 +. +MessageId=35428 +Language=English +%1 +. +MessageId=35429 +Language=English +%1 +. +MessageId=35430 +Language=English +%1 +. +MessageId=35431 +Language=English +%1 +. +MessageId=35432 +Language=English +%1 +. +MessageId=35433 +Language=English +%1 +. +MessageId=35434 +Language=English +%1 +. +MessageId=35435 +Language=English +%1 +. +MessageId=35436 +Language=English +%1 +. +MessageId=35437 +Language=English +%1 +. +MessageId=35438 +Language=English +%1 +. +MessageId=35439 +Language=English +%1 +. +MessageId=35440 +Language=English +%1 +. +MessageId=35441 +Language=English +%1 +. +MessageId=35442 +Language=English +%1 +. +MessageId=35443 +Language=English +%1 +. +MessageId=35444 +Language=English +%1 +. +MessageId=35445 +Language=English +%1 +. +MessageId=35446 +Language=English +%1 +. +MessageId=35447 +Language=English +%1 +. +MessageId=35448 +Language=English +%1 +. +MessageId=35449 +Language=English +%1 +. +MessageId=35450 +Language=English +%1 +. +MessageId=35451 +Language=English +%1 +. +MessageId=35452 +Language=English +%1 +. +MessageId=35453 +Language=English +%1 +. +MessageId=35454 +Language=English +%1 +. +MessageId=35455 +Language=English +%1 +. +MessageId=35456 +Language=English +%1 +. +MessageId=35457 +Language=English +%1 +. +MessageId=35458 +Language=English +%1 +. +MessageId=35459 +Language=English +%1 +. +MessageId=35460 +Language=English +%1 +. +MessageId=35461 +Language=English +%1 +. +MessageId=35462 +Language=English +%1 +. +MessageId=35463 +Language=English +%1 +. +MessageId=35464 +Language=English +%1 +. +MessageId=35465 +Language=English +%1 +. +MessageId=35466 +Language=English +%1 +. +MessageId=35467 +Language=English +%1 +. +MessageId=35468 +Language=English +%1 +. +MessageId=35469 +Language=English +%1 +. +MessageId=35470 +Language=English +%1 +. +MessageId=35471 +Language=English +%1 +. +MessageId=35472 +Language=English +%1 +. +MessageId=35473 +Language=English +%1 +. +MessageId=35474 +Language=English +%1 +. +MessageId=35475 +Language=English +%1 +. +MessageId=35476 +Language=English +%1 +. +MessageId=35477 +Language=English +%1 +. +MessageId=35478 +Language=English +%1 +. +MessageId=35479 +Language=English +%1 +. +MessageId=35480 +Language=English +%1 +. +MessageId=35481 +Language=English +%1 +. +MessageId=35482 +Language=English +%1 +. +MessageId=35483 +Language=English +%1 +. +MessageId=35484 +Language=English +%1 +. +MessageId=35485 +Language=English +%1 +. +MessageId=35486 +Language=English +%1 +. +MessageId=35487 +Language=English +%1 +. +MessageId=35488 +Language=English +%1 +. +MessageId=35489 +Language=English +%1 +. +MessageId=35490 +Language=English +%1 +. +MessageId=35491 +Language=English +%1 +. +MessageId=35492 +Language=English +%1 +. +MessageId=35493 +Language=English +%1 +. +MessageId=35494 +Language=English +%1 +. +MessageId=35495 +Language=English +%1 +. +MessageId=35496 +Language=English +%1 +. +MessageId=35497 +Language=English +%1 +. +MessageId=35498 +Language=English +%1 +. +MessageId=35499 +Language=English +%1 +. +MessageId=35500 +Language=English +%1 +. +MessageId=35501 +Language=English +%1 +. +MessageId=35502 +Language=English +%1 +. +MessageId=35503 +Language=English +%1 +. +MessageId=35504 +Language=English +%1 +. +MessageId=35505 +Language=English +%1 +. +MessageId=35506 +Language=English +%1 +. +MessageId=35507 +Language=English +%1 +. +MessageId=35508 +Language=English +%1 +. +MessageId=35509 +Language=English +%1 +. +MessageId=35510 +Language=English +%1 +. +MessageId=35511 +Language=English +%1 +. +MessageId=35512 +Language=English +%1 +. +MessageId=35513 +Language=English +%1 +. +MessageId=35514 +Language=English +%1 +. +MessageId=35515 +Language=English +%1 +. +MessageId=35516 +Language=English +%1 +. +MessageId=35517 +Language=English +%1 +. +MessageId=35518 +Language=English +%1 +. +MessageId=35519 +Language=English +%1 +. +MessageId=35520 +Language=English +%1 +. +MessageId=35521 +Language=English +%1 +. +MessageId=35522 +Language=English +%1 +. +MessageId=35523 +Language=English +%1 +. +MessageId=35524 +Language=English +%1 +. +MessageId=35525 +Language=English +%1 +. +MessageId=35526 +Language=English +%1 +. +MessageId=35527 +Language=English +%1 +. +MessageId=35528 +Language=English +%1 +. +MessageId=35529 +Language=English +%1 +. +MessageId=35530 +Language=English +%1 +. +MessageId=35531 +Language=English +%1 +. +MessageId=35532 +Language=English +%1 +. +MessageId=35533 +Language=English +%1 +. +MessageId=35534 +Language=English +%1 +. +MessageId=35535 +Language=English +%1 +. +MessageId=35536 +Language=English +%1 +. +MessageId=35537 +Language=English +%1 +. +MessageId=35538 +Language=English +%1 +. +MessageId=35539 +Language=English +%1 +. +MessageId=35540 +Language=English +%1 +. +MessageId=35541 +Language=English +%1 +. +MessageId=35542 +Language=English +%1 +. +MessageId=35543 +Language=English +%1 +. +MessageId=35544 +Language=English +%1 +. +MessageId=35545 +Language=English +%1 +. +MessageId=35546 +Language=English +%1 +. +MessageId=35547 +Language=English +%1 +. +MessageId=35548 +Language=English +%1 +. +MessageId=35549 +Language=English +%1 +. +MessageId=35550 +Language=English +%1 +. +MessageId=35551 +Language=English +%1 +. +MessageId=35552 +Language=English +%1 +. +MessageId=35553 +Language=English +%1 +. +MessageId=35554 +Language=English +%1 +. +MessageId=35555 +Language=English +%1 +. +MessageId=35556 +Language=English +%1 +. +MessageId=35557 +Language=English +%1 +. +MessageId=35558 +Language=English +%1 +. +MessageId=35559 +Language=English +%1 +. +MessageId=35560 +Language=English +%1 +. +MessageId=35561 +Language=English +%1 +. +MessageId=35562 +Language=English +%1 +. +MessageId=35563 +Language=English +%1 +. +MessageId=35564 +Language=English +%1 +. +MessageId=35565 +Language=English +%1 +. +MessageId=35566 +Language=English +%1 +. +MessageId=35567 +Language=English +%1 +. +MessageId=35568 +Language=English +%1 +. +MessageId=35569 +Language=English +%1 +. +MessageId=35570 +Language=English +%1 +. +MessageId=35571 +Language=English +%1 +. +MessageId=35572 +Language=English +%1 +. +MessageId=35573 +Language=English +%1 +. +MessageId=35574 +Language=English +%1 +. +MessageId=35575 +Language=English +%1 +. +MessageId=35576 +Language=English +%1 +. +MessageId=35577 +Language=English +%1 +. +MessageId=35578 +Language=English +%1 +. +MessageId=35579 +Language=English +%1 +. +MessageId=35580 +Language=English +%1 +. +MessageId=35581 +Language=English +%1 +. +MessageId=35582 +Language=English +%1 +. +MessageId=35583 +Language=English +%1 +. +MessageId=35584 +Language=English +%1 +. +MessageId=35585 +Language=English +%1 +. +MessageId=35586 +Language=English +%1 +. +MessageId=35587 +Language=English +%1 +. +MessageId=35588 +Language=English +%1 +. +MessageId=35589 +Language=English +%1 +. +MessageId=35590 +Language=English +%1 +. +MessageId=35591 +Language=English +%1 +. +MessageId=35592 +Language=English +%1 +. +MessageId=35593 +Language=English +%1 +. +MessageId=35594 +Language=English +%1 +. +MessageId=35595 +Language=English +%1 +. +MessageId=35596 +Language=English +%1 +. +MessageId=35597 +Language=English +%1 +. +MessageId=35598 +Language=English +%1 +. +MessageId=35599 +Language=English +%1 +. +MessageId=35600 +Language=English +%1 +. +MessageId=35601 +Language=English +%1 +. +MessageId=35602 +Language=English +%1 +. +MessageId=35603 +Language=English +%1 +. +MessageId=35604 +Language=English +%1 +. +MessageId=35605 +Language=English +%1 +. +MessageId=35606 +Language=English +%1 +. +MessageId=35607 +Language=English +%1 +. +MessageId=35608 +Language=English +%1 +. +MessageId=35609 +Language=English +%1 +. +MessageId=35610 +Language=English +%1 +. +MessageId=35611 +Language=English +%1 +. +MessageId=35612 +Language=English +%1 +. +MessageId=35613 +Language=English +%1 +. +MessageId=35614 +Language=English +%1 +. +MessageId=35615 +Language=English +%1 +. +MessageId=35616 +Language=English +%1 +. +MessageId=35617 +Language=English +%1 +. +MessageId=35618 +Language=English +%1 +. +MessageId=35619 +Language=English +%1 +. +MessageId=35620 +Language=English +%1 +. +MessageId=35621 +Language=English +%1 +. +MessageId=35622 +Language=English +%1 +. +MessageId=35623 +Language=English +%1 +. +MessageId=35624 +Language=English +%1 +. +MessageId=35625 +Language=English +%1 +. +MessageId=35626 +Language=English +%1 +. +MessageId=35627 +Language=English +%1 +. +MessageId=35628 +Language=English +%1 +. +MessageId=35629 +Language=English +%1 +. +MessageId=35630 +Language=English +%1 +. +MessageId=35631 +Language=English +%1 +. +MessageId=35632 +Language=English +%1 +. +MessageId=35633 +Language=English +%1 +. +MessageId=35634 +Language=English +%1 +. +MessageId=35635 +Language=English +%1 +. +MessageId=35636 +Language=English +%1 +. +MessageId=35637 +Language=English +%1 +. +MessageId=35638 +Language=English +%1 +. +MessageId=35639 +Language=English +%1 +. +MessageId=35640 +Language=English +%1 +. +MessageId=35641 +Language=English +%1 +. +MessageId=35642 +Language=English +%1 +. +MessageId=35643 +Language=English +%1 +. +MessageId=35644 +Language=English +%1 +. +MessageId=35645 +Language=English +%1 +. +MessageId=35646 +Language=English +%1 +. +MessageId=35647 +Language=English +%1 +. +MessageId=35648 +Language=English +%1 +. +MessageId=35649 +Language=English +%1 +. +MessageId=35650 +Language=English +%1 +. +MessageId=35651 +Language=English +%1 +. +MessageId=35652 +Language=English +%1 +. +MessageId=35653 +Language=English +%1 +. +MessageId=35654 +Language=English +%1 +. +MessageId=35655 +Language=English +%1 +. +MessageId=35656 +Language=English +%1 +. +MessageId=35657 +Language=English +%1 +. +MessageId=35658 +Language=English +%1 +. +MessageId=35659 +Language=English +%1 +. +MessageId=35660 +Language=English +%1 +. +MessageId=35661 +Language=English +%1 +. +MessageId=35662 +Language=English +%1 +. +MessageId=35663 +Language=English +%1 +. +MessageId=35664 +Language=English +%1 +. +MessageId=35665 +Language=English +%1 +. +MessageId=35666 +Language=English +%1 +. +MessageId=35667 +Language=English +%1 +. +MessageId=35668 +Language=English +%1 +. +MessageId=35669 +Language=English +%1 +. +MessageId=35670 +Language=English +%1 +. +MessageId=35671 +Language=English +%1 +. +MessageId=35672 +Language=English +%1 +. +MessageId=35673 +Language=English +%1 +. +MessageId=35674 +Language=English +%1 +. +MessageId=35675 +Language=English +%1 +. +MessageId=35676 +Language=English +%1 +. +MessageId=35677 +Language=English +%1 +. +MessageId=35678 +Language=English +%1 +. +MessageId=35679 +Language=English +%1 +. +MessageId=35680 +Language=English +%1 +. +MessageId=35681 +Language=English +%1 +. +MessageId=35682 +Language=English +%1 +. +MessageId=35683 +Language=English +%1 +. +MessageId=35684 +Language=English +%1 +. +MessageId=35685 +Language=English +%1 +. +MessageId=35686 +Language=English +%1 +. +MessageId=35687 +Language=English +%1 +. +MessageId=35688 +Language=English +%1 +. +MessageId=35689 +Language=English +%1 +. +MessageId=35690 +Language=English +%1 +. +MessageId=35691 +Language=English +%1 +. +MessageId=35692 +Language=English +%1 +. +MessageId=35693 +Language=English +%1 +. +MessageId=35694 +Language=English +%1 +. +MessageId=35695 +Language=English +%1 +. +MessageId=35696 +Language=English +%1 +. +MessageId=35697 +Language=English +%1 +. +MessageId=35698 +Language=English +%1 +. +MessageId=35699 +Language=English +%1 +. +MessageId=35700 +Language=English +%1 +. +MessageId=35701 +Language=English +%1 +. +MessageId=35702 +Language=English +%1 +. +MessageId=35703 +Language=English +%1 +. +MessageId=35704 +Language=English +%1 +. +MessageId=35705 +Language=English +%1 +. +MessageId=35706 +Language=English +%1 +. +MessageId=35707 +Language=English +%1 +. +MessageId=35708 +Language=English +%1 +. +MessageId=35709 +Language=English +%1 +. +MessageId=35710 +Language=English +%1 +. +MessageId=35711 +Language=English +%1 +. +MessageId=35712 +Language=English +%1 +. +MessageId=35713 +Language=English +%1 +. +MessageId=35714 +Language=English +%1 +. +MessageId=35715 +Language=English +%1 +. +MessageId=35716 +Language=English +%1 +. +MessageId=35717 +Language=English +%1 +. +MessageId=35718 +Language=English +%1 +. +MessageId=35719 +Language=English +%1 +. +MessageId=35720 +Language=English +%1 +. +MessageId=35721 +Language=English +%1 +. +MessageId=35722 +Language=English +%1 +. +MessageId=35723 +Language=English +%1 +. +MessageId=35724 +Language=English +%1 +. +MessageId=35725 +Language=English +%1 +. +MessageId=35726 +Language=English +%1 +. +MessageId=35727 +Language=English +%1 +. +MessageId=35728 +Language=English +%1 +. +MessageId=35729 +Language=English +%1 +. +MessageId=35730 +Language=English +%1 +. +MessageId=35731 +Language=English +%1 +. +MessageId=35732 +Language=English +%1 +. +MessageId=35733 +Language=English +%1 +. +MessageId=35734 +Language=English +%1 +. +MessageId=35735 +Language=English +%1 +. +MessageId=35736 +Language=English +%1 +. +MessageId=35737 +Language=English +%1 +. +MessageId=35738 +Language=English +%1 +. +MessageId=35739 +Language=English +%1 +. +MessageId=35740 +Language=English +%1 +. +MessageId=35741 +Language=English +%1 +. +MessageId=35742 +Language=English +%1 +. +MessageId=35743 +Language=English +%1 +. +MessageId=35744 +Language=English +%1 +. +MessageId=35745 +Language=English +%1 +. +MessageId=35746 +Language=English +%1 +. +MessageId=35747 +Language=English +%1 +. +MessageId=35748 +Language=English +%1 +. +MessageId=35749 +Language=English +%1 +. +MessageId=35750 +Language=English +%1 +. +MessageId=35751 +Language=English +%1 +. +MessageId=35752 +Language=English +%1 +. +MessageId=35753 +Language=English +%1 +. +MessageId=35754 +Language=English +%1 +. +MessageId=35755 +Language=English +%1 +. +MessageId=35756 +Language=English +%1 +. +MessageId=35757 +Language=English +%1 +. +MessageId=35758 +Language=English +%1 +. +MessageId=35759 +Language=English +%1 +. +MessageId=35760 +Language=English +%1 +. +MessageId=35761 +Language=English +%1 +. +MessageId=35762 +Language=English +%1 +. +MessageId=35763 +Language=English +%1 +. +MessageId=35764 +Language=English +%1 +. +MessageId=35765 +Language=English +%1 +. +MessageId=35766 +Language=English +%1 +. +MessageId=35767 +Language=English +%1 +. +MessageId=35768 +Language=English +%1 +. +MessageId=35769 +Language=English +%1 +. +MessageId=35770 +Language=English +%1 +. +MessageId=35771 +Language=English +%1 +. +MessageId=35772 +Language=English +%1 +. +MessageId=35773 +Language=English +%1 +. +MessageId=35774 +Language=English +%1 +. +MessageId=35775 +Language=English +%1 +. +MessageId=35776 +Language=English +%1 +. +MessageId=35777 +Language=English +%1 +. +MessageId=35778 +Language=English +%1 +. +MessageId=35779 +Language=English +%1 +. +MessageId=35780 +Language=English +%1 +. +MessageId=35781 +Language=English +%1 +. +MessageId=35782 +Language=English +%1 +. +MessageId=35783 +Language=English +%1 +. +MessageId=35784 +Language=English +%1 +. +MessageId=35785 +Language=English +%1 +. +MessageId=35786 +Language=English +%1 +. +MessageId=35787 +Language=English +%1 +. +MessageId=35788 +Language=English +%1 +. +MessageId=35789 +Language=English +%1 +. +MessageId=35790 +Language=English +%1 +. +MessageId=35791 +Language=English +%1 +. +MessageId=35792 +Language=English +%1 +. +MessageId=35793 +Language=English +%1 +. +MessageId=35794 +Language=English +%1 +. +MessageId=35795 +Language=English +%1 +. +MessageId=35796 +Language=English +%1 +. +MessageId=35797 +Language=English +%1 +. +MessageId=35798 +Language=English +%1 +. +MessageId=35799 +Language=English +%1 +. +MessageId=35800 +Language=English +%1 +. +MessageId=35801 +Language=English +%1 +. +MessageId=35802 +Language=English +%1 +. +MessageId=35803 +Language=English +%1 +. +MessageId=35804 +Language=English +%1 +. +MessageId=35805 +Language=English +%1 +. +MessageId=35806 +Language=English +%1 +. +MessageId=35807 +Language=English +%1 +. +MessageId=35808 +Language=English +%1 +. +MessageId=35809 +Language=English +%1 +. +MessageId=35810 +Language=English +%1 +. +MessageId=35811 +Language=English +%1 +. +MessageId=35812 +Language=English +%1 +. +MessageId=35813 +Language=English +%1 +. +MessageId=35814 +Language=English +%1 +. +MessageId=35815 +Language=English +%1 +. +MessageId=35816 +Language=English +%1 +. +MessageId=35817 +Language=English +%1 +. +MessageId=35818 +Language=English +%1 +. +MessageId=35819 +Language=English +%1 +. +MessageId=35820 +Language=English +%1 +. +MessageId=35821 +Language=English +%1 +. +MessageId=35822 +Language=English +%1 +. +MessageId=35823 +Language=English +%1 +. +MessageId=35824 +Language=English +%1 +. +MessageId=35825 +Language=English +%1 +. +MessageId=35826 +Language=English +%1 +. +MessageId=35827 +Language=English +%1 +. +MessageId=35828 +Language=English +%1 +. +MessageId=35829 +Language=English +%1 +. +MessageId=35830 +Language=English +%1 +. +MessageId=35831 +Language=English +%1 +. +MessageId=35832 +Language=English +%1 +. +MessageId=35833 +Language=English +%1 +. +MessageId=35834 +Language=English +%1 +. +MessageId=35835 +Language=English +%1 +. +MessageId=35836 +Language=English +%1 +. +MessageId=35837 +Language=English +%1 +. +MessageId=35838 +Language=English +%1 +. +MessageId=35839 +Language=English +%1 +. +MessageId=35840 +Language=English +%1 +. +MessageId=35841 +Language=English +%1 +. +MessageId=35842 +Language=English +%1 +. +MessageId=35843 +Language=English +%1 +. +MessageId=35844 +Language=English +%1 +. +MessageId=35845 +Language=English +%1 +. +MessageId=35846 +Language=English +%1 +. +MessageId=35847 +Language=English +%1 +. +MessageId=35848 +Language=English +%1 +. +MessageId=35849 +Language=English +%1 +. +MessageId=35850 +Language=English +%1 +. +MessageId=35851 +Language=English +%1 +. +MessageId=35852 +Language=English +%1 +. +MessageId=35853 +Language=English +%1 +. +MessageId=35854 +Language=English +%1 +. +MessageId=35855 +Language=English +%1 +. +MessageId=35856 +Language=English +%1 +. +MessageId=35857 +Language=English +%1 +. +MessageId=35858 +Language=English +%1 +. +MessageId=35859 +Language=English +%1 +. +MessageId=35860 +Language=English +%1 +. +MessageId=35861 +Language=English +%1 +. +MessageId=35862 +Language=English +%1 +. +MessageId=35863 +Language=English +%1 +. +MessageId=35864 +Language=English +%1 +. +MessageId=35865 +Language=English +%1 +. +MessageId=35866 +Language=English +%1 +. +MessageId=35867 +Language=English +%1 +. +MessageId=35868 +Language=English +%1 +. +MessageId=35869 +Language=English +%1 +. +MessageId=35870 +Language=English +%1 +. +MessageId=35871 +Language=English +%1 +. +MessageId=35872 +Language=English +%1 +. +MessageId=35873 +Language=English +%1 +. +MessageId=35874 +Language=English +%1 +. +MessageId=35875 +Language=English +%1 +. +MessageId=35876 +Language=English +%1 +. +MessageId=35877 +Language=English +%1 +. +MessageId=35878 +Language=English +%1 +. +MessageId=35879 +Language=English +%1 +. +MessageId=35880 +Language=English +%1 +. +MessageId=35881 +Language=English +%1 +. +MessageId=35882 +Language=English +%1 +. +MessageId=35883 +Language=English +%1 +. +MessageId=35884 +Language=English +%1 +. +MessageId=35885 +Language=English +%1 +. +MessageId=35886 +Language=English +%1 +. +MessageId=35887 +Language=English +%1 +. +MessageId=35888 +Language=English +%1 +. +MessageId=35889 +Language=English +%1 +. +MessageId=35890 +Language=English +%1 +. +MessageId=35891 +Language=English +%1 +. +MessageId=35892 +Language=English +%1 +. +MessageId=35893 +Language=English +%1 +. +MessageId=35894 +Language=English +%1 +. +MessageId=35895 +Language=English +%1 +. +MessageId=35896 +Language=English +%1 +. +MessageId=35897 +Language=English +%1 +. +MessageId=35898 +Language=English +%1 +. +MessageId=35899 +Language=English +%1 +. +MessageId=35900 +Language=English +%1 +. +MessageId=35901 +Language=English +%1 +. +MessageId=35902 +Language=English +%1 +. +MessageId=35903 +Language=English +%1 +. +MessageId=35904 +Language=English +%1 +. +MessageId=35905 +Language=English +%1 +. +MessageId=35906 +Language=English +%1 +. +MessageId=35907 +Language=English +%1 +. +MessageId=35908 +Language=English +%1 +. +MessageId=35909 +Language=English +%1 +. +MessageId=35910 +Language=English +%1 +. +MessageId=35911 +Language=English +%1 +. +MessageId=35912 +Language=English +%1 +. +MessageId=35913 +Language=English +%1 +. +MessageId=35914 +Language=English +%1 +. +MessageId=35915 +Language=English +%1 +. +MessageId=35916 +Language=English +%1 +. +MessageId=35917 +Language=English +%1 +. +MessageId=35918 +Language=English +%1 +. +MessageId=35919 +Language=English +%1 +. +MessageId=35920 +Language=English +%1 +. +MessageId=35921 +Language=English +%1 +. +MessageId=35922 +Language=English +%1 +. +MessageId=35923 +Language=English +%1 +. +MessageId=35924 +Language=English +%1 +. +MessageId=35925 +Language=English +%1 +. +MessageId=35926 +Language=English +%1 +. +MessageId=35927 +Language=English +%1 +. +MessageId=35928 +Language=English +%1 +. +MessageId=35929 +Language=English +%1 +. +MessageId=35930 +Language=English +%1 +. +MessageId=35931 +Language=English +%1 +. +MessageId=35932 +Language=English +%1 +. +MessageId=35933 +Language=English +%1 +. +MessageId=35934 +Language=English +%1 +. +MessageId=35935 +Language=English +%1 +. +MessageId=35936 +Language=English +%1 +. +MessageId=35937 +Language=English +%1 +. +MessageId=35938 +Language=English +%1 +. +MessageId=35939 +Language=English +%1 +. +MessageId=35940 +Language=English +%1 +. +MessageId=35941 +Language=English +%1 +. +MessageId=35942 +Language=English +%1 +. +MessageId=35943 +Language=English +%1 +. +MessageId=35944 +Language=English +%1 +. +MessageId=35945 +Language=English +%1 +. +MessageId=35946 +Language=English +%1 +. +MessageId=35947 +Language=English +%1 +. +MessageId=35948 +Language=English +%1 +. +MessageId=35949 +Language=English +%1 +. +MessageId=35950 +Language=English +%1 +. +MessageId=35951 +Language=English +%1 +. +MessageId=35952 +Language=English +%1 +. +MessageId=35953 +Language=English +%1 +. +MessageId=35954 +Language=English +%1 +. +MessageId=35955 +Language=English +%1 +. +MessageId=35956 +Language=English +%1 +. +MessageId=35957 +Language=English +%1 +. +MessageId=35958 +Language=English +%1 +. +MessageId=35959 +Language=English +%1 +. +MessageId=35960 +Language=English +%1 +. +MessageId=35961 +Language=English +%1 +. +MessageId=35962 +Language=English +%1 +. +MessageId=35963 +Language=English +%1 +. +MessageId=35964 +Language=English +%1 +. +MessageId=35965 +Language=English +%1 +. +MessageId=35966 +Language=English +%1 +. +MessageId=35967 +Language=English +%1 +. +MessageId=35968 +Language=English +%1 +. +MessageId=35969 +Language=English +%1 +. +MessageId=35970 +Language=English +%1 +. +MessageId=35971 +Language=English +%1 +. +MessageId=35972 +Language=English +%1 +. +MessageId=35973 +Language=English +%1 +. +MessageId=35974 +Language=English +%1 +. +MessageId=35975 +Language=English +%1 +. +MessageId=35976 +Language=English +%1 +. +MessageId=35977 +Language=English +%1 +. +MessageId=35978 +Language=English +%1 +. +MessageId=35979 +Language=English +%1 +. +MessageId=35980 +Language=English +%1 +. +MessageId=35981 +Language=English +%1 +. +MessageId=35982 +Language=English +%1 +. +MessageId=35983 +Language=English +%1 +. +MessageId=35984 +Language=English +%1 +. +MessageId=35985 +Language=English +%1 +. +MessageId=35986 +Language=English +%1 +. +MessageId=35987 +Language=English +%1 +. +MessageId=35988 +Language=English +%1 +. +MessageId=35989 +Language=English +%1 +. +MessageId=35990 +Language=English +%1 +. +MessageId=35991 +Language=English +%1 +. +MessageId=35992 +Language=English +%1 +. +MessageId=35993 +Language=English +%1 +. +MessageId=35994 +Language=English +%1 +. +MessageId=35995 +Language=English +%1 +. +MessageId=35996 +Language=English +%1 +. +MessageId=35997 +Language=English +%1 +. +MessageId=35998 +Language=English +%1 +. +MessageId=35999 +Language=English +%1 +. +MessageId=36000 +Language=English +%1 +. +MessageId=36001 +Language=English +%1 +. +MessageId=36002 +Language=English +%1 +. +MessageId=36003 +Language=English +%1 +. +MessageId=36004 +Language=English +%1 +. +MessageId=36005 +Language=English +%1 +. +MessageId=36006 +Language=English +%1 +. +MessageId=36007 +Language=English +%1 +. +MessageId=36008 +Language=English +%1 +. +MessageId=36009 +Language=English +%1 +. +MessageId=36010 +Language=English +%1 +. +MessageId=36011 +Language=English +%1 +. +MessageId=36012 +Language=English +%1 +. +MessageId=36013 +Language=English +%1 +. +MessageId=36014 +Language=English +%1 +. +MessageId=36015 +Language=English +%1 +. +MessageId=36016 +Language=English +%1 +. +MessageId=36017 +Language=English +%1 +. +MessageId=36018 +Language=English +%1 +. +MessageId=36019 +Language=English +%1 +. +MessageId=36020 +Language=English +%1 +. +MessageId=36021 +Language=English +%1 +. +MessageId=36022 +Language=English +%1 +. +MessageId=36023 +Language=English +%1 +. +MessageId=36024 +Language=English +%1 +. +MessageId=36025 +Language=English +%1 +. +MessageId=36026 +Language=English +%1 +. +MessageId=36027 +Language=English +%1 +. +MessageId=36028 +Language=English +%1 +. +MessageId=36029 +Language=English +%1 +. +MessageId=36030 +Language=English +%1 +. +MessageId=36031 +Language=English +%1 +. +MessageId=36032 +Language=English +%1 +. +MessageId=36033 +Language=English +%1 +. +MessageId=36034 +Language=English +%1 +. +MessageId=36035 +Language=English +%1 +. +MessageId=36036 +Language=English +%1 +. +MessageId=36037 +Language=English +%1 +. +MessageId=36038 +Language=English +%1 +. +MessageId=36039 +Language=English +%1 +. +MessageId=36040 +Language=English +%1 +. +MessageId=36041 +Language=English +%1 +. +MessageId=36042 +Language=English +%1 +. +MessageId=36043 +Language=English +%1 +. +MessageId=36044 +Language=English +%1 +. +MessageId=36045 +Language=English +%1 +. +MessageId=36046 +Language=English +%1 +. +MessageId=36047 +Language=English +%1 +. +MessageId=36048 +Language=English +%1 +. +MessageId=36049 +Language=English +%1 +. +MessageId=36050 +Language=English +%1 +. +MessageId=36051 +Language=English +%1 +. +MessageId=36052 +Language=English +%1 +. +MessageId=36053 +Language=English +%1 +. +MessageId=36054 +Language=English +%1 +. +MessageId=36055 +Language=English +%1 +. +MessageId=36056 +Language=English +%1 +. +MessageId=36057 +Language=English +%1 +. +MessageId=36058 +Language=English +%1 +. +MessageId=36059 +Language=English +%1 +. +MessageId=36060 +Language=English +%1 +. +MessageId=36061 +Language=English +%1 +. +MessageId=36062 +Language=English +%1 +. +MessageId=36063 +Language=English +%1 +. +MessageId=36064 +Language=English +%1 +. +MessageId=36065 +Language=English +%1 +. +MessageId=36066 +Language=English +%1 +. +MessageId=36067 +Language=English +%1 +. +MessageId=36068 +Language=English +%1 +. +MessageId=36069 +Language=English +%1 +. +MessageId=36070 +Language=English +%1 +. +MessageId=36071 +Language=English +%1 +. +MessageId=36072 +Language=English +%1 +. +MessageId=36073 +Language=English +%1 +. +MessageId=36074 +Language=English +%1 +. +MessageId=36075 +Language=English +%1 +. +MessageId=36076 +Language=English +%1 +. +MessageId=36077 +Language=English +%1 +. +MessageId=36078 +Language=English +%1 +. +MessageId=36079 +Language=English +%1 +. +MessageId=36080 +Language=English +%1 +. +MessageId=36081 +Language=English +%1 +. +MessageId=36082 +Language=English +%1 +. +MessageId=36083 +Language=English +%1 +. +MessageId=36084 +Language=English +%1 +. +MessageId=36085 +Language=English +%1 +. +MessageId=36086 +Language=English +%1 +. +MessageId=36087 +Language=English +%1 +. +MessageId=36088 +Language=English +%1 +. +MessageId=36089 +Language=English +%1 +. +MessageId=36090 +Language=English +%1 +. +MessageId=36091 +Language=English +%1 +. +MessageId=36092 +Language=English +%1 +. +MessageId=36093 +Language=English +%1 +. +MessageId=36094 +Language=English +%1 +. +MessageId=36095 +Language=English +%1 +. +MessageId=36096 +Language=English +%1 +. +MessageId=36097 +Language=English +%1 +. +MessageId=36098 +Language=English +%1 +. +MessageId=36099 +Language=English +%1 +. +MessageId=36100 +Language=English +%1 +. +MessageId=36101 +Language=English +%1 +. +MessageId=36102 +Language=English +%1 +. +MessageId=36103 +Language=English +%1 +. +MessageId=36104 +Language=English +%1 +. +MessageId=36105 +Language=English +%1 +. +MessageId=36106 +Language=English +%1 +. +MessageId=36107 +Language=English +%1 +. +MessageId=36108 +Language=English +%1 +. +MessageId=36109 +Language=English +%1 +. +MessageId=36110 +Language=English +%1 +. +MessageId=36111 +Language=English +%1 +. +MessageId=36112 +Language=English +%1 +. +MessageId=36113 +Language=English +%1 +. +MessageId=36114 +Language=English +%1 +. +MessageId=36115 +Language=English +%1 +. +MessageId=36116 +Language=English +%1 +. +MessageId=36117 +Language=English +%1 +. +MessageId=36118 +Language=English +%1 +. +MessageId=36119 +Language=English +%1 +. +MessageId=36120 +Language=English +%1 +. +MessageId=36121 +Language=English +%1 +. +MessageId=36122 +Language=English +%1 +. +MessageId=36123 +Language=English +%1 +. +MessageId=36124 +Language=English +%1 +. +MessageId=36125 +Language=English +%1 +. +MessageId=36126 +Language=English +%1 +. +MessageId=36127 +Language=English +%1 +. +MessageId=36128 +Language=English +%1 +. +MessageId=36129 +Language=English +%1 +. +MessageId=36130 +Language=English +%1 +. +MessageId=36131 +Language=English +%1 +. +MessageId=36132 +Language=English +%1 +. +MessageId=36133 +Language=English +%1 +. +MessageId=36134 +Language=English +%1 +. +MessageId=36135 +Language=English +%1 +. +MessageId=36136 +Language=English +%1 +. +MessageId=36137 +Language=English +%1 +. +MessageId=36138 +Language=English +%1 +. +MessageId=36139 +Language=English +%1 +. +MessageId=36140 +Language=English +%1 +. +MessageId=36141 +Language=English +%1 +. +MessageId=36142 +Language=English +%1 +. +MessageId=36143 +Language=English +%1 +. +MessageId=36144 +Language=English +%1 +. +MessageId=36145 +Language=English +%1 +. +MessageId=36146 +Language=English +%1 +. +MessageId=36147 +Language=English +%1 +. +MessageId=36148 +Language=English +%1 +. +MessageId=36149 +Language=English +%1 +. +MessageId=36150 +Language=English +%1 +. +MessageId=36151 +Language=English +%1 +. +MessageId=36152 +Language=English +%1 +. +MessageId=36153 +Language=English +%1 +. +MessageId=36154 +Language=English +%1 +. +MessageId=36155 +Language=English +%1 +. +MessageId=36156 +Language=English +%1 +. +MessageId=36157 +Language=English +%1 +. +MessageId=36158 +Language=English +%1 +. +MessageId=36159 +Language=English +%1 +. +MessageId=36160 +Language=English +%1 +. +MessageId=36161 +Language=English +%1 +. +MessageId=36162 +Language=English +%1 +. +MessageId=36163 +Language=English +%1 +. +MessageId=36164 +Language=English +%1 +. +MessageId=36165 +Language=English +%1 +. +MessageId=36166 +Language=English +%1 +. +MessageId=36167 +Language=English +%1 +. +MessageId=36168 +Language=English +%1 +. +MessageId=36169 +Language=English +%1 +. +MessageId=36170 +Language=English +%1 +. +MessageId=36171 +Language=English +%1 +. +MessageId=36172 +Language=English +%1 +. +MessageId=36173 +Language=English +%1 +. +MessageId=36174 +Language=English +%1 +. +MessageId=36175 +Language=English +%1 +. +MessageId=36176 +Language=English +%1 +. +MessageId=36177 +Language=English +%1 +. +MessageId=36178 +Language=English +%1 +. +MessageId=36179 +Language=English +%1 +. +MessageId=36180 +Language=English +%1 +. +MessageId=36181 +Language=English +%1 +. +MessageId=36182 +Language=English +%1 +. +MessageId=36183 +Language=English +%1 +. +MessageId=36184 +Language=English +%1 +. +MessageId=36185 +Language=English +%1 +. +MessageId=36186 +Language=English +%1 +. +MessageId=36187 +Language=English +%1 +. +MessageId=36188 +Language=English +%1 +. +MessageId=36189 +Language=English +%1 +. +MessageId=36190 +Language=English +%1 +. +MessageId=36191 +Language=English +%1 +. +MessageId=36192 +Language=English +%1 +. +MessageId=36193 +Language=English +%1 +. +MessageId=36194 +Language=English +%1 +. +MessageId=36195 +Language=English +%1 +. +MessageId=36196 +Language=English +%1 +. +MessageId=36197 +Language=English +%1 +. +MessageId=36198 +Language=English +%1 +. +MessageId=36199 +Language=English +%1 +. +MessageId=36200 +Language=English +%1 +. +MessageId=36201 +Language=English +%1 +. +MessageId=36202 +Language=English +%1 +. +MessageId=36203 +Language=English +%1 +. +MessageId=36204 +Language=English +%1 +. +MessageId=36205 +Language=English +%1 +. +MessageId=36206 +Language=English +%1 +. +MessageId=36207 +Language=English +%1 +. +MessageId=36208 +Language=English +%1 +. +MessageId=36209 +Language=English +%1 +. +MessageId=36210 +Language=English +%1 +. +MessageId=36211 +Language=English +%1 +. +MessageId=36212 +Language=English +%1 +. +MessageId=36213 +Language=English +%1 +. +MessageId=36214 +Language=English +%1 +. +MessageId=36215 +Language=English +%1 +. +MessageId=36216 +Language=English +%1 +. +MessageId=36217 +Language=English +%1 +. +MessageId=36218 +Language=English +%1 +. +MessageId=36219 +Language=English +%1 +. +MessageId=36220 +Language=English +%1 +. +MessageId=36221 +Language=English +%1 +. +MessageId=36222 +Language=English +%1 +. +MessageId=36223 +Language=English +%1 +. +MessageId=36224 +Language=English +%1 +. +MessageId=36225 +Language=English +%1 +. +MessageId=36226 +Language=English +%1 +. +MessageId=36227 +Language=English +%1 +. +MessageId=36228 +Language=English +%1 +. +MessageId=36229 +Language=English +%1 +. +MessageId=36230 +Language=English +%1 +. +MessageId=36231 +Language=English +%1 +. +MessageId=36232 +Language=English +%1 +. +MessageId=36233 +Language=English +%1 +. +MessageId=36234 +Language=English +%1 +. +MessageId=36235 +Language=English +%1 +. +MessageId=36236 +Language=English +%1 +. +MessageId=36237 +Language=English +%1 +. +MessageId=36238 +Language=English +%1 +. +MessageId=36239 +Language=English +%1 +. +MessageId=36240 +Language=English +%1 +. +MessageId=36241 +Language=English +%1 +. +MessageId=36242 +Language=English +%1 +. +MessageId=36243 +Language=English +%1 +. +MessageId=36244 +Language=English +%1 +. +MessageId=36245 +Language=English +%1 +. +MessageId=36246 +Language=English +%1 +. +MessageId=36247 +Language=English +%1 +. +MessageId=36248 +Language=English +%1 +. +MessageId=36249 +Language=English +%1 +. +MessageId=36250 +Language=English +%1 +. +MessageId=36251 +Language=English +%1 +. +MessageId=36252 +Language=English +%1 +. +MessageId=36253 +Language=English +%1 +. +MessageId=36254 +Language=English +%1 +. +MessageId=36255 +Language=English +%1 +. +MessageId=36256 +Language=English +%1 +. +MessageId=36257 +Language=English +%1 +. +MessageId=36258 +Language=English +%1 +. +MessageId=36259 +Language=English +%1 +. +MessageId=36260 +Language=English +%1 +. +MessageId=36261 +Language=English +%1 +. +MessageId=36262 +Language=English +%1 +. +MessageId=36263 +Language=English +%1 +. +MessageId=36264 +Language=English +%1 +. +MessageId=36265 +Language=English +%1 +. +MessageId=36266 +Language=English +%1 +. +MessageId=36267 +Language=English +%1 +. +MessageId=36268 +Language=English +%1 +. +MessageId=36269 +Language=English +%1 +. +MessageId=36270 +Language=English +%1 +. +MessageId=36271 +Language=English +%1 +. +MessageId=36272 +Language=English +%1 +. +MessageId=36273 +Language=English +%1 +. +MessageId=36274 +Language=English +%1 +. +MessageId=36275 +Language=English +%1 +. +MessageId=36276 +Language=English +%1 +. +MessageId=36277 +Language=English +%1 +. +MessageId=36278 +Language=English +%1 +. +MessageId=36279 +Language=English +%1 +. +MessageId=36280 +Language=English +%1 +. +MessageId=36281 +Language=English +%1 +. +MessageId=36282 +Language=English +%1 +. +MessageId=36283 +Language=English +%1 +. +MessageId=36284 +Language=English +%1 +. +MessageId=36285 +Language=English +%1 +. +MessageId=36286 +Language=English +%1 +. +MessageId=36287 +Language=English +%1 +. +MessageId=36288 +Language=English +%1 +. +MessageId=36289 +Language=English +%1 +. +MessageId=36290 +Language=English +%1 +. +MessageId=36291 +Language=English +%1 +. +MessageId=36292 +Language=English +%1 +. +MessageId=36293 +Language=English +%1 +. +MessageId=36294 +Language=English +%1 +. +MessageId=36295 +Language=English +%1 +. +MessageId=36296 +Language=English +%1 +. +MessageId=36297 +Language=English +%1 +. +MessageId=36298 +Language=English +%1 +. +MessageId=36299 +Language=English +%1 +. +MessageId=36300 +Language=English +%1 +. +MessageId=36301 +Language=English +%1 +. +MessageId=36302 +Language=English +%1 +. +MessageId=36303 +Language=English +%1 +. +MessageId=36304 +Language=English +%1 +. +MessageId=36305 +Language=English +%1 +. +MessageId=36306 +Language=English +%1 +. +MessageId=36307 +Language=English +%1 +. +MessageId=36308 +Language=English +%1 +. +MessageId=36309 +Language=English +%1 +. +MessageId=36310 +Language=English +%1 +. +MessageId=36311 +Language=English +%1 +. +MessageId=36312 +Language=English +%1 +. +MessageId=36313 +Language=English +%1 +. +MessageId=36314 +Language=English +%1 +. +MessageId=36315 +Language=English +%1 +. +MessageId=36316 +Language=English +%1 +. +MessageId=36317 +Language=English +%1 +. +MessageId=36318 +Language=English +%1 +. +MessageId=36319 +Language=English +%1 +. +MessageId=36320 +Language=English +%1 +. +MessageId=36321 +Language=English +%1 +. +MessageId=36322 +Language=English +%1 +. +MessageId=36323 +Language=English +%1 +. +MessageId=36324 +Language=English +%1 +. +MessageId=36325 +Language=English +%1 +. +MessageId=36326 +Language=English +%1 +. +MessageId=36327 +Language=English +%1 +. +MessageId=36328 +Language=English +%1 +. +MessageId=36329 +Language=English +%1 +. +MessageId=36330 +Language=English +%1 +. +MessageId=36331 +Language=English +%1 +. +MessageId=36332 +Language=English +%1 +. +MessageId=36333 +Language=English +%1 +. +MessageId=36334 +Language=English +%1 +. +MessageId=36335 +Language=English +%1 +. +MessageId=36336 +Language=English +%1 +. +MessageId=36337 +Language=English +%1 +. +MessageId=36338 +Language=English +%1 +. +MessageId=36339 +Language=English +%1 +. +MessageId=36340 +Language=English +%1 +. +MessageId=36341 +Language=English +%1 +. +MessageId=36342 +Language=English +%1 +. +MessageId=36343 +Language=English +%1 +. +MessageId=36344 +Language=English +%1 +. +MessageId=36345 +Language=English +%1 +. +MessageId=36346 +Language=English +%1 +. +MessageId=36347 +Language=English +%1 +. +MessageId=36348 +Language=English +%1 +. +MessageId=36349 +Language=English +%1 +. +MessageId=36350 +Language=English +%1 +. +MessageId=36351 +Language=English +%1 +. +MessageId=36352 +Language=English +%1 +. +MessageId=36353 +Language=English +%1 +. +MessageId=36354 +Language=English +%1 +. +MessageId=36355 +Language=English +%1 +. +MessageId=36356 +Language=English +%1 +. +MessageId=36357 +Language=English +%1 +. +MessageId=36358 +Language=English +%1 +. +MessageId=36359 +Language=English +%1 +. +MessageId=36360 +Language=English +%1 +. +MessageId=36361 +Language=English +%1 +. +MessageId=36362 +Language=English +%1 +. +MessageId=36363 +Language=English +%1 +. +MessageId=36364 +Language=English +%1 +. +MessageId=36365 +Language=English +%1 +. +MessageId=36366 +Language=English +%1 +. +MessageId=36367 +Language=English +%1 +. +MessageId=36368 +Language=English +%1 +. +MessageId=36369 +Language=English +%1 +. +MessageId=36370 +Language=English +%1 +. +MessageId=36371 +Language=English +%1 +. +MessageId=36372 +Language=English +%1 +. +MessageId=36373 +Language=English +%1 +. +MessageId=36374 +Language=English +%1 +. +MessageId=36375 +Language=English +%1 +. +MessageId=36376 +Language=English +%1 +. +MessageId=36377 +Language=English +%1 +. +MessageId=36378 +Language=English +%1 +. +MessageId=36379 +Language=English +%1 +. +MessageId=36380 +Language=English +%1 +. +MessageId=36381 +Language=English +%1 +. +MessageId=36382 +Language=English +%1 +. +MessageId=36383 +Language=English +%1 +. +MessageId=36384 +Language=English +%1 +. +MessageId=36385 +Language=English +%1 +. +MessageId=36386 +Language=English +%1 +. +MessageId=36387 +Language=English +%1 +. +MessageId=36388 +Language=English +%1 +. +MessageId=36389 +Language=English +%1 +. +MessageId=36390 +Language=English +%1 +. +MessageId=36391 +Language=English +%1 +. +MessageId=36392 +Language=English +%1 +. +MessageId=36393 +Language=English +%1 +. +MessageId=36394 +Language=English +%1 +. +MessageId=36395 +Language=English +%1 +. +MessageId=36396 +Language=English +%1 +. +MessageId=36397 +Language=English +%1 +. +MessageId=36398 +Language=English +%1 +. +MessageId=36399 +Language=English +%1 +. +MessageId=36400 +Language=English +%1 +. +MessageId=36401 +Language=English +%1 +. +MessageId=36402 +Language=English +%1 +. +MessageId=36403 +Language=English +%1 +. +MessageId=36404 +Language=English +%1 +. +MessageId=36405 +Language=English +%1 +. +MessageId=36406 +Language=English +%1 +. +MessageId=36407 +Language=English +%1 +. +MessageId=36408 +Language=English +%1 +. +MessageId=36409 +Language=English +%1 +. +MessageId=36410 +Language=English +%1 +. +MessageId=36411 +Language=English +%1 +. +MessageId=36412 +Language=English +%1 +. +MessageId=36413 +Language=English +%1 +. +MessageId=36414 +Language=English +%1 +. +MessageId=36415 +Language=English +%1 +. +MessageId=36416 +Language=English +%1 +. +MessageId=36417 +Language=English +%1 +. +MessageId=36418 +Language=English +%1 +. +MessageId=36419 +Language=English +%1 +. +MessageId=36420 +Language=English +%1 +. +MessageId=36421 +Language=English +%1 +. +MessageId=36422 +Language=English +%1 +. +MessageId=36423 +Language=English +%1 +. +MessageId=36424 +Language=English +%1 +. +MessageId=36425 +Language=English +%1 +. +MessageId=36426 +Language=English +%1 +. +MessageId=36427 +Language=English +%1 +. +MessageId=36428 +Language=English +%1 +. +MessageId=36429 +Language=English +%1 +. +MessageId=36430 +Language=English +%1 +. +MessageId=36431 +Language=English +%1 +. +MessageId=36432 +Language=English +%1 +. +MessageId=36433 +Language=English +%1 +. +MessageId=36434 +Language=English +%1 +. +MessageId=36435 +Language=English +%1 +. +MessageId=36436 +Language=English +%1 +. +MessageId=36437 +Language=English +%1 +. +MessageId=36438 +Language=English +%1 +. +MessageId=36439 +Language=English +%1 +. +MessageId=36440 +Language=English +%1 +. +MessageId=36441 +Language=English +%1 +. +MessageId=36442 +Language=English +%1 +. +MessageId=36443 +Language=English +%1 +. +MessageId=36444 +Language=English +%1 +. +MessageId=36445 +Language=English +%1 +. +MessageId=36446 +Language=English +%1 +. +MessageId=36447 +Language=English +%1 +. +MessageId=36448 +Language=English +%1 +. +MessageId=36449 +Language=English +%1 +. +MessageId=36450 +Language=English +%1 +. +MessageId=36451 +Language=English +%1 +. +MessageId=36452 +Language=English +%1 +. +MessageId=36453 +Language=English +%1 +. +MessageId=36454 +Language=English +%1 +. +MessageId=36455 +Language=English +%1 +. +MessageId=36456 +Language=English +%1 +. +MessageId=36457 +Language=English +%1 +. +MessageId=36458 +Language=English +%1 +. +MessageId=36459 +Language=English +%1 +. +MessageId=36460 +Language=English +%1 +. +MessageId=36461 +Language=English +%1 +. +MessageId=36462 +Language=English +%1 +. +MessageId=36463 +Language=English +%1 +. +MessageId=36464 +Language=English +%1 +. +MessageId=36465 +Language=English +%1 +. +MessageId=36466 +Language=English +%1 +. +MessageId=36467 +Language=English +%1 +. +MessageId=36468 +Language=English +%1 +. +MessageId=36469 +Language=English +%1 +. +MessageId=36470 +Language=English +%1 +. +MessageId=36471 +Language=English +%1 +. +MessageId=36472 +Language=English +%1 +. +MessageId=36473 +Language=English +%1 +. +MessageId=36474 +Language=English +%1 +. +MessageId=36475 +Language=English +%1 +. +MessageId=36476 +Language=English +%1 +. +MessageId=36477 +Language=English +%1 +. +MessageId=36478 +Language=English +%1 +. +MessageId=36479 +Language=English +%1 +. +MessageId=36480 +Language=English +%1 +. +MessageId=36481 +Language=English +%1 +. +MessageId=36482 +Language=English +%1 +. +MessageId=36483 +Language=English +%1 +. +MessageId=36484 +Language=English +%1 +. +MessageId=36485 +Language=English +%1 +. +MessageId=36486 +Language=English +%1 +. +MessageId=36487 +Language=English +%1 +. +MessageId=36488 +Language=English +%1 +. +MessageId=36489 +Language=English +%1 +. +MessageId=36490 +Language=English +%1 +. +MessageId=36491 +Language=English +%1 +. +MessageId=36492 +Language=English +%1 +. +MessageId=36493 +Language=English +%1 +. +MessageId=36494 +Language=English +%1 +. +MessageId=36495 +Language=English +%1 +. +MessageId=36496 +Language=English +%1 +. +MessageId=36497 +Language=English +%1 +. +MessageId=36498 +Language=English +%1 +. +MessageId=36499 +Language=English +%1 +. +MessageId=36500 +Language=English +%1 +. +MessageId=36501 +Language=English +%1 +. +MessageId=36502 +Language=English +%1 +. +MessageId=36503 +Language=English +%1 +. +MessageId=36504 +Language=English +%1 +. +MessageId=36505 +Language=English +%1 +. +MessageId=36506 +Language=English +%1 +. +MessageId=36507 +Language=English +%1 +. +MessageId=36508 +Language=English +%1 +. +MessageId=36509 +Language=English +%1 +. +MessageId=36510 +Language=English +%1 +. +MessageId=36511 +Language=English +%1 +. +MessageId=36512 +Language=English +%1 +. +MessageId=36513 +Language=English +%1 +. +MessageId=36514 +Language=English +%1 +. +MessageId=36515 +Language=English +%1 +. +MessageId=36516 +Language=English +%1 +. +MessageId=36517 +Language=English +%1 +. +MessageId=36518 +Language=English +%1 +. +MessageId=36519 +Language=English +%1 +. +MessageId=36520 +Language=English +%1 +. +MessageId=36521 +Language=English +%1 +. +MessageId=36522 +Language=English +%1 +. +MessageId=36523 +Language=English +%1 +. +MessageId=36524 +Language=English +%1 +. +MessageId=36525 +Language=English +%1 +. +MessageId=36526 +Language=English +%1 +. +MessageId=36527 +Language=English +%1 +. +MessageId=36528 +Language=English +%1 +. +MessageId=36529 +Language=English +%1 +. +MessageId=36530 +Language=English +%1 +. +MessageId=36531 +Language=English +%1 +. +MessageId=36532 +Language=English +%1 +. +MessageId=36533 +Language=English +%1 +. +MessageId=36534 +Language=English +%1 +. +MessageId=36535 +Language=English +%1 +. +MessageId=36536 +Language=English +%1 +. +MessageId=36537 +Language=English +%1 +. +MessageId=36538 +Language=English +%1 +. +MessageId=36539 +Language=English +%1 +. +MessageId=36540 +Language=English +%1 +. +MessageId=36541 +Language=English +%1 +. +MessageId=36542 +Language=English +%1 +. +MessageId=36543 +Language=English +%1 +. +MessageId=36544 +Language=English +%1 +. +MessageId=36545 +Language=English +%1 +. +MessageId=36546 +Language=English +%1 +. +MessageId=36547 +Language=English +%1 +. +MessageId=36548 +Language=English +%1 +. +MessageId=36549 +Language=English +%1 +. +MessageId=36550 +Language=English +%1 +. +MessageId=36551 +Language=English +%1 +. +MessageId=36552 +Language=English +%1 +. +MessageId=36553 +Language=English +%1 +. +MessageId=36554 +Language=English +%1 +. +MessageId=36555 +Language=English +%1 +. +MessageId=36556 +Language=English +%1 +. +MessageId=36557 +Language=English +%1 +. +MessageId=36558 +Language=English +%1 +. +MessageId=36559 +Language=English +%1 +. +MessageId=36560 +Language=English +%1 +. +MessageId=36561 +Language=English +%1 +. +MessageId=36562 +Language=English +%1 +. +MessageId=36563 +Language=English +%1 +. +MessageId=36564 +Language=English +%1 +. +MessageId=36565 +Language=English +%1 +. +MessageId=36566 +Language=English +%1 +. +MessageId=36567 +Language=English +%1 +. +MessageId=36568 +Language=English +%1 +. +MessageId=36569 +Language=English +%1 +. +MessageId=36570 +Language=English +%1 +. +MessageId=36571 +Language=English +%1 +. +MessageId=36572 +Language=English +%1 +. +MessageId=36573 +Language=English +%1 +. +MessageId=36574 +Language=English +%1 +. +MessageId=36575 +Language=English +%1 +. +MessageId=36576 +Language=English +%1 +. +MessageId=36577 +Language=English +%1 +. +MessageId=36578 +Language=English +%1 +. +MessageId=36579 +Language=English +%1 +. +MessageId=36580 +Language=English +%1 +. +MessageId=36581 +Language=English +%1 +. +MessageId=36582 +Language=English +%1 +. +MessageId=36583 +Language=English +%1 +. +MessageId=36584 +Language=English +%1 +. +MessageId=36585 +Language=English +%1 +. +MessageId=36586 +Language=English +%1 +. +MessageId=36587 +Language=English +%1 +. +MessageId=36588 +Language=English +%1 +. +MessageId=36589 +Language=English +%1 +. +MessageId=36590 +Language=English +%1 +. +MessageId=36591 +Language=English +%1 +. +MessageId=36592 +Language=English +%1 +. +MessageId=36593 +Language=English +%1 +. +MessageId=36594 +Language=English +%1 +. +MessageId=36595 +Language=English +%1 +. +MessageId=36596 +Language=English +%1 +. +MessageId=36597 +Language=English +%1 +. +MessageId=36598 +Language=English +%1 +. +MessageId=36599 +Language=English +%1 +. +MessageId=36600 +Language=English +%1 +. +MessageId=36601 +Language=English +%1 +. +MessageId=36602 +Language=English +%1 +. +MessageId=36603 +Language=English +%1 +. +MessageId=36604 +Language=English +%1 +. +MessageId=36605 +Language=English +%1 +. +MessageId=36606 +Language=English +%1 +. +MessageId=36607 +Language=English +%1 +. +MessageId=36608 +Language=English +%1 +. +MessageId=36609 +Language=English +%1 +. +MessageId=36610 +Language=English +%1 +. +MessageId=36611 +Language=English +%1 +. +MessageId=36612 +Language=English +%1 +. +MessageId=36613 +Language=English +%1 +. +MessageId=36614 +Language=English +%1 +. +MessageId=36615 +Language=English +%1 +. +MessageId=36616 +Language=English +%1 +. +MessageId=36617 +Language=English +%1 +. +MessageId=36618 +Language=English +%1 +. +MessageId=36619 +Language=English +%1 +. +MessageId=36620 +Language=English +%1 +. +MessageId=36621 +Language=English +%1 +. +MessageId=36622 +Language=English +%1 +. +MessageId=36623 +Language=English +%1 +. +MessageId=36624 +Language=English +%1 +. +MessageId=36625 +Language=English +%1 +. +MessageId=36626 +Language=English +%1 +. +MessageId=36627 +Language=English +%1 +. +MessageId=36628 +Language=English +%1 +. +MessageId=36629 +Language=English +%1 +. +MessageId=36630 +Language=English +%1 +. +MessageId=36631 +Language=English +%1 +. +MessageId=36632 +Language=English +%1 +. +MessageId=36633 +Language=English +%1 +. +MessageId=36634 +Language=English +%1 +. +MessageId=36635 +Language=English +%1 +. +MessageId=36636 +Language=English +%1 +. +MessageId=36637 +Language=English +%1 +. +MessageId=36638 +Language=English +%1 +. +MessageId=36639 +Language=English +%1 +. +MessageId=36640 +Language=English +%1 +. +MessageId=36641 +Language=English +%1 +. +MessageId=36642 +Language=English +%1 +. +MessageId=36643 +Language=English +%1 +. +MessageId=36644 +Language=English +%1 +. +MessageId=36645 +Language=English +%1 +. +MessageId=36646 +Language=English +%1 +. +MessageId=36647 +Language=English +%1 +. +MessageId=36648 +Language=English +%1 +. +MessageId=36649 +Language=English +%1 +. +MessageId=36650 +Language=English +%1 +. +MessageId=36651 +Language=English +%1 +. +MessageId=36652 +Language=English +%1 +. +MessageId=36653 +Language=English +%1 +. +MessageId=36654 +Language=English +%1 +. +MessageId=36655 +Language=English +%1 +. +MessageId=36656 +Language=English +%1 +. +MessageId=36657 +Language=English +%1 +. +MessageId=36658 +Language=English +%1 +. +MessageId=36659 +Language=English +%1 +. +MessageId=36660 +Language=English +%1 +. +MessageId=36661 +Language=English +%1 +. +MessageId=36662 +Language=English +%1 +. +MessageId=36663 +Language=English +%1 +. +MessageId=36664 +Language=English +%1 +. +MessageId=36665 +Language=English +%1 +. +MessageId=36666 +Language=English +%1 +. +MessageId=36667 +Language=English +%1 +. +MessageId=36668 +Language=English +%1 +. +MessageId=36669 +Language=English +%1 +. +MessageId=36670 +Language=English +%1 +. +MessageId=36671 +Language=English +%1 +. +MessageId=36672 +Language=English +%1 +. +MessageId=36673 +Language=English +%1 +. +MessageId=36674 +Language=English +%1 +. +MessageId=36675 +Language=English +%1 +. +MessageId=36676 +Language=English +%1 +. +MessageId=36677 +Language=English +%1 +. +MessageId=36678 +Language=English +%1 +. +MessageId=36679 +Language=English +%1 +. +MessageId=36680 +Language=English +%1 +. +MessageId=36681 +Language=English +%1 +. +MessageId=36682 +Language=English +%1 +. +MessageId=36683 +Language=English +%1 +. +MessageId=36684 +Language=English +%1 +. +MessageId=36685 +Language=English +%1 +. +MessageId=36686 +Language=English +%1 +. +MessageId=36687 +Language=English +%1 +. +MessageId=36688 +Language=English +%1 +. +MessageId=36689 +Language=English +%1 +. +MessageId=36690 +Language=English +%1 +. +MessageId=36691 +Language=English +%1 +. +MessageId=36692 +Language=English +%1 +. +MessageId=36693 +Language=English +%1 +. +MessageId=36694 +Language=English +%1 +. +MessageId=36695 +Language=English +%1 +. +MessageId=36696 +Language=English +%1 +. +MessageId=36697 +Language=English +%1 +. +MessageId=36698 +Language=English +%1 +. +MessageId=36699 +Language=English +%1 +. +MessageId=36700 +Language=English +%1 +. +MessageId=36701 +Language=English +%1 +. +MessageId=36702 +Language=English +%1 +. +MessageId=36703 +Language=English +%1 +. +MessageId=36704 +Language=English +%1 +. +MessageId=36705 +Language=English +%1 +. +MessageId=36706 +Language=English +%1 +. +MessageId=36707 +Language=English +%1 +. +MessageId=36708 +Language=English +%1 +. +MessageId=36709 +Language=English +%1 +. +MessageId=36710 +Language=English +%1 +. +MessageId=36711 +Language=English +%1 +. +MessageId=36712 +Language=English +%1 +. +MessageId=36713 +Language=English +%1 +. +MessageId=36714 +Language=English +%1 +. +MessageId=36715 +Language=English +%1 +. +MessageId=36716 +Language=English +%1 +. +MessageId=36717 +Language=English +%1 +. +MessageId=36718 +Language=English +%1 +. +MessageId=36719 +Language=English +%1 +. +MessageId=36720 +Language=English +%1 +. +MessageId=36721 +Language=English +%1 +. +MessageId=36722 +Language=English +%1 +. +MessageId=36723 +Language=English +%1 +. +MessageId=36724 +Language=English +%1 +. +MessageId=36725 +Language=English +%1 +. +MessageId=36726 +Language=English +%1 +. +MessageId=36727 +Language=English +%1 +. +MessageId=36728 +Language=English +%1 +. +MessageId=36729 +Language=English +%1 +. +MessageId=36730 +Language=English +%1 +. +MessageId=36731 +Language=English +%1 +. +MessageId=36732 +Language=English +%1 +. +MessageId=36733 +Language=English +%1 +. +MessageId=36734 +Language=English +%1 +. +MessageId=36735 +Language=English +%1 +. +MessageId=36736 +Language=English +%1 +. +MessageId=36737 +Language=English +%1 +. +MessageId=36738 +Language=English +%1 +. +MessageId=36739 +Language=English +%1 +. +MessageId=36740 +Language=English +%1 +. +MessageId=36741 +Language=English +%1 +. +MessageId=36742 +Language=English +%1 +. +MessageId=36743 +Language=English +%1 +. +MessageId=36744 +Language=English +%1 +. +MessageId=36745 +Language=English +%1 +. +MessageId=36746 +Language=English +%1 +. +MessageId=36747 +Language=English +%1 +. +MessageId=36748 +Language=English +%1 +. +MessageId=36749 +Language=English +%1 +. +MessageId=36750 +Language=English +%1 +. +MessageId=36751 +Language=English +%1 +. +MessageId=36752 +Language=English +%1 +. +MessageId=36753 +Language=English +%1 +. +MessageId=36754 +Language=English +%1 +. +MessageId=36755 +Language=English +%1 +. +MessageId=36756 +Language=English +%1 +. +MessageId=36757 +Language=English +%1 +. +MessageId=36758 +Language=English +%1 +. +MessageId=36759 +Language=English +%1 +. +MessageId=36760 +Language=English +%1 +. +MessageId=36761 +Language=English +%1 +. +MessageId=36762 +Language=English +%1 +. +MessageId=36763 +Language=English +%1 +. +MessageId=36764 +Language=English +%1 +. +MessageId=36765 +Language=English +%1 +. +MessageId=36766 +Language=English +%1 +. +MessageId=36767 +Language=English +%1 +. +MessageId=36768 +Language=English +%1 +. +MessageId=36769 +Language=English +%1 +. +MessageId=36770 +Language=English +%1 +. +MessageId=36771 +Language=English +%1 +. +MessageId=36772 +Language=English +%1 +. +MessageId=36773 +Language=English +%1 +. +MessageId=36774 +Language=English +%1 +. +MessageId=36775 +Language=English +%1 +. +MessageId=36776 +Language=English +%1 +. +MessageId=36777 +Language=English +%1 +. +MessageId=36778 +Language=English +%1 +. +MessageId=36779 +Language=English +%1 +. +MessageId=36780 +Language=English +%1 +. +MessageId=36781 +Language=English +%1 +. +MessageId=36782 +Language=English +%1 +. +MessageId=36783 +Language=English +%1 +. +MessageId=36784 +Language=English +%1 +. +MessageId=36785 +Language=English +%1 +. +MessageId=36786 +Language=English +%1 +. +MessageId=36787 +Language=English +%1 +. +MessageId=36788 +Language=English +%1 +. +MessageId=36789 +Language=English +%1 +. +MessageId=36790 +Language=English +%1 +. +MessageId=36791 +Language=English +%1 +. +MessageId=36792 +Language=English +%1 +. +MessageId=36793 +Language=English +%1 +. +MessageId=36794 +Language=English +%1 +. +MessageId=36795 +Language=English +%1 +. +MessageId=36796 +Language=English +%1 +. +MessageId=36797 +Language=English +%1 +. +MessageId=36798 +Language=English +%1 +. +MessageId=36799 +Language=English +%1 +. +MessageId=36800 +Language=English +%1 +. +MessageId=36801 +Language=English +%1 +. +MessageId=36802 +Language=English +%1 +. +MessageId=36803 +Language=English +%1 +. +MessageId=36804 +Language=English +%1 +. +MessageId=36805 +Language=English +%1 +. +MessageId=36806 +Language=English +%1 +. +MessageId=36807 +Language=English +%1 +. +MessageId=36808 +Language=English +%1 +. +MessageId=36809 +Language=English +%1 +. +MessageId=36810 +Language=English +%1 +. +MessageId=36811 +Language=English +%1 +. +MessageId=36812 +Language=English +%1 +. +MessageId=36813 +Language=English +%1 +. +MessageId=36814 +Language=English +%1 +. +MessageId=36815 +Language=English +%1 +. +MessageId=36816 +Language=English +%1 +. +MessageId=36817 +Language=English +%1 +. +MessageId=36818 +Language=English +%1 +. +MessageId=36819 +Language=English +%1 +. +MessageId=36820 +Language=English +%1 +. +MessageId=36821 +Language=English +%1 +. +MessageId=36822 +Language=English +%1 +. +MessageId=36823 +Language=English +%1 +. +MessageId=36824 +Language=English +%1 +. +MessageId=36825 +Language=English +%1 +. +MessageId=36826 +Language=English +%1 +. +MessageId=36827 +Language=English +%1 +. +MessageId=36828 +Language=English +%1 +. +MessageId=36829 +Language=English +%1 +. +MessageId=36830 +Language=English +%1 +. +MessageId=36831 +Language=English +%1 +. +MessageId=36832 +Language=English +%1 +. +MessageId=36833 +Language=English +%1 +. +MessageId=36834 +Language=English +%1 +. +MessageId=36835 +Language=English +%1 +. +MessageId=36836 +Language=English +%1 +. +MessageId=36837 +Language=English +%1 +. +MessageId=36838 +Language=English +%1 +. +MessageId=36839 +Language=English +%1 +. +MessageId=36840 +Language=English +%1 +. +MessageId=36841 +Language=English +%1 +. +MessageId=36842 +Language=English +%1 +. +MessageId=36843 +Language=English +%1 +. +MessageId=36844 +Language=English +%1 +. +MessageId=36845 +Language=English +%1 +. +MessageId=36846 +Language=English +%1 +. +MessageId=36847 +Language=English +%1 +. +MessageId=36848 +Language=English +%1 +. +MessageId=36849 +Language=English +%1 +. +MessageId=36850 +Language=English +%1 +. +MessageId=36851 +Language=English +%1 +. +MessageId=36852 +Language=English +%1 +. +MessageId=36853 +Language=English +%1 +. +MessageId=36854 +Language=English +%1 +. +MessageId=36855 +Language=English +%1 +. +MessageId=36856 +Language=English +%1 +. +MessageId=36857 +Language=English +%1 +. +MessageId=36858 +Language=English +%1 +. +MessageId=36859 +Language=English +%1 +. +MessageId=36860 +Language=English +%1 +. +MessageId=36861 +Language=English +%1 +. +MessageId=36862 +Language=English +%1 +. +MessageId=36863 +Language=English +%1 +. +MessageId=36864 +Language=English +%1 +. +MessageId=36865 +Language=English +%1 +. +MessageId=36866 +Language=English +%1 +. +MessageId=36867 +Language=English +%1 +. +MessageId=36868 +Language=English +%1 +. +MessageId=36869 +Language=English +%1 +. +MessageId=36870 +Language=English +%1 +. +MessageId=36871 +Language=English +%1 +. +MessageId=36872 +Language=English +%1 +. +MessageId=36873 +Language=English +%1 +. +MessageId=36874 +Language=English +%1 +. +MessageId=36875 +Language=English +%1 +. +MessageId=36876 +Language=English +%1 +. +MessageId=36877 +Language=English +%1 +. +MessageId=36878 +Language=English +%1 +. +MessageId=36879 +Language=English +%1 +. +MessageId=36880 +Language=English +%1 +. +MessageId=36881 +Language=English +%1 +. +MessageId=36882 +Language=English +%1 +. +MessageId=36883 +Language=English +%1 +. +MessageId=36884 +Language=English +%1 +. +MessageId=36885 +Language=English +%1 +. +MessageId=36886 +Language=English +%1 +. +MessageId=36887 +Language=English +%1 +. +MessageId=36888 +Language=English +%1 +. +MessageId=36889 +Language=English +%1 +. +MessageId=36890 +Language=English +%1 +. +MessageId=36891 +Language=English +%1 +. +MessageId=36892 +Language=English +%1 +. +MessageId=36893 +Language=English +%1 +. +MessageId=36894 +Language=English +%1 +. +MessageId=36895 +Language=English +%1 +. +MessageId=36896 +Language=English +%1 +. +MessageId=36897 +Language=English +%1 +. +MessageId=36898 +Language=English +%1 +. +MessageId=36899 +Language=English +%1 +. +MessageId=36900 +Language=English +%1 +. +MessageId=36901 +Language=English +%1 +. +MessageId=36902 +Language=English +%1 +. +MessageId=36903 +Language=English +%1 +. +MessageId=36904 +Language=English +%1 +. +MessageId=36905 +Language=English +%1 +. +MessageId=36906 +Language=English +%1 +. +MessageId=36907 +Language=English +%1 +. +MessageId=36908 +Language=English +%1 +. +MessageId=36909 +Language=English +%1 +. +MessageId=36910 +Language=English +%1 +. +MessageId=36911 +Language=English +%1 +. +MessageId=36912 +Language=English +%1 +. +MessageId=36913 +Language=English +%1 +. +MessageId=36914 +Language=English +%1 +. +MessageId=36915 +Language=English +%1 +. +MessageId=36916 +Language=English +%1 +. +MessageId=36917 +Language=English +%1 +. +MessageId=36918 +Language=English +%1 +. +MessageId=36919 +Language=English +%1 +. +MessageId=36920 +Language=English +%1 +. +MessageId=36921 +Language=English +%1 +. +MessageId=36922 +Language=English +%1 +. +MessageId=36923 +Language=English +%1 +. +MessageId=36924 +Language=English +%1 +. +MessageId=36925 +Language=English +%1 +. +MessageId=36926 +Language=English +%1 +. +MessageId=36927 +Language=English +%1 +. +MessageId=36928 +Language=English +%1 +. +MessageId=36929 +Language=English +%1 +. +MessageId=36930 +Language=English +%1 +. +MessageId=36931 +Language=English +%1 +. +MessageId=36932 +Language=English +%1 +. +MessageId=36933 +Language=English +%1 +. +MessageId=36934 +Language=English +%1 +. +MessageId=36935 +Language=English +%1 +. +MessageId=36936 +Language=English +%1 +. +MessageId=36937 +Language=English +%1 +. +MessageId=36938 +Language=English +%1 +. +MessageId=36939 +Language=English +%1 +. +MessageId=36940 +Language=English +%1 +. +MessageId=36941 +Language=English +%1 +. +MessageId=36942 +Language=English +%1 +. +MessageId=36943 +Language=English +%1 +. +MessageId=36944 +Language=English +%1 +. +MessageId=36945 +Language=English +%1 +. +MessageId=36946 +Language=English +%1 +. +MessageId=36947 +Language=English +%1 +. +MessageId=36948 +Language=English +%1 +. +MessageId=36949 +Language=English +%1 +. +MessageId=36950 +Language=English +%1 +. +MessageId=36951 +Language=English +%1 +. +MessageId=36952 +Language=English +%1 +. +MessageId=36953 +Language=English +%1 +. +MessageId=36954 +Language=English +%1 +. +MessageId=36955 +Language=English +%1 +. +MessageId=36956 +Language=English +%1 +. +MessageId=36957 +Language=English +%1 +. +MessageId=36958 +Language=English +%1 +. +MessageId=36959 +Language=English +%1 +. +MessageId=36960 +Language=English +%1 +. +MessageId=36961 +Language=English +%1 +. +MessageId=36962 +Language=English +%1 +. +MessageId=36963 +Language=English +%1 +. +MessageId=36964 +Language=English +%1 +. +MessageId=36965 +Language=English +%1 +. +MessageId=36966 +Language=English +%1 +. +MessageId=36967 +Language=English +%1 +. +MessageId=36968 +Language=English +%1 +. +MessageId=36969 +Language=English +%1 +. +MessageId=36970 +Language=English +%1 +. +MessageId=36971 +Language=English +%1 +. +MessageId=36972 +Language=English +%1 +. +MessageId=36973 +Language=English +%1 +. +MessageId=36974 +Language=English +%1 +. +MessageId=36975 +Language=English +%1 +. +MessageId=36976 +Language=English +%1 +. +MessageId=36977 +Language=English +%1 +. +MessageId=36978 +Language=English +%1 +. +MessageId=36979 +Language=English +%1 +. +MessageId=36980 +Language=English +%1 +. +MessageId=36981 +Language=English +%1 +. +MessageId=36982 +Language=English +%1 +. +MessageId=36983 +Language=English +%1 +. +MessageId=36984 +Language=English +%1 +. +MessageId=36985 +Language=English +%1 +. +MessageId=36986 +Language=English +%1 +. +MessageId=36987 +Language=English +%1 +. +MessageId=36988 +Language=English +%1 +. +MessageId=36989 +Language=English +%1 +. +MessageId=36990 +Language=English +%1 +. +MessageId=36991 +Language=English +%1 +. +MessageId=36992 +Language=English +%1 +. +MessageId=36993 +Language=English +%1 +. +MessageId=36994 +Language=English +%1 +. +MessageId=36995 +Language=English +%1 +. +MessageId=36996 +Language=English +%1 +. +MessageId=36997 +Language=English +%1 +. +MessageId=36998 +Language=English +%1 +. +MessageId=36999 +Language=English +%1 +. +MessageId=37000 +Language=English +%1 +. +MessageId=37001 +Language=English +%1 +. +MessageId=37002 +Language=English +%1 +. +MessageId=37003 +Language=English +%1 +. +MessageId=37004 +Language=English +%1 +. +MessageId=37005 +Language=English +%1 +. +MessageId=37006 +Language=English +%1 +. +MessageId=37007 +Language=English +%1 +. +MessageId=37008 +Language=English +%1 +. +MessageId=37009 +Language=English +%1 +. +MessageId=37010 +Language=English +%1 +. +MessageId=37011 +Language=English +%1 +. +MessageId=37012 +Language=English +%1 +. +MessageId=37013 +Language=English +%1 +. +MessageId=37014 +Language=English +%1 +. +MessageId=37015 +Language=English +%1 +. +MessageId=37016 +Language=English +%1 +. +MessageId=37017 +Language=English +%1 +. +MessageId=37018 +Language=English +%1 +. +MessageId=37019 +Language=English +%1 +. +MessageId=37020 +Language=English +%1 +. +MessageId=37021 +Language=English +%1 +. +MessageId=37022 +Language=English +%1 +. +MessageId=37023 +Language=English +%1 +. +MessageId=37024 +Language=English +%1 +. +MessageId=37025 +Language=English +%1 +. +MessageId=37026 +Language=English +%1 +. +MessageId=37027 +Language=English +%1 +. +MessageId=37028 +Language=English +%1 +. +MessageId=37029 +Language=English +%1 +. +MessageId=37030 +Language=English +%1 +. +MessageId=37031 +Language=English +%1 +. +MessageId=37032 +Language=English +%1 +. +MessageId=37033 +Language=English +%1 +. +MessageId=37034 +Language=English +%1 +. +MessageId=37035 +Language=English +%1 +. +MessageId=37036 +Language=English +%1 +. +MessageId=37037 +Language=English +%1 +. +MessageId=37038 +Language=English +%1 +. +MessageId=37039 +Language=English +%1 +. +MessageId=37040 +Language=English +%1 +. +MessageId=37041 +Language=English +%1 +. +MessageId=37042 +Language=English +%1 +. +MessageId=37043 +Language=English +%1 +. +MessageId=37044 +Language=English +%1 +. +MessageId=37045 +Language=English +%1 +. +MessageId=37046 +Language=English +%1 +. +MessageId=37047 +Language=English +%1 +. +MessageId=37048 +Language=English +%1 +. +MessageId=37049 +Language=English +%1 +. +MessageId=37050 +Language=English +%1 +. +MessageId=37051 +Language=English +%1 +. +MessageId=37052 +Language=English +%1 +. +MessageId=37053 +Language=English +%1 +. +MessageId=37054 +Language=English +%1 +. +MessageId=37055 +Language=English +%1 +. +MessageId=37056 +Language=English +%1 +. +MessageId=37057 +Language=English +%1 +. +MessageId=37058 +Language=English +%1 +. +MessageId=37059 +Language=English +%1 +. +MessageId=37060 +Language=English +%1 +. +MessageId=37061 +Language=English +%1 +. +MessageId=37062 +Language=English +%1 +. +MessageId=37063 +Language=English +%1 +. +MessageId=37064 +Language=English +%1 +. +MessageId=37065 +Language=English +%1 +. +MessageId=37066 +Language=English +%1 +. +MessageId=37067 +Language=English +%1 +. +MessageId=37068 +Language=English +%1 +. +MessageId=37069 +Language=English +%1 +. +MessageId=37070 +Language=English +%1 +. +MessageId=37071 +Language=English +%1 +. +MessageId=37072 +Language=English +%1 +. +MessageId=37073 +Language=English +%1 +. +MessageId=37074 +Language=English +%1 +. +MessageId=37075 +Language=English +%1 +. +MessageId=37076 +Language=English +%1 +. +MessageId=37077 +Language=English +%1 +. +MessageId=37078 +Language=English +%1 +. +MessageId=37079 +Language=English +%1 +. +MessageId=37080 +Language=English +%1 +. +MessageId=37081 +Language=English +%1 +. +MessageId=37082 +Language=English +%1 +. +MessageId=37083 +Language=English +%1 +. +MessageId=37084 +Language=English +%1 +. +MessageId=37085 +Language=English +%1 +. +MessageId=37086 +Language=English +%1 +. +MessageId=37087 +Language=English +%1 +. +MessageId=37088 +Language=English +%1 +. +MessageId=37089 +Language=English +%1 +. +MessageId=37090 +Language=English +%1 +. +MessageId=37091 +Language=English +%1 +. +MessageId=37092 +Language=English +%1 +. +MessageId=37093 +Language=English +%1 +. +MessageId=37094 +Language=English +%1 +. +MessageId=37095 +Language=English +%1 +. +MessageId=37096 +Language=English +%1 +. +MessageId=37097 +Language=English +%1 +. +MessageId=37098 +Language=English +%1 +. +MessageId=37099 +Language=English +%1 +. +MessageId=37100 +Language=English +%1 +. +MessageId=37101 +Language=English +%1 +. +MessageId=37102 +Language=English +%1 +. +MessageId=37103 +Language=English +%1 +. +MessageId=37104 +Language=English +%1 +. +MessageId=37105 +Language=English +%1 +. +MessageId=37106 +Language=English +%1 +. +MessageId=37107 +Language=English +%1 +. +MessageId=37108 +Language=English +%1 +. +MessageId=37109 +Language=English +%1 +. +MessageId=37110 +Language=English +%1 +. +MessageId=37111 +Language=English +%1 +. +MessageId=37112 +Language=English +%1 +. +MessageId=37113 +Language=English +%1 +. +MessageId=37114 +Language=English +%1 +. +MessageId=37115 +Language=English +%1 +. +MessageId=37116 +Language=English +%1 +. +MessageId=37117 +Language=English +%1 +. +MessageId=37118 +Language=English +%1 +. +MessageId=37119 +Language=English +%1 +. +MessageId=37120 +Language=English +%1 +. +MessageId=37121 +Language=English +%1 +. +MessageId=37122 +Language=English +%1 +. +MessageId=37123 +Language=English +%1 +. +MessageId=37124 +Language=English +%1 +. +MessageId=37125 +Language=English +%1 +. +MessageId=37126 +Language=English +%1 +. +MessageId=37127 +Language=English +%1 +. +MessageId=37128 +Language=English +%1 +. +MessageId=37129 +Language=English +%1 +. +MessageId=37130 +Language=English +%1 +. +MessageId=37131 +Language=English +%1 +. +MessageId=37132 +Language=English +%1 +. +MessageId=37133 +Language=English +%1 +. +MessageId=37134 +Language=English +%1 +. +MessageId=37135 +Language=English +%1 +. +MessageId=37136 +Language=English +%1 +. +MessageId=37137 +Language=English +%1 +. +MessageId=37138 +Language=English +%1 +. +MessageId=37139 +Language=English +%1 +. +MessageId=37140 +Language=English +%1 +. +MessageId=37141 +Language=English +%1 +. +MessageId=37142 +Language=English +%1 +. +MessageId=37143 +Language=English +%1 +. +MessageId=37144 +Language=English +%1 +. +MessageId=37145 +Language=English +%1 +. +MessageId=37146 +Language=English +%1 +. +MessageId=37147 +Language=English +%1 +. +MessageId=37148 +Language=English +%1 +. +MessageId=37149 +Language=English +%1 +. +MessageId=37150 +Language=English +%1 +. +MessageId=37151 +Language=English +%1 +. +MessageId=37152 +Language=English +%1 +. +MessageId=37153 +Language=English +%1 +. +MessageId=37154 +Language=English +%1 +. +MessageId=37155 +Language=English +%1 +. +MessageId=37156 +Language=English +%1 +. +MessageId=37157 +Language=English +%1 +. +MessageId=37158 +Language=English +%1 +. +MessageId=37159 +Language=English +%1 +. +MessageId=37160 +Language=English +%1 +. +MessageId=37161 +Language=English +%1 +. +MessageId=37162 +Language=English +%1 +. +MessageId=37163 +Language=English +%1 +. +MessageId=37164 +Language=English +%1 +. +MessageId=37165 +Language=English +%1 +. +MessageId=37166 +Language=English +%1 +. +MessageId=37167 +Language=English +%1 +. +MessageId=37168 +Language=English +%1 +. +MessageId=37169 +Language=English +%1 +. +MessageId=37170 +Language=English +%1 +. +MessageId=37171 +Language=English +%1 +. +MessageId=37172 +Language=English +%1 +. +MessageId=37173 +Language=English +%1 +. +MessageId=37174 +Language=English +%1 +. +MessageId=37175 +Language=English +%1 +. +MessageId=37176 +Language=English +%1 +. +MessageId=37177 +Language=English +%1 +. +MessageId=37178 +Language=English +%1 +. +MessageId=37179 +Language=English +%1 +. +MessageId=37180 +Language=English +%1 +. +MessageId=37181 +Language=English +%1 +. +MessageId=37182 +Language=English +%1 +. +MessageId=37183 +Language=English +%1 +. +MessageId=37184 +Language=English +%1 +. +MessageId=37185 +Language=English +%1 +. +MessageId=37186 +Language=English +%1 +. +MessageId=37187 +Language=English +%1 +. +MessageId=37188 +Language=English +%1 +. +MessageId=37189 +Language=English +%1 +. +MessageId=37190 +Language=English +%1 +. +MessageId=37191 +Language=English +%1 +. +MessageId=37192 +Language=English +%1 +. +MessageId=37193 +Language=English +%1 +. +MessageId=37194 +Language=English +%1 +. +MessageId=37195 +Language=English +%1 +. +MessageId=37196 +Language=English +%1 +. +MessageId=37197 +Language=English +%1 +. +MessageId=37198 +Language=English +%1 +. +MessageId=37199 +Language=English +%1 +. +MessageId=37200 +Language=English +%1 +. +MessageId=37201 +Language=English +%1 +. +MessageId=37202 +Language=English +%1 +. +MessageId=37203 +Language=English +%1 +. +MessageId=37204 +Language=English +%1 +. +MessageId=37205 +Language=English +%1 +. +MessageId=37206 +Language=English +%1 +. +MessageId=37207 +Language=English +%1 +. +MessageId=37208 +Language=English +%1 +. +MessageId=37209 +Language=English +%1 +. +MessageId=37210 +Language=English +%1 +. +MessageId=37211 +Language=English +%1 +. +MessageId=37212 +Language=English +%1 +. +MessageId=37213 +Language=English +%1 +. +MessageId=37214 +Language=English +%1 +. +MessageId=37215 +Language=English +%1 +. +MessageId=37216 +Language=English +%1 +. +MessageId=37217 +Language=English +%1 +. +MessageId=37218 +Language=English +%1 +. +MessageId=37219 +Language=English +%1 +. +MessageId=37220 +Language=English +%1 +. +MessageId=37221 +Language=English +%1 +. +MessageId=37222 +Language=English +%1 +. +MessageId=37223 +Language=English +%1 +. +MessageId=37224 +Language=English +%1 +. +MessageId=37225 +Language=English +%1 +. +MessageId=37226 +Language=English +%1 +. +MessageId=37227 +Language=English +%1 +. +MessageId=37228 +Language=English +%1 +. +MessageId=37229 +Language=English +%1 +. +MessageId=37230 +Language=English +%1 +. +MessageId=37231 +Language=English +%1 +. +MessageId=37232 +Language=English +%1 +. +MessageId=37233 +Language=English +%1 +. +MessageId=37234 +Language=English +%1 +. +MessageId=37235 +Language=English +%1 +. +MessageId=37236 +Language=English +%1 +. +MessageId=37237 +Language=English +%1 +. +MessageId=37238 +Language=English +%1 +. +MessageId=37239 +Language=English +%1 +. +MessageId=37240 +Language=English +%1 +. +MessageId=37241 +Language=English +%1 +. +MessageId=37242 +Language=English +%1 +. +MessageId=37243 +Language=English +%1 +. +MessageId=37244 +Language=English +%1 +. +MessageId=37245 +Language=English +%1 +. +MessageId=37246 +Language=English +%1 +. +MessageId=37247 +Language=English +%1 +. +MessageId=37248 +Language=English +%1 +. +MessageId=37249 +Language=English +%1 +. +MessageId=37250 +Language=English +%1 +. +MessageId=37251 +Language=English +%1 +. +MessageId=37252 +Language=English +%1 +. +MessageId=37253 +Language=English +%1 +. +MessageId=37254 +Language=English +%1 +. +MessageId=37255 +Language=English +%1 +. +MessageId=37256 +Language=English +%1 +. +MessageId=37257 +Language=English +%1 +. +MessageId=37258 +Language=English +%1 +. +MessageId=37259 +Language=English +%1 +. +MessageId=37260 +Language=English +%1 +. +MessageId=37261 +Language=English +%1 +. +MessageId=37262 +Language=English +%1 +. +MessageId=37263 +Language=English +%1 +. +MessageId=37264 +Language=English +%1 +. +MessageId=37265 +Language=English +%1 +. +MessageId=37266 +Language=English +%1 +. +MessageId=37267 +Language=English +%1 +. +MessageId=37268 +Language=English +%1 +. +MessageId=37269 +Language=English +%1 +. +MessageId=37270 +Language=English +%1 +. +MessageId=37271 +Language=English +%1 +. +MessageId=37272 +Language=English +%1 +. +MessageId=37273 +Language=English +%1 +. +MessageId=37274 +Language=English +%1 +. +MessageId=37275 +Language=English +%1 +. +MessageId=37276 +Language=English +%1 +. +MessageId=37277 +Language=English +%1 +. +MessageId=37278 +Language=English +%1 +. +MessageId=37279 +Language=English +%1 +. +MessageId=37280 +Language=English +%1 +. +MessageId=37281 +Language=English +%1 +. +MessageId=37282 +Language=English +%1 +. +MessageId=37283 +Language=English +%1 +. +MessageId=37284 +Language=English +%1 +. +MessageId=37285 +Language=English +%1 +. +MessageId=37286 +Language=English +%1 +. +MessageId=37287 +Language=English +%1 +. +MessageId=37288 +Language=English +%1 +. +MessageId=37289 +Language=English +%1 +. +MessageId=37290 +Language=English +%1 +. +MessageId=37291 +Language=English +%1 +. +MessageId=37292 +Language=English +%1 +. +MessageId=37293 +Language=English +%1 +. +MessageId=37294 +Language=English +%1 +. +MessageId=37295 +Language=English +%1 +. +MessageId=37296 +Language=English +%1 +. +MessageId=37297 +Language=English +%1 +. +MessageId=37298 +Language=English +%1 +. +MessageId=37299 +Language=English +%1 +. +MessageId=37300 +Language=English +%1 +. +MessageId=37301 +Language=English +%1 +. +MessageId=37302 +Language=English +%1 +. +MessageId=37303 +Language=English +%1 +. +MessageId=37304 +Language=English +%1 +. +MessageId=37305 +Language=English +%1 +. +MessageId=37306 +Language=English +%1 +. +MessageId=37307 +Language=English +%1 +. +MessageId=37308 +Language=English +%1 +. +MessageId=37309 +Language=English +%1 +. +MessageId=37310 +Language=English +%1 +. +MessageId=37311 +Language=English +%1 +. +MessageId=37312 +Language=English +%1 +. +MessageId=37313 +Language=English +%1 +. +MessageId=37314 +Language=English +%1 +. +MessageId=37315 +Language=English +%1 +. +MessageId=37316 +Language=English +%1 +. +MessageId=37317 +Language=English +%1 +. +MessageId=37318 +Language=English +%1 +. +MessageId=37319 +Language=English +%1 +. +MessageId=37320 +Language=English +%1 +. +MessageId=37321 +Language=English +%1 +. +MessageId=37322 +Language=English +%1 +. +MessageId=37323 +Language=English +%1 +. +MessageId=37324 +Language=English +%1 +. +MessageId=37325 +Language=English +%1 +. +MessageId=37326 +Language=English +%1 +. +MessageId=37327 +Language=English +%1 +. +MessageId=37328 +Language=English +%1 +. +MessageId=37329 +Language=English +%1 +. +MessageId=37330 +Language=English +%1 +. +MessageId=37331 +Language=English +%1 +. +MessageId=37332 +Language=English +%1 +. +MessageId=37333 +Language=English +%1 +. +MessageId=37334 +Language=English +%1 +. +MessageId=37335 +Language=English +%1 +. +MessageId=37336 +Language=English +%1 +. +MessageId=37337 +Language=English +%1 +. +MessageId=37338 +Language=English +%1 +. +MessageId=37339 +Language=English +%1 +. +MessageId=37340 +Language=English +%1 +. +MessageId=37341 +Language=English +%1 +. +MessageId=37342 +Language=English +%1 +. +MessageId=37343 +Language=English +%1 +. +MessageId=37344 +Language=English +%1 +. +MessageId=37345 +Language=English +%1 +. +MessageId=37346 +Language=English +%1 +. +MessageId=37347 +Language=English +%1 +. +MessageId=37348 +Language=English +%1 +. +MessageId=37349 +Language=English +%1 +. +MessageId=37350 +Language=English +%1 +. +MessageId=37351 +Language=English +%1 +. +MessageId=37352 +Language=English +%1 +. +MessageId=37353 +Language=English +%1 +. +MessageId=37354 +Language=English +%1 +. +MessageId=37355 +Language=English +%1 +. +MessageId=37356 +Language=English +%1 +. +MessageId=37357 +Language=English +%1 +. +MessageId=37358 +Language=English +%1 +. +MessageId=37359 +Language=English +%1 +. +MessageId=37360 +Language=English +%1 +. +MessageId=37361 +Language=English +%1 +. +MessageId=37362 +Language=English +%1 +. +MessageId=37363 +Language=English +%1 +. +MessageId=37364 +Language=English +%1 +. +MessageId=37365 +Language=English +%1 +. +MessageId=37366 +Language=English +%1 +. +MessageId=37367 +Language=English +%1 +. +MessageId=37368 +Language=English +%1 +. +MessageId=37369 +Language=English +%1 +. +MessageId=37370 +Language=English +%1 +. +MessageId=37371 +Language=English +%1 +. +MessageId=37372 +Language=English +%1 +. +MessageId=37373 +Language=English +%1 +. +MessageId=37374 +Language=English +%1 +. +MessageId=37375 +Language=English +%1 +. +MessageId=37376 +Language=English +%1 +. +MessageId=37377 +Language=English +%1 +. +MessageId=37378 +Language=English +%1 +. +MessageId=37379 +Language=English +%1 +. +MessageId=37380 +Language=English +%1 +. +MessageId=37381 +Language=English +%1 +. +MessageId=37382 +Language=English +%1 +. +MessageId=37383 +Language=English +%1 +. +MessageId=37384 +Language=English +%1 +. +MessageId=37385 +Language=English +%1 +. +MessageId=37386 +Language=English +%1 +. +MessageId=37387 +Language=English +%1 +. +MessageId=37388 +Language=English +%1 +. +MessageId=37389 +Language=English +%1 +. +MessageId=37390 +Language=English +%1 +. +MessageId=37391 +Language=English +%1 +. +MessageId=37392 +Language=English +%1 +. +MessageId=37393 +Language=English +%1 +. +MessageId=37394 +Language=English +%1 +. +MessageId=37395 +Language=English +%1 +. +MessageId=37396 +Language=English +%1 +. +MessageId=37397 +Language=English +%1 +. +MessageId=37398 +Language=English +%1 +. +MessageId=37399 +Language=English +%1 +. +MessageId=37400 +Language=English +%1 +. +MessageId=37401 +Language=English +%1 +. +MessageId=37402 +Language=English +%1 +. +MessageId=37403 +Language=English +%1 +. +MessageId=37404 +Language=English +%1 +. +MessageId=37405 +Language=English +%1 +. +MessageId=37406 +Language=English +%1 +. +MessageId=37407 +Language=English +%1 +. +MessageId=37408 +Language=English +%1 +. +MessageId=37409 +Language=English +%1 +. +MessageId=37410 +Language=English +%1 +. +MessageId=37411 +Language=English +%1 +. +MessageId=37412 +Language=English +%1 +. +MessageId=37413 +Language=English +%1 +. +MessageId=37414 +Language=English +%1 +. +MessageId=37415 +Language=English +%1 +. +MessageId=37416 +Language=English +%1 +. +MessageId=37417 +Language=English +%1 +. +MessageId=37418 +Language=English +%1 +. +MessageId=37419 +Language=English +%1 +. +MessageId=37420 +Language=English +%1 +. +MessageId=37421 +Language=English +%1 +. +MessageId=37422 +Language=English +%1 +. +MessageId=37423 +Language=English +%1 +. +MessageId=37424 +Language=English +%1 +. +MessageId=37425 +Language=English +%1 +. +MessageId=37426 +Language=English +%1 +. +MessageId=37427 +Language=English +%1 +. +MessageId=37428 +Language=English +%1 +. +MessageId=37429 +Language=English +%1 +. +MessageId=37430 +Language=English +%1 +. +MessageId=37431 +Language=English +%1 +. +MessageId=37432 +Language=English +%1 +. +MessageId=37433 +Language=English +%1 +. +MessageId=37434 +Language=English +%1 +. +MessageId=37435 +Language=English +%1 +. +MessageId=37436 +Language=English +%1 +. +MessageId=37437 +Language=English +%1 +. +MessageId=37438 +Language=English +%1 +. +MessageId=37439 +Language=English +%1 +. +MessageId=37440 +Language=English +%1 +. +MessageId=37441 +Language=English +%1 +. +MessageId=37442 +Language=English +%1 +. +MessageId=37443 +Language=English +%1 +. +MessageId=37444 +Language=English +%1 +. +MessageId=37445 +Language=English +%1 +. +MessageId=37446 +Language=English +%1 +. +MessageId=37447 +Language=English +%1 +. +MessageId=37448 +Language=English +%1 +. +MessageId=37449 +Language=English +%1 +. +MessageId=37450 +Language=English +%1 +. +MessageId=37451 +Language=English +%1 +. +MessageId=37452 +Language=English +%1 +. +MessageId=37453 +Language=English +%1 +. +MessageId=37454 +Language=English +%1 +. +MessageId=37455 +Language=English +%1 +. +MessageId=37456 +Language=English +%1 +. +MessageId=37457 +Language=English +%1 +. +MessageId=37458 +Language=English +%1 +. +MessageId=37459 +Language=English +%1 +. +MessageId=37460 +Language=English +%1 +. +MessageId=37461 +Language=English +%1 +. +MessageId=37462 +Language=English +%1 +. +MessageId=37463 +Language=English +%1 +. +MessageId=37464 +Language=English +%1 +. +MessageId=37465 +Language=English +%1 +. +MessageId=37466 +Language=English +%1 +. +MessageId=37467 +Language=English +%1 +. +MessageId=37468 +Language=English +%1 +. +MessageId=37469 +Language=English +%1 +. +MessageId=37470 +Language=English +%1 +. +MessageId=37471 +Language=English +%1 +. +MessageId=37472 +Language=English +%1 +. +MessageId=37473 +Language=English +%1 +. +MessageId=37474 +Language=English +%1 +. +MessageId=37475 +Language=English +%1 +. +MessageId=37476 +Language=English +%1 +. +MessageId=37477 +Language=English +%1 +. +MessageId=37478 +Language=English +%1 +. +MessageId=37479 +Language=English +%1 +. +MessageId=37480 +Language=English +%1 +. +MessageId=37481 +Language=English +%1 +. +MessageId=37482 +Language=English +%1 +. +MessageId=37483 +Language=English +%1 +. +MessageId=37484 +Language=English +%1 +. +MessageId=37485 +Language=English +%1 +. +MessageId=37486 +Language=English +%1 +. +MessageId=37487 +Language=English +%1 +. +MessageId=37488 +Language=English +%1 +. +MessageId=37489 +Language=English +%1 +. +MessageId=37490 +Language=English +%1 +. +MessageId=37491 +Language=English +%1 +. +MessageId=37492 +Language=English +%1 +. +MessageId=37493 +Language=English +%1 +. +MessageId=37494 +Language=English +%1 +. +MessageId=37495 +Language=English +%1 +. +MessageId=37496 +Language=English +%1 +. +MessageId=37497 +Language=English +%1 +. +MessageId=37498 +Language=English +%1 +. +MessageId=37499 +Language=English +%1 +. +MessageId=37500 +Language=English +%1 +. +MessageId=37501 +Language=English +%1 +. +MessageId=37502 +Language=English +%1 +. +MessageId=37503 +Language=English +%1 +. +MessageId=37504 +Language=English +%1 +. +MessageId=37505 +Language=English +%1 +. +MessageId=37506 +Language=English +%1 +. +MessageId=37507 +Language=English +%1 +. +MessageId=37508 +Language=English +%1 +. +MessageId=37509 +Language=English +%1 +. +MessageId=37510 +Language=English +%1 +. +MessageId=37511 +Language=English +%1 +. +MessageId=37512 +Language=English +%1 +. +MessageId=37513 +Language=English +%1 +. +MessageId=37514 +Language=English +%1 +. +MessageId=37515 +Language=English +%1 +. +MessageId=37516 +Language=English +%1 +. +MessageId=37517 +Language=English +%1 +. +MessageId=37518 +Language=English +%1 +. +MessageId=37519 +Language=English +%1 +. +MessageId=37520 +Language=English +%1 +. +MessageId=37521 +Language=English +%1 +. +MessageId=37522 +Language=English +%1 +. +MessageId=37523 +Language=English +%1 +. +MessageId=37524 +Language=English +%1 +. +MessageId=37525 +Language=English +%1 +. +MessageId=37526 +Language=English +%1 +. +MessageId=37527 +Language=English +%1 +. +MessageId=37528 +Language=English +%1 +. +MessageId=37529 +Language=English +%1 +. +MessageId=37530 +Language=English +%1 +. +MessageId=37531 +Language=English +%1 +. +MessageId=37532 +Language=English +%1 +. +MessageId=37533 +Language=English +%1 +. +MessageId=37534 +Language=English +%1 +. +MessageId=37535 +Language=English +%1 +. +MessageId=37536 +Language=English +%1 +. +MessageId=37537 +Language=English +%1 +. +MessageId=37538 +Language=English +%1 +. +MessageId=37539 +Language=English +%1 +. +MessageId=37540 +Language=English +%1 +. +MessageId=37541 +Language=English +%1 +. +MessageId=37542 +Language=English +%1 +. +MessageId=37543 +Language=English +%1 +. +MessageId=37544 +Language=English +%1 +. +MessageId=37545 +Language=English +%1 +. +MessageId=37546 +Language=English +%1 +. +MessageId=37547 +Language=English +%1 +. +MessageId=37548 +Language=English +%1 +. +MessageId=37549 +Language=English +%1 +. +MessageId=37550 +Language=English +%1 +. +MessageId=37551 +Language=English +%1 +. +MessageId=37552 +Language=English +%1 +. +MessageId=37553 +Language=English +%1 +. +MessageId=37554 +Language=English +%1 +. +MessageId=37555 +Language=English +%1 +. +MessageId=37556 +Language=English +%1 +. +MessageId=37557 +Language=English +%1 +. +MessageId=37558 +Language=English +%1 +. +MessageId=37559 +Language=English +%1 +. +MessageId=37560 +Language=English +%1 +. +MessageId=37561 +Language=English +%1 +. +MessageId=37562 +Language=English +%1 +. +MessageId=37563 +Language=English +%1 +. +MessageId=37564 +Language=English +%1 +. +MessageId=37565 +Language=English +%1 +. +MessageId=37566 +Language=English +%1 +. +MessageId=37567 +Language=English +%1 +. +MessageId=37568 +Language=English +%1 +. +MessageId=37569 +Language=English +%1 +. +MessageId=37570 +Language=English +%1 +. +MessageId=37571 +Language=English +%1 +. +MessageId=37572 +Language=English +%1 +. +MessageId=37573 +Language=English +%1 +. +MessageId=37574 +Language=English +%1 +. +MessageId=37575 +Language=English +%1 +. +MessageId=37576 +Language=English +%1 +. +MessageId=37577 +Language=English +%1 +. +MessageId=37578 +Language=English +%1 +. +MessageId=37579 +Language=English +%1 +. +MessageId=37580 +Language=English +%1 +. +MessageId=37581 +Language=English +%1 +. +MessageId=37582 +Language=English +%1 +. +MessageId=37583 +Language=English +%1 +. +MessageId=37584 +Language=English +%1 +. +MessageId=37585 +Language=English +%1 +. +MessageId=37586 +Language=English +%1 +. +MessageId=37587 +Language=English +%1 +. +MessageId=37588 +Language=English +%1 +. +MessageId=37589 +Language=English +%1 +. +MessageId=37590 +Language=English +%1 +. +MessageId=37591 +Language=English +%1 +. +MessageId=37592 +Language=English +%1 +. +MessageId=37593 +Language=English +%1 +. +MessageId=37594 +Language=English +%1 +. +MessageId=37595 +Language=English +%1 +. +MessageId=37596 +Language=English +%1 +. +MessageId=37597 +Language=English +%1 +. +MessageId=37598 +Language=English +%1 +. +MessageId=37599 +Language=English +%1 +. +MessageId=37600 +Language=English +%1 +. +MessageId=37601 +Language=English +%1 +. +MessageId=37602 +Language=English +%1 +. +MessageId=37603 +Language=English +%1 +. +MessageId=37604 +Language=English +%1 +. +MessageId=37605 +Language=English +%1 +. +MessageId=37606 +Language=English +%1 +. +MessageId=37607 +Language=English +%1 +. +MessageId=37608 +Language=English +%1 +. +MessageId=37609 +Language=English +%1 +. +MessageId=37610 +Language=English +%1 +. +MessageId=37611 +Language=English +%1 +. +MessageId=37612 +Language=English +%1 +. +MessageId=37613 +Language=English +%1 +. +MessageId=37614 +Language=English +%1 +. +MessageId=37615 +Language=English +%1 +. +MessageId=37616 +Language=English +%1 +. +MessageId=37617 +Language=English +%1 +. +MessageId=37618 +Language=English +%1 +. +MessageId=37619 +Language=English +%1 +. +MessageId=37620 +Language=English +%1 +. +MessageId=37621 +Language=English +%1 +. +MessageId=37622 +Language=English +%1 +. +MessageId=37623 +Language=English +%1 +. +MessageId=37624 +Language=English +%1 +. +MessageId=37625 +Language=English +%1 +. +MessageId=37626 +Language=English +%1 +. +MessageId=37627 +Language=English +%1 +. +MessageId=37628 +Language=English +%1 +. +MessageId=37629 +Language=English +%1 +. +MessageId=37630 +Language=English +%1 +. +MessageId=37631 +Language=English +%1 +. +MessageId=37632 +Language=English +%1 +. +MessageId=37633 +Language=English +%1 +. +MessageId=37634 +Language=English +%1 +. +MessageId=37635 +Language=English +%1 +. +MessageId=37636 +Language=English +%1 +. +MessageId=37637 +Language=English +%1 +. +MessageId=37638 +Language=English +%1 +. +MessageId=37639 +Language=English +%1 +. +MessageId=37640 +Language=English +%1 +. +MessageId=37641 +Language=English +%1 +. +MessageId=37642 +Language=English +%1 +. +MessageId=37643 +Language=English +%1 +. +MessageId=37644 +Language=English +%1 +. +MessageId=37645 +Language=English +%1 +. +MessageId=37646 +Language=English +%1 +. +MessageId=37647 +Language=English +%1 +. +MessageId=37648 +Language=English +%1 +. +MessageId=37649 +Language=English +%1 +. +MessageId=37650 +Language=English +%1 +. +MessageId=37651 +Language=English +%1 +. +MessageId=37652 +Language=English +%1 +. +MessageId=37653 +Language=English +%1 +. +MessageId=37654 +Language=English +%1 +. +MessageId=37655 +Language=English +%1 +. +MessageId=37656 +Language=English +%1 +. +MessageId=37657 +Language=English +%1 +. +MessageId=37658 +Language=English +%1 +. +MessageId=37659 +Language=English +%1 +. +MessageId=37660 +Language=English +%1 +. +MessageId=37661 +Language=English +%1 +. +MessageId=37662 +Language=English +%1 +. +MessageId=37663 +Language=English +%1 +. +MessageId=37664 +Language=English +%1 +. +MessageId=37665 +Language=English +%1 +. +MessageId=37666 +Language=English +%1 +. +MessageId=37667 +Language=English +%1 +. +MessageId=37668 +Language=English +%1 +. +MessageId=37669 +Language=English +%1 +. +MessageId=37670 +Language=English +%1 +. +MessageId=37671 +Language=English +%1 +. +MessageId=37672 +Language=English +%1 +. +MessageId=37673 +Language=English +%1 +. +MessageId=37674 +Language=English +%1 +. +MessageId=37675 +Language=English +%1 +. +MessageId=37676 +Language=English +%1 +. +MessageId=37677 +Language=English +%1 +. +MessageId=37678 +Language=English +%1 +. +MessageId=37679 +Language=English +%1 +. +MessageId=37680 +Language=English +%1 +. +MessageId=37681 +Language=English +%1 +. +MessageId=37682 +Language=English +%1 +. +MessageId=37683 +Language=English +%1 +. +MessageId=37684 +Language=English +%1 +. +MessageId=37685 +Language=English +%1 +. +MessageId=37686 +Language=English +%1 +. +MessageId=37687 +Language=English +%1 +. +MessageId=37688 +Language=English +%1 +. +MessageId=37689 +Language=English +%1 +. +MessageId=37690 +Language=English +%1 +. +MessageId=37691 +Language=English +%1 +. +MessageId=37692 +Language=English +%1 +. +MessageId=37693 +Language=English +%1 +. +MessageId=37694 +Language=English +%1 +. +MessageId=37695 +Language=English +%1 +. +MessageId=37696 +Language=English +%1 +. +MessageId=37697 +Language=English +%1 +. +MessageId=37698 +Language=English +%1 +. +MessageId=37699 +Language=English +%1 +. +MessageId=37700 +Language=English +%1 +. +MessageId=37701 +Language=English +%1 +. +MessageId=37702 +Language=English +%1 +. +MessageId=37703 +Language=English +%1 +. +MessageId=37704 +Language=English +%1 +. +MessageId=37705 +Language=English +%1 +. +MessageId=37706 +Language=English +%1 +. +MessageId=37707 +Language=English +%1 +. +MessageId=37708 +Language=English +%1 +. +MessageId=37709 +Language=English +%1 +. +MessageId=37710 +Language=English +%1 +. +MessageId=37711 +Language=English +%1 +. +MessageId=37712 +Language=English +%1 +. +MessageId=37713 +Language=English +%1 +. +MessageId=37714 +Language=English +%1 +. +MessageId=37715 +Language=English +%1 +. +MessageId=37716 +Language=English +%1 +. +MessageId=37717 +Language=English +%1 +. +MessageId=37718 +Language=English +%1 +. +MessageId=37719 +Language=English +%1 +. +MessageId=37720 +Language=English +%1 +. +MessageId=37721 +Language=English +%1 +. +MessageId=37722 +Language=English +%1 +. +MessageId=37723 +Language=English +%1 +. +MessageId=37724 +Language=English +%1 +. +MessageId=37725 +Language=English +%1 +. +MessageId=37726 +Language=English +%1 +. +MessageId=37727 +Language=English +%1 +. +MessageId=37728 +Language=English +%1 +. +MessageId=37729 +Language=English +%1 +. +MessageId=37730 +Language=English +%1 +. +MessageId=37731 +Language=English +%1 +. +MessageId=37732 +Language=English +%1 +. +MessageId=37733 +Language=English +%1 +. +MessageId=37734 +Language=English +%1 +. +MessageId=37735 +Language=English +%1 +. +MessageId=37736 +Language=English +%1 +. +MessageId=37737 +Language=English +%1 +. +MessageId=37738 +Language=English +%1 +. +MessageId=37739 +Language=English +%1 +. +MessageId=37740 +Language=English +%1 +. +MessageId=37741 +Language=English +%1 +. +MessageId=37742 +Language=English +%1 +. +MessageId=37743 +Language=English +%1 +. +MessageId=37744 +Language=English +%1 +. +MessageId=37745 +Language=English +%1 +. +MessageId=37746 +Language=English +%1 +. +MessageId=37747 +Language=English +%1 +. +MessageId=37748 +Language=English +%1 +. +MessageId=37749 +Language=English +%1 +. +MessageId=37750 +Language=English +%1 +. +MessageId=37751 +Language=English +%1 +. +MessageId=37752 +Language=English +%1 +. +MessageId=37753 +Language=English +%1 +. +MessageId=37754 +Language=English +%1 +. +MessageId=37755 +Language=English +%1 +. +MessageId=37756 +Language=English +%1 +. +MessageId=37757 +Language=English +%1 +. +MessageId=37758 +Language=English +%1 +. +MessageId=37759 +Language=English +%1 +. +MessageId=37760 +Language=English +%1 +. +MessageId=37761 +Language=English +%1 +. +MessageId=37762 +Language=English +%1 +. +MessageId=37763 +Language=English +%1 +. +MessageId=37764 +Language=English +%1 +. +MessageId=37765 +Language=English +%1 +. +MessageId=37766 +Language=English +%1 +. +MessageId=37767 +Language=English +%1 +. +MessageId=37768 +Language=English +%1 +. +MessageId=37769 +Language=English +%1 +. +MessageId=37770 +Language=English +%1 +. +MessageId=37771 +Language=English +%1 +. +MessageId=37772 +Language=English +%1 +. +MessageId=37773 +Language=English +%1 +. +MessageId=37774 +Language=English +%1 +. +MessageId=37775 +Language=English +%1 +. +MessageId=37776 +Language=English +%1 +. +MessageId=37777 +Language=English +%1 +. +MessageId=37778 +Language=English +%1 +. +MessageId=37779 +Language=English +%1 +. +MessageId=37780 +Language=English +%1 +. +MessageId=37781 +Language=English +%1 +. +MessageId=37782 +Language=English +%1 +. +MessageId=37783 +Language=English +%1 +. +MessageId=37784 +Language=English +%1 +. +MessageId=37785 +Language=English +%1 +. +MessageId=37786 +Language=English +%1 +. +MessageId=37787 +Language=English +%1 +. +MessageId=37788 +Language=English +%1 +. +MessageId=37789 +Language=English +%1 +. +MessageId=37790 +Language=English +%1 +. +MessageId=37791 +Language=English +%1 +. +MessageId=37792 +Language=English +%1 +. +MessageId=37793 +Language=English +%1 +. +MessageId=37794 +Language=English +%1 +. +MessageId=37795 +Language=English +%1 +. +MessageId=37796 +Language=English +%1 +. +MessageId=37797 +Language=English +%1 +. +MessageId=37798 +Language=English +%1 +. +MessageId=37799 +Language=English +%1 +. +MessageId=37800 +Language=English +%1 +. +MessageId=37801 +Language=English +%1 +. +MessageId=37802 +Language=English +%1 +. +MessageId=37803 +Language=English +%1 +. +MessageId=37804 +Language=English +%1 +. +MessageId=37805 +Language=English +%1 +. +MessageId=37806 +Language=English +%1 +. +MessageId=37807 +Language=English +%1 +. +MessageId=37808 +Language=English +%1 +. +MessageId=37809 +Language=English +%1 +. +MessageId=37810 +Language=English +%1 +. +MessageId=37811 +Language=English +%1 +. +MessageId=37812 +Language=English +%1 +. +MessageId=37813 +Language=English +%1 +. +MessageId=37814 +Language=English +%1 +. +MessageId=37815 +Language=English +%1 +. +MessageId=37816 +Language=English +%1 +. +MessageId=37817 +Language=English +%1 +. +MessageId=37818 +Language=English +%1 +. +MessageId=37819 +Language=English +%1 +. +MessageId=37820 +Language=English +%1 +. +MessageId=37821 +Language=English +%1 +. +MessageId=37822 +Language=English +%1 +. +MessageId=37823 +Language=English +%1 +. +MessageId=37824 +Language=English +%1 +. +MessageId=37825 +Language=English +%1 +. +MessageId=37826 +Language=English +%1 +. +MessageId=37827 +Language=English +%1 +. +MessageId=37828 +Language=English +%1 +. +MessageId=37829 +Language=English +%1 +. +MessageId=37830 +Language=English +%1 +. +MessageId=37831 +Language=English +%1 +. +MessageId=37832 +Language=English +%1 +. +MessageId=37833 +Language=English +%1 +. +MessageId=37834 +Language=English +%1 +. +MessageId=37835 +Language=English +%1 +. +MessageId=37836 +Language=English +%1 +. +MessageId=37837 +Language=English +%1 +. +MessageId=37838 +Language=English +%1 +. +MessageId=37839 +Language=English +%1 +. +MessageId=37840 +Language=English +%1 +. +MessageId=37841 +Language=English +%1 +. +MessageId=37842 +Language=English +%1 +. +MessageId=37843 +Language=English +%1 +. +MessageId=37844 +Language=English +%1 +. +MessageId=37845 +Language=English +%1 +. +MessageId=37846 +Language=English +%1 +. +MessageId=37847 +Language=English +%1 +. +MessageId=37848 +Language=English +%1 +. +MessageId=37849 +Language=English +%1 +. +MessageId=37850 +Language=English +%1 +. +MessageId=37851 +Language=English +%1 +. +MessageId=37852 +Language=English +%1 +. +MessageId=37853 +Language=English +%1 +. +MessageId=37854 +Language=English +%1 +. +MessageId=37855 +Language=English +%1 +. +MessageId=37856 +Language=English +%1 +. +MessageId=37857 +Language=English +%1 +. +MessageId=37858 +Language=English +%1 +. +MessageId=37859 +Language=English +%1 +. +MessageId=37860 +Language=English +%1 +. +MessageId=37861 +Language=English +%1 +. +MessageId=37862 +Language=English +%1 +. +MessageId=37863 +Language=English +%1 +. +MessageId=37864 +Language=English +%1 +. +MessageId=37865 +Language=English +%1 +. +MessageId=37866 +Language=English +%1 +. +MessageId=37867 +Language=English +%1 +. +MessageId=37868 +Language=English +%1 +. +MessageId=37869 +Language=English +%1 +. +MessageId=37870 +Language=English +%1 +. +MessageId=37871 +Language=English +%1 +. +MessageId=37872 +Language=English +%1 +. +MessageId=37873 +Language=English +%1 +. +MessageId=37874 +Language=English +%1 +. +MessageId=37875 +Language=English +%1 +. +MessageId=37876 +Language=English +%1 +. +MessageId=37877 +Language=English +%1 +. +MessageId=37878 +Language=English +%1 +. +MessageId=37879 +Language=English +%1 +. +MessageId=37880 +Language=English +%1 +. +MessageId=37881 +Language=English +%1 +. +MessageId=37882 +Language=English +%1 +. +MessageId=37883 +Language=English +%1 +. +MessageId=37884 +Language=English +%1 +. +MessageId=37885 +Language=English +%1 +. +MessageId=37886 +Language=English +%1 +. +MessageId=37887 +Language=English +%1 +. +MessageId=37888 +Language=English +%1 +. +MessageId=37889 +Language=English +%1 +. +MessageId=37890 +Language=English +%1 +. +MessageId=37891 +Language=English +%1 +. +MessageId=37892 +Language=English +%1 +. +MessageId=37893 +Language=English +%1 +. +MessageId=37894 +Language=English +%1 +. +MessageId=37895 +Language=English +%1 +. +MessageId=37896 +Language=English +%1 +. +MessageId=37897 +Language=English +%1 +. +MessageId=37898 +Language=English +%1 +. +MessageId=37899 +Language=English +%1 +. +MessageId=37900 +Language=English +%1 +. +MessageId=37901 +Language=English +%1 +. +MessageId=37902 +Language=English +%1 +. +MessageId=37903 +Language=English +%1 +. +MessageId=37904 +Language=English +%1 +. +MessageId=37905 +Language=English +%1 +. +MessageId=37906 +Language=English +%1 +. +MessageId=37907 +Language=English +%1 +. +MessageId=37908 +Language=English +%1 +. +MessageId=37909 +Language=English +%1 +. +MessageId=37910 +Language=English +%1 +. +MessageId=37911 +Language=English +%1 +. +MessageId=37912 +Language=English +%1 +. +MessageId=37913 +Language=English +%1 +. +MessageId=37914 +Language=English +%1 +. +MessageId=37915 +Language=English +%1 +. +MessageId=37916 +Language=English +%1 +. +MessageId=37917 +Language=English +%1 +. +MessageId=37918 +Language=English +%1 +. +MessageId=37919 +Language=English +%1 +. +MessageId=37920 +Language=English +%1 +. +MessageId=37921 +Language=English +%1 +. +MessageId=37922 +Language=English +%1 +. +MessageId=37923 +Language=English +%1 +. +MessageId=37924 +Language=English +%1 +. +MessageId=37925 +Language=English +%1 +. +MessageId=37926 +Language=English +%1 +. +MessageId=37927 +Language=English +%1 +. +MessageId=37928 +Language=English +%1 +. +MessageId=37929 +Language=English +%1 +. +MessageId=37930 +Language=English +%1 +. +MessageId=37931 +Language=English +%1 +. +MessageId=37932 +Language=English +%1 +. +MessageId=37933 +Language=English +%1 +. +MessageId=37934 +Language=English +%1 +. +MessageId=37935 +Language=English +%1 +. +MessageId=37936 +Language=English +%1 +. +MessageId=37937 +Language=English +%1 +. +MessageId=37938 +Language=English +%1 +. +MessageId=37939 +Language=English +%1 +. +MessageId=37940 +Language=English +%1 +. +MessageId=37941 +Language=English +%1 +. +MessageId=37942 +Language=English +%1 +. +MessageId=37943 +Language=English +%1 +. +MessageId=37944 +Language=English +%1 +. +MessageId=37945 +Language=English +%1 +. +MessageId=37946 +Language=English +%1 +. +MessageId=37947 +Language=English +%1 +. +MessageId=37948 +Language=English +%1 +. +MessageId=37949 +Language=English +%1 +. +MessageId=37950 +Language=English +%1 +. +MessageId=37951 +Language=English +%1 +. +MessageId=37952 +Language=English +%1 +. +MessageId=37953 +Language=English +%1 +. +MessageId=37954 +Language=English +%1 +. +MessageId=37955 +Language=English +%1 +. +MessageId=37956 +Language=English +%1 +. +MessageId=37957 +Language=English +%1 +. +MessageId=37958 +Language=English +%1 +. +MessageId=37959 +Language=English +%1 +. +MessageId=37960 +Language=English +%1 +. +MessageId=37961 +Language=English +%1 +. +MessageId=37962 +Language=English +%1 +. +MessageId=37963 +Language=English +%1 +. +MessageId=37964 +Language=English +%1 +. +MessageId=37965 +Language=English +%1 +. +MessageId=37966 +Language=English +%1 +. +MessageId=37967 +Language=English +%1 +. +MessageId=37968 +Language=English +%1 +. +MessageId=37969 +Language=English +%1 +. +MessageId=37970 +Language=English +%1 +. +MessageId=37971 +Language=English +%1 +. +MessageId=37972 +Language=English +%1 +. +MessageId=37973 +Language=English +%1 +. +MessageId=37974 +Language=English +%1 +. +MessageId=37975 +Language=English +%1 +. +MessageId=37976 +Language=English +%1 +. +MessageId=37977 +Language=English +%1 +. +MessageId=37978 +Language=English +%1 +. +MessageId=37979 +Language=English +%1 +. +MessageId=37980 +Language=English +%1 +. +MessageId=37981 +Language=English +%1 +. +MessageId=37982 +Language=English +%1 +. +MessageId=37983 +Language=English +%1 +. +MessageId=37984 +Language=English +%1 +. +MessageId=37985 +Language=English +%1 +. +MessageId=37986 +Language=English +%1 +. +MessageId=37987 +Language=English +%1 +. +MessageId=37988 +Language=English +%1 +. +MessageId=37989 +Language=English +%1 +. +MessageId=37990 +Language=English +%1 +. +MessageId=37991 +Language=English +%1 +. +MessageId=37992 +Language=English +%1 +. +MessageId=37993 +Language=English +%1 +. +MessageId=37994 +Language=English +%1 +. +MessageId=37995 +Language=English +%1 +. +MessageId=37996 +Language=English +%1 +. +MessageId=37997 +Language=English +%1 +. +MessageId=37998 +Language=English +%1 +. +MessageId=37999 +Language=English +%1 +. +MessageId=38000 +Language=English +%1 +. +MessageId=38001 +Language=English +%1 +. +MessageId=38002 +Language=English +%1 +. +MessageId=38003 +Language=English +%1 +. +MessageId=38004 +Language=English +%1 +. +MessageId=38005 +Language=English +%1 +. +MessageId=38006 +Language=English +%1 +. +MessageId=38007 +Language=English +%1 +. +MessageId=38008 +Language=English +%1 +. +MessageId=38009 +Language=English +%1 +. +MessageId=38010 +Language=English +%1 +. +MessageId=38011 +Language=English +%1 +. +MessageId=38012 +Language=English +%1 +. +MessageId=38013 +Language=English +%1 +. +MessageId=38014 +Language=English +%1 +. +MessageId=38015 +Language=English +%1 +. +MessageId=38016 +Language=English +%1 +. +MessageId=38017 +Language=English +%1 +. +MessageId=38018 +Language=English +%1 +. +MessageId=38019 +Language=English +%1 +. +MessageId=38020 +Language=English +%1 +. +MessageId=38021 +Language=English +%1 +. +MessageId=38022 +Language=English +%1 +. +MessageId=38023 +Language=English +%1 +. +MessageId=38024 +Language=English +%1 +. +MessageId=38025 +Language=English +%1 +. +MessageId=38026 +Language=English +%1 +. +MessageId=38027 +Language=English +%1 +. +MessageId=38028 +Language=English +%1 +. +MessageId=38029 +Language=English +%1 +. +MessageId=38030 +Language=English +%1 +. +MessageId=38031 +Language=English +%1 +. +MessageId=38032 +Language=English +%1 +. +MessageId=38033 +Language=English +%1 +. +MessageId=38034 +Language=English +%1 +. +MessageId=38035 +Language=English +%1 +. +MessageId=38036 +Language=English +%1 +. +MessageId=38037 +Language=English +%1 +. +MessageId=38038 +Language=English +%1 +. +MessageId=38039 +Language=English +%1 +. +MessageId=38040 +Language=English +%1 +. +MessageId=38041 +Language=English +%1 +. +MessageId=38042 +Language=English +%1 +. +MessageId=38043 +Language=English +%1 +. +MessageId=38044 +Language=English +%1 +. +MessageId=38045 +Language=English +%1 +. +MessageId=38046 +Language=English +%1 +. +MessageId=38047 +Language=English +%1 +. +MessageId=38048 +Language=English +%1 +. +MessageId=38049 +Language=English +%1 +. +MessageId=38050 +Language=English +%1 +. +MessageId=38051 +Language=English +%1 +. +MessageId=38052 +Language=English +%1 +. +MessageId=38053 +Language=English +%1 +. +MessageId=38054 +Language=English +%1 +. +MessageId=38055 +Language=English +%1 +. +MessageId=38056 +Language=English +%1 +. +MessageId=38057 +Language=English +%1 +. +MessageId=38058 +Language=English +%1 +. +MessageId=38059 +Language=English +%1 +. +MessageId=38060 +Language=English +%1 +. +MessageId=38061 +Language=English +%1 +. +MessageId=38062 +Language=English +%1 +. +MessageId=38063 +Language=English +%1 +. +MessageId=38064 +Language=English +%1 +. +MessageId=38065 +Language=English +%1 +. +MessageId=38066 +Language=English +%1 +. +MessageId=38067 +Language=English +%1 +. +MessageId=38068 +Language=English +%1 +. +MessageId=38069 +Language=English +%1 +. +MessageId=38070 +Language=English +%1 +. +MessageId=38071 +Language=English +%1 +. +MessageId=38072 +Language=English +%1 +. +MessageId=38073 +Language=English +%1 +. +MessageId=38074 +Language=English +%1 +. +MessageId=38075 +Language=English +%1 +. +MessageId=38076 +Language=English +%1 +. +MessageId=38077 +Language=English +%1 +. +MessageId=38078 +Language=English +%1 +. +MessageId=38079 +Language=English +%1 +. +MessageId=38080 +Language=English +%1 +. +MessageId=38081 +Language=English +%1 +. +MessageId=38082 +Language=English +%1 +. +MessageId=38083 +Language=English +%1 +. +MessageId=38084 +Language=English +%1 +. +MessageId=38085 +Language=English +%1 +. +MessageId=38086 +Language=English +%1 +. +MessageId=38087 +Language=English +%1 +. +MessageId=38088 +Language=English +%1 +. +MessageId=38089 +Language=English +%1 +. +MessageId=38090 +Language=English +%1 +. +MessageId=38091 +Language=English +%1 +. +MessageId=38092 +Language=English +%1 +. +MessageId=38093 +Language=English +%1 +. +MessageId=38094 +Language=English +%1 +. +MessageId=38095 +Language=English +%1 +. +MessageId=38096 +Language=English +%1 +. +MessageId=38097 +Language=English +%1 +. +MessageId=38098 +Language=English +%1 +. +MessageId=38099 +Language=English +%1 +. +MessageId=38100 +Language=English +%1 +. +MessageId=38101 +Language=English +%1 +. +MessageId=38102 +Language=English +%1 +. +MessageId=38103 +Language=English +%1 +. +MessageId=38104 +Language=English +%1 +. +MessageId=38105 +Language=English +%1 +. +MessageId=38106 +Language=English +%1 +. +MessageId=38107 +Language=English +%1 +. +MessageId=38108 +Language=English +%1 +. +MessageId=38109 +Language=English +%1 +. +MessageId=38110 +Language=English +%1 +. +MessageId=38111 +Language=English +%1 +. +MessageId=38112 +Language=English +%1 +. +MessageId=38113 +Language=English +%1 +. +MessageId=38114 +Language=English +%1 +. +MessageId=38115 +Language=English +%1 +. +MessageId=38116 +Language=English +%1 +. +MessageId=38117 +Language=English +%1 +. +MessageId=38118 +Language=English +%1 +. +MessageId=38119 +Language=English +%1 +. +MessageId=38120 +Language=English +%1 +. +MessageId=38121 +Language=English +%1 +. +MessageId=38122 +Language=English +%1 +. +MessageId=38123 +Language=English +%1 +. +MessageId=38124 +Language=English +%1 +. +MessageId=38125 +Language=English +%1 +. +MessageId=38126 +Language=English +%1 +. +MessageId=38127 +Language=English +%1 +. +MessageId=38128 +Language=English +%1 +. +MessageId=38129 +Language=English +%1 +. +MessageId=38130 +Language=English +%1 +. +MessageId=38131 +Language=English +%1 +. +MessageId=38132 +Language=English +%1 +. +MessageId=38133 +Language=English +%1 +. +MessageId=38134 +Language=English +%1 +. +MessageId=38135 +Language=English +%1 +. +MessageId=38136 +Language=English +%1 +. +MessageId=38137 +Language=English +%1 +. +MessageId=38138 +Language=English +%1 +. +MessageId=38139 +Language=English +%1 +. +MessageId=38140 +Language=English +%1 +. +MessageId=38141 +Language=English +%1 +. +MessageId=38142 +Language=English +%1 +. +MessageId=38143 +Language=English +%1 +. +MessageId=38144 +Language=English +%1 +. +MessageId=38145 +Language=English +%1 +. +MessageId=38146 +Language=English +%1 +. +MessageId=38147 +Language=English +%1 +. +MessageId=38148 +Language=English +%1 +. +MessageId=38149 +Language=English +%1 +. +MessageId=38150 +Language=English +%1 +. +MessageId=38151 +Language=English +%1 +. +MessageId=38152 +Language=English +%1 +. +MessageId=38153 +Language=English +%1 +. +MessageId=38154 +Language=English +%1 +. +MessageId=38155 +Language=English +%1 +. +MessageId=38156 +Language=English +%1 +. +MessageId=38157 +Language=English +%1 +. +MessageId=38158 +Language=English +%1 +. +MessageId=38159 +Language=English +%1 +. +MessageId=38160 +Language=English +%1 +. +MessageId=38161 +Language=English +%1 +. +MessageId=38162 +Language=English +%1 +. +MessageId=38163 +Language=English +%1 +. +MessageId=38164 +Language=English +%1 +. +MessageId=38165 +Language=English +%1 +. +MessageId=38166 +Language=English +%1 +. +MessageId=38167 +Language=English +%1 +. +MessageId=38168 +Language=English +%1 +. +MessageId=38169 +Language=English +%1 +. +MessageId=38170 +Language=English +%1 +. +MessageId=38171 +Language=English +%1 +. +MessageId=38172 +Language=English +%1 +. +MessageId=38173 +Language=English +%1 +. +MessageId=38174 +Language=English +%1 +. +MessageId=38175 +Language=English +%1 +. +MessageId=38176 +Language=English +%1 +. +MessageId=38177 +Language=English +%1 +. +MessageId=38178 +Language=English +%1 +. +MessageId=38179 +Language=English +%1 +. +MessageId=38180 +Language=English +%1 +. +MessageId=38181 +Language=English +%1 +. +MessageId=38182 +Language=English +%1 +. +MessageId=38183 +Language=English +%1 +. +MessageId=38184 +Language=English +%1 +. +MessageId=38185 +Language=English +%1 +. +MessageId=38186 +Language=English +%1 +. +MessageId=38187 +Language=English +%1 +. +MessageId=38188 +Language=English +%1 +. +MessageId=38189 +Language=English +%1 +. +MessageId=38190 +Language=English +%1 +. +MessageId=38191 +Language=English +%1 +. +MessageId=38192 +Language=English +%1 +. +MessageId=38193 +Language=English +%1 +. +MessageId=38194 +Language=English +%1 +. +MessageId=38195 +Language=English +%1 +. +MessageId=38196 +Language=English +%1 +. +MessageId=38197 +Language=English +%1 +. +MessageId=38198 +Language=English +%1 +. +MessageId=38199 +Language=English +%1 +. +MessageId=38200 +Language=English +%1 +. +MessageId=38201 +Language=English +%1 +. +MessageId=38202 +Language=English +%1 +. +MessageId=38203 +Language=English +%1 +. +MessageId=38204 +Language=English +%1 +. +MessageId=38205 +Language=English +%1 +. +MessageId=38206 +Language=English +%1 +. +MessageId=38207 +Language=English +%1 +. +MessageId=38208 +Language=English +%1 +. +MessageId=38209 +Language=English +%1 +. +MessageId=38210 +Language=English +%1 +. +MessageId=38211 +Language=English +%1 +. +MessageId=38212 +Language=English +%1 +. +MessageId=38213 +Language=English +%1 +. +MessageId=38214 +Language=English +%1 +. +MessageId=38215 +Language=English +%1 +. +MessageId=38216 +Language=English +%1 +. +MessageId=38217 +Language=English +%1 +. +MessageId=38218 +Language=English +%1 +. +MessageId=38219 +Language=English +%1 +. +MessageId=38220 +Language=English +%1 +. +MessageId=38221 +Language=English +%1 +. +MessageId=38222 +Language=English +%1 +. +MessageId=38223 +Language=English +%1 +. +MessageId=38224 +Language=English +%1 +. +MessageId=38225 +Language=English +%1 +. +MessageId=38226 +Language=English +%1 +. +MessageId=38227 +Language=English +%1 +. +MessageId=38228 +Language=English +%1 +. +MessageId=38229 +Language=English +%1 +. +MessageId=38230 +Language=English +%1 +. +MessageId=38231 +Language=English +%1 +. +MessageId=38232 +Language=English +%1 +. +MessageId=38233 +Language=English +%1 +. +MessageId=38234 +Language=English +%1 +. +MessageId=38235 +Language=English +%1 +. +MessageId=38236 +Language=English +%1 +. +MessageId=38237 +Language=English +%1 +. +MessageId=38238 +Language=English +%1 +. +MessageId=38239 +Language=English +%1 +. +MessageId=38240 +Language=English +%1 +. +MessageId=38241 +Language=English +%1 +. +MessageId=38242 +Language=English +%1 +. +MessageId=38243 +Language=English +%1 +. +MessageId=38244 +Language=English +%1 +. +MessageId=38245 +Language=English +%1 +. +MessageId=38246 +Language=English +%1 +. +MessageId=38247 +Language=English +%1 +. +MessageId=38248 +Language=English +%1 +. +MessageId=38249 +Language=English +%1 +. +MessageId=38250 +Language=English +%1 +. +MessageId=38251 +Language=English +%1 +. +MessageId=38252 +Language=English +%1 +. +MessageId=38253 +Language=English +%1 +. +MessageId=38254 +Language=English +%1 +. +MessageId=38255 +Language=English +%1 +. +MessageId=38256 +Language=English +%1 +. +MessageId=38257 +Language=English +%1 +. +MessageId=38258 +Language=English +%1 +. +MessageId=38259 +Language=English +%1 +. +MessageId=38260 +Language=English +%1 +. +MessageId=38261 +Language=English +%1 +. +MessageId=38262 +Language=English +%1 +. +MessageId=38263 +Language=English +%1 +. +MessageId=38264 +Language=English +%1 +. +MessageId=38265 +Language=English +%1 +. +MessageId=38266 +Language=English +%1 +. +MessageId=38267 +Language=English +%1 +. +MessageId=38268 +Language=English +%1 +. +MessageId=38269 +Language=English +%1 +. +MessageId=38270 +Language=English +%1 +. +MessageId=38271 +Language=English +%1 +. +MessageId=38272 +Language=English +%1 +. +MessageId=38273 +Language=English +%1 +. +MessageId=38274 +Language=English +%1 +. +MessageId=38275 +Language=English +%1 +. +MessageId=38276 +Language=English +%1 +. +MessageId=38277 +Language=English +%1 +. +MessageId=38278 +Language=English +%1 +. +MessageId=38279 +Language=English +%1 +. +MessageId=38280 +Language=English +%1 +. +MessageId=38281 +Language=English +%1 +. +MessageId=38282 +Language=English +%1 +. +MessageId=38283 +Language=English +%1 +. +MessageId=38284 +Language=English +%1 +. +MessageId=38285 +Language=English +%1 +. +MessageId=38286 +Language=English +%1 +. +MessageId=38287 +Language=English +%1 +. +MessageId=38288 +Language=English +%1 +. +MessageId=38289 +Language=English +%1 +. +MessageId=38290 +Language=English +%1 +. +MessageId=38291 +Language=English +%1 +. +MessageId=38292 +Language=English +%1 +. +MessageId=38293 +Language=English +%1 +. +MessageId=38294 +Language=English +%1 +. +MessageId=38295 +Language=English +%1 +. +MessageId=38296 +Language=English +%1 +. +MessageId=38297 +Language=English +%1 +. +MessageId=38298 +Language=English +%1 +. +MessageId=38299 +Language=English +%1 +. +MessageId=38300 +Language=English +%1 +. +MessageId=38301 +Language=English +%1 +. +MessageId=38302 +Language=English +%1 +. +MessageId=38303 +Language=English +%1 +. +MessageId=38304 +Language=English +%1 +. +MessageId=38305 +Language=English +%1 +. +MessageId=38306 +Language=English +%1 +. +MessageId=38307 +Language=English +%1 +. +MessageId=38308 +Language=English +%1 +. +MessageId=38309 +Language=English +%1 +. +MessageId=38310 +Language=English +%1 +. +MessageId=38311 +Language=English +%1 +. +MessageId=38312 +Language=English +%1 +. +MessageId=38313 +Language=English +%1 +. +MessageId=38314 +Language=English +%1 +. +MessageId=38315 +Language=English +%1 +. +MessageId=38316 +Language=English +%1 +. +MessageId=38317 +Language=English +%1 +. +MessageId=38318 +Language=English +%1 +. +MessageId=38319 +Language=English +%1 +. +MessageId=38320 +Language=English +%1 +. +MessageId=38321 +Language=English +%1 +. +MessageId=38322 +Language=English +%1 +. +MessageId=38323 +Language=English +%1 +. +MessageId=38324 +Language=English +%1 +. +MessageId=38325 +Language=English +%1 +. +MessageId=38326 +Language=English +%1 +. +MessageId=38327 +Language=English +%1 +. +MessageId=38328 +Language=English +%1 +. +MessageId=38329 +Language=English +%1 +. +MessageId=38330 +Language=English +%1 +. +MessageId=38331 +Language=English +%1 +. +MessageId=38332 +Language=English +%1 +. +MessageId=38333 +Language=English +%1 +. +MessageId=38334 +Language=English +%1 +. +MessageId=38335 +Language=English +%1 +. +MessageId=38336 +Language=English +%1 +. +MessageId=38337 +Language=English +%1 +. +MessageId=38338 +Language=English +%1 +. +MessageId=38339 +Language=English +%1 +. +MessageId=38340 +Language=English +%1 +. +MessageId=38341 +Language=English +%1 +. +MessageId=38342 +Language=English +%1 +. +MessageId=38343 +Language=English +%1 +. +MessageId=38344 +Language=English +%1 +. +MessageId=38345 +Language=English +%1 +. +MessageId=38346 +Language=English +%1 +. +MessageId=38347 +Language=English +%1 +. +MessageId=38348 +Language=English +%1 +. +MessageId=38349 +Language=English +%1 +. +MessageId=38350 +Language=English +%1 +. +MessageId=38351 +Language=English +%1 +. +MessageId=38352 +Language=English +%1 +. +MessageId=38353 +Language=English +%1 +. +MessageId=38354 +Language=English +%1 +. +MessageId=38355 +Language=English +%1 +. +MessageId=38356 +Language=English +%1 +. +MessageId=38357 +Language=English +%1 +. +MessageId=38358 +Language=English +%1 +. +MessageId=38359 +Language=English +%1 +. +MessageId=38360 +Language=English +%1 +. +MessageId=38361 +Language=English +%1 +. +MessageId=38362 +Language=English +%1 +. +MessageId=38363 +Language=English +%1 +. +MessageId=38364 +Language=English +%1 +. +MessageId=38365 +Language=English +%1 +. +MessageId=38366 +Language=English +%1 +. +MessageId=38367 +Language=English +%1 +. +MessageId=38368 +Language=English +%1 +. +MessageId=38369 +Language=English +%1 +. +MessageId=38370 +Language=English +%1 +. +MessageId=38371 +Language=English +%1 +. +MessageId=38372 +Language=English +%1 +. +MessageId=38373 +Language=English +%1 +. +MessageId=38374 +Language=English +%1 +. +MessageId=38375 +Language=English +%1 +. +MessageId=38376 +Language=English +%1 +. +MessageId=38377 +Language=English +%1 +. +MessageId=38378 +Language=English +%1 +. +MessageId=38379 +Language=English +%1 +. +MessageId=38380 +Language=English +%1 +. +MessageId=38381 +Language=English +%1 +. +MessageId=38382 +Language=English +%1 +. +MessageId=38383 +Language=English +%1 +. +MessageId=38384 +Language=English +%1 +. +MessageId=38385 +Language=English +%1 +. +MessageId=38386 +Language=English +%1 +. +MessageId=38387 +Language=English +%1 +. +MessageId=38388 +Language=English +%1 +. +MessageId=38389 +Language=English +%1 +. +MessageId=38390 +Language=English +%1 +. +MessageId=38391 +Language=English +%1 +. +MessageId=38392 +Language=English +%1 +. +MessageId=38393 +Language=English +%1 +. +MessageId=38394 +Language=English +%1 +. +MessageId=38395 +Language=English +%1 +. +MessageId=38396 +Language=English +%1 +. +MessageId=38397 +Language=English +%1 +. +MessageId=38398 +Language=English +%1 +. +MessageId=38399 +Language=English +%1 +. +MessageId=38400 +Language=English +%1 +. +MessageId=38401 +Language=English +%1 +. +MessageId=38402 +Language=English +%1 +. +MessageId=38403 +Language=English +%1 +. +MessageId=38404 +Language=English +%1 +. +MessageId=38405 +Language=English +%1 +. +MessageId=38406 +Language=English +%1 +. +MessageId=38407 +Language=English +%1 +. +MessageId=38408 +Language=English +%1 +. +MessageId=38409 +Language=English +%1 +. +MessageId=38410 +Language=English +%1 +. +MessageId=38411 +Language=English +%1 +. +MessageId=38412 +Language=English +%1 +. +MessageId=38413 +Language=English +%1 +. +MessageId=38414 +Language=English +%1 +. +MessageId=38415 +Language=English +%1 +. +MessageId=38416 +Language=English +%1 +. +MessageId=38417 +Language=English +%1 +. +MessageId=38418 +Language=English +%1 +. +MessageId=38419 +Language=English +%1 +. +MessageId=38420 +Language=English +%1 +. +MessageId=38421 +Language=English +%1 +. +MessageId=38422 +Language=English +%1 +. +MessageId=38423 +Language=English +%1 +. +MessageId=38424 +Language=English +%1 +. +MessageId=38425 +Language=English +%1 +. +MessageId=38426 +Language=English +%1 +. +MessageId=38427 +Language=English +%1 +. +MessageId=38428 +Language=English +%1 +. +MessageId=38429 +Language=English +%1 +. +MessageId=38430 +Language=English +%1 +. +MessageId=38431 +Language=English +%1 +. +MessageId=38432 +Language=English +%1 +. +MessageId=38433 +Language=English +%1 +. +MessageId=38434 +Language=English +%1 +. +MessageId=38435 +Language=English +%1 +. +MessageId=38436 +Language=English +%1 +. +MessageId=38437 +Language=English +%1 +. +MessageId=38438 +Language=English +%1 +. +MessageId=38439 +Language=English +%1 +. +MessageId=38440 +Language=English +%1 +. +MessageId=38441 +Language=English +%1 +. +MessageId=38442 +Language=English +%1 +. +MessageId=38443 +Language=English +%1 +. +MessageId=38444 +Language=English +%1 +. +MessageId=38445 +Language=English +%1 +. +MessageId=38446 +Language=English +%1 +. +MessageId=38447 +Language=English +%1 +. +MessageId=38448 +Language=English +%1 +. +MessageId=38449 +Language=English +%1 +. +MessageId=38450 +Language=English +%1 +. +MessageId=38451 +Language=English +%1 +. +MessageId=38452 +Language=English +%1 +. +MessageId=38453 +Language=English +%1 +. +MessageId=38454 +Language=English +%1 +. +MessageId=38455 +Language=English +%1 +. +MessageId=38456 +Language=English +%1 +. +MessageId=38457 +Language=English +%1 +. +MessageId=38458 +Language=English +%1 +. +MessageId=38459 +Language=English +%1 +. +MessageId=38460 +Language=English +%1 +. +MessageId=38461 +Language=English +%1 +. +MessageId=38462 +Language=English +%1 +. +MessageId=38463 +Language=English +%1 +. +MessageId=38464 +Language=English +%1 +. +MessageId=38465 +Language=English +%1 +. +MessageId=38466 +Language=English +%1 +. +MessageId=38467 +Language=English +%1 +. +MessageId=38468 +Language=English +%1 +. +MessageId=38469 +Language=English +%1 +. +MessageId=38470 +Language=English +%1 +. +MessageId=38471 +Language=English +%1 +. +MessageId=38472 +Language=English +%1 +. +MessageId=38473 +Language=English +%1 +. +MessageId=38474 +Language=English +%1 +. +MessageId=38475 +Language=English +%1 +. +MessageId=38476 +Language=English +%1 +. +MessageId=38477 +Language=English +%1 +. +MessageId=38478 +Language=English +%1 +. +MessageId=38479 +Language=English +%1 +. +MessageId=38480 +Language=English +%1 +. +MessageId=38481 +Language=English +%1 +. +MessageId=38482 +Language=English +%1 +. +MessageId=38483 +Language=English +%1 +. +MessageId=38484 +Language=English +%1 +. +MessageId=38485 +Language=English +%1 +. +MessageId=38486 +Language=English +%1 +. +MessageId=38487 +Language=English +%1 +. +MessageId=38488 +Language=English +%1 +. +MessageId=38489 +Language=English +%1 +. +MessageId=38490 +Language=English +%1 +. +MessageId=38491 +Language=English +%1 +. +MessageId=38492 +Language=English +%1 +. +MessageId=38493 +Language=English +%1 +. +MessageId=38494 +Language=English +%1 +. +MessageId=38495 +Language=English +%1 +. +MessageId=38496 +Language=English +%1 +. +MessageId=38497 +Language=English +%1 +. +MessageId=38498 +Language=English +%1 +. +MessageId=38499 +Language=English +%1 +. +MessageId=38500 +Language=English +%1 +. +MessageId=38501 +Language=English +%1 +. +MessageId=38502 +Language=English +%1 +. +MessageId=38503 +Language=English +%1 +. +MessageId=38504 +Language=English +%1 +. +MessageId=38505 +Language=English +%1 +. +MessageId=38506 +Language=English +%1 +. +MessageId=38507 +Language=English +%1 +. +MessageId=38508 +Language=English +%1 +. +MessageId=38509 +Language=English +%1 +. +MessageId=38510 +Language=English +%1 +. +MessageId=38511 +Language=English +%1 +. +MessageId=38512 +Language=English +%1 +. +MessageId=38513 +Language=English +%1 +. +MessageId=38514 +Language=English +%1 +. +MessageId=38515 +Language=English +%1 +. +MessageId=38516 +Language=English +%1 +. +MessageId=38517 +Language=English +%1 +. +MessageId=38518 +Language=English +%1 +. +MessageId=38519 +Language=English +%1 +. +MessageId=38520 +Language=English +%1 +. +MessageId=38521 +Language=English +%1 +. +MessageId=38522 +Language=English +%1 +. +MessageId=38523 +Language=English +%1 +. +MessageId=38524 +Language=English +%1 +. +MessageId=38525 +Language=English +%1 +. +MessageId=38526 +Language=English +%1 +. +MessageId=38527 +Language=English +%1 +. +MessageId=38528 +Language=English +%1 +. +MessageId=38529 +Language=English +%1 +. +MessageId=38530 +Language=English +%1 +. +MessageId=38531 +Language=English +%1 +. +MessageId=38532 +Language=English +%1 +. +MessageId=38533 +Language=English +%1 +. +MessageId=38534 +Language=English +%1 +. +MessageId=38535 +Language=English +%1 +. +MessageId=38536 +Language=English +%1 +. +MessageId=38537 +Language=English +%1 +. +MessageId=38538 +Language=English +%1 +. +MessageId=38539 +Language=English +%1 +. +MessageId=38540 +Language=English +%1 +. +MessageId=38541 +Language=English +%1 +. +MessageId=38542 +Language=English +%1 +. +MessageId=38543 +Language=English +%1 +. +MessageId=38544 +Language=English +%1 +. +MessageId=38545 +Language=English +%1 +. +MessageId=38546 +Language=English +%1 +. +MessageId=38547 +Language=English +%1 +. +MessageId=38548 +Language=English +%1 +. +MessageId=38549 +Language=English +%1 +. +MessageId=38550 +Language=English +%1 +. +MessageId=38551 +Language=English +%1 +. +MessageId=38552 +Language=English +%1 +. +MessageId=38553 +Language=English +%1 +. +MessageId=38554 +Language=English +%1 +. +MessageId=38555 +Language=English +%1 +. +MessageId=38556 +Language=English +%1 +. +MessageId=38557 +Language=English +%1 +. +MessageId=38558 +Language=English +%1 +. +MessageId=38559 +Language=English +%1 +. +MessageId=38560 +Language=English +%1 +. +MessageId=38561 +Language=English +%1 +. +MessageId=38562 +Language=English +%1 +. +MessageId=38563 +Language=English +%1 +. +MessageId=38564 +Language=English +%1 +. +MessageId=38565 +Language=English +%1 +. +MessageId=38566 +Language=English +%1 +. +MessageId=38567 +Language=English +%1 +. +MessageId=38568 +Language=English +%1 +. +MessageId=38569 +Language=English +%1 +. +MessageId=38570 +Language=English +%1 +. +MessageId=38571 +Language=English +%1 +. +MessageId=38572 +Language=English +%1 +. +MessageId=38573 +Language=English +%1 +. +MessageId=38574 +Language=English +%1 +. +MessageId=38575 +Language=English +%1 +. +MessageId=38576 +Language=English +%1 +. +MessageId=38577 +Language=English +%1 +. +MessageId=38578 +Language=English +%1 +. +MessageId=38579 +Language=English +%1 +. +MessageId=38580 +Language=English +%1 +. +MessageId=38581 +Language=English +%1 +. +MessageId=38582 +Language=English +%1 +. +MessageId=38583 +Language=English +%1 +. +MessageId=38584 +Language=English +%1 +. +MessageId=38585 +Language=English +%1 +. +MessageId=38586 +Language=English +%1 +. +MessageId=38587 +Language=English +%1 +. +MessageId=38588 +Language=English +%1 +. +MessageId=38589 +Language=English +%1 +. +MessageId=38590 +Language=English +%1 +. +MessageId=38591 +Language=English +%1 +. +MessageId=38592 +Language=English +%1 +. +MessageId=38593 +Language=English +%1 +. +MessageId=38594 +Language=English +%1 +. +MessageId=38595 +Language=English +%1 +. +MessageId=38596 +Language=English +%1 +. +MessageId=38597 +Language=English +%1 +. +MessageId=38598 +Language=English +%1 +. +MessageId=38599 +Language=English +%1 +. +MessageId=38600 +Language=English +%1 +. +MessageId=38601 +Language=English +%1 +. +MessageId=38602 +Language=English +%1 +. +MessageId=38603 +Language=English +%1 +. +MessageId=38604 +Language=English +%1 +. +MessageId=38605 +Language=English +%1 +. +MessageId=38606 +Language=English +%1 +. +MessageId=38607 +Language=English +%1 +. +MessageId=38608 +Language=English +%1 +. +MessageId=38609 +Language=English +%1 +. +MessageId=38610 +Language=English +%1 +. +MessageId=38611 +Language=English +%1 +. +MessageId=38612 +Language=English +%1 +. +MessageId=38613 +Language=English +%1 +. +MessageId=38614 +Language=English +%1 +. +MessageId=38615 +Language=English +%1 +. +MessageId=38616 +Language=English +%1 +. +MessageId=38617 +Language=English +%1 +. +MessageId=38618 +Language=English +%1 +. +MessageId=38619 +Language=English +%1 +. +MessageId=38620 +Language=English +%1 +. +MessageId=38621 +Language=English +%1 +. +MessageId=38622 +Language=English +%1 +. +MessageId=38623 +Language=English +%1 +. +MessageId=38624 +Language=English +%1 +. +MessageId=38625 +Language=English +%1 +. +MessageId=38626 +Language=English +%1 +. +MessageId=38627 +Language=English +%1 +. +MessageId=38628 +Language=English +%1 +. +MessageId=38629 +Language=English +%1 +. +MessageId=38630 +Language=English +%1 +. +MessageId=38631 +Language=English +%1 +. +MessageId=38632 +Language=English +%1 +. +MessageId=38633 +Language=English +%1 +. +MessageId=38634 +Language=English +%1 +. +MessageId=38635 +Language=English +%1 +. +MessageId=38636 +Language=English +%1 +. +MessageId=38637 +Language=English +%1 +. +MessageId=38638 +Language=English +%1 +. +MessageId=38639 +Language=English +%1 +. +MessageId=38640 +Language=English +%1 +. +MessageId=38641 +Language=English +%1 +. +MessageId=38642 +Language=English +%1 +. +MessageId=38643 +Language=English +%1 +. +MessageId=38644 +Language=English +%1 +. +MessageId=38645 +Language=English +%1 +. +MessageId=38646 +Language=English +%1 +. +MessageId=38647 +Language=English +%1 +. +MessageId=38648 +Language=English +%1 +. +MessageId=38649 +Language=English +%1 +. +MessageId=38650 +Language=English +%1 +. +MessageId=38651 +Language=English +%1 +. +MessageId=38652 +Language=English +%1 +. +MessageId=38653 +Language=English +%1 +. +MessageId=38654 +Language=English +%1 +. +MessageId=38655 +Language=English +%1 +. +MessageId=38656 +Language=English +%1 +. +MessageId=38657 +Language=English +%1 +. +MessageId=38658 +Language=English +%1 +. +MessageId=38659 +Language=English +%1 +. +MessageId=38660 +Language=English +%1 +. +MessageId=38661 +Language=English +%1 +. +MessageId=38662 +Language=English +%1 +. +MessageId=38663 +Language=English +%1 +. +MessageId=38664 +Language=English +%1 +. +MessageId=38665 +Language=English +%1 +. +MessageId=38666 +Language=English +%1 +. +MessageId=38667 +Language=English +%1 +. +MessageId=38668 +Language=English +%1 +. +MessageId=38669 +Language=English +%1 +. +MessageId=38670 +Language=English +%1 +. +MessageId=38671 +Language=English +%1 +. +MessageId=38672 +Language=English +%1 +. +MessageId=38673 +Language=English +%1 +. +MessageId=38674 +Language=English +%1 +. +MessageId=38675 +Language=English +%1 +. +MessageId=38676 +Language=English +%1 +. +MessageId=38677 +Language=English +%1 +. +MessageId=38678 +Language=English +%1 +. +MessageId=38679 +Language=English +%1 +. +MessageId=38680 +Language=English +%1 +. +MessageId=38681 +Language=English +%1 +. +MessageId=38682 +Language=English +%1 +. +MessageId=38683 +Language=English +%1 +. +MessageId=38684 +Language=English +%1 +. +MessageId=38685 +Language=English +%1 +. +MessageId=38686 +Language=English +%1 +. +MessageId=38687 +Language=English +%1 +. +MessageId=38688 +Language=English +%1 +. +MessageId=38689 +Language=English +%1 +. +MessageId=38690 +Language=English +%1 +. +MessageId=38691 +Language=English +%1 +. +MessageId=38692 +Language=English +%1 +. +MessageId=38693 +Language=English +%1 +. +MessageId=38694 +Language=English +%1 +. +MessageId=38695 +Language=English +%1 +. +MessageId=38696 +Language=English +%1 +. +MessageId=38697 +Language=English +%1 +. +MessageId=38698 +Language=English +%1 +. +MessageId=38699 +Language=English +%1 +. +MessageId=38700 +Language=English +%1 +. +MessageId=38701 +Language=English +%1 +. +MessageId=38702 +Language=English +%1 +. +MessageId=38703 +Language=English +%1 +. +MessageId=38704 +Language=English +%1 +. +MessageId=38705 +Language=English +%1 +. +MessageId=38706 +Language=English +%1 +. +MessageId=38707 +Language=English +%1 +. +MessageId=38708 +Language=English +%1 +. +MessageId=38709 +Language=English +%1 +. +MessageId=38710 +Language=English +%1 +. +MessageId=38711 +Language=English +%1 +. +MessageId=38712 +Language=English +%1 +. +MessageId=38713 +Language=English +%1 +. +MessageId=38714 +Language=English +%1 +. +MessageId=38715 +Language=English +%1 +. +MessageId=38716 +Language=English +%1 +. +MessageId=38717 +Language=English +%1 +. +MessageId=38718 +Language=English +%1 +. +MessageId=38719 +Language=English +%1 +. +MessageId=38720 +Language=English +%1 +. +MessageId=38721 +Language=English +%1 +. +MessageId=38722 +Language=English +%1 +. +MessageId=38723 +Language=English +%1 +. +MessageId=38724 +Language=English +%1 +. +MessageId=38725 +Language=English +%1 +. +MessageId=38726 +Language=English +%1 +. +MessageId=38727 +Language=English +%1 +. +MessageId=38728 +Language=English +%1 +. +MessageId=38729 +Language=English +%1 +. +MessageId=38730 +Language=English +%1 +. +MessageId=38731 +Language=English +%1 +. +MessageId=38732 +Language=English +%1 +. +MessageId=38733 +Language=English +%1 +. +MessageId=38734 +Language=English +%1 +. +MessageId=38735 +Language=English +%1 +. +MessageId=38736 +Language=English +%1 +. +MessageId=38737 +Language=English +%1 +. +MessageId=38738 +Language=English +%1 +. +MessageId=38739 +Language=English +%1 +. +MessageId=38740 +Language=English +%1 +. +MessageId=38741 +Language=English +%1 +. +MessageId=38742 +Language=English +%1 +. +MessageId=38743 +Language=English +%1 +. +MessageId=38744 +Language=English +%1 +. +MessageId=38745 +Language=English +%1 +. +MessageId=38746 +Language=English +%1 +. +MessageId=38747 +Language=English +%1 +. +MessageId=38748 +Language=English +%1 +. +MessageId=38749 +Language=English +%1 +. +MessageId=38750 +Language=English +%1 +. +MessageId=38751 +Language=English +%1 +. +MessageId=38752 +Language=English +%1 +. +MessageId=38753 +Language=English +%1 +. +MessageId=38754 +Language=English +%1 +. +MessageId=38755 +Language=English +%1 +. +MessageId=38756 +Language=English +%1 +. +MessageId=38757 +Language=English +%1 +. +MessageId=38758 +Language=English +%1 +. +MessageId=38759 +Language=English +%1 +. +MessageId=38760 +Language=English +%1 +. +MessageId=38761 +Language=English +%1 +. +MessageId=38762 +Language=English +%1 +. +MessageId=38763 +Language=English +%1 +. +MessageId=38764 +Language=English +%1 +. +MessageId=38765 +Language=English +%1 +. +MessageId=38766 +Language=English +%1 +. +MessageId=38767 +Language=English +%1 +. +MessageId=38768 +Language=English +%1 +. +MessageId=38769 +Language=English +%1 +. +MessageId=38770 +Language=English +%1 +. +MessageId=38771 +Language=English +%1 +. +MessageId=38772 +Language=English +%1 +. +MessageId=38773 +Language=English +%1 +. +MessageId=38774 +Language=English +%1 +. +MessageId=38775 +Language=English +%1 +. +MessageId=38776 +Language=English +%1 +. +MessageId=38777 +Language=English +%1 +. +MessageId=38778 +Language=English +%1 +. +MessageId=38779 +Language=English +%1 +. +MessageId=38780 +Language=English +%1 +. +MessageId=38781 +Language=English +%1 +. +MessageId=38782 +Language=English +%1 +. +MessageId=38783 +Language=English +%1 +. +MessageId=38784 +Language=English +%1 +. +MessageId=38785 +Language=English +%1 +. +MessageId=38786 +Language=English +%1 +. +MessageId=38787 +Language=English +%1 +. +MessageId=38788 +Language=English +%1 +. +MessageId=38789 +Language=English +%1 +. +MessageId=38790 +Language=English +%1 +. +MessageId=38791 +Language=English +%1 +. +MessageId=38792 +Language=English +%1 +. +MessageId=38793 +Language=English +%1 +. +MessageId=38794 +Language=English +%1 +. +MessageId=38795 +Language=English +%1 +. +MessageId=38796 +Language=English +%1 +. +MessageId=38797 +Language=English +%1 +. +MessageId=38798 +Language=English +%1 +. +MessageId=38799 +Language=English +%1 +. +MessageId=38800 +Language=English +%1 +. +MessageId=38801 +Language=English +%1 +. +MessageId=38802 +Language=English +%1 +. +MessageId=38803 +Language=English +%1 +. +MessageId=38804 +Language=English +%1 +. +MessageId=38805 +Language=English +%1 +. +MessageId=38806 +Language=English +%1 +. +MessageId=38807 +Language=English +%1 +. +MessageId=38808 +Language=English +%1 +. +MessageId=38809 +Language=English +%1 +. +MessageId=38810 +Language=English +%1 +. +MessageId=38811 +Language=English +%1 +. +MessageId=38812 +Language=English +%1 +. +MessageId=38813 +Language=English +%1 +. +MessageId=38814 +Language=English +%1 +. +MessageId=38815 +Language=English +%1 +. +MessageId=38816 +Language=English +%1 +. +MessageId=38817 +Language=English +%1 +. +MessageId=38818 +Language=English +%1 +. +MessageId=38819 +Language=English +%1 +. +MessageId=38820 +Language=English +%1 +. +MessageId=38821 +Language=English +%1 +. +MessageId=38822 +Language=English +%1 +. +MessageId=38823 +Language=English +%1 +. +MessageId=38824 +Language=English +%1 +. +MessageId=38825 +Language=English +%1 +. +MessageId=38826 +Language=English +%1 +. +MessageId=38827 +Language=English +%1 +. +MessageId=38828 +Language=English +%1 +. +MessageId=38829 +Language=English +%1 +. +MessageId=38830 +Language=English +%1 +. +MessageId=38831 +Language=English +%1 +. +MessageId=38832 +Language=English +%1 +. +MessageId=38833 +Language=English +%1 +. +MessageId=38834 +Language=English +%1 +. +MessageId=38835 +Language=English +%1 +. +MessageId=38836 +Language=English +%1 +. +MessageId=38837 +Language=English +%1 +. +MessageId=38838 +Language=English +%1 +. +MessageId=38839 +Language=English +%1 +. +MessageId=38840 +Language=English +%1 +. +MessageId=38841 +Language=English +%1 +. +MessageId=38842 +Language=English +%1 +. +MessageId=38843 +Language=English +%1 +. +MessageId=38844 +Language=English +%1 +. +MessageId=38845 +Language=English +%1 +. +MessageId=38846 +Language=English +%1 +. +MessageId=38847 +Language=English +%1 +. +MessageId=38848 +Language=English +%1 +. +MessageId=38849 +Language=English +%1 +. +MessageId=38850 +Language=English +%1 +. +MessageId=38851 +Language=English +%1 +. +MessageId=38852 +Language=English +%1 +. +MessageId=38853 +Language=English +%1 +. +MessageId=38854 +Language=English +%1 +. +MessageId=38855 +Language=English +%1 +. +MessageId=38856 +Language=English +%1 +. +MessageId=38857 +Language=English +%1 +. +MessageId=38858 +Language=English +%1 +. +MessageId=38859 +Language=English +%1 +. +MessageId=38860 +Language=English +%1 +. +MessageId=38861 +Language=English +%1 +. +MessageId=38862 +Language=English +%1 +. +MessageId=38863 +Language=English +%1 +. +MessageId=38864 +Language=English +%1 +. +MessageId=38865 +Language=English +%1 +. +MessageId=38866 +Language=English +%1 +. +MessageId=38867 +Language=English +%1 +. +MessageId=38868 +Language=English +%1 +. +MessageId=38869 +Language=English +%1 +. +MessageId=38870 +Language=English +%1 +. +MessageId=38871 +Language=English +%1 +. +MessageId=38872 +Language=English +%1 +. +MessageId=38873 +Language=English +%1 +. +MessageId=38874 +Language=English +%1 +. +MessageId=38875 +Language=English +%1 +. +MessageId=38876 +Language=English +%1 +. +MessageId=38877 +Language=English +%1 +. +MessageId=38878 +Language=English +%1 +. +MessageId=38879 +Language=English +%1 +. +MessageId=38880 +Language=English +%1 +. +MessageId=38881 +Language=English +%1 +. +MessageId=38882 +Language=English +%1 +. +MessageId=38883 +Language=English +%1 +. +MessageId=38884 +Language=English +%1 +. +MessageId=38885 +Language=English +%1 +. +MessageId=38886 +Language=English +%1 +. +MessageId=38887 +Language=English +%1 +. +MessageId=38888 +Language=English +%1 +. +MessageId=38889 +Language=English +%1 +. +MessageId=38890 +Language=English +%1 +. +MessageId=38891 +Language=English +%1 +. +MessageId=38892 +Language=English +%1 +. +MessageId=38893 +Language=English +%1 +. +MessageId=38894 +Language=English +%1 +. +MessageId=38895 +Language=English +%1 +. +MessageId=38896 +Language=English +%1 +. +MessageId=38897 +Language=English +%1 +. +MessageId=38898 +Language=English +%1 +. +MessageId=38899 +Language=English +%1 +. +MessageId=38900 +Language=English +%1 +. +MessageId=38901 +Language=English +%1 +. +MessageId=38902 +Language=English +%1 +. +MessageId=38903 +Language=English +%1 +. +MessageId=38904 +Language=English +%1 +. +MessageId=38905 +Language=English +%1 +. +MessageId=38906 +Language=English +%1 +. +MessageId=38907 +Language=English +%1 +. +MessageId=38908 +Language=English +%1 +. +MessageId=38909 +Language=English +%1 +. +MessageId=38910 +Language=English +%1 +. +MessageId=38911 +Language=English +%1 +. +MessageId=38912 +Language=English +%1 +. +MessageId=38913 +Language=English +%1 +. +MessageId=38914 +Language=English +%1 +. +MessageId=38915 +Language=English +%1 +. +MessageId=38916 +Language=English +%1 +. +MessageId=38917 +Language=English +%1 +. +MessageId=38918 +Language=English +%1 +. +MessageId=38919 +Language=English +%1 +. +MessageId=38920 +Language=English +%1 +. +MessageId=38921 +Language=English +%1 +. +MessageId=38922 +Language=English +%1 +. +MessageId=38923 +Language=English +%1 +. +MessageId=38924 +Language=English +%1 +. +MessageId=38925 +Language=English +%1 +. +MessageId=38926 +Language=English +%1 +. +MessageId=38927 +Language=English +%1 +. +MessageId=38928 +Language=English +%1 +. +MessageId=38929 +Language=English +%1 +. +MessageId=38930 +Language=English +%1 +. +MessageId=38931 +Language=English +%1 +. +MessageId=38932 +Language=English +%1 +. +MessageId=38933 +Language=English +%1 +. +MessageId=38934 +Language=English +%1 +. +MessageId=38935 +Language=English +%1 +. +MessageId=38936 +Language=English +%1 +. +MessageId=38937 +Language=English +%1 +. +MessageId=38938 +Language=English +%1 +. +MessageId=38939 +Language=English +%1 +. +MessageId=38940 +Language=English +%1 +. +MessageId=38941 +Language=English +%1 +. +MessageId=38942 +Language=English +%1 +. +MessageId=38943 +Language=English +%1 +. +MessageId=38944 +Language=English +%1 +. +MessageId=38945 +Language=English +%1 +. +MessageId=38946 +Language=English +%1 +. +MessageId=38947 +Language=English +%1 +. +MessageId=38948 +Language=English +%1 +. +MessageId=38949 +Language=English +%1 +. +MessageId=38950 +Language=English +%1 +. +MessageId=38951 +Language=English +%1 +. +MessageId=38952 +Language=English +%1 +. +MessageId=38953 +Language=English +%1 +. +MessageId=38954 +Language=English +%1 +. +MessageId=38955 +Language=English +%1 +. +MessageId=38956 +Language=English +%1 +. +MessageId=38957 +Language=English +%1 +. +MessageId=38958 +Language=English +%1 +. +MessageId=38959 +Language=English +%1 +. +MessageId=38960 +Language=English +%1 +. +MessageId=38961 +Language=English +%1 +. +MessageId=38962 +Language=English +%1 +. +MessageId=38963 +Language=English +%1 +. +MessageId=38964 +Language=English +%1 +. +MessageId=38965 +Language=English +%1 +. +MessageId=38966 +Language=English +%1 +. +MessageId=38967 +Language=English +%1 +. +MessageId=38968 +Language=English +%1 +. +MessageId=38969 +Language=English +%1 +. +MessageId=38970 +Language=English +%1 +. +MessageId=38971 +Language=English +%1 +. +MessageId=38972 +Language=English +%1 +. +MessageId=38973 +Language=English +%1 +. +MessageId=38974 +Language=English +%1 +. +MessageId=38975 +Language=English +%1 +. +MessageId=38976 +Language=English +%1 +. +MessageId=38977 +Language=English +%1 +. +MessageId=38978 +Language=English +%1 +. +MessageId=38979 +Language=English +%1 +. +MessageId=38980 +Language=English +%1 +. +MessageId=38981 +Language=English +%1 +. +MessageId=38982 +Language=English +%1 +. +MessageId=38983 +Language=English +%1 +. +MessageId=38984 +Language=English +%1 +. +MessageId=38985 +Language=English +%1 +. +MessageId=38986 +Language=English +%1 +. +MessageId=38987 +Language=English +%1 +. +MessageId=38988 +Language=English +%1 +. +MessageId=38989 +Language=English +%1 +. +MessageId=38990 +Language=English +%1 +. +MessageId=38991 +Language=English +%1 +. +MessageId=38992 +Language=English +%1 +. +MessageId=38993 +Language=English +%1 +. +MessageId=38994 +Language=English +%1 +. +MessageId=38995 +Language=English +%1 +. +MessageId=38996 +Language=English +%1 +. +MessageId=38997 +Language=English +%1 +. +MessageId=38998 +Language=English +%1 +. +MessageId=38999 +Language=English +%1 +. +MessageId=39000 +Language=English +%1 +. +MessageId=39001 +Language=English +%1 +. +MessageId=39002 +Language=English +%1 +. +MessageId=39003 +Language=English +%1 +. +MessageId=39004 +Language=English +%1 +. +MessageId=39005 +Language=English +%1 +. +MessageId=39006 +Language=English +%1 +. +MessageId=39007 +Language=English +%1 +. +MessageId=39008 +Language=English +%1 +. +MessageId=39009 +Language=English +%1 +. +MessageId=39010 +Language=English +%1 +. +MessageId=39011 +Language=English +%1 +. +MessageId=39012 +Language=English +%1 +. +MessageId=39013 +Language=English +%1 +. +MessageId=39014 +Language=English +%1 +. +MessageId=39015 +Language=English +%1 +. +MessageId=39016 +Language=English +%1 +. +MessageId=39017 +Language=English +%1 +. +MessageId=39018 +Language=English +%1 +. +MessageId=39019 +Language=English +%1 +. +MessageId=39020 +Language=English +%1 +. +MessageId=39021 +Language=English +%1 +. +MessageId=39022 +Language=English +%1 +. +MessageId=39023 +Language=English +%1 +. +MessageId=39024 +Language=English +%1 +. +MessageId=39025 +Language=English +%1 +. +MessageId=39026 +Language=English +%1 +. +MessageId=39027 +Language=English +%1 +. +MessageId=39028 +Language=English +%1 +. +MessageId=39029 +Language=English +%1 +. +MessageId=39030 +Language=English +%1 +. +MessageId=39031 +Language=English +%1 +. +MessageId=39032 +Language=English +%1 +. +MessageId=39033 +Language=English +%1 +. +MessageId=39034 +Language=English +%1 +. +MessageId=39035 +Language=English +%1 +. +MessageId=39036 +Language=English +%1 +. +MessageId=39037 +Language=English +%1 +. +MessageId=39038 +Language=English +%1 +. +MessageId=39039 +Language=English +%1 +. +MessageId=39040 +Language=English +%1 +. +MessageId=39041 +Language=English +%1 +. +MessageId=39042 +Language=English +%1 +. +MessageId=39043 +Language=English +%1 +. +MessageId=39044 +Language=English +%1 +. +MessageId=39045 +Language=English +%1 +. +MessageId=39046 +Language=English +%1 +. +MessageId=39047 +Language=English +%1 +. +MessageId=39048 +Language=English +%1 +. +MessageId=39049 +Language=English +%1 +. +MessageId=39050 +Language=English +%1 +. +MessageId=39051 +Language=English +%1 +. +MessageId=39052 +Language=English +%1 +. +MessageId=39053 +Language=English +%1 +. +MessageId=39054 +Language=English +%1 +. +MessageId=39055 +Language=English +%1 +. +MessageId=39056 +Language=English +%1 +. +MessageId=39057 +Language=English +%1 +. +MessageId=39058 +Language=English +%1 +. +MessageId=39059 +Language=English +%1 +. +MessageId=39060 +Language=English +%1 +. +MessageId=39061 +Language=English +%1 +. +MessageId=39062 +Language=English +%1 +. +MessageId=39063 +Language=English +%1 +. +MessageId=39064 +Language=English +%1 +. +MessageId=39065 +Language=English +%1 +. +MessageId=39066 +Language=English +%1 +. +MessageId=39067 +Language=English +%1 +. +MessageId=39068 +Language=English +%1 +. +MessageId=39069 +Language=English +%1 +. +MessageId=39070 +Language=English +%1 +. +MessageId=39071 +Language=English +%1 +. +MessageId=39072 +Language=English +%1 +. +MessageId=39073 +Language=English +%1 +. +MessageId=39074 +Language=English +%1 +. +MessageId=39075 +Language=English +%1 +. +MessageId=39076 +Language=English +%1 +. +MessageId=39077 +Language=English +%1 +. +MessageId=39078 +Language=English +%1 +. +MessageId=39079 +Language=English +%1 +. +MessageId=39080 +Language=English +%1 +. +MessageId=39081 +Language=English +%1 +. +MessageId=39082 +Language=English +%1 +. +MessageId=39083 +Language=English +%1 +. +MessageId=39084 +Language=English +%1 +. +MessageId=39085 +Language=English +%1 +. +MessageId=39086 +Language=English +%1 +. +MessageId=39087 +Language=English +%1 +. +MessageId=39088 +Language=English +%1 +. +MessageId=39089 +Language=English +%1 +. +MessageId=39090 +Language=English +%1 +. +MessageId=39091 +Language=English +%1 +. +MessageId=39092 +Language=English +%1 +. +MessageId=39093 +Language=English +%1 +. +MessageId=39094 +Language=English +%1 +. +MessageId=39095 +Language=English +%1 +. +MessageId=39096 +Language=English +%1 +. +MessageId=39097 +Language=English +%1 +. +MessageId=39098 +Language=English +%1 +. +MessageId=39099 +Language=English +%1 +. +MessageId=39100 +Language=English +%1 +. +MessageId=39101 +Language=English +%1 +. +MessageId=39102 +Language=English +%1 +. +MessageId=39103 +Language=English +%1 +. +MessageId=39104 +Language=English +%1 +. +MessageId=39105 +Language=English +%1 +. +MessageId=39106 +Language=English +%1 +. +MessageId=39107 +Language=English +%1 +. +MessageId=39108 +Language=English +%1 +. +MessageId=39109 +Language=English +%1 +. +MessageId=39110 +Language=English +%1 +. +MessageId=39111 +Language=English +%1 +. +MessageId=39112 +Language=English +%1 +. +MessageId=39113 +Language=English +%1 +. +MessageId=39114 +Language=English +%1 +. +MessageId=39115 +Language=English +%1 +. +MessageId=39116 +Language=English +%1 +. +MessageId=39117 +Language=English +%1 +. +MessageId=39118 +Language=English +%1 +. +MessageId=39119 +Language=English +%1 +. +MessageId=39120 +Language=English +%1 +. +MessageId=39121 +Language=English +%1 +. +MessageId=39122 +Language=English +%1 +. +MessageId=39123 +Language=English +%1 +. +MessageId=39124 +Language=English +%1 +. +MessageId=39125 +Language=English +%1 +. +MessageId=39126 +Language=English +%1 +. +MessageId=39127 +Language=English +%1 +. +MessageId=39128 +Language=English +%1 +. +MessageId=39129 +Language=English +%1 +. +MessageId=39130 +Language=English +%1 +. +MessageId=39131 +Language=English +%1 +. +MessageId=39132 +Language=English +%1 +. +MessageId=39133 +Language=English +%1 +. +MessageId=39134 +Language=English +%1 +. +MessageId=39135 +Language=English +%1 +. +MessageId=39136 +Language=English +%1 +. +MessageId=39137 +Language=English +%1 +. +MessageId=39138 +Language=English +%1 +. +MessageId=39139 +Language=English +%1 +. +MessageId=39140 +Language=English +%1 +. +MessageId=39141 +Language=English +%1 +. +MessageId=39142 +Language=English +%1 +. +MessageId=39143 +Language=English +%1 +. +MessageId=39144 +Language=English +%1 +. +MessageId=39145 +Language=English +%1 +. +MessageId=39146 +Language=English +%1 +. +MessageId=39147 +Language=English +%1 +. +MessageId=39148 +Language=English +%1 +. +MessageId=39149 +Language=English +%1 +. +MessageId=39150 +Language=English +%1 +. +MessageId=39151 +Language=English +%1 +. +MessageId=39152 +Language=English +%1 +. +MessageId=39153 +Language=English +%1 +. +MessageId=39154 +Language=English +%1 +. +MessageId=39155 +Language=English +%1 +. +MessageId=39156 +Language=English +%1 +. +MessageId=39157 +Language=English +%1 +. +MessageId=39158 +Language=English +%1 +. +MessageId=39159 +Language=English +%1 +. +MessageId=39160 +Language=English +%1 +. +MessageId=39161 +Language=English +%1 +. +MessageId=39162 +Language=English +%1 +. +MessageId=39163 +Language=English +%1 +. +MessageId=39164 +Language=English +%1 +. +MessageId=39165 +Language=English +%1 +. +MessageId=39166 +Language=English +%1 +. +MessageId=39167 +Language=English +%1 +. +MessageId=39168 +Language=English +%1 +. +MessageId=39169 +Language=English +%1 +. +MessageId=39170 +Language=English +%1 +. +MessageId=39171 +Language=English +%1 +. +MessageId=39172 +Language=English +%1 +. +MessageId=39173 +Language=English +%1 +. +MessageId=39174 +Language=English +%1 +. +MessageId=39175 +Language=English +%1 +. +MessageId=39176 +Language=English +%1 +. +MessageId=39177 +Language=English +%1 +. +MessageId=39178 +Language=English +%1 +. +MessageId=39179 +Language=English +%1 +. +MessageId=39180 +Language=English +%1 +. +MessageId=39181 +Language=English +%1 +. +MessageId=39182 +Language=English +%1 +. +MessageId=39183 +Language=English +%1 +. +MessageId=39184 +Language=English +%1 +. +MessageId=39185 +Language=English +%1 +. +MessageId=39186 +Language=English +%1 +. +MessageId=39187 +Language=English +%1 +. +MessageId=39188 +Language=English +%1 +. +MessageId=39189 +Language=English +%1 +. +MessageId=39190 +Language=English +%1 +. +MessageId=39191 +Language=English +%1 +. +MessageId=39192 +Language=English +%1 +. +MessageId=39193 +Language=English +%1 +. +MessageId=39194 +Language=English +%1 +. +MessageId=39195 +Language=English +%1 +. +MessageId=39196 +Language=English +%1 +. +MessageId=39197 +Language=English +%1 +. +MessageId=39198 +Language=English +%1 +. +MessageId=39199 +Language=English +%1 +. +MessageId=39200 +Language=English +%1 +. +MessageId=39201 +Language=English +%1 +. +MessageId=39202 +Language=English +%1 +. +MessageId=39203 +Language=English +%1 +. +MessageId=39204 +Language=English +%1 +. +MessageId=39205 +Language=English +%1 +. +MessageId=39206 +Language=English +%1 +. +MessageId=39207 +Language=English +%1 +. +MessageId=39208 +Language=English +%1 +. +MessageId=39209 +Language=English +%1 +. +MessageId=39210 +Language=English +%1 +. +MessageId=39211 +Language=English +%1 +. +MessageId=39212 +Language=English +%1 +. +MessageId=39213 +Language=English +%1 +. +MessageId=39214 +Language=English +%1 +. +MessageId=39215 +Language=English +%1 +. +MessageId=39216 +Language=English +%1 +. +MessageId=39217 +Language=English +%1 +. +MessageId=39218 +Language=English +%1 +. +MessageId=39219 +Language=English +%1 +. +MessageId=39220 +Language=English +%1 +. +MessageId=39221 +Language=English +%1 +. +MessageId=39222 +Language=English +%1 +. +MessageId=39223 +Language=English +%1 +. +MessageId=39224 +Language=English +%1 +. +MessageId=39225 +Language=English +%1 +. +MessageId=39226 +Language=English +%1 +. +MessageId=39227 +Language=English +%1 +. +MessageId=39228 +Language=English +%1 +. +MessageId=39229 +Language=English +%1 +. +MessageId=39230 +Language=English +%1 +. +MessageId=39231 +Language=English +%1 +. +MessageId=39232 +Language=English +%1 +. +MessageId=39233 +Language=English +%1 +. +MessageId=39234 +Language=English +%1 +. +MessageId=39235 +Language=English +%1 +. +MessageId=39236 +Language=English +%1 +. +MessageId=39237 +Language=English +%1 +. +MessageId=39238 +Language=English +%1 +. +MessageId=39239 +Language=English +%1 +. +MessageId=39240 +Language=English +%1 +. +MessageId=39241 +Language=English +%1 +. +MessageId=39242 +Language=English +%1 +. +MessageId=39243 +Language=English +%1 +. +MessageId=39244 +Language=English +%1 +. +MessageId=39245 +Language=English +%1 +. +MessageId=39246 +Language=English +%1 +. +MessageId=39247 +Language=English +%1 +. +MessageId=39248 +Language=English +%1 +. +MessageId=39249 +Language=English +%1 +. +MessageId=39250 +Language=English +%1 +. +MessageId=39251 +Language=English +%1 +. +MessageId=39252 +Language=English +%1 +. +MessageId=39253 +Language=English +%1 +. +MessageId=39254 +Language=English +%1 +. +MessageId=39255 +Language=English +%1 +. +MessageId=39256 +Language=English +%1 +. +MessageId=39257 +Language=English +%1 +. +MessageId=39258 +Language=English +%1 +. +MessageId=39259 +Language=English +%1 +. +MessageId=39260 +Language=English +%1 +. +MessageId=39261 +Language=English +%1 +. +MessageId=39262 +Language=English +%1 +. +MessageId=39263 +Language=English +%1 +. +MessageId=39264 +Language=English +%1 +. +MessageId=39265 +Language=English +%1 +. +MessageId=39266 +Language=English +%1 +. +MessageId=39267 +Language=English +%1 +. +MessageId=39268 +Language=English +%1 +. +MessageId=39269 +Language=English +%1 +. +MessageId=39270 +Language=English +%1 +. +MessageId=39271 +Language=English +%1 +. +MessageId=39272 +Language=English +%1 +. +MessageId=39273 +Language=English +%1 +. +MessageId=39274 +Language=English +%1 +. +MessageId=39275 +Language=English +%1 +. +MessageId=39276 +Language=English +%1 +. +MessageId=39277 +Language=English +%1 +. +MessageId=39278 +Language=English +%1 +. +MessageId=39279 +Language=English +%1 +. +MessageId=39280 +Language=English +%1 +. +MessageId=39281 +Language=English +%1 +. +MessageId=39282 +Language=English +%1 +. +MessageId=39283 +Language=English +%1 +. +MessageId=39284 +Language=English +%1 +. +MessageId=39285 +Language=English +%1 +. +MessageId=39286 +Language=English +%1 +. +MessageId=39287 +Language=English +%1 +. +MessageId=39288 +Language=English +%1 +. +MessageId=39289 +Language=English +%1 +. +MessageId=39290 +Language=English +%1 +. +MessageId=39291 +Language=English +%1 +. +MessageId=39292 +Language=English +%1 +. +MessageId=39293 +Language=English +%1 +. +MessageId=39294 +Language=English +%1 +. +MessageId=39295 +Language=English +%1 +. +MessageId=39296 +Language=English +%1 +. +MessageId=39297 +Language=English +%1 +. +MessageId=39298 +Language=English +%1 +. +MessageId=39299 +Language=English +%1 +. +MessageId=39300 +Language=English +%1 +. +MessageId=39301 +Language=English +%1 +. +MessageId=39302 +Language=English +%1 +. +MessageId=39303 +Language=English +%1 +. +MessageId=39304 +Language=English +%1 +. +MessageId=39305 +Language=English +%1 +. +MessageId=39306 +Language=English +%1 +. +MessageId=39307 +Language=English +%1 +. +MessageId=39308 +Language=English +%1 +. +MessageId=39309 +Language=English +%1 +. +MessageId=39310 +Language=English +%1 +. +MessageId=39311 +Language=English +%1 +. +MessageId=39312 +Language=English +%1 +. +MessageId=39313 +Language=English +%1 +. +MessageId=39314 +Language=English +%1 +. +MessageId=39315 +Language=English +%1 +. +MessageId=39316 +Language=English +%1 +. +MessageId=39317 +Language=English +%1 +. +MessageId=39318 +Language=English +%1 +. +MessageId=39319 +Language=English +%1 +. +MessageId=39320 +Language=English +%1 +. +MessageId=39321 +Language=English +%1 +. +MessageId=39322 +Language=English +%1 +. +MessageId=39323 +Language=English +%1 +. +MessageId=39324 +Language=English +%1 +. +MessageId=39325 +Language=English +%1 +. +MessageId=39326 +Language=English +%1 +. +MessageId=39327 +Language=English +%1 +. +MessageId=39328 +Language=English +%1 +. +MessageId=39329 +Language=English +%1 +. +MessageId=39330 +Language=English +%1 +. +MessageId=39331 +Language=English +%1 +. +MessageId=39332 +Language=English +%1 +. +MessageId=39333 +Language=English +%1 +. +MessageId=39334 +Language=English +%1 +. +MessageId=39335 +Language=English +%1 +. +MessageId=39336 +Language=English +%1 +. +MessageId=39337 +Language=English +%1 +. +MessageId=39338 +Language=English +%1 +. +MessageId=39339 +Language=English +%1 +. +MessageId=39340 +Language=English +%1 +. +MessageId=39341 +Language=English +%1 +. +MessageId=39342 +Language=English +%1 +. +MessageId=39343 +Language=English +%1 +. +MessageId=39344 +Language=English +%1 +. +MessageId=39345 +Language=English +%1 +. +MessageId=39346 +Language=English +%1 +. +MessageId=39347 +Language=English +%1 +. +MessageId=39348 +Language=English +%1 +. +MessageId=39349 +Language=English +%1 +. +MessageId=39350 +Language=English +%1 +. +MessageId=39351 +Language=English +%1 +. +MessageId=39352 +Language=English +%1 +. +MessageId=39353 +Language=English +%1 +. +MessageId=39354 +Language=English +%1 +. +MessageId=39355 +Language=English +%1 +. +MessageId=39356 +Language=English +%1 +. +MessageId=39357 +Language=English +%1 +. +MessageId=39358 +Language=English +%1 +. +MessageId=39359 +Language=English +%1 +. +MessageId=39360 +Language=English +%1 +. +MessageId=39361 +Language=English +%1 +. +MessageId=39362 +Language=English +%1 +. +MessageId=39363 +Language=English +%1 +. +MessageId=39364 +Language=English +%1 +. +MessageId=39365 +Language=English +%1 +. +MessageId=39366 +Language=English +%1 +. +MessageId=39367 +Language=English +%1 +. +MessageId=39368 +Language=English +%1 +. +MessageId=39369 +Language=English +%1 +. +MessageId=39370 +Language=English +%1 +. +MessageId=39371 +Language=English +%1 +. +MessageId=39372 +Language=English +%1 +. +MessageId=39373 +Language=English +%1 +. +MessageId=39374 +Language=English +%1 +. +MessageId=39375 +Language=English +%1 +. +MessageId=39376 +Language=English +%1 +. +MessageId=39377 +Language=English +%1 +. +MessageId=39378 +Language=English +%1 +. +MessageId=39379 +Language=English +%1 +. +MessageId=39380 +Language=English +%1 +. +MessageId=39381 +Language=English +%1 +. +MessageId=39382 +Language=English +%1 +. +MessageId=39383 +Language=English +%1 +. +MessageId=39384 +Language=English +%1 +. +MessageId=39385 +Language=English +%1 +. +MessageId=39386 +Language=English +%1 +. +MessageId=39387 +Language=English +%1 +. +MessageId=39388 +Language=English +%1 +. +MessageId=39389 +Language=English +%1 +. +MessageId=39390 +Language=English +%1 +. +MessageId=39391 +Language=English +%1 +. +MessageId=39392 +Language=English +%1 +. +MessageId=39393 +Language=English +%1 +. +MessageId=39394 +Language=English +%1 +. +MessageId=39395 +Language=English +%1 +. +MessageId=39396 +Language=English +%1 +. +MessageId=39397 +Language=English +%1 +. +MessageId=39398 +Language=English +%1 +. +MessageId=39399 +Language=English +%1 +. +MessageId=39400 +Language=English +%1 +. +MessageId=39401 +Language=English +%1 +. +MessageId=39402 +Language=English +%1 +. +MessageId=39403 +Language=English +%1 +. +MessageId=39404 +Language=English +%1 +. +MessageId=39405 +Language=English +%1 +. +MessageId=39406 +Language=English +%1 +. +MessageId=39407 +Language=English +%1 +. +MessageId=39408 +Language=English +%1 +. +MessageId=39409 +Language=English +%1 +. +MessageId=39410 +Language=English +%1 +. +MessageId=39411 +Language=English +%1 +. +MessageId=39412 +Language=English +%1 +. +MessageId=39413 +Language=English +%1 +. +MessageId=39414 +Language=English +%1 +. +MessageId=39415 +Language=English +%1 +. +MessageId=39416 +Language=English +%1 +. +MessageId=39417 +Language=English +%1 +. +MessageId=39418 +Language=English +%1 +. +MessageId=39419 +Language=English +%1 +. +MessageId=39420 +Language=English +%1 +. +MessageId=39421 +Language=English +%1 +. +MessageId=39422 +Language=English +%1 +. +MessageId=39423 +Language=English +%1 +. +MessageId=39424 +Language=English +%1 +. +MessageId=39425 +Language=English +%1 +. +MessageId=39426 +Language=English +%1 +. +MessageId=39427 +Language=English +%1 +. +MessageId=39428 +Language=English +%1 +. +MessageId=39429 +Language=English +%1 +. +MessageId=39430 +Language=English +%1 +. +MessageId=39431 +Language=English +%1 +. +MessageId=39432 +Language=English +%1 +. +MessageId=39433 +Language=English +%1 +. +MessageId=39434 +Language=English +%1 +. +MessageId=39435 +Language=English +%1 +. +MessageId=39436 +Language=English +%1 +. +MessageId=39437 +Language=English +%1 +. +MessageId=39438 +Language=English +%1 +. +MessageId=39439 +Language=English +%1 +. +MessageId=39440 +Language=English +%1 +. +MessageId=39441 +Language=English +%1 +. +MessageId=39442 +Language=English +%1 +. +MessageId=39443 +Language=English +%1 +. +MessageId=39444 +Language=English +%1 +. +MessageId=39445 +Language=English +%1 +. +MessageId=39446 +Language=English +%1 +. +MessageId=39447 +Language=English +%1 +. +MessageId=39448 +Language=English +%1 +. +MessageId=39449 +Language=English +%1 +. +MessageId=39450 +Language=English +%1 +. +MessageId=39451 +Language=English +%1 +. +MessageId=39452 +Language=English +%1 +. +MessageId=39453 +Language=English +%1 +. +MessageId=39454 +Language=English +%1 +. +MessageId=39455 +Language=English +%1 +. +MessageId=39456 +Language=English +%1 +. +MessageId=39457 +Language=English +%1 +. +MessageId=39458 +Language=English +%1 +. +MessageId=39459 +Language=English +%1 +. +MessageId=39460 +Language=English +%1 +. +MessageId=39461 +Language=English +%1 +. +MessageId=39462 +Language=English +%1 +. +MessageId=39463 +Language=English +%1 +. +MessageId=39464 +Language=English +%1 +. +MessageId=39465 +Language=English +%1 +. +MessageId=39466 +Language=English +%1 +. +MessageId=39467 +Language=English +%1 +. +MessageId=39468 +Language=English +%1 +. +MessageId=39469 +Language=English +%1 +. +MessageId=39470 +Language=English +%1 +. +MessageId=39471 +Language=English +%1 +. +MessageId=39472 +Language=English +%1 +. +MessageId=39473 +Language=English +%1 +. +MessageId=39474 +Language=English +%1 +. +MessageId=39475 +Language=English +%1 +. +MessageId=39476 +Language=English +%1 +. +MessageId=39477 +Language=English +%1 +. +MessageId=39478 +Language=English +%1 +. +MessageId=39479 +Language=English +%1 +. +MessageId=39480 +Language=English +%1 +. +MessageId=39481 +Language=English +%1 +. +MessageId=39482 +Language=English +%1 +. +MessageId=39483 +Language=English +%1 +. +MessageId=39484 +Language=English +%1 +. +MessageId=39485 +Language=English +%1 +. +MessageId=39486 +Language=English +%1 +. +MessageId=39487 +Language=English +%1 +. +MessageId=39488 +Language=English +%1 +. +MessageId=39489 +Language=English +%1 +. +MessageId=39490 +Language=English +%1 +. +MessageId=39491 +Language=English +%1 +. +MessageId=39492 +Language=English +%1 +. +MessageId=39493 +Language=English +%1 +. +MessageId=39494 +Language=English +%1 +. +MessageId=39495 +Language=English +%1 +. +MessageId=39496 +Language=English +%1 +. +MessageId=39497 +Language=English +%1 +. +MessageId=39498 +Language=English +%1 +. +MessageId=39499 +Language=English +%1 +. +MessageId=39500 +Language=English +%1 +. +MessageId=39501 +Language=English +%1 +. +MessageId=39502 +Language=English +%1 +. +MessageId=39503 +Language=English +%1 +. +MessageId=39504 +Language=English +%1 +. +MessageId=39505 +Language=English +%1 +. +MessageId=39506 +Language=English +%1 +. +MessageId=39507 +Language=English +%1 +. +MessageId=39508 +Language=English +%1 +. +MessageId=39509 +Language=English +%1 +. +MessageId=39510 +Language=English +%1 +. +MessageId=39511 +Language=English +%1 +. +MessageId=39512 +Language=English +%1 +. +MessageId=39513 +Language=English +%1 +. +MessageId=39514 +Language=English +%1 +. +MessageId=39515 +Language=English +%1 +. +MessageId=39516 +Language=English +%1 +. +MessageId=39517 +Language=English +%1 +. +MessageId=39518 +Language=English +%1 +. +MessageId=39519 +Language=English +%1 +. +MessageId=39520 +Language=English +%1 +. +MessageId=39521 +Language=English +%1 +. +MessageId=39522 +Language=English +%1 +. +MessageId=39523 +Language=English +%1 +. +MessageId=39524 +Language=English +%1 +. +MessageId=39525 +Language=English +%1 +. +MessageId=39526 +Language=English +%1 +. +MessageId=39527 +Language=English +%1 +. +MessageId=39528 +Language=English +%1 +. +MessageId=39529 +Language=English +%1 +. +MessageId=39530 +Language=English +%1 +. +MessageId=39531 +Language=English +%1 +. +MessageId=39532 +Language=English +%1 +. +MessageId=39533 +Language=English +%1 +. +MessageId=39534 +Language=English +%1 +. +MessageId=39535 +Language=English +%1 +. +MessageId=39536 +Language=English +%1 +. +MessageId=39537 +Language=English +%1 +. +MessageId=39538 +Language=English +%1 +. +MessageId=39539 +Language=English +%1 +. +MessageId=39540 +Language=English +%1 +. +MessageId=39541 +Language=English +%1 +. +MessageId=39542 +Language=English +%1 +. +MessageId=39543 +Language=English +%1 +. +MessageId=39544 +Language=English +%1 +. +MessageId=39545 +Language=English +%1 +. +MessageId=39546 +Language=English +%1 +. +MessageId=39547 +Language=English +%1 +. +MessageId=39548 +Language=English +%1 +. +MessageId=39549 +Language=English +%1 +. +MessageId=39550 +Language=English +%1 +. +MessageId=39551 +Language=English +%1 +. +MessageId=39552 +Language=English +%1 +. +MessageId=39553 +Language=English +%1 +. +MessageId=39554 +Language=English +%1 +. +MessageId=39555 +Language=English +%1 +. +MessageId=39556 +Language=English +%1 +. +MessageId=39557 +Language=English +%1 +. +MessageId=39558 +Language=English +%1 +. +MessageId=39559 +Language=English +%1 +. +MessageId=39560 +Language=English +%1 +. +MessageId=39561 +Language=English +%1 +. +MessageId=39562 +Language=English +%1 +. +MessageId=39563 +Language=English +%1 +. +MessageId=39564 +Language=English +%1 +. +MessageId=39565 +Language=English +%1 +. +MessageId=39566 +Language=English +%1 +. +MessageId=39567 +Language=English +%1 +. +MessageId=39568 +Language=English +%1 +. +MessageId=39569 +Language=English +%1 +. +MessageId=39570 +Language=English +%1 +. +MessageId=39571 +Language=English +%1 +. +MessageId=39572 +Language=English +%1 +. +MessageId=39573 +Language=English +%1 +. +MessageId=39574 +Language=English +%1 +. +MessageId=39575 +Language=English +%1 +. +MessageId=39576 +Language=English +%1 +. +MessageId=39577 +Language=English +%1 +. +MessageId=39578 +Language=English +%1 +. +MessageId=39579 +Language=English +%1 +. +MessageId=39580 +Language=English +%1 +. +MessageId=39581 +Language=English +%1 +. +MessageId=39582 +Language=English +%1 +. +MessageId=39583 +Language=English +%1 +. +MessageId=39584 +Language=English +%1 +. +MessageId=39585 +Language=English +%1 +. +MessageId=39586 +Language=English +%1 +. +MessageId=39587 +Language=English +%1 +. +MessageId=39588 +Language=English +%1 +. +MessageId=39589 +Language=English +%1 +. +MessageId=39590 +Language=English +%1 +. +MessageId=39591 +Language=English +%1 +. +MessageId=39592 +Language=English +%1 +. +MessageId=39593 +Language=English +%1 +. +MessageId=39594 +Language=English +%1 +. +MessageId=39595 +Language=English +%1 +. +MessageId=39596 +Language=English +%1 +. +MessageId=39597 +Language=English +%1 +. +MessageId=39598 +Language=English +%1 +. +MessageId=39599 +Language=English +%1 +. +MessageId=39600 +Language=English +%1 +. +MessageId=39601 +Language=English +%1 +. +MessageId=39602 +Language=English +%1 +. +MessageId=39603 +Language=English +%1 +. +MessageId=39604 +Language=English +%1 +. +MessageId=39605 +Language=English +%1 +. +MessageId=39606 +Language=English +%1 +. +MessageId=39607 +Language=English +%1 +. +MessageId=39608 +Language=English +%1 +. +MessageId=39609 +Language=English +%1 +. +MessageId=39610 +Language=English +%1 +. +MessageId=39611 +Language=English +%1 +. +MessageId=39612 +Language=English +%1 +. +MessageId=39613 +Language=English +%1 +. +MessageId=39614 +Language=English +%1 +. +MessageId=39615 +Language=English +%1 +. +MessageId=39616 +Language=English +%1 +. +MessageId=39617 +Language=English +%1 +. +MessageId=39618 +Language=English +%1 +. +MessageId=39619 +Language=English +%1 +. +MessageId=39620 +Language=English +%1 +. +MessageId=39621 +Language=English +%1 +. +MessageId=39622 +Language=English +%1 +. +MessageId=39623 +Language=English +%1 +. +MessageId=39624 +Language=English +%1 +. +MessageId=39625 +Language=English +%1 +. +MessageId=39626 +Language=English +%1 +. +MessageId=39627 +Language=English +%1 +. +MessageId=39628 +Language=English +%1 +. +MessageId=39629 +Language=English +%1 +. +MessageId=39630 +Language=English +%1 +. +MessageId=39631 +Language=English +%1 +. +MessageId=39632 +Language=English +%1 +. +MessageId=39633 +Language=English +%1 +. +MessageId=39634 +Language=English +%1 +. +MessageId=39635 +Language=English +%1 +. +MessageId=39636 +Language=English +%1 +. +MessageId=39637 +Language=English +%1 +. +MessageId=39638 +Language=English +%1 +. +MessageId=39639 +Language=English +%1 +. +MessageId=39640 +Language=English +%1 +. +MessageId=39641 +Language=English +%1 +. +MessageId=39642 +Language=English +%1 +. +MessageId=39643 +Language=English +%1 +. +MessageId=39644 +Language=English +%1 +. +MessageId=39645 +Language=English +%1 +. +MessageId=39646 +Language=English +%1 +. +MessageId=39647 +Language=English +%1 +. +MessageId=39648 +Language=English +%1 +. +MessageId=39649 +Language=English +%1 +. +MessageId=39650 +Language=English +%1 +. +MessageId=39651 +Language=English +%1 +. +MessageId=39652 +Language=English +%1 +. +MessageId=39653 +Language=English +%1 +. +MessageId=39654 +Language=English +%1 +. +MessageId=39655 +Language=English +%1 +. +MessageId=39656 +Language=English +%1 +. +MessageId=39657 +Language=English +%1 +. +MessageId=39658 +Language=English +%1 +. +MessageId=39659 +Language=English +%1 +. +MessageId=39660 +Language=English +%1 +. +MessageId=39661 +Language=English +%1 +. +MessageId=39662 +Language=English +%1 +. +MessageId=39663 +Language=English +%1 +. +MessageId=39664 +Language=English +%1 +. +MessageId=39665 +Language=English +%1 +. +MessageId=39666 +Language=English +%1 +. +MessageId=39667 +Language=English +%1 +. +MessageId=39668 +Language=English +%1 +. +MessageId=39669 +Language=English +%1 +. +MessageId=39670 +Language=English +%1 +. +MessageId=39671 +Language=English +%1 +. +MessageId=39672 +Language=English +%1 +. +MessageId=39673 +Language=English +%1 +. +MessageId=39674 +Language=English +%1 +. +MessageId=39675 +Language=English +%1 +. +MessageId=39676 +Language=English +%1 +. +MessageId=39677 +Language=English +%1 +. +MessageId=39678 +Language=English +%1 +. +MessageId=39679 +Language=English +%1 +. +MessageId=39680 +Language=English +%1 +. +MessageId=39681 +Language=English +%1 +. +MessageId=39682 +Language=English +%1 +. +MessageId=39683 +Language=English +%1 +. +MessageId=39684 +Language=English +%1 +. +MessageId=39685 +Language=English +%1 +. +MessageId=39686 +Language=English +%1 +. +MessageId=39687 +Language=English +%1 +. +MessageId=39688 +Language=English +%1 +. +MessageId=39689 +Language=English +%1 +. +MessageId=39690 +Language=English +%1 +. +MessageId=39691 +Language=English +%1 +. +MessageId=39692 +Language=English +%1 +. +MessageId=39693 +Language=English +%1 +. +MessageId=39694 +Language=English +%1 +. +MessageId=39695 +Language=English +%1 +. +MessageId=39696 +Language=English +%1 +. +MessageId=39697 +Language=English +%1 +. +MessageId=39698 +Language=English +%1 +. +MessageId=39699 +Language=English +%1 +. +MessageId=39700 +Language=English +%1 +. +MessageId=39701 +Language=English +%1 +. +MessageId=39702 +Language=English +%1 +. +MessageId=39703 +Language=English +%1 +. +MessageId=39704 +Language=English +%1 +. +MessageId=39705 +Language=English +%1 +. +MessageId=39706 +Language=English +%1 +. +MessageId=39707 +Language=English +%1 +. +MessageId=39708 +Language=English +%1 +. +MessageId=39709 +Language=English +%1 +. +MessageId=39710 +Language=English +%1 +. +MessageId=39711 +Language=English +%1 +. +MessageId=39712 +Language=English +%1 +. +MessageId=39713 +Language=English +%1 +. +MessageId=39714 +Language=English +%1 +. +MessageId=39715 +Language=English +%1 +. +MessageId=39716 +Language=English +%1 +. +MessageId=39717 +Language=English +%1 +. +MessageId=39718 +Language=English +%1 +. +MessageId=39719 +Language=English +%1 +. +MessageId=39720 +Language=English +%1 +. +MessageId=39721 +Language=English +%1 +. +MessageId=39722 +Language=English +%1 +. +MessageId=39723 +Language=English +%1 +. +MessageId=39724 +Language=English +%1 +. +MessageId=39725 +Language=English +%1 +. +MessageId=39726 +Language=English +%1 +. +MessageId=39727 +Language=English +%1 +. +MessageId=39728 +Language=English +%1 +. +MessageId=39729 +Language=English +%1 +. +MessageId=39730 +Language=English +%1 +. +MessageId=39731 +Language=English +%1 +. +MessageId=39732 +Language=English +%1 +. +MessageId=39733 +Language=English +%1 +. +MessageId=39734 +Language=English +%1 +. +MessageId=39735 +Language=English +%1 +. +MessageId=39736 +Language=English +%1 +. +MessageId=39737 +Language=English +%1 +. +MessageId=39738 +Language=English +%1 +. +MessageId=39739 +Language=English +%1 +. +MessageId=39740 +Language=English +%1 +. +MessageId=39741 +Language=English +%1 +. +MessageId=39742 +Language=English +%1 +. +MessageId=39743 +Language=English +%1 +. +MessageId=39744 +Language=English +%1 +. +MessageId=39745 +Language=English +%1 +. +MessageId=39746 +Language=English +%1 +. +MessageId=39747 +Language=English +%1 +. +MessageId=39748 +Language=English +%1 +. +MessageId=39749 +Language=English +%1 +. +MessageId=39750 +Language=English +%1 +. +MessageId=39751 +Language=English +%1 +. +MessageId=39752 +Language=English +%1 +. +MessageId=39753 +Language=English +%1 +. +MessageId=39754 +Language=English +%1 +. +MessageId=39755 +Language=English +%1 +. +MessageId=39756 +Language=English +%1 +. +MessageId=39757 +Language=English +%1 +. +MessageId=39758 +Language=English +%1 +. +MessageId=39759 +Language=English +%1 +. +MessageId=39760 +Language=English +%1 +. +MessageId=39761 +Language=English +%1 +. +MessageId=39762 +Language=English +%1 +. +MessageId=39763 +Language=English +%1 +. +MessageId=39764 +Language=English +%1 +. +MessageId=39765 +Language=English +%1 +. +MessageId=39766 +Language=English +%1 +. +MessageId=39767 +Language=English +%1 +. +MessageId=39768 +Language=English +%1 +. +MessageId=39769 +Language=English +%1 +. +MessageId=39770 +Language=English +%1 +. +MessageId=39771 +Language=English +%1 +. +MessageId=39772 +Language=English +%1 +. +MessageId=39773 +Language=English +%1 +. +MessageId=39774 +Language=English +%1 +. +MessageId=39775 +Language=English +%1 +. +MessageId=39776 +Language=English +%1 +. +MessageId=39777 +Language=English +%1 +. +MessageId=39778 +Language=English +%1 +. +MessageId=39779 +Language=English +%1 +. +MessageId=39780 +Language=English +%1 +. +MessageId=39781 +Language=English +%1 +. +MessageId=39782 +Language=English +%1 +. +MessageId=39783 +Language=English +%1 +. +MessageId=39784 +Language=English +%1 +. +MessageId=39785 +Language=English +%1 +. +MessageId=39786 +Language=English +%1 +. +MessageId=39787 +Language=English +%1 +. +MessageId=39788 +Language=English +%1 +. +MessageId=39789 +Language=English +%1 +. +MessageId=39790 +Language=English +%1 +. +MessageId=39791 +Language=English +%1 +. +MessageId=39792 +Language=English +%1 +. +MessageId=39793 +Language=English +%1 +. +MessageId=39794 +Language=English +%1 +. +MessageId=39795 +Language=English +%1 +. +MessageId=39796 +Language=English +%1 +. +MessageId=39797 +Language=English +%1 +. +MessageId=39798 +Language=English +%1 +. +MessageId=39799 +Language=English +%1 +. +MessageId=39800 +Language=English +%1 +. +MessageId=39801 +Language=English +%1 +. +MessageId=39802 +Language=English +%1 +. +MessageId=39803 +Language=English +%1 +. +MessageId=39804 +Language=English +%1 +. +MessageId=39805 +Language=English +%1 +. +MessageId=39806 +Language=English +%1 +. +MessageId=39807 +Language=English +%1 +. +MessageId=39808 +Language=English +%1 +. +MessageId=39809 +Language=English +%1 +. +MessageId=39810 +Language=English +%1 +. +MessageId=39811 +Language=English +%1 +. +MessageId=39812 +Language=English +%1 +. +MessageId=39813 +Language=English +%1 +. +MessageId=39814 +Language=English +%1 +. +MessageId=39815 +Language=English +%1 +. +MessageId=39816 +Language=English +%1 +. +MessageId=39817 +Language=English +%1 +. +MessageId=39818 +Language=English +%1 +. +MessageId=39819 +Language=English +%1 +. +MessageId=39820 +Language=English +%1 +. +MessageId=39821 +Language=English +%1 +. +MessageId=39822 +Language=English +%1 +. +MessageId=39823 +Language=English +%1 +. +MessageId=39824 +Language=English +%1 +. +MessageId=39825 +Language=English +%1 +. +MessageId=39826 +Language=English +%1 +. +MessageId=39827 +Language=English +%1 +. +MessageId=39828 +Language=English +%1 +. +MessageId=39829 +Language=English +%1 +. +MessageId=39830 +Language=English +%1 +. +MessageId=39831 +Language=English +%1 +. +MessageId=39832 +Language=English +%1 +. +MessageId=39833 +Language=English +%1 +. +MessageId=39834 +Language=English +%1 +. +MessageId=39835 +Language=English +%1 +. +MessageId=39836 +Language=English +%1 +. +MessageId=39837 +Language=English +%1 +. +MessageId=39838 +Language=English +%1 +. +MessageId=39839 +Language=English +%1 +. +MessageId=39840 +Language=English +%1 +. +MessageId=39841 +Language=English +%1 +. +MessageId=39842 +Language=English +%1 +. +MessageId=39843 +Language=English +%1 +. +MessageId=39844 +Language=English +%1 +. +MessageId=39845 +Language=English +%1 +. +MessageId=39846 +Language=English +%1 +. +MessageId=39847 +Language=English +%1 +. +MessageId=39848 +Language=English +%1 +. +MessageId=39849 +Language=English +%1 +. +MessageId=39850 +Language=English +%1 +. +MessageId=39851 +Language=English +%1 +. +MessageId=39852 +Language=English +%1 +. +MessageId=39853 +Language=English +%1 +. +MessageId=39854 +Language=English +%1 +. +MessageId=39855 +Language=English +%1 +. +MessageId=39856 +Language=English +%1 +. +MessageId=39857 +Language=English +%1 +. +MessageId=39858 +Language=English +%1 +. +MessageId=39859 +Language=English +%1 +. +MessageId=39860 +Language=English +%1 +. +MessageId=39861 +Language=English +%1 +. +MessageId=39862 +Language=English +%1 +. +MessageId=39863 +Language=English +%1 +. +MessageId=39864 +Language=English +%1 +. +MessageId=39865 +Language=English +%1 +. +MessageId=39866 +Language=English +%1 +. +MessageId=39867 +Language=English +%1 +. +MessageId=39868 +Language=English +%1 +. +MessageId=39869 +Language=English +%1 +. +MessageId=39870 +Language=English +%1 +. +MessageId=39871 +Language=English +%1 +. +MessageId=39872 +Language=English +%1 +. +MessageId=39873 +Language=English +%1 +. +MessageId=39874 +Language=English +%1 +. +MessageId=39875 +Language=English +%1 +. +MessageId=39876 +Language=English +%1 +. +MessageId=39877 +Language=English +%1 +. +MessageId=39878 +Language=English +%1 +. +MessageId=39879 +Language=English +%1 +. +MessageId=39880 +Language=English +%1 +. +MessageId=39881 +Language=English +%1 +. +MessageId=39882 +Language=English +%1 +. +MessageId=39883 +Language=English +%1 +. +MessageId=39884 +Language=English +%1 +. +MessageId=39885 +Language=English +%1 +. +MessageId=39886 +Language=English +%1 +. +MessageId=39887 +Language=English +%1 +. +MessageId=39888 +Language=English +%1 +. +MessageId=39889 +Language=English +%1 +. +MessageId=39890 +Language=English +%1 +. +MessageId=39891 +Language=English +%1 +. +MessageId=39892 +Language=English +%1 +. +MessageId=39893 +Language=English +%1 +. +MessageId=39894 +Language=English +%1 +. +MessageId=39895 +Language=English +%1 +. +MessageId=39896 +Language=English +%1 +. +MessageId=39897 +Language=English +%1 +. +MessageId=39898 +Language=English +%1 +. +MessageId=39899 +Language=English +%1 +. +MessageId=39900 +Language=English +%1 +. +MessageId=39901 +Language=English +%1 +. +MessageId=39902 +Language=English +%1 +. +MessageId=39903 +Language=English +%1 +. +MessageId=39904 +Language=English +%1 +. +MessageId=39905 +Language=English +%1 +. +MessageId=39906 +Language=English +%1 +. +MessageId=39907 +Language=English +%1 +. +MessageId=39908 +Language=English +%1 +. +MessageId=39909 +Language=English +%1 +. +MessageId=39910 +Language=English +%1 +. +MessageId=39911 +Language=English +%1 +. +MessageId=39912 +Language=English +%1 +. +MessageId=39913 +Language=English +%1 +. +MessageId=39914 +Language=English +%1 +. +MessageId=39915 +Language=English +%1 +. +MessageId=39916 +Language=English +%1 +. +MessageId=39917 +Language=English +%1 +. +MessageId=39918 +Language=English +%1 +. +MessageId=39919 +Language=English +%1 +. +MessageId=39920 +Language=English +%1 +. +MessageId=39921 +Language=English +%1 +. +MessageId=39922 +Language=English +%1 +. +MessageId=39923 +Language=English +%1 +. +MessageId=39924 +Language=English +%1 +. +MessageId=39925 +Language=English +%1 +. +MessageId=39926 +Language=English +%1 +. +MessageId=39927 +Language=English +%1 +. +MessageId=39928 +Language=English +%1 +. +MessageId=39929 +Language=English +%1 +. +MessageId=39930 +Language=English +%1 +. +MessageId=39931 +Language=English +%1 +. +MessageId=39932 +Language=English +%1 +. +MessageId=39933 +Language=English +%1 +. +MessageId=39934 +Language=English +%1 +. +MessageId=39935 +Language=English +%1 +. +MessageId=39936 +Language=English +%1 +. +MessageId=39937 +Language=English +%1 +. +MessageId=39938 +Language=English +%1 +. +MessageId=39939 +Language=English +%1 +. +MessageId=39940 +Language=English +%1 +. +MessageId=39941 +Language=English +%1 +. +MessageId=39942 +Language=English +%1 +. +MessageId=39943 +Language=English +%1 +. +MessageId=39944 +Language=English +%1 +. +MessageId=39945 +Language=English +%1 +. +MessageId=39946 +Language=English +%1 +. +MessageId=39947 +Language=English +%1 +. +MessageId=39948 +Language=English +%1 +. +MessageId=39949 +Language=English +%1 +. +MessageId=39950 +Language=English +%1 +. +MessageId=39951 +Language=English +%1 +. +MessageId=39952 +Language=English +%1 +. +MessageId=39953 +Language=English +%1 +. +MessageId=39954 +Language=English +%1 +. +MessageId=39955 +Language=English +%1 +. +MessageId=39956 +Language=English +%1 +. +MessageId=39957 +Language=English +%1 +. +MessageId=39958 +Language=English +%1 +. +MessageId=39959 +Language=English +%1 +. +MessageId=39960 +Language=English +%1 +. +MessageId=39961 +Language=English +%1 +. +MessageId=39962 +Language=English +%1 +. +MessageId=39963 +Language=English +%1 +. +MessageId=39964 +Language=English +%1 +. +MessageId=39965 +Language=English +%1 +. +MessageId=39966 +Language=English +%1 +. +MessageId=39967 +Language=English +%1 +. +MessageId=39968 +Language=English +%1 +. +MessageId=39969 +Language=English +%1 +. +MessageId=39970 +Language=English +%1 +. +MessageId=39971 +Language=English +%1 +. +MessageId=39972 +Language=English +%1 +. +MessageId=39973 +Language=English +%1 +. +MessageId=39974 +Language=English +%1 +. +MessageId=39975 +Language=English +%1 +. +MessageId=39976 +Language=English +%1 +. +MessageId=39977 +Language=English +%1 +. +MessageId=39978 +Language=English +%1 +. +MessageId=39979 +Language=English +%1 +. +MessageId=39980 +Language=English +%1 +. +MessageId=39981 +Language=English +%1 +. +MessageId=39982 +Language=English +%1 +. +MessageId=39983 +Language=English +%1 +. +MessageId=39984 +Language=English +%1 +. +MessageId=39985 +Language=English +%1 +. +MessageId=39986 +Language=English +%1 +. +MessageId=39987 +Language=English +%1 +. +MessageId=39988 +Language=English +%1 +. +MessageId=39989 +Language=English +%1 +. +MessageId=39990 +Language=English +%1 +. +MessageId=39991 +Language=English +%1 +. +MessageId=39992 +Language=English +%1 +. +MessageId=39993 +Language=English +%1 +. +MessageId=39994 +Language=English +%1 +. +MessageId=39995 +Language=English +%1 +. +MessageId=39996 +Language=English +%1 +. +MessageId=39997 +Language=English +%1 +. +MessageId=39998 +Language=English +%1 +. +MessageId=39999 +Language=English +%1 +. +MessageId=40000 +Language=English +%1 +. +MessageId=40001 +Language=English +%1 +. +MessageId=40002 +Language=English +%1 +. +MessageId=40003 +Language=English +%1 +. +MessageId=40004 +Language=English +%1 +. +MessageId=40005 +Language=English +%1 +. +MessageId=40006 +Language=English +%1 +. +MessageId=40007 +Language=English +%1 +. +MessageId=40008 +Language=English +%1 +. +MessageId=40009 +Language=English +%1 +. +MessageId=40010 +Language=English +%1 +. +MessageId=40011 +Language=English +%1 +. +MessageId=40012 +Language=English +%1 +. +MessageId=40013 +Language=English +%1 +. +MessageId=40014 +Language=English +%1 +. +MessageId=40015 +Language=English +%1 +. +MessageId=40016 +Language=English +%1 +. +MessageId=40017 +Language=English +%1 +. +MessageId=40018 +Language=English +%1 +. +MessageId=40019 +Language=English +%1 +. +MessageId=40020 +Language=English +%1 +. +MessageId=40021 +Language=English +%1 +. +MessageId=40022 +Language=English +%1 +. +MessageId=40023 +Language=English +%1 +. +MessageId=40024 +Language=English +%1 +. +MessageId=40025 +Language=English +%1 +. +MessageId=40026 +Language=English +%1 +. +MessageId=40027 +Language=English +%1 +. +MessageId=40028 +Language=English +%1 +. +MessageId=40029 +Language=English +%1 +. +MessageId=40030 +Language=English +%1 +. +MessageId=40031 +Language=English +%1 +. +MessageId=40032 +Language=English +%1 +. +MessageId=40033 +Language=English +%1 +. +MessageId=40034 +Language=English +%1 +. +MessageId=40035 +Language=English +%1 +. +MessageId=40036 +Language=English +%1 +. +MessageId=40037 +Language=English +%1 +. +MessageId=40038 +Language=English +%1 +. +MessageId=40039 +Language=English +%1 +. +MessageId=40040 +Language=English +%1 +. +MessageId=40041 +Language=English +%1 +. +MessageId=40042 +Language=English +%1 +. +MessageId=40043 +Language=English +%1 +. +MessageId=40044 +Language=English +%1 +. +MessageId=40045 +Language=English +%1 +. +MessageId=40046 +Language=English +%1 +. +MessageId=40047 +Language=English +%1 +. +MessageId=40048 +Language=English +%1 +. +MessageId=40049 +Language=English +%1 +. +MessageId=40050 +Language=English +%1 +. +MessageId=40051 +Language=English +%1 +. +MessageId=40052 +Language=English +%1 +. +MessageId=40053 +Language=English +%1 +. +MessageId=40054 +Language=English +%1 +. +MessageId=40055 +Language=English +%1 +. +MessageId=40056 +Language=English +%1 +. +MessageId=40057 +Language=English +%1 +. +MessageId=40058 +Language=English +%1 +. +MessageId=40059 +Language=English +%1 +. +MessageId=40060 +Language=English +%1 +. +MessageId=40061 +Language=English +%1 +. +MessageId=40062 +Language=English +%1 +. +MessageId=40063 +Language=English +%1 +. +MessageId=40064 +Language=English +%1 +. +MessageId=40065 +Language=English +%1 +. +MessageId=40066 +Language=English +%1 +. +MessageId=40067 +Language=English +%1 +. +MessageId=40068 +Language=English +%1 +. +MessageId=40069 +Language=English +%1 +. +MessageId=40070 +Language=English +%1 +. +MessageId=40071 +Language=English +%1 +. +MessageId=40072 +Language=English +%1 +. +MessageId=40073 +Language=English +%1 +. +MessageId=40074 +Language=English +%1 +. +MessageId=40075 +Language=English +%1 +. +MessageId=40076 +Language=English +%1 +. +MessageId=40077 +Language=English +%1 +. +MessageId=40078 +Language=English +%1 +. +MessageId=40079 +Language=English +%1 +. +MessageId=40080 +Language=English +%1 +. +MessageId=40081 +Language=English +%1 +. +MessageId=40082 +Language=English +%1 +. +MessageId=40083 +Language=English +%1 +. +MessageId=40084 +Language=English +%1 +. +MessageId=40085 +Language=English +%1 +. +MessageId=40086 +Language=English +%1 +. +MessageId=40087 +Language=English +%1 +. +MessageId=40088 +Language=English +%1 +. +MessageId=40089 +Language=English +%1 +. +MessageId=40090 +Language=English +%1 +. +MessageId=40091 +Language=English +%1 +. +MessageId=40092 +Language=English +%1 +. +MessageId=40093 +Language=English +%1 +. +MessageId=40094 +Language=English +%1 +. +MessageId=40095 +Language=English +%1 +. +MessageId=40096 +Language=English +%1 +. +MessageId=40097 +Language=English +%1 +. +MessageId=40098 +Language=English +%1 +. +MessageId=40099 +Language=English +%1 +. +MessageId=40100 +Language=English +%1 +. +MessageId=40101 +Language=English +%1 +. +MessageId=40102 +Language=English +%1 +. +MessageId=40103 +Language=English +%1 +. +MessageId=40104 +Language=English +%1 +. +MessageId=40105 +Language=English +%1 +. +MessageId=40106 +Language=English +%1 +. +MessageId=40107 +Language=English +%1 +. +MessageId=40108 +Language=English +%1 +. +MessageId=40109 +Language=English +%1 +. +MessageId=40110 +Language=English +%1 +. +MessageId=40111 +Language=English +%1 +. +MessageId=40112 +Language=English +%1 +. +MessageId=40113 +Language=English +%1 +. +MessageId=40114 +Language=English +%1 +. +MessageId=40115 +Language=English +%1 +. +MessageId=40116 +Language=English +%1 +. +MessageId=40117 +Language=English +%1 +. +MessageId=40118 +Language=English +%1 +. +MessageId=40119 +Language=English +%1 +. +MessageId=40120 +Language=English +%1 +. +MessageId=40121 +Language=English +%1 +. +MessageId=40122 +Language=English +%1 +. +MessageId=40123 +Language=English +%1 +. +MessageId=40124 +Language=English +%1 +. +MessageId=40125 +Language=English +%1 +. +MessageId=40126 +Language=English +%1 +. +MessageId=40127 +Language=English +%1 +. +MessageId=40128 +Language=English +%1 +. +MessageId=40129 +Language=English +%1 +. +MessageId=40130 +Language=English +%1 +. +MessageId=40131 +Language=English +%1 +. +MessageId=40132 +Language=English +%1 +. +MessageId=40133 +Language=English +%1 +. +MessageId=40134 +Language=English +%1 +. +MessageId=40135 +Language=English +%1 +. +MessageId=40136 +Language=English +%1 +. +MessageId=40137 +Language=English +%1 +. +MessageId=40138 +Language=English +%1 +. +MessageId=40139 +Language=English +%1 +. +MessageId=40140 +Language=English +%1 +. +MessageId=40141 +Language=English +%1 +. +MessageId=40142 +Language=English +%1 +. +MessageId=40143 +Language=English +%1 +. +MessageId=40144 +Language=English +%1 +. +MessageId=40145 +Language=English +%1 +. +MessageId=40146 +Language=English +%1 +. +MessageId=40147 +Language=English +%1 +. +MessageId=40148 +Language=English +%1 +. +MessageId=40149 +Language=English +%1 +. +MessageId=40150 +Language=English +%1 +. +MessageId=40151 +Language=English +%1 +. +MessageId=40152 +Language=English +%1 +. +MessageId=40153 +Language=English +%1 +. +MessageId=40154 +Language=English +%1 +. +MessageId=40155 +Language=English +%1 +. +MessageId=40156 +Language=English +%1 +. +MessageId=40157 +Language=English +%1 +. +MessageId=40158 +Language=English +%1 +. +MessageId=40159 +Language=English +%1 +. +MessageId=40160 +Language=English +%1 +. +MessageId=40161 +Language=English +%1 +. +MessageId=40162 +Language=English +%1 +. +MessageId=40163 +Language=English +%1 +. +MessageId=40164 +Language=English +%1 +. +MessageId=40165 +Language=English +%1 +. +MessageId=40166 +Language=English +%1 +. +MessageId=40167 +Language=English +%1 +. +MessageId=40168 +Language=English +%1 +. +MessageId=40169 +Language=English +%1 +. +MessageId=40170 +Language=English +%1 +. +MessageId=40171 +Language=English +%1 +. +MessageId=40172 +Language=English +%1 +. +MessageId=40173 +Language=English +%1 +. +MessageId=40174 +Language=English +%1 +. +MessageId=40175 +Language=English +%1 +. +MessageId=40176 +Language=English +%1 +. +MessageId=40177 +Language=English +%1 +. +MessageId=40178 +Language=English +%1 +. +MessageId=40179 +Language=English +%1 +. +MessageId=40180 +Language=English +%1 +. +MessageId=40181 +Language=English +%1 +. +MessageId=40182 +Language=English +%1 +. +MessageId=40183 +Language=English +%1 +. +MessageId=40184 +Language=English +%1 +. +MessageId=40185 +Language=English +%1 +. +MessageId=40186 +Language=English +%1 +. +MessageId=40187 +Language=English +%1 +. +MessageId=40188 +Language=English +%1 +. +MessageId=40189 +Language=English +%1 +. +MessageId=40190 +Language=English +%1 +. +MessageId=40191 +Language=English +%1 +. +MessageId=40192 +Language=English +%1 +. +MessageId=40193 +Language=English +%1 +. +MessageId=40194 +Language=English +%1 +. +MessageId=40195 +Language=English +%1 +. +MessageId=40196 +Language=English +%1 +. +MessageId=40197 +Language=English +%1 +. +MessageId=40198 +Language=English +%1 +. +MessageId=40199 +Language=English +%1 +. +MessageId=40200 +Language=English +%1 +. +MessageId=40201 +Language=English +%1 +. +MessageId=40202 +Language=English +%1 +. +MessageId=40203 +Language=English +%1 +. +MessageId=40204 +Language=English +%1 +. +MessageId=40205 +Language=English +%1 +. +MessageId=40206 +Language=English +%1 +. +MessageId=40207 +Language=English +%1 +. +MessageId=40208 +Language=English +%1 +. +MessageId=40209 +Language=English +%1 +. +MessageId=40210 +Language=English +%1 +. +MessageId=40211 +Language=English +%1 +. +MessageId=40212 +Language=English +%1 +. +MessageId=40213 +Language=English +%1 +. +MessageId=40214 +Language=English +%1 +. +MessageId=40215 +Language=English +%1 +. +MessageId=40216 +Language=English +%1 +. +MessageId=40217 +Language=English +%1 +. +MessageId=40218 +Language=English +%1 +. +MessageId=40219 +Language=English +%1 +. +MessageId=40220 +Language=English +%1 +. +MessageId=40221 +Language=English +%1 +. +MessageId=40222 +Language=English +%1 +. +MessageId=40223 +Language=English +%1 +. +MessageId=40224 +Language=English +%1 +. +MessageId=40225 +Language=English +%1 +. +MessageId=40226 +Language=English +%1 +. +MessageId=40227 +Language=English +%1 +. +MessageId=40228 +Language=English +%1 +. +MessageId=40229 +Language=English +%1 +. +MessageId=40230 +Language=English +%1 +. +MessageId=40231 +Language=English +%1 +. +MessageId=40232 +Language=English +%1 +. +MessageId=40233 +Language=English +%1 +. +MessageId=40234 +Language=English +%1 +. +MessageId=40235 +Language=English +%1 +. +MessageId=40236 +Language=English +%1 +. +MessageId=40237 +Language=English +%1 +. +MessageId=40238 +Language=English +%1 +. +MessageId=40239 +Language=English +%1 +. +MessageId=40240 +Language=English +%1 +. +MessageId=40241 +Language=English +%1 +. +MessageId=40242 +Language=English +%1 +. +MessageId=40243 +Language=English +%1 +. +MessageId=40244 +Language=English +%1 +. +MessageId=40245 +Language=English +%1 +. +MessageId=40246 +Language=English +%1 +. +MessageId=40247 +Language=English +%1 +. +MessageId=40248 +Language=English +%1 +. +MessageId=40249 +Language=English +%1 +. +MessageId=40250 +Language=English +%1 +. +MessageId=40251 +Language=English +%1 +. +MessageId=40252 +Language=English +%1 +. +MessageId=40253 +Language=English +%1 +. +MessageId=40254 +Language=English +%1 +. +MessageId=40255 +Language=English +%1 +. +MessageId=40256 +Language=English +%1 +. +MessageId=40257 +Language=English +%1 +. +MessageId=40258 +Language=English +%1 +. +MessageId=40259 +Language=English +%1 +. +MessageId=40260 +Language=English +%1 +. +MessageId=40261 +Language=English +%1 +. +MessageId=40262 +Language=English +%1 +. +MessageId=40263 +Language=English +%1 +. +MessageId=40264 +Language=English +%1 +. +MessageId=40265 +Language=English +%1 +. +MessageId=40266 +Language=English +%1 +. +MessageId=40267 +Language=English +%1 +. +MessageId=40268 +Language=English +%1 +. +MessageId=40269 +Language=English +%1 +. +MessageId=40270 +Language=English +%1 +. +MessageId=40271 +Language=English +%1 +. +MessageId=40272 +Language=English +%1 +. +MessageId=40273 +Language=English +%1 +. +MessageId=40274 +Language=English +%1 +. +MessageId=40275 +Language=English +%1 +. +MessageId=40276 +Language=English +%1 +. +MessageId=40277 +Language=English +%1 +. +MessageId=40278 +Language=English +%1 +. +MessageId=40279 +Language=English +%1 +. +MessageId=40280 +Language=English +%1 +. +MessageId=40281 +Language=English +%1 +. +MessageId=40282 +Language=English +%1 +. +MessageId=40283 +Language=English +%1 +. +MessageId=40284 +Language=English +%1 +. +MessageId=40285 +Language=English +%1 +. +MessageId=40286 +Language=English +%1 +. +MessageId=40287 +Language=English +%1 +. +MessageId=40288 +Language=English +%1 +. +MessageId=40289 +Language=English +%1 +. +MessageId=40290 +Language=English +%1 +. +MessageId=40291 +Language=English +%1 +. +MessageId=40292 +Language=English +%1 +. +MessageId=40293 +Language=English +%1 +. +MessageId=40294 +Language=English +%1 +. +MessageId=40295 +Language=English +%1 +. +MessageId=40296 +Language=English +%1 +. +MessageId=40297 +Language=English +%1 +. +MessageId=40298 +Language=English +%1 +. +MessageId=40299 +Language=English +%1 +. +MessageId=40300 +Language=English +%1 +. +MessageId=40301 +Language=English +%1 +. +MessageId=40302 +Language=English +%1 +. +MessageId=40303 +Language=English +%1 +. +MessageId=40304 +Language=English +%1 +. +MessageId=40305 +Language=English +%1 +. +MessageId=40306 +Language=English +%1 +. +MessageId=40307 +Language=English +%1 +. +MessageId=40308 +Language=English +%1 +. +MessageId=40309 +Language=English +%1 +. +MessageId=40310 +Language=English +%1 +. +MessageId=40311 +Language=English +%1 +. +MessageId=40312 +Language=English +%1 +. +MessageId=40313 +Language=English +%1 +. +MessageId=40314 +Language=English +%1 +. +MessageId=40315 +Language=English +%1 +. +MessageId=40316 +Language=English +%1 +. +MessageId=40317 +Language=English +%1 +. +MessageId=40318 +Language=English +%1 +. +MessageId=40319 +Language=English +%1 +. +MessageId=40320 +Language=English +%1 +. +MessageId=40321 +Language=English +%1 +. +MessageId=40322 +Language=English +%1 +. +MessageId=40323 +Language=English +%1 +. +MessageId=40324 +Language=English +%1 +. +MessageId=40325 +Language=English +%1 +. +MessageId=40326 +Language=English +%1 +. +MessageId=40327 +Language=English +%1 +. +MessageId=40328 +Language=English +%1 +. +MessageId=40329 +Language=English +%1 +. +MessageId=40330 +Language=English +%1 +. +MessageId=40331 +Language=English +%1 +. +MessageId=40332 +Language=English +%1 +. +MessageId=40333 +Language=English +%1 +. +MessageId=40334 +Language=English +%1 +. +MessageId=40335 +Language=English +%1 +. +MessageId=40336 +Language=English +%1 +. +MessageId=40337 +Language=English +%1 +. +MessageId=40338 +Language=English +%1 +. +MessageId=40339 +Language=English +%1 +. +MessageId=40340 +Language=English +%1 +. +MessageId=40341 +Language=English +%1 +. +MessageId=40342 +Language=English +%1 +. +MessageId=40343 +Language=English +%1 +. +MessageId=40344 +Language=English +%1 +. +MessageId=40345 +Language=English +%1 +. +MessageId=40346 +Language=English +%1 +. +MessageId=40347 +Language=English +%1 +. +MessageId=40348 +Language=English +%1 +. +MessageId=40349 +Language=English +%1 +. +MessageId=40350 +Language=English +%1 +. +MessageId=40351 +Language=English +%1 +. +MessageId=40352 +Language=English +%1 +. +MessageId=40353 +Language=English +%1 +. +MessageId=40354 +Language=English +%1 +. +MessageId=40355 +Language=English +%1 +. +MessageId=40356 +Language=English +%1 +. +MessageId=40357 +Language=English +%1 +. +MessageId=40358 +Language=English +%1 +. +MessageId=40359 +Language=English +%1 +. +MessageId=40360 +Language=English +%1 +. +MessageId=40361 +Language=English +%1 +. +MessageId=40362 +Language=English +%1 +. +MessageId=40363 +Language=English +%1 +. +MessageId=40364 +Language=English +%1 +. +MessageId=40365 +Language=English +%1 +. +MessageId=40366 +Language=English +%1 +. +MessageId=40367 +Language=English +%1 +. +MessageId=40368 +Language=English +%1 +. +MessageId=40369 +Language=English +%1 +. +MessageId=40370 +Language=English +%1 +. +MessageId=40371 +Language=English +%1 +. +MessageId=40372 +Language=English +%1 +. +MessageId=40373 +Language=English +%1 +. +MessageId=40374 +Language=English +%1 +. +MessageId=40375 +Language=English +%1 +. +MessageId=40376 +Language=English +%1 +. +MessageId=40377 +Language=English +%1 +. +MessageId=40378 +Language=English +%1 +. +MessageId=40379 +Language=English +%1 +. +MessageId=40380 +Language=English +%1 +. +MessageId=40381 +Language=English +%1 +. +MessageId=40382 +Language=English +%1 +. +MessageId=40383 +Language=English +%1 +. +MessageId=40384 +Language=English +%1 +. +MessageId=40385 +Language=English +%1 +. +MessageId=40386 +Language=English +%1 +. +MessageId=40387 +Language=English +%1 +. +MessageId=40388 +Language=English +%1 +. +MessageId=40389 +Language=English +%1 +. +MessageId=40390 +Language=English +%1 +. +MessageId=40391 +Language=English +%1 +. +MessageId=40392 +Language=English +%1 +. +MessageId=40393 +Language=English +%1 +. +MessageId=40394 +Language=English +%1 +. +MessageId=40395 +Language=English +%1 +. +MessageId=40396 +Language=English +%1 +. +MessageId=40397 +Language=English +%1 +. +MessageId=40398 +Language=English +%1 +. +MessageId=40399 +Language=English +%1 +. +MessageId=40400 +Language=English +%1 +. +MessageId=40401 +Language=English +%1 +. +MessageId=40402 +Language=English +%1 +. +MessageId=40403 +Language=English +%1 +. +MessageId=40404 +Language=English +%1 +. +MessageId=40405 +Language=English +%1 +. +MessageId=40406 +Language=English +%1 +. +MessageId=40407 +Language=English +%1 +. +MessageId=40408 +Language=English +%1 +. +MessageId=40409 +Language=English +%1 +. +MessageId=40410 +Language=English +%1 +. +MessageId=40411 +Language=English +%1 +. +MessageId=40412 +Language=English +%1 +. +MessageId=40413 +Language=English +%1 +. +MessageId=40414 +Language=English +%1 +. +MessageId=40415 +Language=English +%1 +. +MessageId=40416 +Language=English +%1 +. +MessageId=40417 +Language=English +%1 +. +MessageId=40418 +Language=English +%1 +. +MessageId=40419 +Language=English +%1 +. +MessageId=40420 +Language=English +%1 +. +MessageId=40421 +Language=English +%1 +. +MessageId=40422 +Language=English +%1 +. +MessageId=40423 +Language=English +%1 +. +MessageId=40424 +Language=English +%1 +. +MessageId=40425 +Language=English +%1 +. +MessageId=40426 +Language=English +%1 +. +MessageId=40427 +Language=English +%1 +. +MessageId=40428 +Language=English +%1 +. +MessageId=40429 +Language=English +%1 +. +MessageId=40430 +Language=English +%1 +. +MessageId=40431 +Language=English +%1 +. +MessageId=40432 +Language=English +%1 +. +MessageId=40433 +Language=English +%1 +. +MessageId=40434 +Language=English +%1 +. +MessageId=40435 +Language=English +%1 +. +MessageId=40436 +Language=English +%1 +. +MessageId=40437 +Language=English +%1 +. +MessageId=40438 +Language=English +%1 +. +MessageId=40439 +Language=English +%1 +. +MessageId=40440 +Language=English +%1 +. +MessageId=40441 +Language=English +%1 +. +MessageId=40442 +Language=English +%1 +. +MessageId=40443 +Language=English +%1 +. +MessageId=40444 +Language=English +%1 +. +MessageId=40445 +Language=English +%1 +. +MessageId=40446 +Language=English +%1 +. +MessageId=40447 +Language=English +%1 +. +MessageId=40448 +Language=English +%1 +. +MessageId=40449 +Language=English +%1 +. +MessageId=40450 +Language=English +%1 +. +MessageId=40451 +Language=English +%1 +. +MessageId=40452 +Language=English +%1 +. +MessageId=40453 +Language=English +%1 +. +MessageId=40454 +Language=English +%1 +. +MessageId=40455 +Language=English +%1 +. +MessageId=40456 +Language=English +%1 +. +MessageId=40457 +Language=English +%1 +. +MessageId=40458 +Language=English +%1 +. +MessageId=40459 +Language=English +%1 +. +MessageId=40460 +Language=English +%1 +. +MessageId=40461 +Language=English +%1 +. +MessageId=40462 +Language=English +%1 +. +MessageId=40463 +Language=English +%1 +. +MessageId=40464 +Language=English +%1 +. +MessageId=40465 +Language=English +%1 +. +MessageId=40466 +Language=English +%1 +. +MessageId=40467 +Language=English +%1 +. +MessageId=40468 +Language=English +%1 +. +MessageId=40469 +Language=English +%1 +. +MessageId=40470 +Language=English +%1 +. +MessageId=40471 +Language=English +%1 +. +MessageId=40472 +Language=English +%1 +. +MessageId=40473 +Language=English +%1 +. +MessageId=40474 +Language=English +%1 +. +MessageId=40475 +Language=English +%1 +. +MessageId=40476 +Language=English +%1 +. +MessageId=40477 +Language=English +%1 +. +MessageId=40478 +Language=English +%1 +. +MessageId=40479 +Language=English +%1 +. +MessageId=40480 +Language=English +%1 +. +MessageId=40481 +Language=English +%1 +. +MessageId=40482 +Language=English +%1 +. +MessageId=40483 +Language=English +%1 +. +MessageId=40484 +Language=English +%1 +. +MessageId=40485 +Language=English +%1 +. +MessageId=40486 +Language=English +%1 +. +MessageId=40487 +Language=English +%1 +. +MessageId=40488 +Language=English +%1 +. +MessageId=40489 +Language=English +%1 +. +MessageId=40490 +Language=English +%1 +. +MessageId=40491 +Language=English +%1 +. +MessageId=40492 +Language=English +%1 +. +MessageId=40493 +Language=English +%1 +. +MessageId=40494 +Language=English +%1 +. +MessageId=40495 +Language=English +%1 +. +MessageId=40496 +Language=English +%1 +. +MessageId=40497 +Language=English +%1 +. +MessageId=40498 +Language=English +%1 +. +MessageId=40499 +Language=English +%1 +. +MessageId=40500 +Language=English +%1 +. +MessageId=40501 +Language=English +%1 +. +MessageId=40502 +Language=English +%1 +. +MessageId=40503 +Language=English +%1 +. +MessageId=40504 +Language=English +%1 +. +MessageId=40505 +Language=English +%1 +. +MessageId=40506 +Language=English +%1 +. +MessageId=40507 +Language=English +%1 +. +MessageId=40508 +Language=English +%1 +. +MessageId=40509 +Language=English +%1 +. +MessageId=40510 +Language=English +%1 +. +MessageId=40511 +Language=English +%1 +. +MessageId=40512 +Language=English +%1 +. +MessageId=40513 +Language=English +%1 +. +MessageId=40514 +Language=English +%1 +. +MessageId=40515 +Language=English +%1 +. +MessageId=40516 +Language=English +%1 +. +MessageId=40517 +Language=English +%1 +. +MessageId=40518 +Language=English +%1 +. +MessageId=40519 +Language=English +%1 +. +MessageId=40520 +Language=English +%1 +. +MessageId=40521 +Language=English +%1 +. +MessageId=40522 +Language=English +%1 +. +MessageId=40523 +Language=English +%1 +. +MessageId=40524 +Language=English +%1 +. +MessageId=40525 +Language=English +%1 +. +MessageId=40526 +Language=English +%1 +. +MessageId=40527 +Language=English +%1 +. +MessageId=40528 +Language=English +%1 +. +MessageId=40529 +Language=English +%1 +. +MessageId=40530 +Language=English +%1 +. +MessageId=40531 +Language=English +%1 +. +MessageId=40532 +Language=English +%1 +. +MessageId=40533 +Language=English +%1 +. +MessageId=40534 +Language=English +%1 +. +MessageId=40535 +Language=English +%1 +. +MessageId=40536 +Language=English +%1 +. +MessageId=40537 +Language=English +%1 +. +MessageId=40538 +Language=English +%1 +. +MessageId=40539 +Language=English +%1 +. +MessageId=40540 +Language=English +%1 +. +MessageId=40541 +Language=English +%1 +. +MessageId=40542 +Language=English +%1 +. +MessageId=40543 +Language=English +%1 +. +MessageId=40544 +Language=English +%1 +. +MessageId=40545 +Language=English +%1 +. +MessageId=40546 +Language=English +%1 +. +MessageId=40547 +Language=English +%1 +. +MessageId=40548 +Language=English +%1 +. +MessageId=40549 +Language=English +%1 +. +MessageId=40550 +Language=English +%1 +. +MessageId=40551 +Language=English +%1 +. +MessageId=40552 +Language=English +%1 +. +MessageId=40553 +Language=English +%1 +. +MessageId=40554 +Language=English +%1 +. +MessageId=40555 +Language=English +%1 +. +MessageId=40556 +Language=English +%1 +. +MessageId=40557 +Language=English +%1 +. +MessageId=40558 +Language=English +%1 +. +MessageId=40559 +Language=English +%1 +. +MessageId=40560 +Language=English +%1 +. +MessageId=40561 +Language=English +%1 +. +MessageId=40562 +Language=English +%1 +. +MessageId=40563 +Language=English +%1 +. +MessageId=40564 +Language=English +%1 +. +MessageId=40565 +Language=English +%1 +. +MessageId=40566 +Language=English +%1 +. +MessageId=40567 +Language=English +%1 +. +MessageId=40568 +Language=English +%1 +. +MessageId=40569 +Language=English +%1 +. +MessageId=40570 +Language=English +%1 +. +MessageId=40571 +Language=English +%1 +. +MessageId=40572 +Language=English +%1 +. +MessageId=40573 +Language=English +%1 +. +MessageId=40574 +Language=English +%1 +. +MessageId=40575 +Language=English +%1 +. +MessageId=40576 +Language=English +%1 +. +MessageId=40577 +Language=English +%1 +. +MessageId=40578 +Language=English +%1 +. +MessageId=40579 +Language=English +%1 +. +MessageId=40580 +Language=English +%1 +. +MessageId=40581 +Language=English +%1 +. +MessageId=40582 +Language=English +%1 +. +MessageId=40583 +Language=English +%1 +. +MessageId=40584 +Language=English +%1 +. +MessageId=40585 +Language=English +%1 +. +MessageId=40586 +Language=English +%1 +. +MessageId=40587 +Language=English +%1 +. +MessageId=40588 +Language=English +%1 +. +MessageId=40589 +Language=English +%1 +. +MessageId=40590 +Language=English +%1 +. +MessageId=40591 +Language=English +%1 +. +MessageId=40592 +Language=English +%1 +. +MessageId=40593 +Language=English +%1 +. +MessageId=40594 +Language=English +%1 +. +MessageId=40595 +Language=English +%1 +. +MessageId=40596 +Language=English +%1 +. +MessageId=40597 +Language=English +%1 +. +MessageId=40598 +Language=English +%1 +. +MessageId=40599 +Language=English +%1 +. +MessageId=40600 +Language=English +%1 +. +MessageId=40601 +Language=English +%1 +. +MessageId=40602 +Language=English +%1 +. +MessageId=40603 +Language=English +%1 +. +MessageId=40604 +Language=English +%1 +. +MessageId=40605 +Language=English +%1 +. +MessageId=40606 +Language=English +%1 +. +MessageId=40607 +Language=English +%1 +. +MessageId=40608 +Language=English +%1 +. +MessageId=40609 +Language=English +%1 +. +MessageId=40610 +Language=English +%1 +. +MessageId=40611 +Language=English +%1 +. +MessageId=40612 +Language=English +%1 +. +MessageId=40613 +Language=English +%1 +. +MessageId=40614 +Language=English +%1 +. +MessageId=40615 +Language=English +%1 +. +MessageId=40616 +Language=English +%1 +. +MessageId=40617 +Language=English +%1 +. +MessageId=40618 +Language=English +%1 +. +MessageId=40619 +Language=English +%1 +. +MessageId=40620 +Language=English +%1 +. +MessageId=40621 +Language=English +%1 +. +MessageId=40622 +Language=English +%1 +. +MessageId=40623 +Language=English +%1 +. +MessageId=40624 +Language=English +%1 +. +MessageId=40625 +Language=English +%1 +. +MessageId=40626 +Language=English +%1 +. +MessageId=40627 +Language=English +%1 +. +MessageId=40628 +Language=English +%1 +. +MessageId=40629 +Language=English +%1 +. +MessageId=40630 +Language=English +%1 +. +MessageId=40631 +Language=English +%1 +. +MessageId=40632 +Language=English +%1 +. +MessageId=40633 +Language=English +%1 +. +MessageId=40634 +Language=English +%1 +. +MessageId=40635 +Language=English +%1 +. +MessageId=40636 +Language=English +%1 +. +MessageId=40637 +Language=English +%1 +. +MessageId=40638 +Language=English +%1 +. +MessageId=40639 +Language=English +%1 +. +MessageId=40640 +Language=English +%1 +. +MessageId=40641 +Language=English +%1 +. +MessageId=40642 +Language=English +%1 +. +MessageId=40643 +Language=English +%1 +. +MessageId=40644 +Language=English +%1 +. +MessageId=40645 +Language=English +%1 +. +MessageId=40646 +Language=English +%1 +. +MessageId=40647 +Language=English +%1 +. +MessageId=40648 +Language=English +%1 +. +MessageId=40649 +Language=English +%1 +. +MessageId=40650 +Language=English +%1 +. +MessageId=40651 +Language=English +%1 +. +MessageId=40652 +Language=English +%1 +. +MessageId=40653 +Language=English +%1 +. +MessageId=40654 +Language=English +%1 +. +MessageId=40655 +Language=English +%1 +. +MessageId=40656 +Language=English +%1 +. +MessageId=40657 +Language=English +%1 +. +MessageId=40658 +Language=English +%1 +. +MessageId=40659 +Language=English +%1 +. +MessageId=40660 +Language=English +%1 +. +MessageId=40661 +Language=English +%1 +. +MessageId=40662 +Language=English +%1 +. +MessageId=40663 +Language=English +%1 +. +MessageId=40664 +Language=English +%1 +. +MessageId=40665 +Language=English +%1 +. +MessageId=40666 +Language=English +%1 +. +MessageId=40667 +Language=English +%1 +. +MessageId=40668 +Language=English +%1 +. +MessageId=40669 +Language=English +%1 +. +MessageId=40670 +Language=English +%1 +. +MessageId=40671 +Language=English +%1 +. +MessageId=40672 +Language=English +%1 +. +MessageId=40673 +Language=English +%1 +. +MessageId=40674 +Language=English +%1 +. +MessageId=40675 +Language=English +%1 +. +MessageId=40676 +Language=English +%1 +. +MessageId=40677 +Language=English +%1 +. +MessageId=40678 +Language=English +%1 +. +MessageId=40679 +Language=English +%1 +. +MessageId=40680 +Language=English +%1 +. +MessageId=40681 +Language=English +%1 +. +MessageId=40682 +Language=English +%1 +. +MessageId=40683 +Language=English +%1 +. +MessageId=40684 +Language=English +%1 +. +MessageId=40685 +Language=English +%1 +. +MessageId=40686 +Language=English +%1 +. +MessageId=40687 +Language=English +%1 +. +MessageId=40688 +Language=English +%1 +. +MessageId=40689 +Language=English +%1 +. +MessageId=40690 +Language=English +%1 +. +MessageId=40691 +Language=English +%1 +. +MessageId=40692 +Language=English +%1 +. +MessageId=40693 +Language=English +%1 +. +MessageId=40694 +Language=English +%1 +. +MessageId=40695 +Language=English +%1 +. +MessageId=40696 +Language=English +%1 +. +MessageId=40697 +Language=English +%1 +. +MessageId=40698 +Language=English +%1 +. +MessageId=40699 +Language=English +%1 +. +MessageId=40700 +Language=English +%1 +. +MessageId=40701 +Language=English +%1 +. +MessageId=40702 +Language=English +%1 +. +MessageId=40703 +Language=English +%1 +. +MessageId=40704 +Language=English +%1 +. +MessageId=40705 +Language=English +%1 +. +MessageId=40706 +Language=English +%1 +. +MessageId=40707 +Language=English +%1 +. +MessageId=40708 +Language=English +%1 +. +MessageId=40709 +Language=English +%1 +. +MessageId=40710 +Language=English +%1 +. +MessageId=40711 +Language=English +%1 +. +MessageId=40712 +Language=English +%1 +. +MessageId=40713 +Language=English +%1 +. +MessageId=40714 +Language=English +%1 +. +MessageId=40715 +Language=English +%1 +. +MessageId=40716 +Language=English +%1 +. +MessageId=40717 +Language=English +%1 +. +MessageId=40718 +Language=English +%1 +. +MessageId=40719 +Language=English +%1 +. +MessageId=40720 +Language=English +%1 +. +MessageId=40721 +Language=English +%1 +. +MessageId=40722 +Language=English +%1 +. +MessageId=40723 +Language=English +%1 +. +MessageId=40724 +Language=English +%1 +. +MessageId=40725 +Language=English +%1 +. +MessageId=40726 +Language=English +%1 +. +MessageId=40727 +Language=English +%1 +. +MessageId=40728 +Language=English +%1 +. +MessageId=40729 +Language=English +%1 +. +MessageId=40730 +Language=English +%1 +. +MessageId=40731 +Language=English +%1 +. +MessageId=40732 +Language=English +%1 +. +MessageId=40733 +Language=English +%1 +. +MessageId=40734 +Language=English +%1 +. +MessageId=40735 +Language=English +%1 +. +MessageId=40736 +Language=English +%1 +. +MessageId=40737 +Language=English +%1 +. +MessageId=40738 +Language=English +%1 +. +MessageId=40739 +Language=English +%1 +. +MessageId=40740 +Language=English +%1 +. +MessageId=40741 +Language=English +%1 +. +MessageId=40742 +Language=English +%1 +. +MessageId=40743 +Language=English +%1 +. +MessageId=40744 +Language=English +%1 +. +MessageId=40745 +Language=English +%1 +. +MessageId=40746 +Language=English +%1 +. +MessageId=40747 +Language=English +%1 +. +MessageId=40748 +Language=English +%1 +. +MessageId=40749 +Language=English +%1 +. +MessageId=40750 +Language=English +%1 +. +MessageId=40751 +Language=English +%1 +. +MessageId=40752 +Language=English +%1 +. +MessageId=40753 +Language=English +%1 +. +MessageId=40754 +Language=English +%1 +. +MessageId=40755 +Language=English +%1 +. +MessageId=40756 +Language=English +%1 +. +MessageId=40757 +Language=English +%1 +. +MessageId=40758 +Language=English +%1 +. +MessageId=40759 +Language=English +%1 +. +MessageId=40760 +Language=English +%1 +. +MessageId=40761 +Language=English +%1 +. +MessageId=40762 +Language=English +%1 +. +MessageId=40763 +Language=English +%1 +. +MessageId=40764 +Language=English +%1 +. +MessageId=40765 +Language=English +%1 +. +MessageId=40766 +Language=English +%1 +. +MessageId=40767 +Language=English +%1 +. +MessageId=40768 +Language=English +%1 +. +MessageId=40769 +Language=English +%1 +. +MessageId=40770 +Language=English +%1 +. +MessageId=40771 +Language=English +%1 +. +MessageId=40772 +Language=English +%1 +. +MessageId=40773 +Language=English +%1 +. +MessageId=40774 +Language=English +%1 +. +MessageId=40775 +Language=English +%1 +. +MessageId=40776 +Language=English +%1 +. +MessageId=40777 +Language=English +%1 +. +MessageId=40778 +Language=English +%1 +. +MessageId=40779 +Language=English +%1 +. +MessageId=40780 +Language=English +%1 +. +MessageId=40781 +Language=English +%1 +. +MessageId=40782 +Language=English +%1 +. +MessageId=40783 +Language=English +%1 +. +MessageId=40784 +Language=English +%1 +. +MessageId=40785 +Language=English +%1 +. +MessageId=40786 +Language=English +%1 +. +MessageId=40787 +Language=English +%1 +. +MessageId=40788 +Language=English +%1 +. +MessageId=40789 +Language=English +%1 +. +MessageId=40790 +Language=English +%1 +. +MessageId=40791 +Language=English +%1 +. +MessageId=40792 +Language=English +%1 +. +MessageId=40793 +Language=English +%1 +. +MessageId=40794 +Language=English +%1 +. +MessageId=40795 +Language=English +%1 +. +MessageId=40796 +Language=English +%1 +. +MessageId=40797 +Language=English +%1 +. +MessageId=40798 +Language=English +%1 +. +MessageId=40799 +Language=English +%1 +. +MessageId=40800 +Language=English +%1 +. +MessageId=40801 +Language=English +%1 +. +MessageId=40802 +Language=English +%1 +. +MessageId=40803 +Language=English +%1 +. +MessageId=40804 +Language=English +%1 +. +MessageId=40805 +Language=English +%1 +. +MessageId=40806 +Language=English +%1 +. +MessageId=40807 +Language=English +%1 +. +MessageId=40808 +Language=English +%1 +. +MessageId=40809 +Language=English +%1 +. +MessageId=40810 +Language=English +%1 +. +MessageId=40811 +Language=English +%1 +. +MessageId=40812 +Language=English +%1 +. +MessageId=40813 +Language=English +%1 +. +MessageId=40814 +Language=English +%1 +. +MessageId=40815 +Language=English +%1 +. +MessageId=40816 +Language=English +%1 +. +MessageId=40817 +Language=English +%1 +. +MessageId=40818 +Language=English +%1 +. +MessageId=40819 +Language=English +%1 +. +MessageId=40820 +Language=English +%1 +. +MessageId=40821 +Language=English +%1 +. +MessageId=40822 +Language=English +%1 +. +MessageId=40823 +Language=English +%1 +. +MessageId=40824 +Language=English +%1 +. +MessageId=40825 +Language=English +%1 +. +MessageId=40826 +Language=English +%1 +. +MessageId=40827 +Language=English +%1 +. +MessageId=40828 +Language=English +%1 +. +MessageId=40829 +Language=English +%1 +. +MessageId=40830 +Language=English +%1 +. +MessageId=40831 +Language=English +%1 +. +MessageId=40832 +Language=English +%1 +. +MessageId=40833 +Language=English +%1 +. +MessageId=40834 +Language=English +%1 +. +MessageId=40835 +Language=English +%1 +. +MessageId=40836 +Language=English +%1 +. +MessageId=40837 +Language=English +%1 +. +MessageId=40838 +Language=English +%1 +. +MessageId=40839 +Language=English +%1 +. +MessageId=40840 +Language=English +%1 +. +MessageId=40841 +Language=English +%1 +. +MessageId=40842 +Language=English +%1 +. +MessageId=40843 +Language=English +%1 +. +MessageId=40844 +Language=English +%1 +. +MessageId=40845 +Language=English +%1 +. +MessageId=40846 +Language=English +%1 +. +MessageId=40847 +Language=English +%1 +. +MessageId=40848 +Language=English +%1 +. +MessageId=40849 +Language=English +%1 +. +MessageId=40850 +Language=English +%1 +. +MessageId=40851 +Language=English +%1 +. +MessageId=40852 +Language=English +%1 +. +MessageId=40853 +Language=English +%1 +. +MessageId=40854 +Language=English +%1 +. +MessageId=40855 +Language=English +%1 +. +MessageId=40856 +Language=English +%1 +. +MessageId=40857 +Language=English +%1 +. +MessageId=40858 +Language=English +%1 +. +MessageId=40859 +Language=English +%1 +. +MessageId=40860 +Language=English +%1 +. +MessageId=40861 +Language=English +%1 +. +MessageId=40862 +Language=English +%1 +. +MessageId=40863 +Language=English +%1 +. +MessageId=40864 +Language=English +%1 +. +MessageId=40865 +Language=English +%1 +. +MessageId=40866 +Language=English +%1 +. +MessageId=40867 +Language=English +%1 +. +MessageId=40868 +Language=English +%1 +. +MessageId=40869 +Language=English +%1 +. +MessageId=40870 +Language=English +%1 +. +MessageId=40871 +Language=English +%1 +. +MessageId=40872 +Language=English +%1 +. +MessageId=40873 +Language=English +%1 +. +MessageId=40874 +Language=English +%1 +. +MessageId=40875 +Language=English +%1 +. +MessageId=40876 +Language=English +%1 +. +MessageId=40877 +Language=English +%1 +. +MessageId=40878 +Language=English +%1 +. +MessageId=40879 +Language=English +%1 +. +MessageId=40880 +Language=English +%1 +. +MessageId=40881 +Language=English +%1 +. +MessageId=40882 +Language=English +%1 +. +MessageId=40883 +Language=English +%1 +. +MessageId=40884 +Language=English +%1 +. +MessageId=40885 +Language=English +%1 +. +MessageId=40886 +Language=English +%1 +. +MessageId=40887 +Language=English +%1 +. +MessageId=40888 +Language=English +%1 +. +MessageId=40889 +Language=English +%1 +. +MessageId=40890 +Language=English +%1 +. +MessageId=40891 +Language=English +%1 +. +MessageId=40892 +Language=English +%1 +. +MessageId=40893 +Language=English +%1 +. +MessageId=40894 +Language=English +%1 +. +MessageId=40895 +Language=English +%1 +. +MessageId=40896 +Language=English +%1 +. +MessageId=40897 +Language=English +%1 +. +MessageId=40898 +Language=English +%1 +. +MessageId=40899 +Language=English +%1 +. +MessageId=40900 +Language=English +%1 +. +MessageId=40901 +Language=English +%1 +. +MessageId=40902 +Language=English +%1 +. +MessageId=40903 +Language=English +%1 +. +MessageId=40904 +Language=English +%1 +. +MessageId=40905 +Language=English +%1 +. +MessageId=40906 +Language=English +%1 +. +MessageId=40907 +Language=English +%1 +. +MessageId=40908 +Language=English +%1 +. +MessageId=40909 +Language=English +%1 +. +MessageId=40910 +Language=English +%1 +. +MessageId=40911 +Language=English +%1 +. +MessageId=40912 +Language=English +%1 +. +MessageId=40913 +Language=English +%1 +. +MessageId=40914 +Language=English +%1 +. +MessageId=40915 +Language=English +%1 +. +MessageId=40916 +Language=English +%1 +. +MessageId=40917 +Language=English +%1 +. +MessageId=40918 +Language=English +%1 +. +MessageId=40919 +Language=English +%1 +. +MessageId=40920 +Language=English +%1 +. +MessageId=40921 +Language=English +%1 +. +MessageId=40922 +Language=English +%1 +. +MessageId=40923 +Language=English +%1 +. +MessageId=40924 +Language=English +%1 +. +MessageId=40925 +Language=English +%1 +. +MessageId=40926 +Language=English +%1 +. +MessageId=40927 +Language=English +%1 +. +MessageId=40928 +Language=English +%1 +. +MessageId=40929 +Language=English +%1 +. +MessageId=40930 +Language=English +%1 +. +MessageId=40931 +Language=English +%1 +. +MessageId=40932 +Language=English +%1 +. +MessageId=40933 +Language=English +%1 +. +MessageId=40934 +Language=English +%1 +. +MessageId=40935 +Language=English +%1 +. +MessageId=40936 +Language=English +%1 +. +MessageId=40937 +Language=English +%1 +. +MessageId=40938 +Language=English +%1 +. +MessageId=40939 +Language=English +%1 +. +MessageId=40940 +Language=English +%1 +. +MessageId=40941 +Language=English +%1 +. +MessageId=40942 +Language=English +%1 +. +MessageId=40943 +Language=English +%1 +. +MessageId=40944 +Language=English +%1 +. +MessageId=40945 +Language=English +%1 +. +MessageId=40946 +Language=English +%1 +. +MessageId=40947 +Language=English +%1 +. +MessageId=40948 +Language=English +%1 +. +MessageId=40949 +Language=English +%1 +. +MessageId=40950 +Language=English +%1 +. +MessageId=40951 +Language=English +%1 +. +MessageId=40952 +Language=English +%1 +. +MessageId=40953 +Language=English +%1 +. +MessageId=40954 +Language=English +%1 +. +MessageId=40955 +Language=English +%1 +. +MessageId=40956 +Language=English +%1 +. +MessageId=40957 +Language=English +%1 +. +MessageId=40958 +Language=English +%1 +. +MessageId=40959 +Language=English +%1 +. +MessageId=40960 +Language=English +%1 +. +MessageId=40961 +Language=English +%1 +. +MessageId=40962 +Language=English +%1 +. +MessageId=40963 +Language=English +%1 +. +MessageId=40964 +Language=English +%1 +. +MessageId=40965 +Language=English +%1 +. +MessageId=40966 +Language=English +%1 +. +MessageId=40967 +Language=English +%1 +. +MessageId=40968 +Language=English +%1 +. +MessageId=40969 +Language=English +%1 +. +MessageId=40970 +Language=English +%1 +. +MessageId=40971 +Language=English +%1 +. +MessageId=40972 +Language=English +%1 +. +MessageId=40973 +Language=English +%1 +. +MessageId=40974 +Language=English +%1 +. +MessageId=40975 +Language=English +%1 +. +MessageId=40976 +Language=English +%1 +. +MessageId=40977 +Language=English +%1 +. +MessageId=40978 +Language=English +%1 +. +MessageId=40979 +Language=English +%1 +. +MessageId=40980 +Language=English +%1 +. +MessageId=40981 +Language=English +%1 +. +MessageId=40982 +Language=English +%1 +. +MessageId=40983 +Language=English +%1 +. +MessageId=40984 +Language=English +%1 +. +MessageId=40985 +Language=English +%1 +. +MessageId=40986 +Language=English +%1 +. +MessageId=40987 +Language=English +%1 +. +MessageId=40988 +Language=English +%1 +. +MessageId=40989 +Language=English +%1 +. +MessageId=40990 +Language=English +%1 +. +MessageId=40991 +Language=English +%1 +. +MessageId=40992 +Language=English +%1 +. +MessageId=40993 +Language=English +%1 +. +MessageId=40994 +Language=English +%1 +. +MessageId=40995 +Language=English +%1 +. +MessageId=40996 +Language=English +%1 +. +MessageId=40997 +Language=English +%1 +. +MessageId=40998 +Language=English +%1 +. +MessageId=40999 +Language=English +%1 +. +MessageId=41000 +Language=English +%1 +. +MessageId=41001 +Language=English +%1 +. +MessageId=41002 +Language=English +%1 +. +MessageId=41003 +Language=English +%1 +. +MessageId=41004 +Language=English +%1 +. +MessageId=41005 +Language=English +%1 +. +MessageId=41006 +Language=English +%1 +. +MessageId=41007 +Language=English +%1 +. +MessageId=41008 +Language=English +%1 +. +MessageId=41009 +Language=English +%1 +. +MessageId=41010 +Language=English +%1 +. +MessageId=41011 +Language=English +%1 +. +MessageId=41012 +Language=English +%1 +. +MessageId=41013 +Language=English +%1 +. +MessageId=41014 +Language=English +%1 +. +MessageId=41015 +Language=English +%1 +. +MessageId=41016 +Language=English +%1 +. +MessageId=41017 +Language=English +%1 +. +MessageId=41018 +Language=English +%1 +. +MessageId=41019 +Language=English +%1 +. +MessageId=41020 +Language=English +%1 +. +MessageId=41021 +Language=English +%1 +. +MessageId=41022 +Language=English +%1 +. +MessageId=41023 +Language=English +%1 +. +MessageId=41024 +Language=English +%1 +. +MessageId=41025 +Language=English +%1 +. +MessageId=41026 +Language=English +%1 +. +MessageId=41027 +Language=English +%1 +. +MessageId=41028 +Language=English +%1 +. +MessageId=41029 +Language=English +%1 +. +MessageId=41030 +Language=English +%1 +. +MessageId=41031 +Language=English +%1 +. +MessageId=41032 +Language=English +%1 +. +MessageId=41033 +Language=English +%1 +. +MessageId=41034 +Language=English +%1 +. +MessageId=41035 +Language=English +%1 +. +MessageId=41036 +Language=English +%1 +. +MessageId=41037 +Language=English +%1 +. +MessageId=41038 +Language=English +%1 +. +MessageId=41039 +Language=English +%1 +. +MessageId=41040 +Language=English +%1 +. +MessageId=41041 +Language=English +%1 +. +MessageId=41042 +Language=English +%1 +. +MessageId=41043 +Language=English +%1 +. +MessageId=41044 +Language=English +%1 +. +MessageId=41045 +Language=English +%1 +. +MessageId=41046 +Language=English +%1 +. +MessageId=41047 +Language=English +%1 +. +MessageId=41048 +Language=English +%1 +. +MessageId=41049 +Language=English +%1 +. +MessageId=41050 +Language=English +%1 +. +MessageId=41051 +Language=English +%1 +. +MessageId=41052 +Language=English +%1 +. +MessageId=41053 +Language=English +%1 +. +MessageId=41054 +Language=English +%1 +. +MessageId=41055 +Language=English +%1 +. +MessageId=41056 +Language=English +%1 +. +MessageId=41057 +Language=English +%1 +. +MessageId=41058 +Language=English +%1 +. +MessageId=41059 +Language=English +%1 +. +MessageId=41060 +Language=English +%1 +. +MessageId=41061 +Language=English +%1 +. +MessageId=41062 +Language=English +%1 +. +MessageId=41063 +Language=English +%1 +. +MessageId=41064 +Language=English +%1 +. +MessageId=41065 +Language=English +%1 +. +MessageId=41066 +Language=English +%1 +. +MessageId=41067 +Language=English +%1 +. +MessageId=41068 +Language=English +%1 +. +MessageId=41069 +Language=English +%1 +. +MessageId=41070 +Language=English +%1 +. +MessageId=41071 +Language=English +%1 +. +MessageId=41072 +Language=English +%1 +. +MessageId=41073 +Language=English +%1 +. +MessageId=41074 +Language=English +%1 +. +MessageId=41075 +Language=English +%1 +. +MessageId=41076 +Language=English +%1 +. +MessageId=41077 +Language=English +%1 +. +MessageId=41078 +Language=English +%1 +. +MessageId=41079 +Language=English +%1 +. +MessageId=41080 +Language=English +%1 +. +MessageId=41081 +Language=English +%1 +. +MessageId=41082 +Language=English +%1 +. +MessageId=41083 +Language=English +%1 +. +MessageId=41084 +Language=English +%1 +. +MessageId=41085 +Language=English +%1 +. +MessageId=41086 +Language=English +%1 +. +MessageId=41087 +Language=English +%1 +. +MessageId=41088 +Language=English +%1 +. +MessageId=41089 +Language=English +%1 +. +MessageId=41090 +Language=English +%1 +. +MessageId=41091 +Language=English +%1 +. +MessageId=41092 +Language=English +%1 +. +MessageId=41093 +Language=English +%1 +. +MessageId=41094 +Language=English +%1 +. +MessageId=41095 +Language=English +%1 +. +MessageId=41096 +Language=English +%1 +. +MessageId=41097 +Language=English +%1 +. +MessageId=41098 +Language=English +%1 +. +MessageId=41099 +Language=English +%1 +. +MessageId=41100 +Language=English +%1 +. +MessageId=41101 +Language=English +%1 +. +MessageId=41102 +Language=English +%1 +. +MessageId=41103 +Language=English +%1 +. +MessageId=41104 +Language=English +%1 +. +MessageId=41105 +Language=English +%1 +. +MessageId=41106 +Language=English +%1 +. +MessageId=41107 +Language=English +%1 +. +MessageId=41108 +Language=English +%1 +. +MessageId=41109 +Language=English +%1 +. +MessageId=41110 +Language=English +%1 +. +MessageId=41111 +Language=English +%1 +. +MessageId=41112 +Language=English +%1 +. +MessageId=41113 +Language=English +%1 +. +MessageId=41114 +Language=English +%1 +. +MessageId=41115 +Language=English +%1 +. +MessageId=41116 +Language=English +%1 +. +MessageId=41117 +Language=English +%1 +. +MessageId=41118 +Language=English +%1 +. +MessageId=41119 +Language=English +%1 +. +MessageId=41120 +Language=English +%1 +. +MessageId=41121 +Language=English +%1 +. +MessageId=41122 +Language=English +%1 +. +MessageId=41123 +Language=English +%1 +. +MessageId=41124 +Language=English +%1 +. +MessageId=41125 +Language=English +%1 +. +MessageId=41126 +Language=English +%1 +. +MessageId=41127 +Language=English +%1 +. +MessageId=41128 +Language=English +%1 +. +MessageId=41129 +Language=English +%1 +. +MessageId=41130 +Language=English +%1 +. +MessageId=41131 +Language=English +%1 +. +MessageId=41132 +Language=English +%1 +. +MessageId=41133 +Language=English +%1 +. +MessageId=41134 +Language=English +%1 +. +MessageId=41135 +Language=English +%1 +. +MessageId=41136 +Language=English +%1 +. +MessageId=41137 +Language=English +%1 +. +MessageId=41138 +Language=English +%1 +. +MessageId=41139 +Language=English +%1 +. +MessageId=41140 +Language=English +%1 +. +MessageId=41141 +Language=English +%1 +. +MessageId=41142 +Language=English +%1 +. +MessageId=41143 +Language=English +%1 +. +MessageId=41144 +Language=English +%1 +. +MessageId=41145 +Language=English +%1 +. +MessageId=41146 +Language=English +%1 +. +MessageId=41147 +Language=English +%1 +. +MessageId=41148 +Language=English +%1 +. +MessageId=41149 +Language=English +%1 +. +MessageId=41150 +Language=English +%1 +. +MessageId=41151 +Language=English +%1 +. +MessageId=41152 +Language=English +%1 +. +MessageId=41153 +Language=English +%1 +. +MessageId=41154 +Language=English +%1 +. +MessageId=41155 +Language=English +%1 +. +MessageId=41156 +Language=English +%1 +. +MessageId=41157 +Language=English +%1 +. +MessageId=41158 +Language=English +%1 +. +MessageId=41159 +Language=English +%1 +. +MessageId=41160 +Language=English +%1 +. +MessageId=41161 +Language=English +%1 +. +MessageId=41162 +Language=English +%1 +. +MessageId=41163 +Language=English +%1 +. +MessageId=41164 +Language=English +%1 +. +MessageId=41165 +Language=English +%1 +. +MessageId=41166 +Language=English +%1 +. +MessageId=41167 +Language=English +%1 +. +MessageId=41168 +Language=English +%1 +. +MessageId=41169 +Language=English +%1 +. +MessageId=41170 +Language=English +%1 +. +MessageId=41171 +Language=English +%1 +. +MessageId=41172 +Language=English +%1 +. +MessageId=41173 +Language=English +%1 +. +MessageId=41174 +Language=English +%1 +. +MessageId=41175 +Language=English +%1 +. +MessageId=41176 +Language=English +%1 +. +MessageId=41177 +Language=English +%1 +. +MessageId=41178 +Language=English +%1 +. +MessageId=41179 +Language=English +%1 +. +MessageId=41180 +Language=English +%1 +. +MessageId=41181 +Language=English +%1 +. +MessageId=41182 +Language=English +%1 +. +MessageId=41183 +Language=English +%1 +. +MessageId=41184 +Language=English +%1 +. +MessageId=41185 +Language=English +%1 +. +MessageId=41186 +Language=English +%1 +. +MessageId=41187 +Language=English +%1 +. +MessageId=41188 +Language=English +%1 +. +MessageId=41189 +Language=English +%1 +. +MessageId=41190 +Language=English +%1 +. +MessageId=41191 +Language=English +%1 +. +MessageId=41192 +Language=English +%1 +. +MessageId=41193 +Language=English +%1 +. +MessageId=41194 +Language=English +%1 +. +MessageId=41195 +Language=English +%1 +. +MessageId=41196 +Language=English +%1 +. +MessageId=41197 +Language=English +%1 +. +MessageId=41198 +Language=English +%1 +. +MessageId=41199 +Language=English +%1 +. +MessageId=41200 +Language=English +%1 +. +MessageId=41201 +Language=English +%1 +. +MessageId=41202 +Language=English +%1 +. +MessageId=41203 +Language=English +%1 +. +MessageId=41204 +Language=English +%1 +. +MessageId=41205 +Language=English +%1 +. +MessageId=41206 +Language=English +%1 +. +MessageId=41207 +Language=English +%1 +. +MessageId=41208 +Language=English +%1 +. +MessageId=41209 +Language=English +%1 +. +MessageId=41210 +Language=English +%1 +. +MessageId=41211 +Language=English +%1 +. +MessageId=41212 +Language=English +%1 +. +MessageId=41213 +Language=English +%1 +. +MessageId=41214 +Language=English +%1 +. +MessageId=41215 +Language=English +%1 +. +MessageId=41216 +Language=English +%1 +. +MessageId=41217 +Language=English +%1 +. +MessageId=41218 +Language=English +%1 +. +MessageId=41219 +Language=English +%1 +. +MessageId=41220 +Language=English +%1 +. +MessageId=41221 +Language=English +%1 +. +MessageId=41222 +Language=English +%1 +. +MessageId=41223 +Language=English +%1 +. +MessageId=41224 +Language=English +%1 +. +MessageId=41225 +Language=English +%1 +. +MessageId=41226 +Language=English +%1 +. +MessageId=41227 +Language=English +%1 +. +MessageId=41228 +Language=English +%1 +. +MessageId=41229 +Language=English +%1 +. +MessageId=41230 +Language=English +%1 +. +MessageId=41231 +Language=English +%1 +. +MessageId=41232 +Language=English +%1 +. +MessageId=41233 +Language=English +%1 +. +MessageId=41234 +Language=English +%1 +. +MessageId=41235 +Language=English +%1 +. +MessageId=41236 +Language=English +%1 +. +MessageId=41237 +Language=English +%1 +. +MessageId=41238 +Language=English +%1 +. +MessageId=41239 +Language=English +%1 +. +MessageId=41240 +Language=English +%1 +. +MessageId=41241 +Language=English +%1 +. +MessageId=41242 +Language=English +%1 +. +MessageId=41243 +Language=English +%1 +. +MessageId=41244 +Language=English +%1 +. +MessageId=41245 +Language=English +%1 +. +MessageId=41246 +Language=English +%1 +. +MessageId=41247 +Language=English +%1 +. +MessageId=41248 +Language=English +%1 +. +MessageId=41249 +Language=English +%1 +. +MessageId=41250 +Language=English +%1 +. +MessageId=41251 +Language=English +%1 +. +MessageId=41252 +Language=English +%1 +. +MessageId=41253 +Language=English +%1 +. +MessageId=41254 +Language=English +%1 +. +MessageId=41255 +Language=English +%1 +. +MessageId=41256 +Language=English +%1 +. +MessageId=41257 +Language=English +%1 +. +MessageId=41258 +Language=English +%1 +. +MessageId=41259 +Language=English +%1 +. +MessageId=41260 +Language=English +%1 +. +MessageId=41261 +Language=English +%1 +. +MessageId=41262 +Language=English +%1 +. +MessageId=41263 +Language=English +%1 +. +MessageId=41264 +Language=English +%1 +. +MessageId=41265 +Language=English +%1 +. +MessageId=41266 +Language=English +%1 +. +MessageId=41267 +Language=English +%1 +. +MessageId=41268 +Language=English +%1 +. +MessageId=41269 +Language=English +%1 +. +MessageId=41270 +Language=English +%1 +. +MessageId=41271 +Language=English +%1 +. +MessageId=41272 +Language=English +%1 +. +MessageId=41273 +Language=English +%1 +. +MessageId=41274 +Language=English +%1 +. +MessageId=41275 +Language=English +%1 +. +MessageId=41276 +Language=English +%1 +. +MessageId=41277 +Language=English +%1 +. +MessageId=41278 +Language=English +%1 +. +MessageId=41279 +Language=English +%1 +. +MessageId=41280 +Language=English +%1 +. +MessageId=41281 +Language=English +%1 +. +MessageId=41282 +Language=English +%1 +. +MessageId=41283 +Language=English +%1 +. +MessageId=41284 +Language=English +%1 +. +MessageId=41285 +Language=English +%1 +. +MessageId=41286 +Language=English +%1 +. +MessageId=41287 +Language=English +%1 +. +MessageId=41288 +Language=English +%1 +. +MessageId=41289 +Language=English +%1 +. +MessageId=41290 +Language=English +%1 +. +MessageId=41291 +Language=English +%1 +. +MessageId=41292 +Language=English +%1 +. +MessageId=41293 +Language=English +%1 +. +MessageId=41294 +Language=English +%1 +. +MessageId=41295 +Language=English +%1 +. +MessageId=41296 +Language=English +%1 +. +MessageId=41297 +Language=English +%1 +. +MessageId=41298 +Language=English +%1 +. +MessageId=41299 +Language=English +%1 +. +MessageId=41300 +Language=English +%1 +. +MessageId=41301 +Language=English +%1 +. +MessageId=41302 +Language=English +%1 +. +MessageId=41303 +Language=English +%1 +. +MessageId=41304 +Language=English +%1 +. +MessageId=41305 +Language=English +%1 +. +MessageId=41306 +Language=English +%1 +. +MessageId=41307 +Language=English +%1 +. +MessageId=41308 +Language=English +%1 +. +MessageId=41309 +Language=English +%1 +. +MessageId=41310 +Language=English +%1 +. +MessageId=41311 +Language=English +%1 +. +MessageId=41312 +Language=English +%1 +. +MessageId=41313 +Language=English +%1 +. +MessageId=41314 +Language=English +%1 +. +MessageId=41315 +Language=English +%1 +. +MessageId=41316 +Language=English +%1 +. +MessageId=41317 +Language=English +%1 +. +MessageId=41318 +Language=English +%1 +. +MessageId=41319 +Language=English +%1 +. +MessageId=41320 +Language=English +%1 +. +MessageId=41321 +Language=English +%1 +. +MessageId=41322 +Language=English +%1 +. +MessageId=41323 +Language=English +%1 +. +MessageId=41324 +Language=English +%1 +. +MessageId=41325 +Language=English +%1 +. +MessageId=41326 +Language=English +%1 +. +MessageId=41327 +Language=English +%1 +. +MessageId=41328 +Language=English +%1 +. +MessageId=41329 +Language=English +%1 +. +MessageId=41330 +Language=English +%1 +. +MessageId=41331 +Language=English +%1 +. +MessageId=41332 +Language=English +%1 +. +MessageId=41333 +Language=English +%1 +. +MessageId=41334 +Language=English +%1 +. +MessageId=41335 +Language=English +%1 +. +MessageId=41336 +Language=English +%1 +. +MessageId=41337 +Language=English +%1 +. +MessageId=41338 +Language=English +%1 +. +MessageId=41339 +Language=English +%1 +. +MessageId=41340 +Language=English +%1 +. +MessageId=41341 +Language=English +%1 +. +MessageId=41342 +Language=English +%1 +. +MessageId=41343 +Language=English +%1 +. +MessageId=41344 +Language=English +%1 +. +MessageId=41345 +Language=English +%1 +. +MessageId=41346 +Language=English +%1 +. +MessageId=41347 +Language=English +%1 +. +MessageId=41348 +Language=English +%1 +. +MessageId=41349 +Language=English +%1 +. +MessageId=41350 +Language=English +%1 +. +MessageId=41351 +Language=English +%1 +. +MessageId=41352 +Language=English +%1 +. +MessageId=41353 +Language=English +%1 +. +MessageId=41354 +Language=English +%1 +. +MessageId=41355 +Language=English +%1 +. +MessageId=41356 +Language=English +%1 +. +MessageId=41357 +Language=English +%1 +. +MessageId=41358 +Language=English +%1 +. +MessageId=41359 +Language=English +%1 +. +MessageId=41360 +Language=English +%1 +. +MessageId=41361 +Language=English +%1 +. +MessageId=41362 +Language=English +%1 +. +MessageId=41363 +Language=English +%1 +. +MessageId=41364 +Language=English +%1 +. +MessageId=41365 +Language=English +%1 +. +MessageId=41366 +Language=English +%1 +. +MessageId=41367 +Language=English +%1 +. +MessageId=41368 +Language=English +%1 +. +MessageId=41369 +Language=English +%1 +. +MessageId=41370 +Language=English +%1 +. +MessageId=41371 +Language=English +%1 +. +MessageId=41372 +Language=English +%1 +. +MessageId=41373 +Language=English +%1 +. +MessageId=41374 +Language=English +%1 +. +MessageId=41375 +Language=English +%1 +. +MessageId=41376 +Language=English +%1 +. +MessageId=41377 +Language=English +%1 +. +MessageId=41378 +Language=English +%1 +. +MessageId=41379 +Language=English +%1 +. +MessageId=41380 +Language=English +%1 +. +MessageId=41381 +Language=English +%1 +. +MessageId=41382 +Language=English +%1 +. +MessageId=41383 +Language=English +%1 +. +MessageId=41384 +Language=English +%1 +. +MessageId=41385 +Language=English +%1 +. +MessageId=41386 +Language=English +%1 +. +MessageId=41387 +Language=English +%1 +. +MessageId=41388 +Language=English +%1 +. +MessageId=41389 +Language=English +%1 +. +MessageId=41390 +Language=English +%1 +. +MessageId=41391 +Language=English +%1 +. +MessageId=41392 +Language=English +%1 +. +MessageId=41393 +Language=English +%1 +. +MessageId=41394 +Language=English +%1 +. +MessageId=41395 +Language=English +%1 +. +MessageId=41396 +Language=English +%1 +. +MessageId=41397 +Language=English +%1 +. +MessageId=41398 +Language=English +%1 +. +MessageId=41399 +Language=English +%1 +. +MessageId=41400 +Language=English +%1 +. +MessageId=41401 +Language=English +%1 +. +MessageId=41402 +Language=English +%1 +. +MessageId=41403 +Language=English +%1 +. +MessageId=41404 +Language=English +%1 +. +MessageId=41405 +Language=English +%1 +. +MessageId=41406 +Language=English +%1 +. +MessageId=41407 +Language=English +%1 +. +MessageId=41408 +Language=English +%1 +. +MessageId=41409 +Language=English +%1 +. +MessageId=41410 +Language=English +%1 +. +MessageId=41411 +Language=English +%1 +. +MessageId=41412 +Language=English +%1 +. +MessageId=41413 +Language=English +%1 +. +MessageId=41414 +Language=English +%1 +. +MessageId=41415 +Language=English +%1 +. +MessageId=41416 +Language=English +%1 +. +MessageId=41417 +Language=English +%1 +. +MessageId=41418 +Language=English +%1 +. +MessageId=41419 +Language=English +%1 +. +MessageId=41420 +Language=English +%1 +. +MessageId=41421 +Language=English +%1 +. +MessageId=41422 +Language=English +%1 +. +MessageId=41423 +Language=English +%1 +. +MessageId=41424 +Language=English +%1 +. +MessageId=41425 +Language=English +%1 +. +MessageId=41426 +Language=English +%1 +. +MessageId=41427 +Language=English +%1 +. +MessageId=41428 +Language=English +%1 +. +MessageId=41429 +Language=English +%1 +. +MessageId=41430 +Language=English +%1 +. +MessageId=41431 +Language=English +%1 +. +MessageId=41432 +Language=English +%1 +. +MessageId=41433 +Language=English +%1 +. +MessageId=41434 +Language=English +%1 +. +MessageId=41435 +Language=English +%1 +. +MessageId=41436 +Language=English +%1 +. +MessageId=41437 +Language=English +%1 +. +MessageId=41438 +Language=English +%1 +. +MessageId=41439 +Language=English +%1 +. +MessageId=41440 +Language=English +%1 +. +MessageId=41441 +Language=English +%1 +. +MessageId=41442 +Language=English +%1 +. +MessageId=41443 +Language=English +%1 +. +MessageId=41444 +Language=English +%1 +. +MessageId=41445 +Language=English +%1 +. +MessageId=41446 +Language=English +%1 +. +MessageId=41447 +Language=English +%1 +. +MessageId=41448 +Language=English +%1 +. +MessageId=41449 +Language=English +%1 +. +MessageId=41450 +Language=English +%1 +. +MessageId=41451 +Language=English +%1 +. +MessageId=41452 +Language=English +%1 +. +MessageId=41453 +Language=English +%1 +. +MessageId=41454 +Language=English +%1 +. +MessageId=41455 +Language=English +%1 +. +MessageId=41456 +Language=English +%1 +. +MessageId=41457 +Language=English +%1 +. +MessageId=41458 +Language=English +%1 +. +MessageId=41459 +Language=English +%1 +. +MessageId=41460 +Language=English +%1 +. +MessageId=41461 +Language=English +%1 +. +MessageId=41462 +Language=English +%1 +. +MessageId=41463 +Language=English +%1 +. +MessageId=41464 +Language=English +%1 +. +MessageId=41465 +Language=English +%1 +. +MessageId=41466 +Language=English +%1 +. +MessageId=41467 +Language=English +%1 +. +MessageId=41468 +Language=English +%1 +. +MessageId=41469 +Language=English +%1 +. +MessageId=41470 +Language=English +%1 +. +MessageId=41471 +Language=English +%1 +. +MessageId=41472 +Language=English +%1 +. +MessageId=41473 +Language=English +%1 +. +MessageId=41474 +Language=English +%1 +. +MessageId=41475 +Language=English +%1 +. +MessageId=41476 +Language=English +%1 +. +MessageId=41477 +Language=English +%1 +. +MessageId=41478 +Language=English +%1 +. +MessageId=41479 +Language=English +%1 +. +MessageId=41480 +Language=English +%1 +. +MessageId=41481 +Language=English +%1 +. +MessageId=41482 +Language=English +%1 +. +MessageId=41483 +Language=English +%1 +. +MessageId=41484 +Language=English +%1 +. +MessageId=41485 +Language=English +%1 +. +MessageId=41486 +Language=English +%1 +. +MessageId=41487 +Language=English +%1 +. +MessageId=41488 +Language=English +%1 +. +MessageId=41489 +Language=English +%1 +. +MessageId=41490 +Language=English +%1 +. +MessageId=41491 +Language=English +%1 +. +MessageId=41492 +Language=English +%1 +. +MessageId=41493 +Language=English +%1 +. +MessageId=41494 +Language=English +%1 +. +MessageId=41495 +Language=English +%1 +. +MessageId=41496 +Language=English +%1 +. +MessageId=41497 +Language=English +%1 +. +MessageId=41498 +Language=English +%1 +. +MessageId=41499 +Language=English +%1 +. +MessageId=41500 +Language=English +%1 +. +MessageId=41501 +Language=English +%1 +. +MessageId=41502 +Language=English +%1 +. +MessageId=41503 +Language=English +%1 +. +MessageId=41504 +Language=English +%1 +. +MessageId=41505 +Language=English +%1 +. +MessageId=41506 +Language=English +%1 +. +MessageId=41507 +Language=English +%1 +. +MessageId=41508 +Language=English +%1 +. +MessageId=41509 +Language=English +%1 +. +MessageId=41510 +Language=English +%1 +. +MessageId=41511 +Language=English +%1 +. +MessageId=41512 +Language=English +%1 +. +MessageId=41513 +Language=English +%1 +. +MessageId=41514 +Language=English +%1 +. +MessageId=41515 +Language=English +%1 +. +MessageId=41516 +Language=English +%1 +. +MessageId=41517 +Language=English +%1 +. +MessageId=41518 +Language=English +%1 +. +MessageId=41519 +Language=English +%1 +. +MessageId=41520 +Language=English +%1 +. +MessageId=41521 +Language=English +%1 +. +MessageId=41522 +Language=English +%1 +. +MessageId=41523 +Language=English +%1 +. +MessageId=41524 +Language=English +%1 +. +MessageId=41525 +Language=English +%1 +. +MessageId=41526 +Language=English +%1 +. +MessageId=41527 +Language=English +%1 +. +MessageId=41528 +Language=English +%1 +. +MessageId=41529 +Language=English +%1 +. +MessageId=41530 +Language=English +%1 +. +MessageId=41531 +Language=English +%1 +. +MessageId=41532 +Language=English +%1 +. +MessageId=41533 +Language=English +%1 +. +MessageId=41534 +Language=English +%1 +. +MessageId=41535 +Language=English +%1 +. +MessageId=41536 +Language=English +%1 +. +MessageId=41537 +Language=English +%1 +. +MessageId=41538 +Language=English +%1 +. +MessageId=41539 +Language=English +%1 +. +MessageId=41540 +Language=English +%1 +. +MessageId=41541 +Language=English +%1 +. +MessageId=41542 +Language=English +%1 +. +MessageId=41543 +Language=English +%1 +. +MessageId=41544 +Language=English +%1 +. +MessageId=41545 +Language=English +%1 +. +MessageId=41546 +Language=English +%1 +. +MessageId=41547 +Language=English +%1 +. +MessageId=41548 +Language=English +%1 +. +MessageId=41549 +Language=English +%1 +. +MessageId=41550 +Language=English +%1 +. +MessageId=41551 +Language=English +%1 +. +MessageId=41552 +Language=English +%1 +. +MessageId=41553 +Language=English +%1 +. +MessageId=41554 +Language=English +%1 +. +MessageId=41555 +Language=English +%1 +. +MessageId=41556 +Language=English +%1 +. +MessageId=41557 +Language=English +%1 +. +MessageId=41558 +Language=English +%1 +. +MessageId=41559 +Language=English +%1 +. +MessageId=41560 +Language=English +%1 +. +MessageId=41561 +Language=English +%1 +. +MessageId=41562 +Language=English +%1 +. +MessageId=41563 +Language=English +%1 +. +MessageId=41564 +Language=English +%1 +. +MessageId=41565 +Language=English +%1 +. +MessageId=41566 +Language=English +%1 +. +MessageId=41567 +Language=English +%1 +. +MessageId=41568 +Language=English +%1 +. +MessageId=41569 +Language=English +%1 +. +MessageId=41570 +Language=English +%1 +. +MessageId=41571 +Language=English +%1 +. +MessageId=41572 +Language=English +%1 +. +MessageId=41573 +Language=English +%1 +. +MessageId=41574 +Language=English +%1 +. +MessageId=41575 +Language=English +%1 +. +MessageId=41576 +Language=English +%1 +. +MessageId=41577 +Language=English +%1 +. +MessageId=41578 +Language=English +%1 +. +MessageId=41579 +Language=English +%1 +. +MessageId=41580 +Language=English +%1 +. +MessageId=41581 +Language=English +%1 +. +MessageId=41582 +Language=English +%1 +. +MessageId=41583 +Language=English +%1 +. +MessageId=41584 +Language=English +%1 +. +MessageId=41585 +Language=English +%1 +. +MessageId=41586 +Language=English +%1 +. +MessageId=41587 +Language=English +%1 +. +MessageId=41588 +Language=English +%1 +. +MessageId=41589 +Language=English +%1 +. +MessageId=41590 +Language=English +%1 +. +MessageId=41591 +Language=English +%1 +. +MessageId=41592 +Language=English +%1 +. +MessageId=41593 +Language=English +%1 +. +MessageId=41594 +Language=English +%1 +. +MessageId=41595 +Language=English +%1 +. +MessageId=41596 +Language=English +%1 +. +MessageId=41597 +Language=English +%1 +. +MessageId=41598 +Language=English +%1 +. +MessageId=41599 +Language=English +%1 +. +MessageId=41600 +Language=English +%1 +. +MessageId=41601 +Language=English +%1 +. +MessageId=41602 +Language=English +%1 +. +MessageId=41603 +Language=English +%1 +. +MessageId=41604 +Language=English +%1 +. +MessageId=41605 +Language=English +%1 +. +MessageId=41606 +Language=English +%1 +. +MessageId=41607 +Language=English +%1 +. +MessageId=41608 +Language=English +%1 +. +MessageId=41609 +Language=English +%1 +. +MessageId=41610 +Language=English +%1 +. +MessageId=41611 +Language=English +%1 +. +MessageId=41612 +Language=English +%1 +. +MessageId=41613 +Language=English +%1 +. +MessageId=41614 +Language=English +%1 +. +MessageId=41615 +Language=English +%1 +. +MessageId=41616 +Language=English +%1 +. +MessageId=41617 +Language=English +%1 +. +MessageId=41618 +Language=English +%1 +. +MessageId=41619 +Language=English +%1 +. +MessageId=41620 +Language=English +%1 +. +MessageId=41621 +Language=English +%1 +. +MessageId=41622 +Language=English +%1 +. +MessageId=41623 +Language=English +%1 +. +MessageId=41624 +Language=English +%1 +. +MessageId=41625 +Language=English +%1 +. +MessageId=41626 +Language=English +%1 +. +MessageId=41627 +Language=English +%1 +. +MessageId=41628 +Language=English +%1 +. +MessageId=41629 +Language=English +%1 +. +MessageId=41630 +Language=English +%1 +. +MessageId=41631 +Language=English +%1 +. +MessageId=41632 +Language=English +%1 +. +MessageId=41633 +Language=English +%1 +. +MessageId=41634 +Language=English +%1 +. +MessageId=41635 +Language=English +%1 +. +MessageId=41636 +Language=English +%1 +. +MessageId=41637 +Language=English +%1 +. +MessageId=41638 +Language=English +%1 +. +MessageId=41639 +Language=English +%1 +. +MessageId=41640 +Language=English +%1 +. +MessageId=41641 +Language=English +%1 +. +MessageId=41642 +Language=English +%1 +. +MessageId=41643 +Language=English +%1 +. +MessageId=41644 +Language=English +%1 +. +MessageId=41645 +Language=English +%1 +. +MessageId=41646 +Language=English +%1 +. +MessageId=41647 +Language=English +%1 +. +MessageId=41648 +Language=English +%1 +. +MessageId=41649 +Language=English +%1 +. +MessageId=41650 +Language=English +%1 +. +MessageId=41651 +Language=English +%1 +. +MessageId=41652 +Language=English +%1 +. +MessageId=41653 +Language=English +%1 +. +MessageId=41654 +Language=English +%1 +. +MessageId=41655 +Language=English +%1 +. +MessageId=41656 +Language=English +%1 +. +MessageId=41657 +Language=English +%1 +. +MessageId=41658 +Language=English +%1 +. +MessageId=41659 +Language=English +%1 +. +MessageId=41660 +Language=English +%1 +. +MessageId=41661 +Language=English +%1 +. +MessageId=41662 +Language=English +%1 +. +MessageId=41663 +Language=English +%1 +. +MessageId=41664 +Language=English +%1 +. +MessageId=41665 +Language=English +%1 +. +MessageId=41666 +Language=English +%1 +. +MessageId=41667 +Language=English +%1 +. +MessageId=41668 +Language=English +%1 +. +MessageId=41669 +Language=English +%1 +. +MessageId=41670 +Language=English +%1 +. +MessageId=41671 +Language=English +%1 +. +MessageId=41672 +Language=English +%1 +. +MessageId=41673 +Language=English +%1 +. +MessageId=41674 +Language=English +%1 +. +MessageId=41675 +Language=English +%1 +. +MessageId=41676 +Language=English +%1 +. +MessageId=41677 +Language=English +%1 +. +MessageId=41678 +Language=English +%1 +. +MessageId=41679 +Language=English +%1 +. +MessageId=41680 +Language=English +%1 +. +MessageId=41681 +Language=English +%1 +. +MessageId=41682 +Language=English +%1 +. +MessageId=41683 +Language=English +%1 +. +MessageId=41684 +Language=English +%1 +. +MessageId=41685 +Language=English +%1 +. +MessageId=41686 +Language=English +%1 +. +MessageId=41687 +Language=English +%1 +. +MessageId=41688 +Language=English +%1 +. +MessageId=41689 +Language=English +%1 +. +MessageId=41690 +Language=English +%1 +. +MessageId=41691 +Language=English +%1 +. +MessageId=41692 +Language=English +%1 +. +MessageId=41693 +Language=English +%1 +. +MessageId=41694 +Language=English +%1 +. +MessageId=41695 +Language=English +%1 +. +MessageId=41696 +Language=English +%1 +. +MessageId=41697 +Language=English +%1 +. +MessageId=41698 +Language=English +%1 +. +MessageId=41699 +Language=English +%1 +. +MessageId=41700 +Language=English +%1 +. +MessageId=41701 +Language=English +%1 +. +MessageId=41702 +Language=English +%1 +. +MessageId=41703 +Language=English +%1 +. +MessageId=41704 +Language=English +%1 +. +MessageId=41705 +Language=English +%1 +. +MessageId=41706 +Language=English +%1 +. +MessageId=41707 +Language=English +%1 +. +MessageId=41708 +Language=English +%1 +. +MessageId=41709 +Language=English +%1 +. +MessageId=41710 +Language=English +%1 +. +MessageId=41711 +Language=English +%1 +. +MessageId=41712 +Language=English +%1 +. +MessageId=41713 +Language=English +%1 +. +MessageId=41714 +Language=English +%1 +. +MessageId=41715 +Language=English +%1 +. +MessageId=41716 +Language=English +%1 +. +MessageId=41717 +Language=English +%1 +. +MessageId=41718 +Language=English +%1 +. +MessageId=41719 +Language=English +%1 +. +MessageId=41720 +Language=English +%1 +. +MessageId=41721 +Language=English +%1 +. +MessageId=41722 +Language=English +%1 +. +MessageId=41723 +Language=English +%1 +. +MessageId=41724 +Language=English +%1 +. +MessageId=41725 +Language=English +%1 +. +MessageId=41726 +Language=English +%1 +. +MessageId=41727 +Language=English +%1 +. +MessageId=41728 +Language=English +%1 +. +MessageId=41729 +Language=English +%1 +. +MessageId=41730 +Language=English +%1 +. +MessageId=41731 +Language=English +%1 +. +MessageId=41732 +Language=English +%1 +. +MessageId=41733 +Language=English +%1 +. +MessageId=41734 +Language=English +%1 +. +MessageId=41735 +Language=English +%1 +. +MessageId=41736 +Language=English +%1 +. +MessageId=41737 +Language=English +%1 +. +MessageId=41738 +Language=English +%1 +. +MessageId=41739 +Language=English +%1 +. +MessageId=41740 +Language=English +%1 +. +MessageId=41741 +Language=English +%1 +. +MessageId=41742 +Language=English +%1 +. +MessageId=41743 +Language=English +%1 +. +MessageId=41744 +Language=English +%1 +. +MessageId=41745 +Language=English +%1 +. +MessageId=41746 +Language=English +%1 +. +MessageId=41747 +Language=English +%1 +. +MessageId=41748 +Language=English +%1 +. +MessageId=41749 +Language=English +%1 +. +MessageId=41750 +Language=English +%1 +. +MessageId=41751 +Language=English +%1 +. +MessageId=41752 +Language=English +%1 +. +MessageId=41753 +Language=English +%1 +. +MessageId=41754 +Language=English +%1 +. +MessageId=41755 +Language=English +%1 +. +MessageId=41756 +Language=English +%1 +. +MessageId=41757 +Language=English +%1 +. +MessageId=41758 +Language=English +%1 +. +MessageId=41759 +Language=English +%1 +. +MessageId=41760 +Language=English +%1 +. +MessageId=41761 +Language=English +%1 +. +MessageId=41762 +Language=English +%1 +. +MessageId=41763 +Language=English +%1 +. +MessageId=41764 +Language=English +%1 +. +MessageId=41765 +Language=English +%1 +. +MessageId=41766 +Language=English +%1 +. +MessageId=41767 +Language=English +%1 +. +MessageId=41768 +Language=English +%1 +. +MessageId=41769 +Language=English +%1 +. +MessageId=41770 +Language=English +%1 +. +MessageId=41771 +Language=English +%1 +. +MessageId=41772 +Language=English +%1 +. +MessageId=41773 +Language=English +%1 +. +MessageId=41774 +Language=English +%1 +. +MessageId=41775 +Language=English +%1 +. +MessageId=41776 +Language=English +%1 +. +MessageId=41777 +Language=English +%1 +. +MessageId=41778 +Language=English +%1 +. +MessageId=41779 +Language=English +%1 +. +MessageId=41780 +Language=English +%1 +. +MessageId=41781 +Language=English +%1 +. +MessageId=41782 +Language=English +%1 +. +MessageId=41783 +Language=English +%1 +. +MessageId=41784 +Language=English +%1 +. +MessageId=41785 +Language=English +%1 +. +MessageId=41786 +Language=English +%1 +. +MessageId=41787 +Language=English +%1 +. +MessageId=41788 +Language=English +%1 +. +MessageId=41789 +Language=English +%1 +. +MessageId=41790 +Language=English +%1 +. +MessageId=41791 +Language=English +%1 +. +MessageId=41792 +Language=English +%1 +. +MessageId=41793 +Language=English +%1 +. +MessageId=41794 +Language=English +%1 +. +MessageId=41795 +Language=English +%1 +. +MessageId=41796 +Language=English +%1 +. +MessageId=41797 +Language=English +%1 +. +MessageId=41798 +Language=English +%1 +. +MessageId=41799 +Language=English +%1 +. +MessageId=41800 +Language=English +%1 +. +MessageId=41801 +Language=English +%1 +. +MessageId=41802 +Language=English +%1 +. +MessageId=41803 +Language=English +%1 +. +MessageId=41804 +Language=English +%1 +. +MessageId=41805 +Language=English +%1 +. +MessageId=41806 +Language=English +%1 +. +MessageId=41807 +Language=English +%1 +. +MessageId=41808 +Language=English +%1 +. +MessageId=41809 +Language=English +%1 +. +MessageId=41810 +Language=English +%1 +. +MessageId=41811 +Language=English +%1 +. +MessageId=41812 +Language=English +%1 +. +MessageId=41813 +Language=English +%1 +. +MessageId=41814 +Language=English +%1 +. +MessageId=41815 +Language=English +%1 +. +MessageId=41816 +Language=English +%1 +. +MessageId=41817 +Language=English +%1 +. +MessageId=41818 +Language=English +%1 +. +MessageId=41819 +Language=English +%1 +. +MessageId=41820 +Language=English +%1 +. +MessageId=41821 +Language=English +%1 +. +MessageId=41822 +Language=English +%1 +. +MessageId=41823 +Language=English +%1 +. +MessageId=41824 +Language=English +%1 +. +MessageId=41825 +Language=English +%1 +. +MessageId=41826 +Language=English +%1 +. +MessageId=41827 +Language=English +%1 +. +MessageId=41828 +Language=English +%1 +. +MessageId=41829 +Language=English +%1 +. +MessageId=41830 +Language=English +%1 +. +MessageId=41831 +Language=English +%1 +. +MessageId=41832 +Language=English +%1 +. +MessageId=41833 +Language=English +%1 +. +MessageId=41834 +Language=English +%1 +. +MessageId=41835 +Language=English +%1 +. +MessageId=41836 +Language=English +%1 +. +MessageId=41837 +Language=English +%1 +. +MessageId=41838 +Language=English +%1 +. +MessageId=41839 +Language=English +%1 +. +MessageId=41840 +Language=English +%1 +. +MessageId=41841 +Language=English +%1 +. +MessageId=41842 +Language=English +%1 +. +MessageId=41843 +Language=English +%1 +. +MessageId=41844 +Language=English +%1 +. +MessageId=41845 +Language=English +%1 +. +MessageId=41846 +Language=English +%1 +. +MessageId=41847 +Language=English +%1 +. +MessageId=41848 +Language=English +%1 +. +MessageId=41849 +Language=English +%1 +. +MessageId=41850 +Language=English +%1 +. +MessageId=41851 +Language=English +%1 +. +MessageId=41852 +Language=English +%1 +. +MessageId=41853 +Language=English +%1 +. +MessageId=41854 +Language=English +%1 +. +MessageId=41855 +Language=English +%1 +. +MessageId=41856 +Language=English +%1 +. +MessageId=41857 +Language=English +%1 +. +MessageId=41858 +Language=English +%1 +. +MessageId=41859 +Language=English +%1 +. +MessageId=41860 +Language=English +%1 +. +MessageId=41861 +Language=English +%1 +. +MessageId=41862 +Language=English +%1 +. +MessageId=41863 +Language=English +%1 +. +MessageId=41864 +Language=English +%1 +. +MessageId=41865 +Language=English +%1 +. +MessageId=41866 +Language=English +%1 +. +MessageId=41867 +Language=English +%1 +. +MessageId=41868 +Language=English +%1 +. +MessageId=41869 +Language=English +%1 +. +MessageId=41870 +Language=English +%1 +. +MessageId=41871 +Language=English +%1 +. +MessageId=41872 +Language=English +%1 +. +MessageId=41873 +Language=English +%1 +. +MessageId=41874 +Language=English +%1 +. +MessageId=41875 +Language=English +%1 +. +MessageId=41876 +Language=English +%1 +. +MessageId=41877 +Language=English +%1 +. +MessageId=41878 +Language=English +%1 +. +MessageId=41879 +Language=English +%1 +. +MessageId=41880 +Language=English +%1 +. +MessageId=41881 +Language=English +%1 +. +MessageId=41882 +Language=English +%1 +. +MessageId=41883 +Language=English +%1 +. +MessageId=41884 +Language=English +%1 +. +MessageId=41885 +Language=English +%1 +. +MessageId=41886 +Language=English +%1 +. +MessageId=41887 +Language=English +%1 +. +MessageId=41888 +Language=English +%1 +. +MessageId=41889 +Language=English +%1 +. +MessageId=41890 +Language=English +%1 +. +MessageId=41891 +Language=English +%1 +. +MessageId=41892 +Language=English +%1 +. +MessageId=41893 +Language=English +%1 +. +MessageId=41894 +Language=English +%1 +. +MessageId=41895 +Language=English +%1 +. +MessageId=41896 +Language=English +%1 +. +MessageId=41897 +Language=English +%1 +. +MessageId=41898 +Language=English +%1 +. +MessageId=41899 +Language=English +%1 +. +MessageId=41900 +Language=English +%1 +. +MessageId=41901 +Language=English +%1 +. +MessageId=41902 +Language=English +%1 +. +MessageId=41903 +Language=English +%1 +. +MessageId=41904 +Language=English +%1 +. +MessageId=41905 +Language=English +%1 +. +MessageId=41906 +Language=English +%1 +. +MessageId=41907 +Language=English +%1 +. +MessageId=41908 +Language=English +%1 +. +MessageId=41909 +Language=English +%1 +. +MessageId=41910 +Language=English +%1 +. +MessageId=41911 +Language=English +%1 +. +MessageId=41912 +Language=English +%1 +. +MessageId=41913 +Language=English +%1 +. +MessageId=41914 +Language=English +%1 +. +MessageId=41915 +Language=English +%1 +. +MessageId=41916 +Language=English +%1 +. +MessageId=41917 +Language=English +%1 +. +MessageId=41918 +Language=English +%1 +. +MessageId=41919 +Language=English +%1 +. +MessageId=41920 +Language=English +%1 +. +MessageId=41921 +Language=English +%1 +. +MessageId=41922 +Language=English +%1 +. +MessageId=41923 +Language=English +%1 +. +MessageId=41924 +Language=English +%1 +. +MessageId=41925 +Language=English +%1 +. +MessageId=41926 +Language=English +%1 +. +MessageId=41927 +Language=English +%1 +. +MessageId=41928 +Language=English +%1 +. +MessageId=41929 +Language=English +%1 +. +MessageId=41930 +Language=English +%1 +. +MessageId=41931 +Language=English +%1 +. +MessageId=41932 +Language=English +%1 +. +MessageId=41933 +Language=English +%1 +. +MessageId=41934 +Language=English +%1 +. +MessageId=41935 +Language=English +%1 +. +MessageId=41936 +Language=English +%1 +. +MessageId=41937 +Language=English +%1 +. +MessageId=41938 +Language=English +%1 +. +MessageId=41939 +Language=English +%1 +. +MessageId=41940 +Language=English +%1 +. +MessageId=41941 +Language=English +%1 +. +MessageId=41942 +Language=English +%1 +. +MessageId=41943 +Language=English +%1 +. +MessageId=41944 +Language=English +%1 +. +MessageId=41945 +Language=English +%1 +. +MessageId=41946 +Language=English +%1 +. +MessageId=41947 +Language=English +%1 +. +MessageId=41948 +Language=English +%1 +. +MessageId=41949 +Language=English +%1 +. +MessageId=41950 +Language=English +%1 +. +MessageId=41951 +Language=English +%1 +. +MessageId=41952 +Language=English +%1 +. +MessageId=41953 +Language=English +%1 +. +MessageId=41954 +Language=English +%1 +. +MessageId=41955 +Language=English +%1 +. +MessageId=41956 +Language=English +%1 +. +MessageId=41957 +Language=English +%1 +. +MessageId=41958 +Language=English +%1 +. +MessageId=41959 +Language=English +%1 +. +MessageId=41960 +Language=English +%1 +. +MessageId=41961 +Language=English +%1 +. +MessageId=41962 +Language=English +%1 +. +MessageId=41963 +Language=English +%1 +. +MessageId=41964 +Language=English +%1 +. +MessageId=41965 +Language=English +%1 +. +MessageId=41966 +Language=English +%1 +. +MessageId=41967 +Language=English +%1 +. +MessageId=41968 +Language=English +%1 +. +MessageId=41969 +Language=English +%1 +. +MessageId=41970 +Language=English +%1 +. +MessageId=41971 +Language=English +%1 +. +MessageId=41972 +Language=English +%1 +. +MessageId=41973 +Language=English +%1 +. +MessageId=41974 +Language=English +%1 +. +MessageId=41975 +Language=English +%1 +. +MessageId=41976 +Language=English +%1 +. +MessageId=41977 +Language=English +%1 +. +MessageId=41978 +Language=English +%1 +. +MessageId=41979 +Language=English +%1 +. +MessageId=41980 +Language=English +%1 +. +MessageId=41981 +Language=English +%1 +. +MessageId=41982 +Language=English +%1 +. +MessageId=41983 +Language=English +%1 +. +MessageId=41984 +Language=English +%1 +. +MessageId=41985 +Language=English +%1 +. +MessageId=41986 +Language=English +%1 +. +MessageId=41987 +Language=English +%1 +. +MessageId=41988 +Language=English +%1 +. +MessageId=41989 +Language=English +%1 +. +MessageId=41990 +Language=English +%1 +. +MessageId=41991 +Language=English +%1 +. +MessageId=41992 +Language=English +%1 +. +MessageId=41993 +Language=English +%1 +. +MessageId=41994 +Language=English +%1 +. +MessageId=41995 +Language=English +%1 +. +MessageId=41996 +Language=English +%1 +. +MessageId=41997 +Language=English +%1 +. +MessageId=41998 +Language=English +%1 +. +MessageId=41999 +Language=English +%1 +. +MessageId=42000 +Language=English +%1 +. +MessageId=42001 +Language=English +%1 +. +MessageId=42002 +Language=English +%1 +. +MessageId=42003 +Language=English +%1 +. +MessageId=42004 +Language=English +%1 +. +MessageId=42005 +Language=English +%1 +. +MessageId=42006 +Language=English +%1 +. +MessageId=42007 +Language=English +%1 +. +MessageId=42008 +Language=English +%1 +. +MessageId=42009 +Language=English +%1 +. +MessageId=42010 +Language=English +%1 +. +MessageId=42011 +Language=English +%1 +. +MessageId=42012 +Language=English +%1 +. +MessageId=42013 +Language=English +%1 +. +MessageId=42014 +Language=English +%1 +. +MessageId=42015 +Language=English +%1 +. +MessageId=42016 +Language=English +%1 +. +MessageId=42017 +Language=English +%1 +. +MessageId=42018 +Language=English +%1 +. +MessageId=42019 +Language=English +%1 +. +MessageId=42020 +Language=English +%1 +. +MessageId=42021 +Language=English +%1 +. +MessageId=42022 +Language=English +%1 +. +MessageId=42023 +Language=English +%1 +. +MessageId=42024 +Language=English +%1 +. +MessageId=42025 +Language=English +%1 +. +MessageId=42026 +Language=English +%1 +. +MessageId=42027 +Language=English +%1 +. +MessageId=42028 +Language=English +%1 +. +MessageId=42029 +Language=English +%1 +. +MessageId=42030 +Language=English +%1 +. +MessageId=42031 +Language=English +%1 +. +MessageId=42032 +Language=English +%1 +. +MessageId=42033 +Language=English +%1 +. +MessageId=42034 +Language=English +%1 +. +MessageId=42035 +Language=English +%1 +. +MessageId=42036 +Language=English +%1 +. +MessageId=42037 +Language=English +%1 +. +MessageId=42038 +Language=English +%1 +. +MessageId=42039 +Language=English +%1 +. +MessageId=42040 +Language=English +%1 +. +MessageId=42041 +Language=English +%1 +. +MessageId=42042 +Language=English +%1 +. +MessageId=42043 +Language=English +%1 +. +MessageId=42044 +Language=English +%1 +. +MessageId=42045 +Language=English +%1 +. +MessageId=42046 +Language=English +%1 +. +MessageId=42047 +Language=English +%1 +. +MessageId=42048 +Language=English +%1 +. +MessageId=42049 +Language=English +%1 +. +MessageId=42050 +Language=English +%1 +. +MessageId=42051 +Language=English +%1 +. +MessageId=42052 +Language=English +%1 +. +MessageId=42053 +Language=English +%1 +. +MessageId=42054 +Language=English +%1 +. +MessageId=42055 +Language=English +%1 +. +MessageId=42056 +Language=English +%1 +. +MessageId=42057 +Language=English +%1 +. +MessageId=42058 +Language=English +%1 +. +MessageId=42059 +Language=English +%1 +. +MessageId=42060 +Language=English +%1 +. +MessageId=42061 +Language=English +%1 +. +MessageId=42062 +Language=English +%1 +. +MessageId=42063 +Language=English +%1 +. +MessageId=42064 +Language=English +%1 +. +MessageId=42065 +Language=English +%1 +. +MessageId=42066 +Language=English +%1 +. +MessageId=42067 +Language=English +%1 +. +MessageId=42068 +Language=English +%1 +. +MessageId=42069 +Language=English +%1 +. +MessageId=42070 +Language=English +%1 +. +MessageId=42071 +Language=English +%1 +. +MessageId=42072 +Language=English +%1 +. +MessageId=42073 +Language=English +%1 +. +MessageId=42074 +Language=English +%1 +. +MessageId=42075 +Language=English +%1 +. +MessageId=42076 +Language=English +%1 +. +MessageId=42077 +Language=English +%1 +. +MessageId=42078 +Language=English +%1 +. +MessageId=42079 +Language=English +%1 +. +MessageId=42080 +Language=English +%1 +. +MessageId=42081 +Language=English +%1 +. +MessageId=42082 +Language=English +%1 +. +MessageId=42083 +Language=English +%1 +. +MessageId=42084 +Language=English +%1 +. +MessageId=42085 +Language=English +%1 +. +MessageId=42086 +Language=English +%1 +. +MessageId=42087 +Language=English +%1 +. +MessageId=42088 +Language=English +%1 +. +MessageId=42089 +Language=English +%1 +. +MessageId=42090 +Language=English +%1 +. +MessageId=42091 +Language=English +%1 +. +MessageId=42092 +Language=English +%1 +. +MessageId=42093 +Language=English +%1 +. +MessageId=42094 +Language=English +%1 +. +MessageId=42095 +Language=English +%1 +. +MessageId=42096 +Language=English +%1 +. +MessageId=42097 +Language=English +%1 +. +MessageId=42098 +Language=English +%1 +. +MessageId=42099 +Language=English +%1 +. +MessageId=42100 +Language=English +%1 +. +MessageId=42101 +Language=English +%1 +. +MessageId=42102 +Language=English +%1 +. +MessageId=42103 +Language=English +%1 +. +MessageId=42104 +Language=English +%1 +. +MessageId=42105 +Language=English +%1 +. +MessageId=42106 +Language=English +%1 +. +MessageId=42107 +Language=English +%1 +. +MessageId=42108 +Language=English +%1 +. +MessageId=42109 +Language=English +%1 +. +MessageId=42110 +Language=English +%1 +. +MessageId=42111 +Language=English +%1 +. +MessageId=42112 +Language=English +%1 +. +MessageId=42113 +Language=English +%1 +. +MessageId=42114 +Language=English +%1 +. +MessageId=42115 +Language=English +%1 +. +MessageId=42116 +Language=English +%1 +. +MessageId=42117 +Language=English +%1 +. +MessageId=42118 +Language=English +%1 +. +MessageId=42119 +Language=English +%1 +. +MessageId=42120 +Language=English +%1 +. +MessageId=42121 +Language=English +%1 +. +MessageId=42122 +Language=English +%1 +. +MessageId=42123 +Language=English +%1 +. +MessageId=42124 +Language=English +%1 +. +MessageId=42125 +Language=English +%1 +. +MessageId=42126 +Language=English +%1 +. +MessageId=42127 +Language=English +%1 +. +MessageId=42128 +Language=English +%1 +. +MessageId=42129 +Language=English +%1 +. +MessageId=42130 +Language=English +%1 +. +MessageId=42131 +Language=English +%1 +. +MessageId=42132 +Language=English +%1 +. +MessageId=42133 +Language=English +%1 +. +MessageId=42134 +Language=English +%1 +. +MessageId=42135 +Language=English +%1 +. +MessageId=42136 +Language=English +%1 +. +MessageId=42137 +Language=English +%1 +. +MessageId=42138 +Language=English +%1 +. +MessageId=42139 +Language=English +%1 +. +MessageId=42140 +Language=English +%1 +. +MessageId=42141 +Language=English +%1 +. +MessageId=42142 +Language=English +%1 +. +MessageId=42143 +Language=English +%1 +. +MessageId=42144 +Language=English +%1 +. +MessageId=42145 +Language=English +%1 +. +MessageId=42146 +Language=English +%1 +. +MessageId=42147 +Language=English +%1 +. +MessageId=42148 +Language=English +%1 +. +MessageId=42149 +Language=English +%1 +. +MessageId=42150 +Language=English +%1 +. +MessageId=42151 +Language=English +%1 +. +MessageId=42152 +Language=English +%1 +. +MessageId=42153 +Language=English +%1 +. +MessageId=42154 +Language=English +%1 +. +MessageId=42155 +Language=English +%1 +. +MessageId=42156 +Language=English +%1 +. +MessageId=42157 +Language=English +%1 +. +MessageId=42158 +Language=English +%1 +. +MessageId=42159 +Language=English +%1 +. +MessageId=42160 +Language=English +%1 +. +MessageId=42161 +Language=English +%1 +. +MessageId=42162 +Language=English +%1 +. +MessageId=42163 +Language=English +%1 +. +MessageId=42164 +Language=English +%1 +. +MessageId=42165 +Language=English +%1 +. +MessageId=42166 +Language=English +%1 +. +MessageId=42167 +Language=English +%1 +. +MessageId=42168 +Language=English +%1 +. +MessageId=42169 +Language=English +%1 +. +MessageId=42170 +Language=English +%1 +. +MessageId=42171 +Language=English +%1 +. +MessageId=42172 +Language=English +%1 +. +MessageId=42173 +Language=English +%1 +. +MessageId=42174 +Language=English +%1 +. +MessageId=42175 +Language=English +%1 +. +MessageId=42176 +Language=English +%1 +. +MessageId=42177 +Language=English +%1 +. +MessageId=42178 +Language=English +%1 +. +MessageId=42179 +Language=English +%1 +. +MessageId=42180 +Language=English +%1 +. +MessageId=42181 +Language=English +%1 +. +MessageId=42182 +Language=English +%1 +. +MessageId=42183 +Language=English +%1 +. +MessageId=42184 +Language=English +%1 +. +MessageId=42185 +Language=English +%1 +. +MessageId=42186 +Language=English +%1 +. +MessageId=42187 +Language=English +%1 +. +MessageId=42188 +Language=English +%1 +. +MessageId=42189 +Language=English +%1 +. +MessageId=42190 +Language=English +%1 +. +MessageId=42191 +Language=English +%1 +. +MessageId=42192 +Language=English +%1 +. +MessageId=42193 +Language=English +%1 +. +MessageId=42194 +Language=English +%1 +. +MessageId=42195 +Language=English +%1 +. +MessageId=42196 +Language=English +%1 +. +MessageId=42197 +Language=English +%1 +. +MessageId=42198 +Language=English +%1 +. +MessageId=42199 +Language=English +%1 +. +MessageId=42200 +Language=English +%1 +. +MessageId=42201 +Language=English +%1 +. +MessageId=42202 +Language=English +%1 +. +MessageId=42203 +Language=English +%1 +. +MessageId=42204 +Language=English +%1 +. +MessageId=42205 +Language=English +%1 +. +MessageId=42206 +Language=English +%1 +. +MessageId=42207 +Language=English +%1 +. +MessageId=42208 +Language=English +%1 +. +MessageId=42209 +Language=English +%1 +. +MessageId=42210 +Language=English +%1 +. +MessageId=42211 +Language=English +%1 +. +MessageId=42212 +Language=English +%1 +. +MessageId=42213 +Language=English +%1 +. +MessageId=42214 +Language=English +%1 +. +MessageId=42215 +Language=English +%1 +. +MessageId=42216 +Language=English +%1 +. +MessageId=42217 +Language=English +%1 +. +MessageId=42218 +Language=English +%1 +. +MessageId=42219 +Language=English +%1 +. +MessageId=42220 +Language=English +%1 +. +MessageId=42221 +Language=English +%1 +. +MessageId=42222 +Language=English +%1 +. +MessageId=42223 +Language=English +%1 +. +MessageId=42224 +Language=English +%1 +. +MessageId=42225 +Language=English +%1 +. +MessageId=42226 +Language=English +%1 +. +MessageId=42227 +Language=English +%1 +. +MessageId=42228 +Language=English +%1 +. +MessageId=42229 +Language=English +%1 +. +MessageId=42230 +Language=English +%1 +. +MessageId=42231 +Language=English +%1 +. +MessageId=42232 +Language=English +%1 +. +MessageId=42233 +Language=English +%1 +. +MessageId=42234 +Language=English +%1 +. +MessageId=42235 +Language=English +%1 +. +MessageId=42236 +Language=English +%1 +. +MessageId=42237 +Language=English +%1 +. +MessageId=42238 +Language=English +%1 +. +MessageId=42239 +Language=English +%1 +. +MessageId=42240 +Language=English +%1 +. +MessageId=42241 +Language=English +%1 +. +MessageId=42242 +Language=English +%1 +. +MessageId=42243 +Language=English +%1 +. +MessageId=42244 +Language=English +%1 +. +MessageId=42245 +Language=English +%1 +. +MessageId=42246 +Language=English +%1 +. +MessageId=42247 +Language=English +%1 +. +MessageId=42248 +Language=English +%1 +. +MessageId=42249 +Language=English +%1 +. +MessageId=42250 +Language=English +%1 +. +MessageId=42251 +Language=English +%1 +. +MessageId=42252 +Language=English +%1 +. +MessageId=42253 +Language=English +%1 +. +MessageId=42254 +Language=English +%1 +. +MessageId=42255 +Language=English +%1 +. +MessageId=42256 +Language=English +%1 +. +MessageId=42257 +Language=English +%1 +. +MessageId=42258 +Language=English +%1 +. +MessageId=42259 +Language=English +%1 +. +MessageId=42260 +Language=English +%1 +. +MessageId=42261 +Language=English +%1 +. +MessageId=42262 +Language=English +%1 +. +MessageId=42263 +Language=English +%1 +. +MessageId=42264 +Language=English +%1 +. +MessageId=42265 +Language=English +%1 +. +MessageId=42266 +Language=English +%1 +. +MessageId=42267 +Language=English +%1 +. +MessageId=42268 +Language=English +%1 +. +MessageId=42269 +Language=English +%1 +. +MessageId=42270 +Language=English +%1 +. +MessageId=42271 +Language=English +%1 +. +MessageId=42272 +Language=English +%1 +. +MessageId=42273 +Language=English +%1 +. +MessageId=42274 +Language=English +%1 +. +MessageId=42275 +Language=English +%1 +. +MessageId=42276 +Language=English +%1 +. +MessageId=42277 +Language=English +%1 +. +MessageId=42278 +Language=English +%1 +. +MessageId=42279 +Language=English +%1 +. +MessageId=42280 +Language=English +%1 +. +MessageId=42281 +Language=English +%1 +. +MessageId=42282 +Language=English +%1 +. +MessageId=42283 +Language=English +%1 +. +MessageId=42284 +Language=English +%1 +. +MessageId=42285 +Language=English +%1 +. +MessageId=42286 +Language=English +%1 +. +MessageId=42287 +Language=English +%1 +. +MessageId=42288 +Language=English +%1 +. +MessageId=42289 +Language=English +%1 +. +MessageId=42290 +Language=English +%1 +. +MessageId=42291 +Language=English +%1 +. +MessageId=42292 +Language=English +%1 +. +MessageId=42293 +Language=English +%1 +. +MessageId=42294 +Language=English +%1 +. +MessageId=42295 +Language=English +%1 +. +MessageId=42296 +Language=English +%1 +. +MessageId=42297 +Language=English +%1 +. +MessageId=42298 +Language=English +%1 +. +MessageId=42299 +Language=English +%1 +. +MessageId=42300 +Language=English +%1 +. +MessageId=42301 +Language=English +%1 +. +MessageId=42302 +Language=English +%1 +. +MessageId=42303 +Language=English +%1 +. +MessageId=42304 +Language=English +%1 +. +MessageId=42305 +Language=English +%1 +. +MessageId=42306 +Language=English +%1 +. +MessageId=42307 +Language=English +%1 +. +MessageId=42308 +Language=English +%1 +. +MessageId=42309 +Language=English +%1 +. +MessageId=42310 +Language=English +%1 +. +MessageId=42311 +Language=English +%1 +. +MessageId=42312 +Language=English +%1 +. +MessageId=42313 +Language=English +%1 +. +MessageId=42314 +Language=English +%1 +. +MessageId=42315 +Language=English +%1 +. +MessageId=42316 +Language=English +%1 +. +MessageId=42317 +Language=English +%1 +. +MessageId=42318 +Language=English +%1 +. +MessageId=42319 +Language=English +%1 +. +MessageId=42320 +Language=English +%1 +. +MessageId=42321 +Language=English +%1 +. +MessageId=42322 +Language=English +%1 +. +MessageId=42323 +Language=English +%1 +. +MessageId=42324 +Language=English +%1 +. +MessageId=42325 +Language=English +%1 +. +MessageId=42326 +Language=English +%1 +. +MessageId=42327 +Language=English +%1 +. +MessageId=42328 +Language=English +%1 +. +MessageId=42329 +Language=English +%1 +. +MessageId=42330 +Language=English +%1 +. +MessageId=42331 +Language=English +%1 +. +MessageId=42332 +Language=English +%1 +. +MessageId=42333 +Language=English +%1 +. +MessageId=42334 +Language=English +%1 +. +MessageId=42335 +Language=English +%1 +. +MessageId=42336 +Language=English +%1 +. +MessageId=42337 +Language=English +%1 +. +MessageId=42338 +Language=English +%1 +. +MessageId=42339 +Language=English +%1 +. +MessageId=42340 +Language=English +%1 +. +MessageId=42341 +Language=English +%1 +. +MessageId=42342 +Language=English +%1 +. +MessageId=42343 +Language=English +%1 +. +MessageId=42344 +Language=English +%1 +. +MessageId=42345 +Language=English +%1 +. +MessageId=42346 +Language=English +%1 +. +MessageId=42347 +Language=English +%1 +. +MessageId=42348 +Language=English +%1 +. +MessageId=42349 +Language=English +%1 +. +MessageId=42350 +Language=English +%1 +. +MessageId=42351 +Language=English +%1 +. +MessageId=42352 +Language=English +%1 +. +MessageId=42353 +Language=English +%1 +. +MessageId=42354 +Language=English +%1 +. +MessageId=42355 +Language=English +%1 +. +MessageId=42356 +Language=English +%1 +. +MessageId=42357 +Language=English +%1 +. +MessageId=42358 +Language=English +%1 +. +MessageId=42359 +Language=English +%1 +. +MessageId=42360 +Language=English +%1 +. +MessageId=42361 +Language=English +%1 +. +MessageId=42362 +Language=English +%1 +. +MessageId=42363 +Language=English +%1 +. +MessageId=42364 +Language=English +%1 +. +MessageId=42365 +Language=English +%1 +. +MessageId=42366 +Language=English +%1 +. +MessageId=42367 +Language=English +%1 +. +MessageId=42368 +Language=English +%1 +. +MessageId=42369 +Language=English +%1 +. +MessageId=42370 +Language=English +%1 +. +MessageId=42371 +Language=English +%1 +. +MessageId=42372 +Language=English +%1 +. +MessageId=42373 +Language=English +%1 +. +MessageId=42374 +Language=English +%1 +. +MessageId=42375 +Language=English +%1 +. +MessageId=42376 +Language=English +%1 +. +MessageId=42377 +Language=English +%1 +. +MessageId=42378 +Language=English +%1 +. +MessageId=42379 +Language=English +%1 +. +MessageId=42380 +Language=English +%1 +. +MessageId=42381 +Language=English +%1 +. +MessageId=42382 +Language=English +%1 +. +MessageId=42383 +Language=English +%1 +. +MessageId=42384 +Language=English +%1 +. +MessageId=42385 +Language=English +%1 +. +MessageId=42386 +Language=English +%1 +. +MessageId=42387 +Language=English +%1 +. +MessageId=42388 +Language=English +%1 +. +MessageId=42389 +Language=English +%1 +. +MessageId=42390 +Language=English +%1 +. +MessageId=42391 +Language=English +%1 +. +MessageId=42392 +Language=English +%1 +. +MessageId=42393 +Language=English +%1 +. +MessageId=42394 +Language=English +%1 +. +MessageId=42395 +Language=English +%1 +. +MessageId=42396 +Language=English +%1 +. +MessageId=42397 +Language=English +%1 +. +MessageId=42398 +Language=English +%1 +. +MessageId=42399 +Language=English +%1 +. +MessageId=42400 +Language=English +%1 +. +MessageId=42401 +Language=English +%1 +. +MessageId=42402 +Language=English +%1 +. +MessageId=42403 +Language=English +%1 +. +MessageId=42404 +Language=English +%1 +. +MessageId=42405 +Language=English +%1 +. +MessageId=42406 +Language=English +%1 +. +MessageId=42407 +Language=English +%1 +. +MessageId=42408 +Language=English +%1 +. +MessageId=42409 +Language=English +%1 +. +MessageId=42410 +Language=English +%1 +. +MessageId=42411 +Language=English +%1 +. +MessageId=42412 +Language=English +%1 +. +MessageId=42413 +Language=English +%1 +. +MessageId=42414 +Language=English +%1 +. +MessageId=42415 +Language=English +%1 +. +MessageId=42416 +Language=English +%1 +. +MessageId=42417 +Language=English +%1 +. +MessageId=42418 +Language=English +%1 +. +MessageId=42419 +Language=English +%1 +. +MessageId=42420 +Language=English +%1 +. +MessageId=42421 +Language=English +%1 +. +MessageId=42422 +Language=English +%1 +. +MessageId=42423 +Language=English +%1 +. +MessageId=42424 +Language=English +%1 +. +MessageId=42425 +Language=English +%1 +. +MessageId=42426 +Language=English +%1 +. +MessageId=42427 +Language=English +%1 +. +MessageId=42428 +Language=English +%1 +. +MessageId=42429 +Language=English +%1 +. +MessageId=42430 +Language=English +%1 +. +MessageId=42431 +Language=English +%1 +. +MessageId=42432 +Language=English +%1 +. +MessageId=42433 +Language=English +%1 +. +MessageId=42434 +Language=English +%1 +. +MessageId=42435 +Language=English +%1 +. +MessageId=42436 +Language=English +%1 +. +MessageId=42437 +Language=English +%1 +. +MessageId=42438 +Language=English +%1 +. +MessageId=42439 +Language=English +%1 +. +MessageId=42440 +Language=English +%1 +. +MessageId=42441 +Language=English +%1 +. +MessageId=42442 +Language=English +%1 +. +MessageId=42443 +Language=English +%1 +. +MessageId=42444 +Language=English +%1 +. +MessageId=42445 +Language=English +%1 +. +MessageId=42446 +Language=English +%1 +. +MessageId=42447 +Language=English +%1 +. +MessageId=42448 +Language=English +%1 +. +MessageId=42449 +Language=English +%1 +. +MessageId=42450 +Language=English +%1 +. +MessageId=42451 +Language=English +%1 +. +MessageId=42452 +Language=English +%1 +. +MessageId=42453 +Language=English +%1 +. +MessageId=42454 +Language=English +%1 +. +MessageId=42455 +Language=English +%1 +. +MessageId=42456 +Language=English +%1 +. +MessageId=42457 +Language=English +%1 +. +MessageId=42458 +Language=English +%1 +. +MessageId=42459 +Language=English +%1 +. +MessageId=42460 +Language=English +%1 +. +MessageId=42461 +Language=English +%1 +. +MessageId=42462 +Language=English +%1 +. +MessageId=42463 +Language=English +%1 +. +MessageId=42464 +Language=English +%1 +. +MessageId=42465 +Language=English +%1 +. +MessageId=42466 +Language=English +%1 +. +MessageId=42467 +Language=English +%1 +. +MessageId=42468 +Language=English +%1 +. +MessageId=42469 +Language=English +%1 +. +MessageId=42470 +Language=English +%1 +. +MessageId=42471 +Language=English +%1 +. +MessageId=42472 +Language=English +%1 +. +MessageId=42473 +Language=English +%1 +. +MessageId=42474 +Language=English +%1 +. +MessageId=42475 +Language=English +%1 +. +MessageId=42476 +Language=English +%1 +. +MessageId=42477 +Language=English +%1 +. +MessageId=42478 +Language=English +%1 +. +MessageId=42479 +Language=English +%1 +. +MessageId=42480 +Language=English +%1 +. +MessageId=42481 +Language=English +%1 +. +MessageId=42482 +Language=English +%1 +. +MessageId=42483 +Language=English +%1 +. +MessageId=42484 +Language=English +%1 +. +MessageId=42485 +Language=English +%1 +. +MessageId=42486 +Language=English +%1 +. +MessageId=42487 +Language=English +%1 +. +MessageId=42488 +Language=English +%1 +. +MessageId=42489 +Language=English +%1 +. +MessageId=42490 +Language=English +%1 +. +MessageId=42491 +Language=English +%1 +. +MessageId=42492 +Language=English +%1 +. +MessageId=42493 +Language=English +%1 +. +MessageId=42494 +Language=English +%1 +. +MessageId=42495 +Language=English +%1 +. +MessageId=42496 +Language=English +%1 +. +MessageId=42497 +Language=English +%1 +. +MessageId=42498 +Language=English +%1 +. +MessageId=42499 +Language=English +%1 +. +MessageId=42500 +Language=English +%1 +. +MessageId=42501 +Language=English +%1 +. +MessageId=42502 +Language=English +%1 +. +MessageId=42503 +Language=English +%1 +. +MessageId=42504 +Language=English +%1 +. +MessageId=42505 +Language=English +%1 +. +MessageId=42506 +Language=English +%1 +. +MessageId=42507 +Language=English +%1 +. +MessageId=42508 +Language=English +%1 +. +MessageId=42509 +Language=English +%1 +. +MessageId=42510 +Language=English +%1 +. +MessageId=42511 +Language=English +%1 +. +MessageId=42512 +Language=English +%1 +. +MessageId=42513 +Language=English +%1 +. +MessageId=42514 +Language=English +%1 +. +MessageId=42515 +Language=English +%1 +. +MessageId=42516 +Language=English +%1 +. +MessageId=42517 +Language=English +%1 +. +MessageId=42518 +Language=English +%1 +. +MessageId=42519 +Language=English +%1 +. +MessageId=42520 +Language=English +%1 +. +MessageId=42521 +Language=English +%1 +. +MessageId=42522 +Language=English +%1 +. +MessageId=42523 +Language=English +%1 +. +MessageId=42524 +Language=English +%1 +. +MessageId=42525 +Language=English +%1 +. +MessageId=42526 +Language=English +%1 +. +MessageId=42527 +Language=English +%1 +. +MessageId=42528 +Language=English +%1 +. +MessageId=42529 +Language=English +%1 +. +MessageId=42530 +Language=English +%1 +. +MessageId=42531 +Language=English +%1 +. +MessageId=42532 +Language=English +%1 +. +MessageId=42533 +Language=English +%1 +. +MessageId=42534 +Language=English +%1 +. +MessageId=42535 +Language=English +%1 +. +MessageId=42536 +Language=English +%1 +. +MessageId=42537 +Language=English +%1 +. +MessageId=42538 +Language=English +%1 +. +MessageId=42539 +Language=English +%1 +. +MessageId=42540 +Language=English +%1 +. +MessageId=42541 +Language=English +%1 +. +MessageId=42542 +Language=English +%1 +. +MessageId=42543 +Language=English +%1 +. +MessageId=42544 +Language=English +%1 +. +MessageId=42545 +Language=English +%1 +. +MessageId=42546 +Language=English +%1 +. +MessageId=42547 +Language=English +%1 +. +MessageId=42548 +Language=English +%1 +. +MessageId=42549 +Language=English +%1 +. +MessageId=42550 +Language=English +%1 +. +MessageId=42551 +Language=English +%1 +. +MessageId=42552 +Language=English +%1 +. +MessageId=42553 +Language=English +%1 +. +MessageId=42554 +Language=English +%1 +. +MessageId=42555 +Language=English +%1 +. +MessageId=42556 +Language=English +%1 +. +MessageId=42557 +Language=English +%1 +. +MessageId=42558 +Language=English +%1 +. +MessageId=42559 +Language=English +%1 +. +MessageId=42560 +Language=English +%1 +. +MessageId=42561 +Language=English +%1 +. +MessageId=42562 +Language=English +%1 +. +MessageId=42563 +Language=English +%1 +. +MessageId=42564 +Language=English +%1 +. +MessageId=42565 +Language=English +%1 +. +MessageId=42566 +Language=English +%1 +. +MessageId=42567 +Language=English +%1 +. +MessageId=42568 +Language=English +%1 +. +MessageId=42569 +Language=English +%1 +. +MessageId=42570 +Language=English +%1 +. +MessageId=42571 +Language=English +%1 +. +MessageId=42572 +Language=English +%1 +. +MessageId=42573 +Language=English +%1 +. +MessageId=42574 +Language=English +%1 +. +MessageId=42575 +Language=English +%1 +. +MessageId=42576 +Language=English +%1 +. +MessageId=42577 +Language=English +%1 +. +MessageId=42578 +Language=English +%1 +. +MessageId=42579 +Language=English +%1 +. +MessageId=42580 +Language=English +%1 +. +MessageId=42581 +Language=English +%1 +. +MessageId=42582 +Language=English +%1 +. +MessageId=42583 +Language=English +%1 +. +MessageId=42584 +Language=English +%1 +. +MessageId=42585 +Language=English +%1 +. +MessageId=42586 +Language=English +%1 +. +MessageId=42587 +Language=English +%1 +. +MessageId=42588 +Language=English +%1 +. +MessageId=42589 +Language=English +%1 +. +MessageId=42590 +Language=English +%1 +. +MessageId=42591 +Language=English +%1 +. +MessageId=42592 +Language=English +%1 +. +MessageId=42593 +Language=English +%1 +. +MessageId=42594 +Language=English +%1 +. +MessageId=42595 +Language=English +%1 +. +MessageId=42596 +Language=English +%1 +. +MessageId=42597 +Language=English +%1 +. +MessageId=42598 +Language=English +%1 +. +MessageId=42599 +Language=English +%1 +. +MessageId=42600 +Language=English +%1 +. +MessageId=42601 +Language=English +%1 +. +MessageId=42602 +Language=English +%1 +. +MessageId=42603 +Language=English +%1 +. +MessageId=42604 +Language=English +%1 +. +MessageId=42605 +Language=English +%1 +. +MessageId=42606 +Language=English +%1 +. +MessageId=42607 +Language=English +%1 +. +MessageId=42608 +Language=English +%1 +. +MessageId=42609 +Language=English +%1 +. +MessageId=42610 +Language=English +%1 +. +MessageId=42611 +Language=English +%1 +. +MessageId=42612 +Language=English +%1 +. +MessageId=42613 +Language=English +%1 +. +MessageId=42614 +Language=English +%1 +. +MessageId=42615 +Language=English +%1 +. +MessageId=42616 +Language=English +%1 +. +MessageId=42617 +Language=English +%1 +. +MessageId=42618 +Language=English +%1 +. +MessageId=42619 +Language=English +%1 +. +MessageId=42620 +Language=English +%1 +. +MessageId=42621 +Language=English +%1 +. +MessageId=42622 +Language=English +%1 +. +MessageId=42623 +Language=English +%1 +. +MessageId=42624 +Language=English +%1 +. +MessageId=42625 +Language=English +%1 +. +MessageId=42626 +Language=English +%1 +. +MessageId=42627 +Language=English +%1 +. +MessageId=42628 +Language=English +%1 +. +MessageId=42629 +Language=English +%1 +. +MessageId=42630 +Language=English +%1 +. +MessageId=42631 +Language=English +%1 +. +MessageId=42632 +Language=English +%1 +. +MessageId=42633 +Language=English +%1 +. +MessageId=42634 +Language=English +%1 +. +MessageId=42635 +Language=English +%1 +. +MessageId=42636 +Language=English +%1 +. +MessageId=42637 +Language=English +%1 +. +MessageId=42638 +Language=English +%1 +. +MessageId=42639 +Language=English +%1 +. +MessageId=42640 +Language=English +%1 +. +MessageId=42641 +Language=English +%1 +. +MessageId=42642 +Language=English +%1 +. +MessageId=42643 +Language=English +%1 +. +MessageId=42644 +Language=English +%1 +. +MessageId=42645 +Language=English +%1 +. +MessageId=42646 +Language=English +%1 +. +MessageId=42647 +Language=English +%1 +. +MessageId=42648 +Language=English +%1 +. +MessageId=42649 +Language=English +%1 +. +MessageId=42650 +Language=English +%1 +. +MessageId=42651 +Language=English +%1 +. +MessageId=42652 +Language=English +%1 +. +MessageId=42653 +Language=English +%1 +. +MessageId=42654 +Language=English +%1 +. +MessageId=42655 +Language=English +%1 +. +MessageId=42656 +Language=English +%1 +. +MessageId=42657 +Language=English +%1 +. +MessageId=42658 +Language=English +%1 +. +MessageId=42659 +Language=English +%1 +. +MessageId=42660 +Language=English +%1 +. +MessageId=42661 +Language=English +%1 +. +MessageId=42662 +Language=English +%1 +. +MessageId=42663 +Language=English +%1 +. +MessageId=42664 +Language=English +%1 +. +MessageId=42665 +Language=English +%1 +. +MessageId=42666 +Language=English +%1 +. +MessageId=42667 +Language=English +%1 +. +MessageId=42668 +Language=English +%1 +. +MessageId=42669 +Language=English +%1 +. +MessageId=42670 +Language=English +%1 +. +MessageId=42671 +Language=English +%1 +. +MessageId=42672 +Language=English +%1 +. +MessageId=42673 +Language=English +%1 +. +MessageId=42674 +Language=English +%1 +. +MessageId=42675 +Language=English +%1 +. +MessageId=42676 +Language=English +%1 +. +MessageId=42677 +Language=English +%1 +. +MessageId=42678 +Language=English +%1 +. +MessageId=42679 +Language=English +%1 +. +MessageId=42680 +Language=English +%1 +. +MessageId=42681 +Language=English +%1 +. +MessageId=42682 +Language=English +%1 +. +MessageId=42683 +Language=English +%1 +. +MessageId=42684 +Language=English +%1 +. +MessageId=42685 +Language=English +%1 +. +MessageId=42686 +Language=English +%1 +. +MessageId=42687 +Language=English +%1 +. +MessageId=42688 +Language=English +%1 +. +MessageId=42689 +Language=English +%1 +. +MessageId=42690 +Language=English +%1 +. +MessageId=42691 +Language=English +%1 +. +MessageId=42692 +Language=English +%1 +. +MessageId=42693 +Language=English +%1 +. +MessageId=42694 +Language=English +%1 +. +MessageId=42695 +Language=English +%1 +. +MessageId=42696 +Language=English +%1 +. +MessageId=42697 +Language=English +%1 +. +MessageId=42698 +Language=English +%1 +. +MessageId=42699 +Language=English +%1 +. +MessageId=42700 +Language=English +%1 +. +MessageId=42701 +Language=English +%1 +. +MessageId=42702 +Language=English +%1 +. +MessageId=42703 +Language=English +%1 +. +MessageId=42704 +Language=English +%1 +. +MessageId=42705 +Language=English +%1 +. +MessageId=42706 +Language=English +%1 +. +MessageId=42707 +Language=English +%1 +. +MessageId=42708 +Language=English +%1 +. +MessageId=42709 +Language=English +%1 +. +MessageId=42710 +Language=English +%1 +. +MessageId=42711 +Language=English +%1 +. +MessageId=42712 +Language=English +%1 +. +MessageId=42713 +Language=English +%1 +. +MessageId=42714 +Language=English +%1 +. +MessageId=42715 +Language=English +%1 +. +MessageId=42716 +Language=English +%1 +. +MessageId=42717 +Language=English +%1 +. +MessageId=42718 +Language=English +%1 +. +MessageId=42719 +Language=English +%1 +. +MessageId=42720 +Language=English +%1 +. +MessageId=42721 +Language=English +%1 +. +MessageId=42722 +Language=English +%1 +. +MessageId=42723 +Language=English +%1 +. +MessageId=42724 +Language=English +%1 +. +MessageId=42725 +Language=English +%1 +. +MessageId=42726 +Language=English +%1 +. +MessageId=42727 +Language=English +%1 +. +MessageId=42728 +Language=English +%1 +. +MessageId=42729 +Language=English +%1 +. +MessageId=42730 +Language=English +%1 +. +MessageId=42731 +Language=English +%1 +. +MessageId=42732 +Language=English +%1 +. +MessageId=42733 +Language=English +%1 +. +MessageId=42734 +Language=English +%1 +. +MessageId=42735 +Language=English +%1 +. +MessageId=42736 +Language=English +%1 +. +MessageId=42737 +Language=English +%1 +. +MessageId=42738 +Language=English +%1 +. +MessageId=42739 +Language=English +%1 +. +MessageId=42740 +Language=English +%1 +. +MessageId=42741 +Language=English +%1 +. +MessageId=42742 +Language=English +%1 +. +MessageId=42743 +Language=English +%1 +. +MessageId=42744 +Language=English +%1 +. +MessageId=42745 +Language=English +%1 +. +MessageId=42746 +Language=English +%1 +. +MessageId=42747 +Language=English +%1 +. +MessageId=42748 +Language=English +%1 +. +MessageId=42749 +Language=English +%1 +. +MessageId=42750 +Language=English +%1 +. +MessageId=42751 +Language=English +%1 +. +MessageId=42752 +Language=English +%1 +. +MessageId=42753 +Language=English +%1 +. +MessageId=42754 +Language=English +%1 +. +MessageId=42755 +Language=English +%1 +. +MessageId=42756 +Language=English +%1 +. +MessageId=42757 +Language=English +%1 +. +MessageId=42758 +Language=English +%1 +. +MessageId=42759 +Language=English +%1 +. +MessageId=42760 +Language=English +%1 +. +MessageId=42761 +Language=English +%1 +. +MessageId=42762 +Language=English +%1 +. +MessageId=42763 +Language=English +%1 +. +MessageId=42764 +Language=English +%1 +. +MessageId=42765 +Language=English +%1 +. +MessageId=42766 +Language=English +%1 +. +MessageId=42767 +Language=English +%1 +. +MessageId=42768 +Language=English +%1 +. +MessageId=42769 +Language=English +%1 +. +MessageId=42770 +Language=English +%1 +. +MessageId=42771 +Language=English +%1 +. +MessageId=42772 +Language=English +%1 +. +MessageId=42773 +Language=English +%1 +. +MessageId=42774 +Language=English +%1 +. +MessageId=42775 +Language=English +%1 +. +MessageId=42776 +Language=English +%1 +. +MessageId=42777 +Language=English +%1 +. +MessageId=42778 +Language=English +%1 +. +MessageId=42779 +Language=English +%1 +. +MessageId=42780 +Language=English +%1 +. +MessageId=42781 +Language=English +%1 +. +MessageId=42782 +Language=English +%1 +. +MessageId=42783 +Language=English +%1 +. +MessageId=42784 +Language=English +%1 +. +MessageId=42785 +Language=English +%1 +. +MessageId=42786 +Language=English +%1 +. +MessageId=42787 +Language=English +%1 +. +MessageId=42788 +Language=English +%1 +. +MessageId=42789 +Language=English +%1 +. +MessageId=42790 +Language=English +%1 +. +MessageId=42791 +Language=English +%1 +. +MessageId=42792 +Language=English +%1 +. +MessageId=42793 +Language=English +%1 +. +MessageId=42794 +Language=English +%1 +. +MessageId=42795 +Language=English +%1 +. +MessageId=42796 +Language=English +%1 +. +MessageId=42797 +Language=English +%1 +. +MessageId=42798 +Language=English +%1 +. +MessageId=42799 +Language=English +%1 +. +MessageId=42800 +Language=English +%1 +. +MessageId=42801 +Language=English +%1 +. +MessageId=42802 +Language=English +%1 +. +MessageId=42803 +Language=English +%1 +. +MessageId=42804 +Language=English +%1 +. +MessageId=42805 +Language=English +%1 +. +MessageId=42806 +Language=English +%1 +. +MessageId=42807 +Language=English +%1 +. +MessageId=42808 +Language=English +%1 +. +MessageId=42809 +Language=English +%1 +. +MessageId=42810 +Language=English +%1 +. +MessageId=42811 +Language=English +%1 +. +MessageId=42812 +Language=English +%1 +. +MessageId=42813 +Language=English +%1 +. +MessageId=42814 +Language=English +%1 +. +MessageId=42815 +Language=English +%1 +. +MessageId=42816 +Language=English +%1 +. +MessageId=42817 +Language=English +%1 +. +MessageId=42818 +Language=English +%1 +. +MessageId=42819 +Language=English +%1 +. +MessageId=42820 +Language=English +%1 +. +MessageId=42821 +Language=English +%1 +. +MessageId=42822 +Language=English +%1 +. +MessageId=42823 +Language=English +%1 +. +MessageId=42824 +Language=English +%1 +. +MessageId=42825 +Language=English +%1 +. +MessageId=42826 +Language=English +%1 +. +MessageId=42827 +Language=English +%1 +. +MessageId=42828 +Language=English +%1 +. +MessageId=42829 +Language=English +%1 +. +MessageId=42830 +Language=English +%1 +. +MessageId=42831 +Language=English +%1 +. +MessageId=42832 +Language=English +%1 +. +MessageId=42833 +Language=English +%1 +. +MessageId=42834 +Language=English +%1 +. +MessageId=42835 +Language=English +%1 +. +MessageId=42836 +Language=English +%1 +. +MessageId=42837 +Language=English +%1 +. +MessageId=42838 +Language=English +%1 +. +MessageId=42839 +Language=English +%1 +. +MessageId=42840 +Language=English +%1 +. +MessageId=42841 +Language=English +%1 +. +MessageId=42842 +Language=English +%1 +. +MessageId=42843 +Language=English +%1 +. +MessageId=42844 +Language=English +%1 +. +MessageId=42845 +Language=English +%1 +. +MessageId=42846 +Language=English +%1 +. +MessageId=42847 +Language=English +%1 +. +MessageId=42848 +Language=English +%1 +. +MessageId=42849 +Language=English +%1 +. +MessageId=42850 +Language=English +%1 +. +MessageId=42851 +Language=English +%1 +. +MessageId=42852 +Language=English +%1 +. +MessageId=42853 +Language=English +%1 +. +MessageId=42854 +Language=English +%1 +. +MessageId=42855 +Language=English +%1 +. +MessageId=42856 +Language=English +%1 +. +MessageId=42857 +Language=English +%1 +. +MessageId=42858 +Language=English +%1 +. +MessageId=42859 +Language=English +%1 +. +MessageId=42860 +Language=English +%1 +. +MessageId=42861 +Language=English +%1 +. +MessageId=42862 +Language=English +%1 +. +MessageId=42863 +Language=English +%1 +. +MessageId=42864 +Language=English +%1 +. +MessageId=42865 +Language=English +%1 +. +MessageId=42866 +Language=English +%1 +. +MessageId=42867 +Language=English +%1 +. +MessageId=42868 +Language=English +%1 +. +MessageId=42869 +Language=English +%1 +. +MessageId=42870 +Language=English +%1 +. +MessageId=42871 +Language=English +%1 +. +MessageId=42872 +Language=English +%1 +. +MessageId=42873 +Language=English +%1 +. +MessageId=42874 +Language=English +%1 +. +MessageId=42875 +Language=English +%1 +. +MessageId=42876 +Language=English +%1 +. +MessageId=42877 +Language=English +%1 +. +MessageId=42878 +Language=English +%1 +. +MessageId=42879 +Language=English +%1 +. +MessageId=42880 +Language=English +%1 +. +MessageId=42881 +Language=English +%1 +. +MessageId=42882 +Language=English +%1 +. +MessageId=42883 +Language=English +%1 +. +MessageId=42884 +Language=English +%1 +. +MessageId=42885 +Language=English +%1 +. +MessageId=42886 +Language=English +%1 +. +MessageId=42887 +Language=English +%1 +. +MessageId=42888 +Language=English +%1 +. +MessageId=42889 +Language=English +%1 +. +MessageId=42890 +Language=English +%1 +. +MessageId=42891 +Language=English +%1 +. +MessageId=42892 +Language=English +%1 +. +MessageId=42893 +Language=English +%1 +. +MessageId=42894 +Language=English +%1 +. +MessageId=42895 +Language=English +%1 +. +MessageId=42896 +Language=English +%1 +. +MessageId=42897 +Language=English +%1 +. +MessageId=42898 +Language=English +%1 +. +MessageId=42899 +Language=English +%1 +. +MessageId=42900 +Language=English +%1 +. +MessageId=42901 +Language=English +%1 +. +MessageId=42902 +Language=English +%1 +. +MessageId=42903 +Language=English +%1 +. +MessageId=42904 +Language=English +%1 +. +MessageId=42905 +Language=English +%1 +. +MessageId=42906 +Language=English +%1 +. +MessageId=42907 +Language=English +%1 +. +MessageId=42908 +Language=English +%1 +. +MessageId=42909 +Language=English +%1 +. +MessageId=42910 +Language=English +%1 +. +MessageId=42911 +Language=English +%1 +. +MessageId=42912 +Language=English +%1 +. +MessageId=42913 +Language=English +%1 +. +MessageId=42914 +Language=English +%1 +. +MessageId=42915 +Language=English +%1 +. +MessageId=42916 +Language=English +%1 +. +MessageId=42917 +Language=English +%1 +. +MessageId=42918 +Language=English +%1 +. +MessageId=42919 +Language=English +%1 +. +MessageId=42920 +Language=English +%1 +. +MessageId=42921 +Language=English +%1 +. +MessageId=42922 +Language=English +%1 +. +MessageId=42923 +Language=English +%1 +. +MessageId=42924 +Language=English +%1 +. +MessageId=42925 +Language=English +%1 +. +MessageId=42926 +Language=English +%1 +. +MessageId=42927 +Language=English +%1 +. +MessageId=42928 +Language=English +%1 +. +MessageId=42929 +Language=English +%1 +. +MessageId=42930 +Language=English +%1 +. +MessageId=42931 +Language=English +%1 +. +MessageId=42932 +Language=English +%1 +. +MessageId=42933 +Language=English +%1 +. +MessageId=42934 +Language=English +%1 +. +MessageId=42935 +Language=English +%1 +. +MessageId=42936 +Language=English +%1 +. +MessageId=42937 +Language=English +%1 +. +MessageId=42938 +Language=English +%1 +. +MessageId=42939 +Language=English +%1 +. +MessageId=42940 +Language=English +%1 +. +MessageId=42941 +Language=English +%1 +. +MessageId=42942 +Language=English +%1 +. +MessageId=42943 +Language=English +%1 +. +MessageId=42944 +Language=English +%1 +. +MessageId=42945 +Language=English +%1 +. +MessageId=42946 +Language=English +%1 +. +MessageId=42947 +Language=English +%1 +. +MessageId=42948 +Language=English +%1 +. +MessageId=42949 +Language=English +%1 +. +MessageId=42950 +Language=English +%1 +. +MessageId=42951 +Language=English +%1 +. +MessageId=42952 +Language=English +%1 +. +MessageId=42953 +Language=English +%1 +. +MessageId=42954 +Language=English +%1 +. +MessageId=42955 +Language=English +%1 +. +MessageId=42956 +Language=English +%1 +. +MessageId=42957 +Language=English +%1 +. +MessageId=42958 +Language=English +%1 +. +MessageId=42959 +Language=English +%1 +. +MessageId=42960 +Language=English +%1 +. +MessageId=42961 +Language=English +%1 +. +MessageId=42962 +Language=English +%1 +. +MessageId=42963 +Language=English +%1 +. +MessageId=42964 +Language=English +%1 +. +MessageId=42965 +Language=English +%1 +. +MessageId=42966 +Language=English +%1 +. +MessageId=42967 +Language=English +%1 +. +MessageId=42968 +Language=English +%1 +. +MessageId=42969 +Language=English +%1 +. +MessageId=42970 +Language=English +%1 +. +MessageId=42971 +Language=English +%1 +. +MessageId=42972 +Language=English +%1 +. +MessageId=42973 +Language=English +%1 +. +MessageId=42974 +Language=English +%1 +. +MessageId=42975 +Language=English +%1 +. +MessageId=42976 +Language=English +%1 +. +MessageId=42977 +Language=English +%1 +. +MessageId=42978 +Language=English +%1 +. +MessageId=42979 +Language=English +%1 +. +MessageId=42980 +Language=English +%1 +. +MessageId=42981 +Language=English +%1 +. +MessageId=42982 +Language=English +%1 +. +MessageId=42983 +Language=English +%1 +. +MessageId=42984 +Language=English +%1 +. +MessageId=42985 +Language=English +%1 +. +MessageId=42986 +Language=English +%1 +. +MessageId=42987 +Language=English +%1 +. +MessageId=42988 +Language=English +%1 +. +MessageId=42989 +Language=English +%1 +. +MessageId=42990 +Language=English +%1 +. +MessageId=42991 +Language=English +%1 +. +MessageId=42992 +Language=English +%1 +. +MessageId=42993 +Language=English +%1 +. +MessageId=42994 +Language=English +%1 +. +MessageId=42995 +Language=English +%1 +. +MessageId=42996 +Language=English +%1 +. +MessageId=42997 +Language=English +%1 +. +MessageId=42998 +Language=English +%1 +. +MessageId=42999 +Language=English +%1 +. +MessageId=43000 +Language=English +%1 +. +MessageId=43001 +Language=English +%1 +. +MessageId=43002 +Language=English +%1 +. +MessageId=43003 +Language=English +%1 +. +MessageId=43004 +Language=English +%1 +. +MessageId=43005 +Language=English +%1 +. +MessageId=43006 +Language=English +%1 +. +MessageId=43007 +Language=English +%1 +. +MessageId=43008 +Language=English +%1 +. +MessageId=43009 +Language=English +%1 +. +MessageId=43010 +Language=English +%1 +. +MessageId=43011 +Language=English +%1 +. +MessageId=43012 +Language=English +%1 +. +MessageId=43013 +Language=English +%1 +. +MessageId=43014 +Language=English +%1 +. +MessageId=43015 +Language=English +%1 +. +MessageId=43016 +Language=English +%1 +. +MessageId=43017 +Language=English +%1 +. +MessageId=43018 +Language=English +%1 +. +MessageId=43019 +Language=English +%1 +. +MessageId=43020 +Language=English +%1 +. +MessageId=43021 +Language=English +%1 +. +MessageId=43022 +Language=English +%1 +. +MessageId=43023 +Language=English +%1 +. +MessageId=43024 +Language=English +%1 +. +MessageId=43025 +Language=English +%1 +. +MessageId=43026 +Language=English +%1 +. +MessageId=43027 +Language=English +%1 +. +MessageId=43028 +Language=English +%1 +. +MessageId=43029 +Language=English +%1 +. +MessageId=43030 +Language=English +%1 +. +MessageId=43031 +Language=English +%1 +. +MessageId=43032 +Language=English +%1 +. +MessageId=43033 +Language=English +%1 +. +MessageId=43034 +Language=English +%1 +. +MessageId=43035 +Language=English +%1 +. +MessageId=43036 +Language=English +%1 +. +MessageId=43037 +Language=English +%1 +. +MessageId=43038 +Language=English +%1 +. +MessageId=43039 +Language=English +%1 +. +MessageId=43040 +Language=English +%1 +. +MessageId=43041 +Language=English +%1 +. +MessageId=43042 +Language=English +%1 +. +MessageId=43043 +Language=English +%1 +. +MessageId=43044 +Language=English +%1 +. +MessageId=43045 +Language=English +%1 +. +MessageId=43046 +Language=English +%1 +. +MessageId=43047 +Language=English +%1 +. +MessageId=43048 +Language=English +%1 +. +MessageId=43049 +Language=English +%1 +. +MessageId=43050 +Language=English +%1 +. +MessageId=43051 +Language=English +%1 +. +MessageId=43052 +Language=English +%1 +. +MessageId=43053 +Language=English +%1 +. +MessageId=43054 +Language=English +%1 +. +MessageId=43055 +Language=English +%1 +. +MessageId=43056 +Language=English +%1 +. +MessageId=43057 +Language=English +%1 +. +MessageId=43058 +Language=English +%1 +. +MessageId=43059 +Language=English +%1 +. +MessageId=43060 +Language=English +%1 +. +MessageId=43061 +Language=English +%1 +. +MessageId=43062 +Language=English +%1 +. +MessageId=43063 +Language=English +%1 +. +MessageId=43064 +Language=English +%1 +. +MessageId=43065 +Language=English +%1 +. +MessageId=43066 +Language=English +%1 +. +MessageId=43067 +Language=English +%1 +. +MessageId=43068 +Language=English +%1 +. +MessageId=43069 +Language=English +%1 +. +MessageId=43070 +Language=English +%1 +. +MessageId=43071 +Language=English +%1 +. +MessageId=43072 +Language=English +%1 +. +MessageId=43073 +Language=English +%1 +. +MessageId=43074 +Language=English +%1 +. +MessageId=43075 +Language=English +%1 +. +MessageId=43076 +Language=English +%1 +. +MessageId=43077 +Language=English +%1 +. +MessageId=43078 +Language=English +%1 +. +MessageId=43079 +Language=English +%1 +. +MessageId=43080 +Language=English +%1 +. +MessageId=43081 +Language=English +%1 +. +MessageId=43082 +Language=English +%1 +. +MessageId=43083 +Language=English +%1 +. +MessageId=43084 +Language=English +%1 +. +MessageId=43085 +Language=English +%1 +. +MessageId=43086 +Language=English +%1 +. +MessageId=43087 +Language=English +%1 +. +MessageId=43088 +Language=English +%1 +. +MessageId=43089 +Language=English +%1 +. +MessageId=43090 +Language=English +%1 +. +MessageId=43091 +Language=English +%1 +. +MessageId=43092 +Language=English +%1 +. +MessageId=43093 +Language=English +%1 +. +MessageId=43094 +Language=English +%1 +. +MessageId=43095 +Language=English +%1 +. +MessageId=43096 +Language=English +%1 +. +MessageId=43097 +Language=English +%1 +. +MessageId=43098 +Language=English +%1 +. +MessageId=43099 +Language=English +%1 +. +MessageId=43100 +Language=English +%1 +. +MessageId=43101 +Language=English +%1 +. +MessageId=43102 +Language=English +%1 +. +MessageId=43103 +Language=English +%1 +. +MessageId=43104 +Language=English +%1 +. +MessageId=43105 +Language=English +%1 +. +MessageId=43106 +Language=English +%1 +. +MessageId=43107 +Language=English +%1 +. +MessageId=43108 +Language=English +%1 +. +MessageId=43109 +Language=English +%1 +. +MessageId=43110 +Language=English +%1 +. +MessageId=43111 +Language=English +%1 +. +MessageId=43112 +Language=English +%1 +. +MessageId=43113 +Language=English +%1 +. +MessageId=43114 +Language=English +%1 +. +MessageId=43115 +Language=English +%1 +. +MessageId=43116 +Language=English +%1 +. +MessageId=43117 +Language=English +%1 +. +MessageId=43118 +Language=English +%1 +. +MessageId=43119 +Language=English +%1 +. +MessageId=43120 +Language=English +%1 +. +MessageId=43121 +Language=English +%1 +. +MessageId=43122 +Language=English +%1 +. +MessageId=43123 +Language=English +%1 +. +MessageId=43124 +Language=English +%1 +. +MessageId=43125 +Language=English +%1 +. +MessageId=43126 +Language=English +%1 +. +MessageId=43127 +Language=English +%1 +. +MessageId=43128 +Language=English +%1 +. +MessageId=43129 +Language=English +%1 +. +MessageId=43130 +Language=English +%1 +. +MessageId=43131 +Language=English +%1 +. +MessageId=43132 +Language=English +%1 +. +MessageId=43133 +Language=English +%1 +. +MessageId=43134 +Language=English +%1 +. +MessageId=43135 +Language=English +%1 +. +MessageId=43136 +Language=English +%1 +. +MessageId=43137 +Language=English +%1 +. +MessageId=43138 +Language=English +%1 +. +MessageId=43139 +Language=English +%1 +. +MessageId=43140 +Language=English +%1 +. +MessageId=43141 +Language=English +%1 +. +MessageId=43142 +Language=English +%1 +. +MessageId=43143 +Language=English +%1 +. +MessageId=43144 +Language=English +%1 +. +MessageId=43145 +Language=English +%1 +. +MessageId=43146 +Language=English +%1 +. +MessageId=43147 +Language=English +%1 +. +MessageId=43148 +Language=English +%1 +. +MessageId=43149 +Language=English +%1 +. +MessageId=43150 +Language=English +%1 +. +MessageId=43151 +Language=English +%1 +. +MessageId=43152 +Language=English +%1 +. +MessageId=43153 +Language=English +%1 +. +MessageId=43154 +Language=English +%1 +. +MessageId=43155 +Language=English +%1 +. +MessageId=43156 +Language=English +%1 +. +MessageId=43157 +Language=English +%1 +. +MessageId=43158 +Language=English +%1 +. +MessageId=43159 +Language=English +%1 +. +MessageId=43160 +Language=English +%1 +. +MessageId=43161 +Language=English +%1 +. +MessageId=43162 +Language=English +%1 +. +MessageId=43163 +Language=English +%1 +. +MessageId=43164 +Language=English +%1 +. +MessageId=43165 +Language=English +%1 +. +MessageId=43166 +Language=English +%1 +. +MessageId=43167 +Language=English +%1 +. +MessageId=43168 +Language=English +%1 +. +MessageId=43169 +Language=English +%1 +. +MessageId=43170 +Language=English +%1 +. +MessageId=43171 +Language=English +%1 +. +MessageId=43172 +Language=English +%1 +. +MessageId=43173 +Language=English +%1 +. +MessageId=43174 +Language=English +%1 +. +MessageId=43175 +Language=English +%1 +. +MessageId=43176 +Language=English +%1 +. +MessageId=43177 +Language=English +%1 +. +MessageId=43178 +Language=English +%1 +. +MessageId=43179 +Language=English +%1 +. +MessageId=43180 +Language=English +%1 +. +MessageId=43181 +Language=English +%1 +. +MessageId=43182 +Language=English +%1 +. +MessageId=43183 +Language=English +%1 +. +MessageId=43184 +Language=English +%1 +. +MessageId=43185 +Language=English +%1 +. +MessageId=43186 +Language=English +%1 +. +MessageId=43187 +Language=English +%1 +. +MessageId=43188 +Language=English +%1 +. +MessageId=43189 +Language=English +%1 +. +MessageId=43190 +Language=English +%1 +. +MessageId=43191 +Language=English +%1 +. +MessageId=43192 +Language=English +%1 +. +MessageId=43193 +Language=English +%1 +. +MessageId=43194 +Language=English +%1 +. +MessageId=43195 +Language=English +%1 +. +MessageId=43196 +Language=English +%1 +. +MessageId=43197 +Language=English +%1 +. +MessageId=43198 +Language=English +%1 +. +MessageId=43199 +Language=English +%1 +. +MessageId=43200 +Language=English +%1 +. +MessageId=43201 +Language=English +%1 +. +MessageId=43202 +Language=English +%1 +. +MessageId=43203 +Language=English +%1 +. +MessageId=43204 +Language=English +%1 +. +MessageId=43205 +Language=English +%1 +. +MessageId=43206 +Language=English +%1 +. +MessageId=43207 +Language=English +%1 +. +MessageId=43208 +Language=English +%1 +. +MessageId=43209 +Language=English +%1 +. +MessageId=43210 +Language=English +%1 +. +MessageId=43211 +Language=English +%1 +. +MessageId=43212 +Language=English +%1 +. +MessageId=43213 +Language=English +%1 +. +MessageId=43214 +Language=English +%1 +. +MessageId=43215 +Language=English +%1 +. +MessageId=43216 +Language=English +%1 +. +MessageId=43217 +Language=English +%1 +. +MessageId=43218 +Language=English +%1 +. +MessageId=43219 +Language=English +%1 +. +MessageId=43220 +Language=English +%1 +. +MessageId=43221 +Language=English +%1 +. +MessageId=43222 +Language=English +%1 +. +MessageId=43223 +Language=English +%1 +. +MessageId=43224 +Language=English +%1 +. +MessageId=43225 +Language=English +%1 +. +MessageId=43226 +Language=English +%1 +. +MessageId=43227 +Language=English +%1 +. +MessageId=43228 +Language=English +%1 +. +MessageId=43229 +Language=English +%1 +. +MessageId=43230 +Language=English +%1 +. +MessageId=43231 +Language=English +%1 +. +MessageId=43232 +Language=English +%1 +. +MessageId=43233 +Language=English +%1 +. +MessageId=43234 +Language=English +%1 +. +MessageId=43235 +Language=English +%1 +. +MessageId=43236 +Language=English +%1 +. +MessageId=43237 +Language=English +%1 +. +MessageId=43238 +Language=English +%1 +. +MessageId=43239 +Language=English +%1 +. +MessageId=43240 +Language=English +%1 +. +MessageId=43241 +Language=English +%1 +. +MessageId=43242 +Language=English +%1 +. +MessageId=43243 +Language=English +%1 +. +MessageId=43244 +Language=English +%1 +. +MessageId=43245 +Language=English +%1 +. +MessageId=43246 +Language=English +%1 +. +MessageId=43247 +Language=English +%1 +. +MessageId=43248 +Language=English +%1 +. +MessageId=43249 +Language=English +%1 +. +MessageId=43250 +Language=English +%1 +. +MessageId=43251 +Language=English +%1 +. +MessageId=43252 +Language=English +%1 +. +MessageId=43253 +Language=English +%1 +. +MessageId=43254 +Language=English +%1 +. +MessageId=43255 +Language=English +%1 +. +MessageId=43256 +Language=English +%1 +. +MessageId=43257 +Language=English +%1 +. +MessageId=43258 +Language=English +%1 +. +MessageId=43259 +Language=English +%1 +. +MessageId=43260 +Language=English +%1 +. +MessageId=43261 +Language=English +%1 +. +MessageId=43262 +Language=English +%1 +. +MessageId=43263 +Language=English +%1 +. +MessageId=43264 +Language=English +%1 +. +MessageId=43265 +Language=English +%1 +. +MessageId=43266 +Language=English +%1 +. +MessageId=43267 +Language=English +%1 +. +MessageId=43268 +Language=English +%1 +. +MessageId=43269 +Language=English +%1 +. +MessageId=43270 +Language=English +%1 +. +MessageId=43271 +Language=English +%1 +. +MessageId=43272 +Language=English +%1 +. +MessageId=43273 +Language=English +%1 +. +MessageId=43274 +Language=English +%1 +. +MessageId=43275 +Language=English +%1 +. +MessageId=43276 +Language=English +%1 +. +MessageId=43277 +Language=English +%1 +. +MessageId=43278 +Language=English +%1 +. +MessageId=43279 +Language=English +%1 +. +MessageId=43280 +Language=English +%1 +. +MessageId=43281 +Language=English +%1 +. +MessageId=43282 +Language=English +%1 +. +MessageId=43283 +Language=English +%1 +. +MessageId=43284 +Language=English +%1 +. +MessageId=43285 +Language=English +%1 +. +MessageId=43286 +Language=English +%1 +. +MessageId=43287 +Language=English +%1 +. +MessageId=43288 +Language=English +%1 +. +MessageId=43289 +Language=English +%1 +. +MessageId=43290 +Language=English +%1 +. +MessageId=43291 +Language=English +%1 +. +MessageId=43292 +Language=English +%1 +. +MessageId=43293 +Language=English +%1 +. +MessageId=43294 +Language=English +%1 +. +MessageId=43295 +Language=English +%1 +. +MessageId=43296 +Language=English +%1 +. +MessageId=43297 +Language=English +%1 +. +MessageId=43298 +Language=English +%1 +. +MessageId=43299 +Language=English +%1 +. +MessageId=43300 +Language=English +%1 +. +MessageId=43301 +Language=English +%1 +. +MessageId=43302 +Language=English +%1 +. +MessageId=43303 +Language=English +%1 +. +MessageId=43304 +Language=English +%1 +. +MessageId=43305 +Language=English +%1 +. +MessageId=43306 +Language=English +%1 +. +MessageId=43307 +Language=English +%1 +. +MessageId=43308 +Language=English +%1 +. +MessageId=43309 +Language=English +%1 +. +MessageId=43310 +Language=English +%1 +. +MessageId=43311 +Language=English +%1 +. +MessageId=43312 +Language=English +%1 +. +MessageId=43313 +Language=English +%1 +. +MessageId=43314 +Language=English +%1 +. +MessageId=43315 +Language=English +%1 +. +MessageId=43316 +Language=English +%1 +. +MessageId=43317 +Language=English +%1 +. +MessageId=43318 +Language=English +%1 +. +MessageId=43319 +Language=English +%1 +. +MessageId=43320 +Language=English +%1 +. +MessageId=43321 +Language=English +%1 +. +MessageId=43322 +Language=English +%1 +. +MessageId=43323 +Language=English +%1 +. +MessageId=43324 +Language=English +%1 +. +MessageId=43325 +Language=English +%1 +. +MessageId=43326 +Language=English +%1 +. +MessageId=43327 +Language=English +%1 +. +MessageId=43328 +Language=English +%1 +. +MessageId=43329 +Language=English +%1 +. +MessageId=43330 +Language=English +%1 +. +MessageId=43331 +Language=English +%1 +. +MessageId=43332 +Language=English +%1 +. +MessageId=43333 +Language=English +%1 +. +MessageId=43334 +Language=English +%1 +. +MessageId=43335 +Language=English +%1 +. +MessageId=43336 +Language=English +%1 +. +MessageId=43337 +Language=English +%1 +. +MessageId=43338 +Language=English +%1 +. +MessageId=43339 +Language=English +%1 +. +MessageId=43340 +Language=English +%1 +. +MessageId=43341 +Language=English +%1 +. +MessageId=43342 +Language=English +%1 +. +MessageId=43343 +Language=English +%1 +. +MessageId=43344 +Language=English +%1 +. +MessageId=43345 +Language=English +%1 +. +MessageId=43346 +Language=English +%1 +. +MessageId=43347 +Language=English +%1 +. +MessageId=43348 +Language=English +%1 +. +MessageId=43349 +Language=English +%1 +. +MessageId=43350 +Language=English +%1 +. +MessageId=43351 +Language=English +%1 +. +MessageId=43352 +Language=English +%1 +. +MessageId=43353 +Language=English +%1 +. +MessageId=43354 +Language=English +%1 +. +MessageId=43355 +Language=English +%1 +. +MessageId=43356 +Language=English +%1 +. +MessageId=43357 +Language=English +%1 +. +MessageId=43358 +Language=English +%1 +. +MessageId=43359 +Language=English +%1 +. +MessageId=43360 +Language=English +%1 +. +MessageId=43361 +Language=English +%1 +. +MessageId=43362 +Language=English +%1 +. +MessageId=43363 +Language=English +%1 +. +MessageId=43364 +Language=English +%1 +. +MessageId=43365 +Language=English +%1 +. +MessageId=43366 +Language=English +%1 +. +MessageId=43367 +Language=English +%1 +. +MessageId=43368 +Language=English +%1 +. +MessageId=43369 +Language=English +%1 +. +MessageId=43370 +Language=English +%1 +. +MessageId=43371 +Language=English +%1 +. +MessageId=43372 +Language=English +%1 +. +MessageId=43373 +Language=English +%1 +. +MessageId=43374 +Language=English +%1 +. +MessageId=43375 +Language=English +%1 +. +MessageId=43376 +Language=English +%1 +. +MessageId=43377 +Language=English +%1 +. +MessageId=43378 +Language=English +%1 +. +MessageId=43379 +Language=English +%1 +. +MessageId=43380 +Language=English +%1 +. +MessageId=43381 +Language=English +%1 +. +MessageId=43382 +Language=English +%1 +. +MessageId=43383 +Language=English +%1 +. +MessageId=43384 +Language=English +%1 +. +MessageId=43385 +Language=English +%1 +. +MessageId=43386 +Language=English +%1 +. +MessageId=43387 +Language=English +%1 +. +MessageId=43388 +Language=English +%1 +. +MessageId=43389 +Language=English +%1 +. +MessageId=43390 +Language=English +%1 +. +MessageId=43391 +Language=English +%1 +. +MessageId=43392 +Language=English +%1 +. +MessageId=43393 +Language=English +%1 +. +MessageId=43394 +Language=English +%1 +. +MessageId=43395 +Language=English +%1 +. +MessageId=43396 +Language=English +%1 +. +MessageId=43397 +Language=English +%1 +. +MessageId=43398 +Language=English +%1 +. +MessageId=43399 +Language=English +%1 +. +MessageId=43400 +Language=English +%1 +. +MessageId=43401 +Language=English +%1 +. +MessageId=43402 +Language=English +%1 +. +MessageId=43403 +Language=English +%1 +. +MessageId=43404 +Language=English +%1 +. +MessageId=43405 +Language=English +%1 +. +MessageId=43406 +Language=English +%1 +. +MessageId=43407 +Language=English +%1 +. +MessageId=43408 +Language=English +%1 +. +MessageId=43409 +Language=English +%1 +. +MessageId=43410 +Language=English +%1 +. +MessageId=43411 +Language=English +%1 +. +MessageId=43412 +Language=English +%1 +. +MessageId=43413 +Language=English +%1 +. +MessageId=43414 +Language=English +%1 +. +MessageId=43415 +Language=English +%1 +. +MessageId=43416 +Language=English +%1 +. +MessageId=43417 +Language=English +%1 +. +MessageId=43418 +Language=English +%1 +. +MessageId=43419 +Language=English +%1 +. +MessageId=43420 +Language=English +%1 +. +MessageId=43421 +Language=English +%1 +. +MessageId=43422 +Language=English +%1 +. +MessageId=43423 +Language=English +%1 +. +MessageId=43424 +Language=English +%1 +. +MessageId=43425 +Language=English +%1 +. +MessageId=43426 +Language=English +%1 +. +MessageId=43427 +Language=English +%1 +. +MessageId=43428 +Language=English +%1 +. +MessageId=43429 +Language=English +%1 +. +MessageId=43430 +Language=English +%1 +. +MessageId=43431 +Language=English +%1 +. +MessageId=43432 +Language=English +%1 +. +MessageId=43433 +Language=English +%1 +. +MessageId=43434 +Language=English +%1 +. +MessageId=43435 +Language=English +%1 +. +MessageId=43436 +Language=English +%1 +. +MessageId=43437 +Language=English +%1 +. +MessageId=43438 +Language=English +%1 +. +MessageId=43439 +Language=English +%1 +. +MessageId=43440 +Language=English +%1 +. +MessageId=43441 +Language=English +%1 +. +MessageId=43442 +Language=English +%1 +. +MessageId=43443 +Language=English +%1 +. +MessageId=43444 +Language=English +%1 +. +MessageId=43445 +Language=English +%1 +. +MessageId=43446 +Language=English +%1 +. +MessageId=43447 +Language=English +%1 +. +MessageId=43448 +Language=English +%1 +. +MessageId=43449 +Language=English +%1 +. +MessageId=43450 +Language=English +%1 +. +MessageId=43451 +Language=English +%1 +. +MessageId=43452 +Language=English +%1 +. +MessageId=43453 +Language=English +%1 +. +MessageId=43454 +Language=English +%1 +. +MessageId=43455 +Language=English +%1 +. +MessageId=43456 +Language=English +%1 +. +MessageId=43457 +Language=English +%1 +. +MessageId=43458 +Language=English +%1 +. +MessageId=43459 +Language=English +%1 +. +MessageId=43460 +Language=English +%1 +. +MessageId=43461 +Language=English +%1 +. +MessageId=43462 +Language=English +%1 +. +MessageId=43463 +Language=English +%1 +. +MessageId=43464 +Language=English +%1 +. +MessageId=43465 +Language=English +%1 +. +MessageId=43466 +Language=English +%1 +. +MessageId=43467 +Language=English +%1 +. +MessageId=43468 +Language=English +%1 +. +MessageId=43469 +Language=English +%1 +. +MessageId=43470 +Language=English +%1 +. +MessageId=43471 +Language=English +%1 +. +MessageId=43472 +Language=English +%1 +. +MessageId=43473 +Language=English +%1 +. +MessageId=43474 +Language=English +%1 +. +MessageId=43475 +Language=English +%1 +. +MessageId=43476 +Language=English +%1 +. +MessageId=43477 +Language=English +%1 +. +MessageId=43478 +Language=English +%1 +. +MessageId=43479 +Language=English +%1 +. +MessageId=43480 +Language=English +%1 +. +MessageId=43481 +Language=English +%1 +. +MessageId=43482 +Language=English +%1 +. +MessageId=43483 +Language=English +%1 +. +MessageId=43484 +Language=English +%1 +. +MessageId=43485 +Language=English +%1 +. +MessageId=43486 +Language=English +%1 +. +MessageId=43487 +Language=English +%1 +. +MessageId=43488 +Language=English +%1 +. +MessageId=43489 +Language=English +%1 +. +MessageId=43490 +Language=English +%1 +. +MessageId=43491 +Language=English +%1 +. +MessageId=43492 +Language=English +%1 +. +MessageId=43493 +Language=English +%1 +. +MessageId=43494 +Language=English +%1 +. +MessageId=43495 +Language=English +%1 +. +MessageId=43496 +Language=English +%1 +. +MessageId=43497 +Language=English +%1 +. +MessageId=43498 +Language=English +%1 +. +MessageId=43499 +Language=English +%1 +. +MessageId=43500 +Language=English +%1 +. +MessageId=43501 +Language=English +%1 +. +MessageId=43502 +Language=English +%1 +. +MessageId=43503 +Language=English +%1 +. +MessageId=43504 +Language=English +%1 +. +MessageId=43505 +Language=English +%1 +. +MessageId=43506 +Language=English +%1 +. +MessageId=43507 +Language=English +%1 +. +MessageId=43508 +Language=English +%1 +. +MessageId=43509 +Language=English +%1 +. +MessageId=43510 +Language=English +%1 +. +MessageId=43511 +Language=English +%1 +. +MessageId=43512 +Language=English +%1 +. +MessageId=43513 +Language=English +%1 +. +MessageId=43514 +Language=English +%1 +. +MessageId=43515 +Language=English +%1 +. +MessageId=43516 +Language=English +%1 +. +MessageId=43517 +Language=English +%1 +. +MessageId=43518 +Language=English +%1 +. +MessageId=43519 +Language=English +%1 +. +MessageId=43520 +Language=English +%1 +. +MessageId=43521 +Language=English +%1 +. +MessageId=43522 +Language=English +%1 +. +MessageId=43523 +Language=English +%1 +. +MessageId=43524 +Language=English +%1 +. +MessageId=43525 +Language=English +%1 +. +MessageId=43526 +Language=English +%1 +. +MessageId=43527 +Language=English +%1 +. +MessageId=43528 +Language=English +%1 +. +MessageId=43529 +Language=English +%1 +. +MessageId=43530 +Language=English +%1 +. +MessageId=43531 +Language=English +%1 +. +MessageId=43532 +Language=English +%1 +. +MessageId=43533 +Language=English +%1 +. +MessageId=43534 +Language=English +%1 +. +MessageId=43535 +Language=English +%1 +. +MessageId=43536 +Language=English +%1 +. +MessageId=43537 +Language=English +%1 +. +MessageId=43538 +Language=English +%1 +. +MessageId=43539 +Language=English +%1 +. +MessageId=43540 +Language=English +%1 +. +MessageId=43541 +Language=English +%1 +. +MessageId=43542 +Language=English +%1 +. +MessageId=43543 +Language=English +%1 +. +MessageId=43544 +Language=English +%1 +. +MessageId=43545 +Language=English +%1 +. +MessageId=43546 +Language=English +%1 +. +MessageId=43547 +Language=English +%1 +. +MessageId=43548 +Language=English +%1 +. +MessageId=43549 +Language=English +%1 +. +MessageId=43550 +Language=English +%1 +. +MessageId=43551 +Language=English +%1 +. +MessageId=43552 +Language=English +%1 +. +MessageId=43553 +Language=English +%1 +. +MessageId=43554 +Language=English +%1 +. +MessageId=43555 +Language=English +%1 +. +MessageId=43556 +Language=English +%1 +. +MessageId=43557 +Language=English +%1 +. +MessageId=43558 +Language=English +%1 +. +MessageId=43559 +Language=English +%1 +. +MessageId=43560 +Language=English +%1 +. +MessageId=43561 +Language=English +%1 +. +MessageId=43562 +Language=English +%1 +. +MessageId=43563 +Language=English +%1 +. +MessageId=43564 +Language=English +%1 +. +MessageId=43565 +Language=English +%1 +. +MessageId=43566 +Language=English +%1 +. +MessageId=43567 +Language=English +%1 +. +MessageId=43568 +Language=English +%1 +. +MessageId=43569 +Language=English +%1 +. +MessageId=43570 +Language=English +%1 +. +MessageId=43571 +Language=English +%1 +. +MessageId=43572 +Language=English +%1 +. +MessageId=43573 +Language=English +%1 +. +MessageId=43574 +Language=English +%1 +. +MessageId=43575 +Language=English +%1 +. +MessageId=43576 +Language=English +%1 +. +MessageId=43577 +Language=English +%1 +. +MessageId=43578 +Language=English +%1 +. +MessageId=43579 +Language=English +%1 +. +MessageId=43580 +Language=English +%1 +. +MessageId=43581 +Language=English +%1 +. +MessageId=43582 +Language=English +%1 +. +MessageId=43583 +Language=English +%1 +. +MessageId=43584 +Language=English +%1 +. +MessageId=43585 +Language=English +%1 +. +MessageId=43586 +Language=English +%1 +. +MessageId=43587 +Language=English +%1 +. +MessageId=43588 +Language=English +%1 +. +MessageId=43589 +Language=English +%1 +. +MessageId=43590 +Language=English +%1 +. +MessageId=43591 +Language=English +%1 +. +MessageId=43592 +Language=English +%1 +. +MessageId=43593 +Language=English +%1 +. +MessageId=43594 +Language=English +%1 +. +MessageId=43595 +Language=English +%1 +. +MessageId=43596 +Language=English +%1 +. +MessageId=43597 +Language=English +%1 +. +MessageId=43598 +Language=English +%1 +. +MessageId=43599 +Language=English +%1 +. +MessageId=43600 +Language=English +%1 +. +MessageId=43601 +Language=English +%1 +. +MessageId=43602 +Language=English +%1 +. +MessageId=43603 +Language=English +%1 +. +MessageId=43604 +Language=English +%1 +. +MessageId=43605 +Language=English +%1 +. +MessageId=43606 +Language=English +%1 +. +MessageId=43607 +Language=English +%1 +. +MessageId=43608 +Language=English +%1 +. +MessageId=43609 +Language=English +%1 +. +MessageId=43610 +Language=English +%1 +. +MessageId=43611 +Language=English +%1 +. +MessageId=43612 +Language=English +%1 +. +MessageId=43613 +Language=English +%1 +. +MessageId=43614 +Language=English +%1 +. +MessageId=43615 +Language=English +%1 +. +MessageId=43616 +Language=English +%1 +. +MessageId=43617 +Language=English +%1 +. +MessageId=43618 +Language=English +%1 +. +MessageId=43619 +Language=English +%1 +. +MessageId=43620 +Language=English +%1 +. +MessageId=43621 +Language=English +%1 +. +MessageId=43622 +Language=English +%1 +. +MessageId=43623 +Language=English +%1 +. +MessageId=43624 +Language=English +%1 +. +MessageId=43625 +Language=English +%1 +. +MessageId=43626 +Language=English +%1 +. +MessageId=43627 +Language=English +%1 +. +MessageId=43628 +Language=English +%1 +. +MessageId=43629 +Language=English +%1 +. +MessageId=43630 +Language=English +%1 +. +MessageId=43631 +Language=English +%1 +. +MessageId=43632 +Language=English +%1 +. +MessageId=43633 +Language=English +%1 +. +MessageId=43634 +Language=English +%1 +. +MessageId=43635 +Language=English +%1 +. +MessageId=43636 +Language=English +%1 +. +MessageId=43637 +Language=English +%1 +. +MessageId=43638 +Language=English +%1 +. +MessageId=43639 +Language=English +%1 +. +MessageId=43640 +Language=English +%1 +. +MessageId=43641 +Language=English +%1 +. +MessageId=43642 +Language=English +%1 +. +MessageId=43643 +Language=English +%1 +. +MessageId=43644 +Language=English +%1 +. +MessageId=43645 +Language=English +%1 +. +MessageId=43646 +Language=English +%1 +. +MessageId=43647 +Language=English +%1 +. +MessageId=43648 +Language=English +%1 +. +MessageId=43649 +Language=English +%1 +. +MessageId=43650 +Language=English +%1 +. +MessageId=43651 +Language=English +%1 +. +MessageId=43652 +Language=English +%1 +. +MessageId=43653 +Language=English +%1 +. +MessageId=43654 +Language=English +%1 +. +MessageId=43655 +Language=English +%1 +. +MessageId=43656 +Language=English +%1 +. +MessageId=43657 +Language=English +%1 +. +MessageId=43658 +Language=English +%1 +. +MessageId=43659 +Language=English +%1 +. +MessageId=43660 +Language=English +%1 +. +MessageId=43661 +Language=English +%1 +. +MessageId=43662 +Language=English +%1 +. +MessageId=43663 +Language=English +%1 +. +MessageId=43664 +Language=English +%1 +. +MessageId=43665 +Language=English +%1 +. +MessageId=43666 +Language=English +%1 +. +MessageId=43667 +Language=English +%1 +. +MessageId=43668 +Language=English +%1 +. +MessageId=43669 +Language=English +%1 +. +MessageId=43670 +Language=English +%1 +. +MessageId=43671 +Language=English +%1 +. +MessageId=43672 +Language=English +%1 +. +MessageId=43673 +Language=English +%1 +. +MessageId=43674 +Language=English +%1 +. +MessageId=43675 +Language=English +%1 +. +MessageId=43676 +Language=English +%1 +. +MessageId=43677 +Language=English +%1 +. +MessageId=43678 +Language=English +%1 +. +MessageId=43679 +Language=English +%1 +. +MessageId=43680 +Language=English +%1 +. +MessageId=43681 +Language=English +%1 +. +MessageId=43682 +Language=English +%1 +. +MessageId=43683 +Language=English +%1 +. +MessageId=43684 +Language=English +%1 +. +MessageId=43685 +Language=English +%1 +. +MessageId=43686 +Language=English +%1 +. +MessageId=43687 +Language=English +%1 +. +MessageId=43688 +Language=English +%1 +. +MessageId=43689 +Language=English +%1 +. +MessageId=43690 +Language=English +%1 +. +MessageId=43691 +Language=English +%1 +. +MessageId=43692 +Language=English +%1 +. +MessageId=43693 +Language=English +%1 +. +MessageId=43694 +Language=English +%1 +. +MessageId=43695 +Language=English +%1 +. +MessageId=43696 +Language=English +%1 +. +MessageId=43697 +Language=English +%1 +. +MessageId=43698 +Language=English +%1 +. +MessageId=43699 +Language=English +%1 +. +MessageId=43700 +Language=English +%1 +. +MessageId=43701 +Language=English +%1 +. +MessageId=43702 +Language=English +%1 +. +MessageId=43703 +Language=English +%1 +. +MessageId=43704 +Language=English +%1 +. +MessageId=43705 +Language=English +%1 +. +MessageId=43706 +Language=English +%1 +. +MessageId=43707 +Language=English +%1 +. +MessageId=43708 +Language=English +%1 +. +MessageId=43709 +Language=English +%1 +. +MessageId=43710 +Language=English +%1 +. +MessageId=43711 +Language=English +%1 +. +MessageId=43712 +Language=English +%1 +. +MessageId=43713 +Language=English +%1 +. +MessageId=43714 +Language=English +%1 +. +MessageId=43715 +Language=English +%1 +. +MessageId=43716 +Language=English +%1 +. +MessageId=43717 +Language=English +%1 +. +MessageId=43718 +Language=English +%1 +. +MessageId=43719 +Language=English +%1 +. +MessageId=43720 +Language=English +%1 +. +MessageId=43721 +Language=English +%1 +. +MessageId=43722 +Language=English +%1 +. +MessageId=43723 +Language=English +%1 +. +MessageId=43724 +Language=English +%1 +. +MessageId=43725 +Language=English +%1 +. +MessageId=43726 +Language=English +%1 +. +MessageId=43727 +Language=English +%1 +. +MessageId=43728 +Language=English +%1 +. +MessageId=43729 +Language=English +%1 +. +MessageId=43730 +Language=English +%1 +. +MessageId=43731 +Language=English +%1 +. +MessageId=43732 +Language=English +%1 +. +MessageId=43733 +Language=English +%1 +. +MessageId=43734 +Language=English +%1 +. +MessageId=43735 +Language=English +%1 +. +MessageId=43736 +Language=English +%1 +. +MessageId=43737 +Language=English +%1 +. +MessageId=43738 +Language=English +%1 +. +MessageId=43739 +Language=English +%1 +. +MessageId=43740 +Language=English +%1 +. +MessageId=43741 +Language=English +%1 +. +MessageId=43742 +Language=English +%1 +. +MessageId=43743 +Language=English +%1 +. +MessageId=43744 +Language=English +%1 +. +MessageId=43745 +Language=English +%1 +. +MessageId=43746 +Language=English +%1 +. +MessageId=43747 +Language=English +%1 +. +MessageId=43748 +Language=English +%1 +. +MessageId=43749 +Language=English +%1 +. +MessageId=43750 +Language=English +%1 +. +MessageId=43751 +Language=English +%1 +. +MessageId=43752 +Language=English +%1 +. +MessageId=43753 +Language=English +%1 +. +MessageId=43754 +Language=English +%1 +. +MessageId=43755 +Language=English +%1 +. +MessageId=43756 +Language=English +%1 +. +MessageId=43757 +Language=English +%1 +. +MessageId=43758 +Language=English +%1 +. +MessageId=43759 +Language=English +%1 +. +MessageId=43760 +Language=English +%1 +. +MessageId=43761 +Language=English +%1 +. +MessageId=43762 +Language=English +%1 +. +MessageId=43763 +Language=English +%1 +. +MessageId=43764 +Language=English +%1 +. +MessageId=43765 +Language=English +%1 +. +MessageId=43766 +Language=English +%1 +. +MessageId=43767 +Language=English +%1 +. +MessageId=43768 +Language=English +%1 +. +MessageId=43769 +Language=English +%1 +. +MessageId=43770 +Language=English +%1 +. +MessageId=43771 +Language=English +%1 +. +MessageId=43772 +Language=English +%1 +. +MessageId=43773 +Language=English +%1 +. +MessageId=43774 +Language=English +%1 +. +MessageId=43775 +Language=English +%1 +. +MessageId=43776 +Language=English +%1 +. +MessageId=43777 +Language=English +%1 +. +MessageId=43778 +Language=English +%1 +. +MessageId=43779 +Language=English +%1 +. +MessageId=43780 +Language=English +%1 +. +MessageId=43781 +Language=English +%1 +. +MessageId=43782 +Language=English +%1 +. +MessageId=43783 +Language=English +%1 +. +MessageId=43784 +Language=English +%1 +. +MessageId=43785 +Language=English +%1 +. +MessageId=43786 +Language=English +%1 +. +MessageId=43787 +Language=English +%1 +. +MessageId=43788 +Language=English +%1 +. +MessageId=43789 +Language=English +%1 +. +MessageId=43790 +Language=English +%1 +. +MessageId=43791 +Language=English +%1 +. +MessageId=43792 +Language=English +%1 +. +MessageId=43793 +Language=English +%1 +. +MessageId=43794 +Language=English +%1 +. +MessageId=43795 +Language=English +%1 +. +MessageId=43796 +Language=English +%1 +. +MessageId=43797 +Language=English +%1 +. +MessageId=43798 +Language=English +%1 +. +MessageId=43799 +Language=English +%1 +. +MessageId=43800 +Language=English +%1 +. +MessageId=43801 +Language=English +%1 +. +MessageId=43802 +Language=English +%1 +. +MessageId=43803 +Language=English +%1 +. +MessageId=43804 +Language=English +%1 +. +MessageId=43805 +Language=English +%1 +. +MessageId=43806 +Language=English +%1 +. +MessageId=43807 +Language=English +%1 +. +MessageId=43808 +Language=English +%1 +. +MessageId=43809 +Language=English +%1 +. +MessageId=43810 +Language=English +%1 +. +MessageId=43811 +Language=English +%1 +. +MessageId=43812 +Language=English +%1 +. +MessageId=43813 +Language=English +%1 +. +MessageId=43814 +Language=English +%1 +. +MessageId=43815 +Language=English +%1 +. +MessageId=43816 +Language=English +%1 +. +MessageId=43817 +Language=English +%1 +. +MessageId=43818 +Language=English +%1 +. +MessageId=43819 +Language=English +%1 +. +MessageId=43820 +Language=English +%1 +. +MessageId=43821 +Language=English +%1 +. +MessageId=43822 +Language=English +%1 +. +MessageId=43823 +Language=English +%1 +. +MessageId=43824 +Language=English +%1 +. +MessageId=43825 +Language=English +%1 +. +MessageId=43826 +Language=English +%1 +. +MessageId=43827 +Language=English +%1 +. +MessageId=43828 +Language=English +%1 +. +MessageId=43829 +Language=English +%1 +. +MessageId=43830 +Language=English +%1 +. +MessageId=43831 +Language=English +%1 +. +MessageId=43832 +Language=English +%1 +. +MessageId=43833 +Language=English +%1 +. +MessageId=43834 +Language=English +%1 +. +MessageId=43835 +Language=English +%1 +. +MessageId=43836 +Language=English +%1 +. +MessageId=43837 +Language=English +%1 +. +MessageId=43838 +Language=English +%1 +. +MessageId=43839 +Language=English +%1 +. +MessageId=43840 +Language=English +%1 +. +MessageId=43841 +Language=English +%1 +. +MessageId=43842 +Language=English +%1 +. +MessageId=43843 +Language=English +%1 +. +MessageId=43844 +Language=English +%1 +. +MessageId=43845 +Language=English +%1 +. +MessageId=43846 +Language=English +%1 +. +MessageId=43847 +Language=English +%1 +. +MessageId=43848 +Language=English +%1 +. +MessageId=43849 +Language=English +%1 +. +MessageId=43850 +Language=English +%1 +. +MessageId=43851 +Language=English +%1 +. +MessageId=43852 +Language=English +%1 +. +MessageId=43853 +Language=English +%1 +. +MessageId=43854 +Language=English +%1 +. +MessageId=43855 +Language=English +%1 +. +MessageId=43856 +Language=English +%1 +. +MessageId=43857 +Language=English +%1 +. +MessageId=43858 +Language=English +%1 +. +MessageId=43859 +Language=English +%1 +. +MessageId=43860 +Language=English +%1 +. +MessageId=43861 +Language=English +%1 +. +MessageId=43862 +Language=English +%1 +. +MessageId=43863 +Language=English +%1 +. +MessageId=43864 +Language=English +%1 +. +MessageId=43865 +Language=English +%1 +. +MessageId=43866 +Language=English +%1 +. +MessageId=43867 +Language=English +%1 +. +MessageId=43868 +Language=English +%1 +. +MessageId=43869 +Language=English +%1 +. +MessageId=43870 +Language=English +%1 +. +MessageId=43871 +Language=English +%1 +. +MessageId=43872 +Language=English +%1 +. +MessageId=43873 +Language=English +%1 +. +MessageId=43874 +Language=English +%1 +. +MessageId=43875 +Language=English +%1 +. +MessageId=43876 +Language=English +%1 +. +MessageId=43877 +Language=English +%1 +. +MessageId=43878 +Language=English +%1 +. +MessageId=43879 +Language=English +%1 +. +MessageId=43880 +Language=English +%1 +. +MessageId=43881 +Language=English +%1 +. +MessageId=43882 +Language=English +%1 +. +MessageId=43883 +Language=English +%1 +. +MessageId=43884 +Language=English +%1 +. +MessageId=43885 +Language=English +%1 +. +MessageId=43886 +Language=English +%1 +. +MessageId=43887 +Language=English +%1 +. +MessageId=43888 +Language=English +%1 +. +MessageId=43889 +Language=English +%1 +. +MessageId=43890 +Language=English +%1 +. +MessageId=43891 +Language=English +%1 +. +MessageId=43892 +Language=English +%1 +. +MessageId=43893 +Language=English +%1 +. +MessageId=43894 +Language=English +%1 +. +MessageId=43895 +Language=English +%1 +. +MessageId=43896 +Language=English +%1 +. +MessageId=43897 +Language=English +%1 +. +MessageId=43898 +Language=English +%1 +. +MessageId=43899 +Language=English +%1 +. +MessageId=43900 +Language=English +%1 +. +MessageId=43901 +Language=English +%1 +. +MessageId=43902 +Language=English +%1 +. +MessageId=43903 +Language=English +%1 +. +MessageId=43904 +Language=English +%1 +. +MessageId=43905 +Language=English +%1 +. +MessageId=43906 +Language=English +%1 +. +MessageId=43907 +Language=English +%1 +. +MessageId=43908 +Language=English +%1 +. +MessageId=43909 +Language=English +%1 +. +MessageId=43910 +Language=English +%1 +. +MessageId=43911 +Language=English +%1 +. +MessageId=43912 +Language=English +%1 +. +MessageId=43913 +Language=English +%1 +. +MessageId=43914 +Language=English +%1 +. +MessageId=43915 +Language=English +%1 +. +MessageId=43916 +Language=English +%1 +. +MessageId=43917 +Language=English +%1 +. +MessageId=43918 +Language=English +%1 +. +MessageId=43919 +Language=English +%1 +. +MessageId=43920 +Language=English +%1 +. +MessageId=43921 +Language=English +%1 +. +MessageId=43922 +Language=English +%1 +. +MessageId=43923 +Language=English +%1 +. +MessageId=43924 +Language=English +%1 +. +MessageId=43925 +Language=English +%1 +. +MessageId=43926 +Language=English +%1 +. +MessageId=43927 +Language=English +%1 +. +MessageId=43928 +Language=English +%1 +. +MessageId=43929 +Language=English +%1 +. +MessageId=43930 +Language=English +%1 +. +MessageId=43931 +Language=English +%1 +. +MessageId=43932 +Language=English +%1 +. +MessageId=43933 +Language=English +%1 +. +MessageId=43934 +Language=English +%1 +. +MessageId=43935 +Language=English +%1 +. +MessageId=43936 +Language=English +%1 +. +MessageId=43937 +Language=English +%1 +. +MessageId=43938 +Language=English +%1 +. +MessageId=43939 +Language=English +%1 +. +MessageId=43940 +Language=English +%1 +. +MessageId=43941 +Language=English +%1 +. +MessageId=43942 +Language=English +%1 +. +MessageId=43943 +Language=English +%1 +. +MessageId=43944 +Language=English +%1 +. +MessageId=43945 +Language=English +%1 +. +MessageId=43946 +Language=English +%1 +. +MessageId=43947 +Language=English +%1 +. +MessageId=43948 +Language=English +%1 +. +MessageId=43949 +Language=English +%1 +. +MessageId=43950 +Language=English +%1 +. +MessageId=43951 +Language=English +%1 +. +MessageId=43952 +Language=English +%1 +. +MessageId=43953 +Language=English +%1 +. +MessageId=43954 +Language=English +%1 +. +MessageId=43955 +Language=English +%1 +. +MessageId=43956 +Language=English +%1 +. +MessageId=43957 +Language=English +%1 +. +MessageId=43958 +Language=English +%1 +. +MessageId=43959 +Language=English +%1 +. +MessageId=43960 +Language=English +%1 +. +MessageId=43961 +Language=English +%1 +. +MessageId=43962 +Language=English +%1 +. +MessageId=43963 +Language=English +%1 +. +MessageId=43964 +Language=English +%1 +. +MessageId=43965 +Language=English +%1 +. +MessageId=43966 +Language=English +%1 +. +MessageId=43967 +Language=English +%1 +. +MessageId=43968 +Language=English +%1 +. +MessageId=43969 +Language=English +%1 +. +MessageId=43970 +Language=English +%1 +. +MessageId=43971 +Language=English +%1 +. +MessageId=43972 +Language=English +%1 +. +MessageId=43973 +Language=English +%1 +. +MessageId=43974 +Language=English +%1 +. +MessageId=43975 +Language=English +%1 +. +MessageId=43976 +Language=English +%1 +. +MessageId=43977 +Language=English +%1 +. +MessageId=43978 +Language=English +%1 +. +MessageId=43979 +Language=English +%1 +. +MessageId=43980 +Language=English +%1 +. +MessageId=43981 +Language=English +%1 +. +MessageId=43982 +Language=English +%1 +. +MessageId=43983 +Language=English +%1 +. +MessageId=43984 +Language=English +%1 +. +MessageId=43985 +Language=English +%1 +. +MessageId=43986 +Language=English +%1 +. +MessageId=43987 +Language=English +%1 +. +MessageId=43988 +Language=English +%1 +. +MessageId=43989 +Language=English +%1 +. +MessageId=43990 +Language=English +%1 +. +MessageId=43991 +Language=English +%1 +. +MessageId=43992 +Language=English +%1 +. +MessageId=43993 +Language=English +%1 +. +MessageId=43994 +Language=English +%1 +. +MessageId=43995 +Language=English +%1 +. +MessageId=43996 +Language=English +%1 +. +MessageId=43997 +Language=English +%1 +. +MessageId=43998 +Language=English +%1 +. +MessageId=43999 +Language=English +%1 +. +MessageId=44000 +Language=English +%1 +. +MessageId=44001 +Language=English +%1 +. +MessageId=44002 +Language=English +%1 +. +MessageId=44003 +Language=English +%1 +. +MessageId=44004 +Language=English +%1 +. +MessageId=44005 +Language=English +%1 +. +MessageId=44006 +Language=English +%1 +. +MessageId=44007 +Language=English +%1 +. +MessageId=44008 +Language=English +%1 +. +MessageId=44009 +Language=English +%1 +. +MessageId=44010 +Language=English +%1 +. +MessageId=44011 +Language=English +%1 +. +MessageId=44012 +Language=English +%1 +. +MessageId=44013 +Language=English +%1 +. +MessageId=44014 +Language=English +%1 +. +MessageId=44015 +Language=English +%1 +. +MessageId=44016 +Language=English +%1 +. +MessageId=44017 +Language=English +%1 +. +MessageId=44018 +Language=English +%1 +. +MessageId=44019 +Language=English +%1 +. +MessageId=44020 +Language=English +%1 +. +MessageId=44021 +Language=English +%1 +. +MessageId=44022 +Language=English +%1 +. +MessageId=44023 +Language=English +%1 +. +MessageId=44024 +Language=English +%1 +. +MessageId=44025 +Language=English +%1 +. +MessageId=44026 +Language=English +%1 +. +MessageId=44027 +Language=English +%1 +. +MessageId=44028 +Language=English +%1 +. +MessageId=44029 +Language=English +%1 +. +MessageId=44030 +Language=English +%1 +. +MessageId=44031 +Language=English +%1 +. +MessageId=44032 +Language=English +%1 +. +MessageId=44033 +Language=English +%1 +. +MessageId=44034 +Language=English +%1 +. +MessageId=44035 +Language=English +%1 +. +MessageId=44036 +Language=English +%1 +. +MessageId=44037 +Language=English +%1 +. +MessageId=44038 +Language=English +%1 +. +MessageId=44039 +Language=English +%1 +. +MessageId=44040 +Language=English +%1 +. +MessageId=44041 +Language=English +%1 +. +MessageId=44042 +Language=English +%1 +. +MessageId=44043 +Language=English +%1 +. +MessageId=44044 +Language=English +%1 +. +MessageId=44045 +Language=English +%1 +. +MessageId=44046 +Language=English +%1 +. +MessageId=44047 +Language=English +%1 +. +MessageId=44048 +Language=English +%1 +. +MessageId=44049 +Language=English +%1 +. +MessageId=44050 +Language=English +%1 +. +MessageId=44051 +Language=English +%1 +. +MessageId=44052 +Language=English +%1 +. +MessageId=44053 +Language=English +%1 +. +MessageId=44054 +Language=English +%1 +. +MessageId=44055 +Language=English +%1 +. +MessageId=44056 +Language=English +%1 +. +MessageId=44057 +Language=English +%1 +. +MessageId=44058 +Language=English +%1 +. +MessageId=44059 +Language=English +%1 +. +MessageId=44060 +Language=English +%1 +. +MessageId=44061 +Language=English +%1 +. +MessageId=44062 +Language=English +%1 +. +MessageId=44063 +Language=English +%1 +. +MessageId=44064 +Language=English +%1 +. +MessageId=44065 +Language=English +%1 +. +MessageId=44066 +Language=English +%1 +. +MessageId=44067 +Language=English +%1 +. +MessageId=44068 +Language=English +%1 +. +MessageId=44069 +Language=English +%1 +. +MessageId=44070 +Language=English +%1 +. +MessageId=44071 +Language=English +%1 +. +MessageId=44072 +Language=English +%1 +. +MessageId=44073 +Language=English +%1 +. +MessageId=44074 +Language=English +%1 +. +MessageId=44075 +Language=English +%1 +. +MessageId=44076 +Language=English +%1 +. +MessageId=44077 +Language=English +%1 +. +MessageId=44078 +Language=English +%1 +. +MessageId=44079 +Language=English +%1 +. +MessageId=44080 +Language=English +%1 +. +MessageId=44081 +Language=English +%1 +. +MessageId=44082 +Language=English +%1 +. +MessageId=44083 +Language=English +%1 +. +MessageId=44084 +Language=English +%1 +. +MessageId=44085 +Language=English +%1 +. +MessageId=44086 +Language=English +%1 +. +MessageId=44087 +Language=English +%1 +. +MessageId=44088 +Language=English +%1 +. +MessageId=44089 +Language=English +%1 +. +MessageId=44090 +Language=English +%1 +. +MessageId=44091 +Language=English +%1 +. +MessageId=44092 +Language=English +%1 +. +MessageId=44093 +Language=English +%1 +. +MessageId=44094 +Language=English +%1 +. +MessageId=44095 +Language=English +%1 +. +MessageId=44096 +Language=English +%1 +. +MessageId=44097 +Language=English +%1 +. +MessageId=44098 +Language=English +%1 +. +MessageId=44099 +Language=English +%1 +. +MessageId=44100 +Language=English +%1 +. +MessageId=44101 +Language=English +%1 +. +MessageId=44102 +Language=English +%1 +. +MessageId=44103 +Language=English +%1 +. +MessageId=44104 +Language=English +%1 +. +MessageId=44105 +Language=English +%1 +. +MessageId=44106 +Language=English +%1 +. +MessageId=44107 +Language=English +%1 +. +MessageId=44108 +Language=English +%1 +. +MessageId=44109 +Language=English +%1 +. +MessageId=44110 +Language=English +%1 +. +MessageId=44111 +Language=English +%1 +. +MessageId=44112 +Language=English +%1 +. +MessageId=44113 +Language=English +%1 +. +MessageId=44114 +Language=English +%1 +. +MessageId=44115 +Language=English +%1 +. +MessageId=44116 +Language=English +%1 +. +MessageId=44117 +Language=English +%1 +. +MessageId=44118 +Language=English +%1 +. +MessageId=44119 +Language=English +%1 +. +MessageId=44120 +Language=English +%1 +. +MessageId=44121 +Language=English +%1 +. +MessageId=44122 +Language=English +%1 +. +MessageId=44123 +Language=English +%1 +. +MessageId=44124 +Language=English +%1 +. +MessageId=44125 +Language=English +%1 +. +MessageId=44126 +Language=English +%1 +. +MessageId=44127 +Language=English +%1 +. +MessageId=44128 +Language=English +%1 +. +MessageId=44129 +Language=English +%1 +. +MessageId=44130 +Language=English +%1 +. +MessageId=44131 +Language=English +%1 +. +MessageId=44132 +Language=English +%1 +. +MessageId=44133 +Language=English +%1 +. +MessageId=44134 +Language=English +%1 +. +MessageId=44135 +Language=English +%1 +. +MessageId=44136 +Language=English +%1 +. +MessageId=44137 +Language=English +%1 +. +MessageId=44138 +Language=English +%1 +. +MessageId=44139 +Language=English +%1 +. +MessageId=44140 +Language=English +%1 +. +MessageId=44141 +Language=English +%1 +. +MessageId=44142 +Language=English +%1 +. +MessageId=44143 +Language=English +%1 +. +MessageId=44144 +Language=English +%1 +. +MessageId=44145 +Language=English +%1 +. +MessageId=44146 +Language=English +%1 +. +MessageId=44147 +Language=English +%1 +. +MessageId=44148 +Language=English +%1 +. +MessageId=44149 +Language=English +%1 +. +MessageId=44150 +Language=English +%1 +. +MessageId=44151 +Language=English +%1 +. +MessageId=44152 +Language=English +%1 +. +MessageId=44153 +Language=English +%1 +. +MessageId=44154 +Language=English +%1 +. +MessageId=44155 +Language=English +%1 +. +MessageId=44156 +Language=English +%1 +. +MessageId=44157 +Language=English +%1 +. +MessageId=44158 +Language=English +%1 +. +MessageId=44159 +Language=English +%1 +. +MessageId=44160 +Language=English +%1 +. +MessageId=44161 +Language=English +%1 +. +MessageId=44162 +Language=English +%1 +. +MessageId=44163 +Language=English +%1 +. +MessageId=44164 +Language=English +%1 +. +MessageId=44165 +Language=English +%1 +. +MessageId=44166 +Language=English +%1 +. +MessageId=44167 +Language=English +%1 +. +MessageId=44168 +Language=English +%1 +. +MessageId=44169 +Language=English +%1 +. +MessageId=44170 +Language=English +%1 +. +MessageId=44171 +Language=English +%1 +. +MessageId=44172 +Language=English +%1 +. +MessageId=44173 +Language=English +%1 +. +MessageId=44174 +Language=English +%1 +. +MessageId=44175 +Language=English +%1 +. +MessageId=44176 +Language=English +%1 +. +MessageId=44177 +Language=English +%1 +. +MessageId=44178 +Language=English +%1 +. +MessageId=44179 +Language=English +%1 +. +MessageId=44180 +Language=English +%1 +. +MessageId=44181 +Language=English +%1 +. +MessageId=44182 +Language=English +%1 +. +MessageId=44183 +Language=English +%1 +. +MessageId=44184 +Language=English +%1 +. +MessageId=44185 +Language=English +%1 +. +MessageId=44186 +Language=English +%1 +. +MessageId=44187 +Language=English +%1 +. +MessageId=44188 +Language=English +%1 +. +MessageId=44189 +Language=English +%1 +. +MessageId=44190 +Language=English +%1 +. +MessageId=44191 +Language=English +%1 +. +MessageId=44192 +Language=English +%1 +. +MessageId=44193 +Language=English +%1 +. +MessageId=44194 +Language=English +%1 +. +MessageId=44195 +Language=English +%1 +. +MessageId=44196 +Language=English +%1 +. +MessageId=44197 +Language=English +%1 +. +MessageId=44198 +Language=English +%1 +. +MessageId=44199 +Language=English +%1 +. +MessageId=44200 +Language=English +%1 +. +MessageId=44201 +Language=English +%1 +. +MessageId=44202 +Language=English +%1 +. +MessageId=44203 +Language=English +%1 +. +MessageId=44204 +Language=English +%1 +. +MessageId=44205 +Language=English +%1 +. +MessageId=44206 +Language=English +%1 +. +MessageId=44207 +Language=English +%1 +. +MessageId=44208 +Language=English +%1 +. +MessageId=44209 +Language=English +%1 +. +MessageId=44210 +Language=English +%1 +. +MessageId=44211 +Language=English +%1 +. +MessageId=44212 +Language=English +%1 +. +MessageId=44213 +Language=English +%1 +. +MessageId=44214 +Language=English +%1 +. +MessageId=44215 +Language=English +%1 +. +MessageId=44216 +Language=English +%1 +. +MessageId=44217 +Language=English +%1 +. +MessageId=44218 +Language=English +%1 +. +MessageId=44219 +Language=English +%1 +. +MessageId=44220 +Language=English +%1 +. +MessageId=44221 +Language=English +%1 +. +MessageId=44222 +Language=English +%1 +. +MessageId=44223 +Language=English +%1 +. +MessageId=44224 +Language=English +%1 +. +MessageId=44225 +Language=English +%1 +. +MessageId=44226 +Language=English +%1 +. +MessageId=44227 +Language=English +%1 +. +MessageId=44228 +Language=English +%1 +. +MessageId=44229 +Language=English +%1 +. +MessageId=44230 +Language=English +%1 +. +MessageId=44231 +Language=English +%1 +. +MessageId=44232 +Language=English +%1 +. +MessageId=44233 +Language=English +%1 +. +MessageId=44234 +Language=English +%1 +. +MessageId=44235 +Language=English +%1 +. +MessageId=44236 +Language=English +%1 +. +MessageId=44237 +Language=English +%1 +. +MessageId=44238 +Language=English +%1 +. +MessageId=44239 +Language=English +%1 +. +MessageId=44240 +Language=English +%1 +. +MessageId=44241 +Language=English +%1 +. +MessageId=44242 +Language=English +%1 +. +MessageId=44243 +Language=English +%1 +. +MessageId=44244 +Language=English +%1 +. +MessageId=44245 +Language=English +%1 +. +MessageId=44246 +Language=English +%1 +. +MessageId=44247 +Language=English +%1 +. +MessageId=44248 +Language=English +%1 +. +MessageId=44249 +Language=English +%1 +. +MessageId=44250 +Language=English +%1 +. +MessageId=44251 +Language=English +%1 +. +MessageId=44252 +Language=English +%1 +. +MessageId=44253 +Language=English +%1 +. +MessageId=44254 +Language=English +%1 +. +MessageId=44255 +Language=English +%1 +. +MessageId=44256 +Language=English +%1 +. +MessageId=44257 +Language=English +%1 +. +MessageId=44258 +Language=English +%1 +. +MessageId=44259 +Language=English +%1 +. +MessageId=44260 +Language=English +%1 +. +MessageId=44261 +Language=English +%1 +. +MessageId=44262 +Language=English +%1 +. +MessageId=44263 +Language=English +%1 +. +MessageId=44264 +Language=English +%1 +. +MessageId=44265 +Language=English +%1 +. +MessageId=44266 +Language=English +%1 +. +MessageId=44267 +Language=English +%1 +. +MessageId=44268 +Language=English +%1 +. +MessageId=44269 +Language=English +%1 +. +MessageId=44270 +Language=English +%1 +. +MessageId=44271 +Language=English +%1 +. +MessageId=44272 +Language=English +%1 +. +MessageId=44273 +Language=English +%1 +. +MessageId=44274 +Language=English +%1 +. +MessageId=44275 +Language=English +%1 +. +MessageId=44276 +Language=English +%1 +. +MessageId=44277 +Language=English +%1 +. +MessageId=44278 +Language=English +%1 +. +MessageId=44279 +Language=English +%1 +. +MessageId=44280 +Language=English +%1 +. +MessageId=44281 +Language=English +%1 +. +MessageId=44282 +Language=English +%1 +. +MessageId=44283 +Language=English +%1 +. +MessageId=44284 +Language=English +%1 +. +MessageId=44285 +Language=English +%1 +. +MessageId=44286 +Language=English +%1 +. +MessageId=44287 +Language=English +%1 +. +MessageId=44288 +Language=English +%1 +. +MessageId=44289 +Language=English +%1 +. +MessageId=44290 +Language=English +%1 +. +MessageId=44291 +Language=English +%1 +. +MessageId=44292 +Language=English +%1 +. +MessageId=44293 +Language=English +%1 +. +MessageId=44294 +Language=English +%1 +. +MessageId=44295 +Language=English +%1 +. +MessageId=44296 +Language=English +%1 +. +MessageId=44297 +Language=English +%1 +. +MessageId=44298 +Language=English +%1 +. +MessageId=44299 +Language=English +%1 +. +MessageId=44300 +Language=English +%1 +. +MessageId=44301 +Language=English +%1 +. +MessageId=44302 +Language=English +%1 +. +MessageId=44303 +Language=English +%1 +. +MessageId=44304 +Language=English +%1 +. +MessageId=44305 +Language=English +%1 +. +MessageId=44306 +Language=English +%1 +. +MessageId=44307 +Language=English +%1 +. +MessageId=44308 +Language=English +%1 +. +MessageId=44309 +Language=English +%1 +. +MessageId=44310 +Language=English +%1 +. +MessageId=44311 +Language=English +%1 +. +MessageId=44312 +Language=English +%1 +. +MessageId=44313 +Language=English +%1 +. +MessageId=44314 +Language=English +%1 +. +MessageId=44315 +Language=English +%1 +. +MessageId=44316 +Language=English +%1 +. +MessageId=44317 +Language=English +%1 +. +MessageId=44318 +Language=English +%1 +. +MessageId=44319 +Language=English +%1 +. +MessageId=44320 +Language=English +%1 +. +MessageId=44321 +Language=English +%1 +. +MessageId=44322 +Language=English +%1 +. +MessageId=44323 +Language=English +%1 +. +MessageId=44324 +Language=English +%1 +. +MessageId=44325 +Language=English +%1 +. +MessageId=44326 +Language=English +%1 +. +MessageId=44327 +Language=English +%1 +. +MessageId=44328 +Language=English +%1 +. +MessageId=44329 +Language=English +%1 +. +MessageId=44330 +Language=English +%1 +. +MessageId=44331 +Language=English +%1 +. +MessageId=44332 +Language=English +%1 +. +MessageId=44333 +Language=English +%1 +. +MessageId=44334 +Language=English +%1 +. +MessageId=44335 +Language=English +%1 +. +MessageId=44336 +Language=English +%1 +. +MessageId=44337 +Language=English +%1 +. +MessageId=44338 +Language=English +%1 +. +MessageId=44339 +Language=English +%1 +. +MessageId=44340 +Language=English +%1 +. +MessageId=44341 +Language=English +%1 +. +MessageId=44342 +Language=English +%1 +. +MessageId=44343 +Language=English +%1 +. +MessageId=44344 +Language=English +%1 +. +MessageId=44345 +Language=English +%1 +. +MessageId=44346 +Language=English +%1 +. +MessageId=44347 +Language=English +%1 +. +MessageId=44348 +Language=English +%1 +. +MessageId=44349 +Language=English +%1 +. +MessageId=44350 +Language=English +%1 +. +MessageId=44351 +Language=English +%1 +. +MessageId=44352 +Language=English +%1 +. +MessageId=44353 +Language=English +%1 +. +MessageId=44354 +Language=English +%1 +. +MessageId=44355 +Language=English +%1 +. +MessageId=44356 +Language=English +%1 +. +MessageId=44357 +Language=English +%1 +. +MessageId=44358 +Language=English +%1 +. +MessageId=44359 +Language=English +%1 +. +MessageId=44360 +Language=English +%1 +. +MessageId=44361 +Language=English +%1 +. +MessageId=44362 +Language=English +%1 +. +MessageId=44363 +Language=English +%1 +. +MessageId=44364 +Language=English +%1 +. +MessageId=44365 +Language=English +%1 +. +MessageId=44366 +Language=English +%1 +. +MessageId=44367 +Language=English +%1 +. +MessageId=44368 +Language=English +%1 +. +MessageId=44369 +Language=English +%1 +. +MessageId=44370 +Language=English +%1 +. +MessageId=44371 +Language=English +%1 +. +MessageId=44372 +Language=English +%1 +. +MessageId=44373 +Language=English +%1 +. +MessageId=44374 +Language=English +%1 +. +MessageId=44375 +Language=English +%1 +. +MessageId=44376 +Language=English +%1 +. +MessageId=44377 +Language=English +%1 +. +MessageId=44378 +Language=English +%1 +. +MessageId=44379 +Language=English +%1 +. +MessageId=44380 +Language=English +%1 +. +MessageId=44381 +Language=English +%1 +. +MessageId=44382 +Language=English +%1 +. +MessageId=44383 +Language=English +%1 +. +MessageId=44384 +Language=English +%1 +. +MessageId=44385 +Language=English +%1 +. +MessageId=44386 +Language=English +%1 +. +MessageId=44387 +Language=English +%1 +. +MessageId=44388 +Language=English +%1 +. +MessageId=44389 +Language=English +%1 +. +MessageId=44390 +Language=English +%1 +. +MessageId=44391 +Language=English +%1 +. +MessageId=44392 +Language=English +%1 +. +MessageId=44393 +Language=English +%1 +. +MessageId=44394 +Language=English +%1 +. +MessageId=44395 +Language=English +%1 +. +MessageId=44396 +Language=English +%1 +. +MessageId=44397 +Language=English +%1 +. +MessageId=44398 +Language=English +%1 +. +MessageId=44399 +Language=English +%1 +. +MessageId=44400 +Language=English +%1 +. +MessageId=44401 +Language=English +%1 +. +MessageId=44402 +Language=English +%1 +. +MessageId=44403 +Language=English +%1 +. +MessageId=44404 +Language=English +%1 +. +MessageId=44405 +Language=English +%1 +. +MessageId=44406 +Language=English +%1 +. +MessageId=44407 +Language=English +%1 +. +MessageId=44408 +Language=English +%1 +. +MessageId=44409 +Language=English +%1 +. +MessageId=44410 +Language=English +%1 +. +MessageId=44411 +Language=English +%1 +. +MessageId=44412 +Language=English +%1 +. +MessageId=44413 +Language=English +%1 +. +MessageId=44414 +Language=English +%1 +. +MessageId=44415 +Language=English +%1 +. +MessageId=44416 +Language=English +%1 +. +MessageId=44417 +Language=English +%1 +. +MessageId=44418 +Language=English +%1 +. +MessageId=44419 +Language=English +%1 +. +MessageId=44420 +Language=English +%1 +. +MessageId=44421 +Language=English +%1 +. +MessageId=44422 +Language=English +%1 +. +MessageId=44423 +Language=English +%1 +. +MessageId=44424 +Language=English +%1 +. +MessageId=44425 +Language=English +%1 +. +MessageId=44426 +Language=English +%1 +. +MessageId=44427 +Language=English +%1 +. +MessageId=44428 +Language=English +%1 +. +MessageId=44429 +Language=English +%1 +. +MessageId=44430 +Language=English +%1 +. +MessageId=44431 +Language=English +%1 +. +MessageId=44432 +Language=English +%1 +. +MessageId=44433 +Language=English +%1 +. +MessageId=44434 +Language=English +%1 +. +MessageId=44435 +Language=English +%1 +. +MessageId=44436 +Language=English +%1 +. +MessageId=44437 +Language=English +%1 +. +MessageId=44438 +Language=English +%1 +. +MessageId=44439 +Language=English +%1 +. +MessageId=44440 +Language=English +%1 +. +MessageId=44441 +Language=English +%1 +. +MessageId=44442 +Language=English +%1 +. +MessageId=44443 +Language=English +%1 +. +MessageId=44444 +Language=English +%1 +. +MessageId=44445 +Language=English +%1 +. +MessageId=44446 +Language=English +%1 +. +MessageId=44447 +Language=English +%1 +. +MessageId=44448 +Language=English +%1 +. +MessageId=44449 +Language=English +%1 +. +MessageId=44450 +Language=English +%1 +. +MessageId=44451 +Language=English +%1 +. +MessageId=44452 +Language=English +%1 +. +MessageId=44453 +Language=English +%1 +. +MessageId=44454 +Language=English +%1 +. +MessageId=44455 +Language=English +%1 +. +MessageId=44456 +Language=English +%1 +. +MessageId=44457 +Language=English +%1 +. +MessageId=44458 +Language=English +%1 +. +MessageId=44459 +Language=English +%1 +. +MessageId=44460 +Language=English +%1 +. +MessageId=44461 +Language=English +%1 +. +MessageId=44462 +Language=English +%1 +. +MessageId=44463 +Language=English +%1 +. +MessageId=44464 +Language=English +%1 +. +MessageId=44465 +Language=English +%1 +. +MessageId=44466 +Language=English +%1 +. +MessageId=44467 +Language=English +%1 +. +MessageId=44468 +Language=English +%1 +. +MessageId=44469 +Language=English +%1 +. +MessageId=44470 +Language=English +%1 +. +MessageId=44471 +Language=English +%1 +. +MessageId=44472 +Language=English +%1 +. +MessageId=44473 +Language=English +%1 +. +MessageId=44474 +Language=English +%1 +. +MessageId=44475 +Language=English +%1 +. +MessageId=44476 +Language=English +%1 +. +MessageId=44477 +Language=English +%1 +. +MessageId=44478 +Language=English +%1 +. +MessageId=44479 +Language=English +%1 +. +MessageId=44480 +Language=English +%1 +. +MessageId=44481 +Language=English +%1 +. +MessageId=44482 +Language=English +%1 +. +MessageId=44483 +Language=English +%1 +. +MessageId=44484 +Language=English +%1 +. +MessageId=44485 +Language=English +%1 +. +MessageId=44486 +Language=English +%1 +. +MessageId=44487 +Language=English +%1 +. +MessageId=44488 +Language=English +%1 +. +MessageId=44489 +Language=English +%1 +. +MessageId=44490 +Language=English +%1 +. +MessageId=44491 +Language=English +%1 +. +MessageId=44492 +Language=English +%1 +. +MessageId=44493 +Language=English +%1 +. +MessageId=44494 +Language=English +%1 +. +MessageId=44495 +Language=English +%1 +. +MessageId=44496 +Language=English +%1 +. +MessageId=44497 +Language=English +%1 +. +MessageId=44498 +Language=English +%1 +. +MessageId=44499 +Language=English +%1 +. +MessageId=44500 +Language=English +%1 +. +MessageId=44501 +Language=English +%1 +. +MessageId=44502 +Language=English +%1 +. +MessageId=44503 +Language=English +%1 +. +MessageId=44504 +Language=English +%1 +. +MessageId=44505 +Language=English +%1 +. +MessageId=44506 +Language=English +%1 +. +MessageId=44507 +Language=English +%1 +. +MessageId=44508 +Language=English +%1 +. +MessageId=44509 +Language=English +%1 +. +MessageId=44510 +Language=English +%1 +. +MessageId=44511 +Language=English +%1 +. +MessageId=44512 +Language=English +%1 +. +MessageId=44513 +Language=English +%1 +. +MessageId=44514 +Language=English +%1 +. +MessageId=44515 +Language=English +%1 +. +MessageId=44516 +Language=English +%1 +. +MessageId=44517 +Language=English +%1 +. +MessageId=44518 +Language=English +%1 +. +MessageId=44519 +Language=English +%1 +. +MessageId=44520 +Language=English +%1 +. +MessageId=44521 +Language=English +%1 +. +MessageId=44522 +Language=English +%1 +. +MessageId=44523 +Language=English +%1 +. +MessageId=44524 +Language=English +%1 +. +MessageId=44525 +Language=English +%1 +. +MessageId=44526 +Language=English +%1 +. +MessageId=44527 +Language=English +%1 +. +MessageId=44528 +Language=English +%1 +. +MessageId=44529 +Language=English +%1 +. +MessageId=44530 +Language=English +%1 +. +MessageId=44531 +Language=English +%1 +. +MessageId=44532 +Language=English +%1 +. +MessageId=44533 +Language=English +%1 +. +MessageId=44534 +Language=English +%1 +. +MessageId=44535 +Language=English +%1 +. +MessageId=44536 +Language=English +%1 +. +MessageId=44537 +Language=English +%1 +. +MessageId=44538 +Language=English +%1 +. +MessageId=44539 +Language=English +%1 +. +MessageId=44540 +Language=English +%1 +. +MessageId=44541 +Language=English +%1 +. +MessageId=44542 +Language=English +%1 +. +MessageId=44543 +Language=English +%1 +. +MessageId=44544 +Language=English +%1 +. +MessageId=44545 +Language=English +%1 +. +MessageId=44546 +Language=English +%1 +. +MessageId=44547 +Language=English +%1 +. +MessageId=44548 +Language=English +%1 +. +MessageId=44549 +Language=English +%1 +. +MessageId=44550 +Language=English +%1 +. +MessageId=44551 +Language=English +%1 +. +MessageId=44552 +Language=English +%1 +. +MessageId=44553 +Language=English +%1 +. +MessageId=44554 +Language=English +%1 +. +MessageId=44555 +Language=English +%1 +. +MessageId=44556 +Language=English +%1 +. +MessageId=44557 +Language=English +%1 +. +MessageId=44558 +Language=English +%1 +. +MessageId=44559 +Language=English +%1 +. +MessageId=44560 +Language=English +%1 +. +MessageId=44561 +Language=English +%1 +. +MessageId=44562 +Language=English +%1 +. +MessageId=44563 +Language=English +%1 +. +MessageId=44564 +Language=English +%1 +. +MessageId=44565 +Language=English +%1 +. +MessageId=44566 +Language=English +%1 +. +MessageId=44567 +Language=English +%1 +. +MessageId=44568 +Language=English +%1 +. +MessageId=44569 +Language=English +%1 +. +MessageId=44570 +Language=English +%1 +. +MessageId=44571 +Language=English +%1 +. +MessageId=44572 +Language=English +%1 +. +MessageId=44573 +Language=English +%1 +. +MessageId=44574 +Language=English +%1 +. +MessageId=44575 +Language=English +%1 +. +MessageId=44576 +Language=English +%1 +. +MessageId=44577 +Language=English +%1 +. +MessageId=44578 +Language=English +%1 +. +MessageId=44579 +Language=English +%1 +. +MessageId=44580 +Language=English +%1 +. +MessageId=44581 +Language=English +%1 +. +MessageId=44582 +Language=English +%1 +. +MessageId=44583 +Language=English +%1 +. +MessageId=44584 +Language=English +%1 +. +MessageId=44585 +Language=English +%1 +. +MessageId=44586 +Language=English +%1 +. +MessageId=44587 +Language=English +%1 +. +MessageId=44588 +Language=English +%1 +. +MessageId=44589 +Language=English +%1 +. +MessageId=44590 +Language=English +%1 +. +MessageId=44591 +Language=English +%1 +. +MessageId=44592 +Language=English +%1 +. +MessageId=44593 +Language=English +%1 +. +MessageId=44594 +Language=English +%1 +. +MessageId=44595 +Language=English +%1 +. +MessageId=44596 +Language=English +%1 +. +MessageId=44597 +Language=English +%1 +. +MessageId=44598 +Language=English +%1 +. +MessageId=44599 +Language=English +%1 +. +MessageId=44600 +Language=English +%1 +. +MessageId=44601 +Language=English +%1 +. +MessageId=44602 +Language=English +%1 +. +MessageId=44603 +Language=English +%1 +. +MessageId=44604 +Language=English +%1 +. +MessageId=44605 +Language=English +%1 +. +MessageId=44606 +Language=English +%1 +. +MessageId=44607 +Language=English +%1 +. +MessageId=44608 +Language=English +%1 +. +MessageId=44609 +Language=English +%1 +. +MessageId=44610 +Language=English +%1 +. +MessageId=44611 +Language=English +%1 +. +MessageId=44612 +Language=English +%1 +. +MessageId=44613 +Language=English +%1 +. +MessageId=44614 +Language=English +%1 +. +MessageId=44615 +Language=English +%1 +. +MessageId=44616 +Language=English +%1 +. +MessageId=44617 +Language=English +%1 +. +MessageId=44618 +Language=English +%1 +. +MessageId=44619 +Language=English +%1 +. +MessageId=44620 +Language=English +%1 +. +MessageId=44621 +Language=English +%1 +. +MessageId=44622 +Language=English +%1 +. +MessageId=44623 +Language=English +%1 +. +MessageId=44624 +Language=English +%1 +. +MessageId=44625 +Language=English +%1 +. +MessageId=44626 +Language=English +%1 +. +MessageId=44627 +Language=English +%1 +. +MessageId=44628 +Language=English +%1 +. +MessageId=44629 +Language=English +%1 +. +MessageId=44630 +Language=English +%1 +. +MessageId=44631 +Language=English +%1 +. +MessageId=44632 +Language=English +%1 +. +MessageId=44633 +Language=English +%1 +. +MessageId=44634 +Language=English +%1 +. +MessageId=44635 +Language=English +%1 +. +MessageId=44636 +Language=English +%1 +. +MessageId=44637 +Language=English +%1 +. +MessageId=44638 +Language=English +%1 +. +MessageId=44639 +Language=English +%1 +. +MessageId=44640 +Language=English +%1 +. +MessageId=44641 +Language=English +%1 +. +MessageId=44642 +Language=English +%1 +. +MessageId=44643 +Language=English +%1 +. +MessageId=44644 +Language=English +%1 +. +MessageId=44645 +Language=English +%1 +. +MessageId=44646 +Language=English +%1 +. +MessageId=44647 +Language=English +%1 +. +MessageId=44648 +Language=English +%1 +. +MessageId=44649 +Language=English +%1 +. +MessageId=44650 +Language=English +%1 +. +MessageId=44651 +Language=English +%1 +. +MessageId=44652 +Language=English +%1 +. +MessageId=44653 +Language=English +%1 +. +MessageId=44654 +Language=English +%1 +. +MessageId=44655 +Language=English +%1 +. +MessageId=44656 +Language=English +%1 +. +MessageId=44657 +Language=English +%1 +. +MessageId=44658 +Language=English +%1 +. +MessageId=44659 +Language=English +%1 +. +MessageId=44660 +Language=English +%1 +. +MessageId=44661 +Language=English +%1 +. +MessageId=44662 +Language=English +%1 +. +MessageId=44663 +Language=English +%1 +. +MessageId=44664 +Language=English +%1 +. +MessageId=44665 +Language=English +%1 +. +MessageId=44666 +Language=English +%1 +. +MessageId=44667 +Language=English +%1 +. +MessageId=44668 +Language=English +%1 +. +MessageId=44669 +Language=English +%1 +. +MessageId=44670 +Language=English +%1 +. +MessageId=44671 +Language=English +%1 +. +MessageId=44672 +Language=English +%1 +. +MessageId=44673 +Language=English +%1 +. +MessageId=44674 +Language=English +%1 +. +MessageId=44675 +Language=English +%1 +. +MessageId=44676 +Language=English +%1 +. +MessageId=44677 +Language=English +%1 +. +MessageId=44678 +Language=English +%1 +. +MessageId=44679 +Language=English +%1 +. +MessageId=44680 +Language=English +%1 +. +MessageId=44681 +Language=English +%1 +. +MessageId=44682 +Language=English +%1 +. +MessageId=44683 +Language=English +%1 +. +MessageId=44684 +Language=English +%1 +. +MessageId=44685 +Language=English +%1 +. +MessageId=44686 +Language=English +%1 +. +MessageId=44687 +Language=English +%1 +. +MessageId=44688 +Language=English +%1 +. +MessageId=44689 +Language=English +%1 +. +MessageId=44690 +Language=English +%1 +. +MessageId=44691 +Language=English +%1 +. +MessageId=44692 +Language=English +%1 +. +MessageId=44693 +Language=English +%1 +. +MessageId=44694 +Language=English +%1 +. +MessageId=44695 +Language=English +%1 +. +MessageId=44696 +Language=English +%1 +. +MessageId=44697 +Language=English +%1 +. +MessageId=44698 +Language=English +%1 +. +MessageId=44699 +Language=English +%1 +. +MessageId=44700 +Language=English +%1 +. +MessageId=44701 +Language=English +%1 +. +MessageId=44702 +Language=English +%1 +. +MessageId=44703 +Language=English +%1 +. +MessageId=44704 +Language=English +%1 +. +MessageId=44705 +Language=English +%1 +. +MessageId=44706 +Language=English +%1 +. +MessageId=44707 +Language=English +%1 +. +MessageId=44708 +Language=English +%1 +. +MessageId=44709 +Language=English +%1 +. +MessageId=44710 +Language=English +%1 +. +MessageId=44711 +Language=English +%1 +. +MessageId=44712 +Language=English +%1 +. +MessageId=44713 +Language=English +%1 +. +MessageId=44714 +Language=English +%1 +. +MessageId=44715 +Language=English +%1 +. +MessageId=44716 +Language=English +%1 +. +MessageId=44717 +Language=English +%1 +. +MessageId=44718 +Language=English +%1 +. +MessageId=44719 +Language=English +%1 +. +MessageId=44720 +Language=English +%1 +. +MessageId=44721 +Language=English +%1 +. +MessageId=44722 +Language=English +%1 +. +MessageId=44723 +Language=English +%1 +. +MessageId=44724 +Language=English +%1 +. +MessageId=44725 +Language=English +%1 +. +MessageId=44726 +Language=English +%1 +. +MessageId=44727 +Language=English +%1 +. +MessageId=44728 +Language=English +%1 +. +MessageId=44729 +Language=English +%1 +. +MessageId=44730 +Language=English +%1 +. +MessageId=44731 +Language=English +%1 +. +MessageId=44732 +Language=English +%1 +. +MessageId=44733 +Language=English +%1 +. +MessageId=44734 +Language=English +%1 +. +MessageId=44735 +Language=English +%1 +. +MessageId=44736 +Language=English +%1 +. +MessageId=44737 +Language=English +%1 +. +MessageId=44738 +Language=English +%1 +. +MessageId=44739 +Language=English +%1 +. +MessageId=44740 +Language=English +%1 +. +MessageId=44741 +Language=English +%1 +. +MessageId=44742 +Language=English +%1 +. +MessageId=44743 +Language=English +%1 +. +MessageId=44744 +Language=English +%1 +. +MessageId=44745 +Language=English +%1 +. +MessageId=44746 +Language=English +%1 +. +MessageId=44747 +Language=English +%1 +. +MessageId=44748 +Language=English +%1 +. +MessageId=44749 +Language=English +%1 +. +MessageId=44750 +Language=English +%1 +. +MessageId=44751 +Language=English +%1 +. +MessageId=44752 +Language=English +%1 +. +MessageId=44753 +Language=English +%1 +. +MessageId=44754 +Language=English +%1 +. +MessageId=44755 +Language=English +%1 +. +MessageId=44756 +Language=English +%1 +. +MessageId=44757 +Language=English +%1 +. +MessageId=44758 +Language=English +%1 +. +MessageId=44759 +Language=English +%1 +. +MessageId=44760 +Language=English +%1 +. +MessageId=44761 +Language=English +%1 +. +MessageId=44762 +Language=English +%1 +. +MessageId=44763 +Language=English +%1 +. +MessageId=44764 +Language=English +%1 +. +MessageId=44765 +Language=English +%1 +. +MessageId=44766 +Language=English +%1 +. +MessageId=44767 +Language=English +%1 +. +MessageId=44768 +Language=English +%1 +. +MessageId=44769 +Language=English +%1 +. +MessageId=44770 +Language=English +%1 +. +MessageId=44771 +Language=English +%1 +. +MessageId=44772 +Language=English +%1 +. +MessageId=44773 +Language=English +%1 +. +MessageId=44774 +Language=English +%1 +. +MessageId=44775 +Language=English +%1 +. +MessageId=44776 +Language=English +%1 +. +MessageId=44777 +Language=English +%1 +. +MessageId=44778 +Language=English +%1 +. +MessageId=44779 +Language=English +%1 +. +MessageId=44780 +Language=English +%1 +. +MessageId=44781 +Language=English +%1 +. +MessageId=44782 +Language=English +%1 +. +MessageId=44783 +Language=English +%1 +. +MessageId=44784 +Language=English +%1 +. +MessageId=44785 +Language=English +%1 +. +MessageId=44786 +Language=English +%1 +. +MessageId=44787 +Language=English +%1 +. +MessageId=44788 +Language=English +%1 +. +MessageId=44789 +Language=English +%1 +. +MessageId=44790 +Language=English +%1 +. +MessageId=44791 +Language=English +%1 +. +MessageId=44792 +Language=English +%1 +. +MessageId=44793 +Language=English +%1 +. +MessageId=44794 +Language=English +%1 +. +MessageId=44795 +Language=English +%1 +. +MessageId=44796 +Language=English +%1 +. +MessageId=44797 +Language=English +%1 +. +MessageId=44798 +Language=English +%1 +. +MessageId=44799 +Language=English +%1 +. +MessageId=44800 +Language=English +%1 +. +MessageId=44801 +Language=English +%1 +. +MessageId=44802 +Language=English +%1 +. +MessageId=44803 +Language=English +%1 +. +MessageId=44804 +Language=English +%1 +. +MessageId=44805 +Language=English +%1 +. +MessageId=44806 +Language=English +%1 +. +MessageId=44807 +Language=English +%1 +. +MessageId=44808 +Language=English +%1 +. +MessageId=44809 +Language=English +%1 +. +MessageId=44810 +Language=English +%1 +. +MessageId=44811 +Language=English +%1 +. +MessageId=44812 +Language=English +%1 +. +MessageId=44813 +Language=English +%1 +. +MessageId=44814 +Language=English +%1 +. +MessageId=44815 +Language=English +%1 +. +MessageId=44816 +Language=English +%1 +. +MessageId=44817 +Language=English +%1 +. +MessageId=44818 +Language=English +%1 +. +MessageId=44819 +Language=English +%1 +. +MessageId=44820 +Language=English +%1 +. +MessageId=44821 +Language=English +%1 +. +MessageId=44822 +Language=English +%1 +. +MessageId=44823 +Language=English +%1 +. +MessageId=44824 +Language=English +%1 +. +MessageId=44825 +Language=English +%1 +. +MessageId=44826 +Language=English +%1 +. +MessageId=44827 +Language=English +%1 +. +MessageId=44828 +Language=English +%1 +. +MessageId=44829 +Language=English +%1 +. +MessageId=44830 +Language=English +%1 +. +MessageId=44831 +Language=English +%1 +. +MessageId=44832 +Language=English +%1 +. +MessageId=44833 +Language=English +%1 +. +MessageId=44834 +Language=English +%1 +. +MessageId=44835 +Language=English +%1 +. +MessageId=44836 +Language=English +%1 +. +MessageId=44837 +Language=English +%1 +. +MessageId=44838 +Language=English +%1 +. +MessageId=44839 +Language=English +%1 +. +MessageId=44840 +Language=English +%1 +. +MessageId=44841 +Language=English +%1 +. +MessageId=44842 +Language=English +%1 +. +MessageId=44843 +Language=English +%1 +. +MessageId=44844 +Language=English +%1 +. +MessageId=44845 +Language=English +%1 +. +MessageId=44846 +Language=English +%1 +. +MessageId=44847 +Language=English +%1 +. +MessageId=44848 +Language=English +%1 +. +MessageId=44849 +Language=English +%1 +. +MessageId=44850 +Language=English +%1 +. +MessageId=44851 +Language=English +%1 +. +MessageId=44852 +Language=English +%1 +. +MessageId=44853 +Language=English +%1 +. +MessageId=44854 +Language=English +%1 +. +MessageId=44855 +Language=English +%1 +. +MessageId=44856 +Language=English +%1 +. +MessageId=44857 +Language=English +%1 +. +MessageId=44858 +Language=English +%1 +. +MessageId=44859 +Language=English +%1 +. +MessageId=44860 +Language=English +%1 +. +MessageId=44861 +Language=English +%1 +. +MessageId=44862 +Language=English +%1 +. +MessageId=44863 +Language=English +%1 +. +MessageId=44864 +Language=English +%1 +. +MessageId=44865 +Language=English +%1 +. +MessageId=44866 +Language=English +%1 +. +MessageId=44867 +Language=English +%1 +. +MessageId=44868 +Language=English +%1 +. +MessageId=44869 +Language=English +%1 +. +MessageId=44870 +Language=English +%1 +. +MessageId=44871 +Language=English +%1 +. +MessageId=44872 +Language=English +%1 +. +MessageId=44873 +Language=English +%1 +. +MessageId=44874 +Language=English +%1 +. +MessageId=44875 +Language=English +%1 +. +MessageId=44876 +Language=English +%1 +. +MessageId=44877 +Language=English +%1 +. +MessageId=44878 +Language=English +%1 +. +MessageId=44879 +Language=English +%1 +. +MessageId=44880 +Language=English +%1 +. +MessageId=44881 +Language=English +%1 +. +MessageId=44882 +Language=English +%1 +. +MessageId=44883 +Language=English +%1 +. +MessageId=44884 +Language=English +%1 +. +MessageId=44885 +Language=English +%1 +. +MessageId=44886 +Language=English +%1 +. +MessageId=44887 +Language=English +%1 +. +MessageId=44888 +Language=English +%1 +. +MessageId=44889 +Language=English +%1 +. +MessageId=44890 +Language=English +%1 +. +MessageId=44891 +Language=English +%1 +. +MessageId=44892 +Language=English +%1 +. +MessageId=44893 +Language=English +%1 +. +MessageId=44894 +Language=English +%1 +. +MessageId=44895 +Language=English +%1 +. +MessageId=44896 +Language=English +%1 +. +MessageId=44897 +Language=English +%1 +. +MessageId=44898 +Language=English +%1 +. +MessageId=44899 +Language=English +%1 +. +MessageId=44900 +Language=English +%1 +. +MessageId=44901 +Language=English +%1 +. +MessageId=44902 +Language=English +%1 +. +MessageId=44903 +Language=English +%1 +. +MessageId=44904 +Language=English +%1 +. +MessageId=44905 +Language=English +%1 +. +MessageId=44906 +Language=English +%1 +. +MessageId=44907 +Language=English +%1 +. +MessageId=44908 +Language=English +%1 +. +MessageId=44909 +Language=English +%1 +. +MessageId=44910 +Language=English +%1 +. +MessageId=44911 +Language=English +%1 +. +MessageId=44912 +Language=English +%1 +. +MessageId=44913 +Language=English +%1 +. +MessageId=44914 +Language=English +%1 +. +MessageId=44915 +Language=English +%1 +. +MessageId=44916 +Language=English +%1 +. +MessageId=44917 +Language=English +%1 +. +MessageId=44918 +Language=English +%1 +. +MessageId=44919 +Language=English +%1 +. +MessageId=44920 +Language=English +%1 +. +MessageId=44921 +Language=English +%1 +. +MessageId=44922 +Language=English +%1 +. +MessageId=44923 +Language=English +%1 +. +MessageId=44924 +Language=English +%1 +. +MessageId=44925 +Language=English +%1 +. +MessageId=44926 +Language=English +%1 +. +MessageId=44927 +Language=English +%1 +. +MessageId=44928 +Language=English +%1 +. +MessageId=44929 +Language=English +%1 +. +MessageId=44930 +Language=English +%1 +. +MessageId=44931 +Language=English +%1 +. +MessageId=44932 +Language=English +%1 +. +MessageId=44933 +Language=English +%1 +. +MessageId=44934 +Language=English +%1 +. +MessageId=44935 +Language=English +%1 +. +MessageId=44936 +Language=English +%1 +. +MessageId=44937 +Language=English +%1 +. +MessageId=44938 +Language=English +%1 +. +MessageId=44939 +Language=English +%1 +. +MessageId=44940 +Language=English +%1 +. +MessageId=44941 +Language=English +%1 +. +MessageId=44942 +Language=English +%1 +. +MessageId=44943 +Language=English +%1 +. +MessageId=44944 +Language=English +%1 +. +MessageId=44945 +Language=English +%1 +. +MessageId=44946 +Language=English +%1 +. +MessageId=44947 +Language=English +%1 +. +MessageId=44948 +Language=English +%1 +. +MessageId=44949 +Language=English +%1 +. +MessageId=44950 +Language=English +%1 +. +MessageId=44951 +Language=English +%1 +. +MessageId=44952 +Language=English +%1 +. +MessageId=44953 +Language=English +%1 +. +MessageId=44954 +Language=English +%1 +. +MessageId=44955 +Language=English +%1 +. +MessageId=44956 +Language=English +%1 +. +MessageId=44957 +Language=English +%1 +. +MessageId=44958 +Language=English +%1 +. +MessageId=44959 +Language=English +%1 +. +MessageId=44960 +Language=English +%1 +. +MessageId=44961 +Language=English +%1 +. +MessageId=44962 +Language=English +%1 +. +MessageId=44963 +Language=English +%1 +. +MessageId=44964 +Language=English +%1 +. +MessageId=44965 +Language=English +%1 +. +MessageId=44966 +Language=English +%1 +. +MessageId=44967 +Language=English +%1 +. +MessageId=44968 +Language=English +%1 +. +MessageId=44969 +Language=English +%1 +. +MessageId=44970 +Language=English +%1 +. +MessageId=44971 +Language=English +%1 +. +MessageId=44972 +Language=English +%1 +. +MessageId=44973 +Language=English +%1 +. +MessageId=44974 +Language=English +%1 +. +MessageId=44975 +Language=English +%1 +. +MessageId=44976 +Language=English +%1 +. +MessageId=44977 +Language=English +%1 +. +MessageId=44978 +Language=English +%1 +. +MessageId=44979 +Language=English +%1 +. +MessageId=44980 +Language=English +%1 +. +MessageId=44981 +Language=English +%1 +. +MessageId=44982 +Language=English +%1 +. +MessageId=44983 +Language=English +%1 +. +MessageId=44984 +Language=English +%1 +. +MessageId=44985 +Language=English +%1 +. +MessageId=44986 +Language=English +%1 +. +MessageId=44987 +Language=English +%1 +. +MessageId=44988 +Language=English +%1 +. +MessageId=44989 +Language=English +%1 +. +MessageId=44990 +Language=English +%1 +. +MessageId=44991 +Language=English +%1 +. +MessageId=44992 +Language=English +%1 +. +MessageId=44993 +Language=English +%1 +. +MessageId=44994 +Language=English +%1 +. +MessageId=44995 +Language=English +%1 +. +MessageId=44996 +Language=English +%1 +. +MessageId=44997 +Language=English +%1 +. +MessageId=44998 +Language=English +%1 +. +MessageId=44999 +Language=English +%1 +. +MessageId=45000 +Language=English +%1 +. +MessageId=45001 +Language=English +%1 +. +MessageId=45002 +Language=English +%1 +. +MessageId=45003 +Language=English +%1 +. +MessageId=45004 +Language=English +%1 +. +MessageId=45005 +Language=English +%1 +. +MessageId=45006 +Language=English +%1 +. +MessageId=45007 +Language=English +%1 +. +MessageId=45008 +Language=English +%1 +. +MessageId=45009 +Language=English +%1 +. +MessageId=45010 +Language=English +%1 +. +MessageId=45011 +Language=English +%1 +. +MessageId=45012 +Language=English +%1 +. +MessageId=45013 +Language=English +%1 +. +MessageId=45014 +Language=English +%1 +. +MessageId=45015 +Language=English +%1 +. +MessageId=45016 +Language=English +%1 +. +MessageId=45017 +Language=English +%1 +. +MessageId=45018 +Language=English +%1 +. +MessageId=45019 +Language=English +%1 +. +MessageId=45020 +Language=English +%1 +. +MessageId=45021 +Language=English +%1 +. +MessageId=45022 +Language=English +%1 +. +MessageId=45023 +Language=English +%1 +. +MessageId=45024 +Language=English +%1 +. +MessageId=45025 +Language=English +%1 +. +MessageId=45026 +Language=English +%1 +. +MessageId=45027 +Language=English +%1 +. +MessageId=45028 +Language=English +%1 +. +MessageId=45029 +Language=English +%1 +. +MessageId=45030 +Language=English +%1 +. +MessageId=45031 +Language=English +%1 +. +MessageId=45032 +Language=English +%1 +. +MessageId=45033 +Language=English +%1 +. +MessageId=45034 +Language=English +%1 +. +MessageId=45035 +Language=English +%1 +. +MessageId=45036 +Language=English +%1 +. +MessageId=45037 +Language=English +%1 +. +MessageId=45038 +Language=English +%1 +. +MessageId=45039 +Language=English +%1 +. +MessageId=45040 +Language=English +%1 +. +MessageId=45041 +Language=English +%1 +. +MessageId=45042 +Language=English +%1 +. +MessageId=45043 +Language=English +%1 +. +MessageId=45044 +Language=English +%1 +. +MessageId=45045 +Language=English +%1 +. +MessageId=45046 +Language=English +%1 +. +MessageId=45047 +Language=English +%1 +. +MessageId=45048 +Language=English +%1 +. +MessageId=45049 +Language=English +%1 +. +MessageId=45050 +Language=English +%1 +. +MessageId=45051 +Language=English +%1 +. +MessageId=45052 +Language=English +%1 +. +MessageId=45053 +Language=English +%1 +. +MessageId=45054 +Language=English +%1 +. +MessageId=45055 +Language=English +%1 +. +MessageId=45056 +Language=English +%1 +. +MessageId=45057 +Language=English +%1 +. +MessageId=45058 +Language=English +%1 +. +MessageId=45059 +Language=English +%1 +. +MessageId=45060 +Language=English +%1 +. +MessageId=45061 +Language=English +%1 +. +MessageId=45062 +Language=English +%1 +. +MessageId=45063 +Language=English +%1 +. +MessageId=45064 +Language=English +%1 +. +MessageId=45065 +Language=English +%1 +. +MessageId=45066 +Language=English +%1 +. +MessageId=45067 +Language=English +%1 +. +MessageId=45068 +Language=English +%1 +. +MessageId=45069 +Language=English +%1 +. +MessageId=45070 +Language=English +%1 +. +MessageId=45071 +Language=English +%1 +. +MessageId=45072 +Language=English +%1 +. +MessageId=45073 +Language=English +%1 +. +MessageId=45074 +Language=English +%1 +. +MessageId=45075 +Language=English +%1 +. +MessageId=45076 +Language=English +%1 +. +MessageId=45077 +Language=English +%1 +. +MessageId=45078 +Language=English +%1 +. +MessageId=45079 +Language=English +%1 +. +MessageId=45080 +Language=English +%1 +. +MessageId=45081 +Language=English +%1 +. +MessageId=45082 +Language=English +%1 +. +MessageId=45083 +Language=English +%1 +. +MessageId=45084 +Language=English +%1 +. +MessageId=45085 +Language=English +%1 +. +MessageId=45086 +Language=English +%1 +. +MessageId=45087 +Language=English +%1 +. +MessageId=45088 +Language=English +%1 +. +MessageId=45089 +Language=English +%1 +. +MessageId=45090 +Language=English +%1 +. +MessageId=45091 +Language=English +%1 +. +MessageId=45092 +Language=English +%1 +. +MessageId=45093 +Language=English +%1 +. +MessageId=45094 +Language=English +%1 +. +MessageId=45095 +Language=English +%1 +. +MessageId=45096 +Language=English +%1 +. +MessageId=45097 +Language=English +%1 +. +MessageId=45098 +Language=English +%1 +. +MessageId=45099 +Language=English +%1 +. +MessageId=45100 +Language=English +%1 +. +MessageId=45101 +Language=English +%1 +. +MessageId=45102 +Language=English +%1 +. +MessageId=45103 +Language=English +%1 +. +MessageId=45104 +Language=English +%1 +. +MessageId=45105 +Language=English +%1 +. +MessageId=45106 +Language=English +%1 +. +MessageId=45107 +Language=English +%1 +. +MessageId=45108 +Language=English +%1 +. +MessageId=45109 +Language=English +%1 +. +MessageId=45110 +Language=English +%1 +. +MessageId=45111 +Language=English +%1 +. +MessageId=45112 +Language=English +%1 +. +MessageId=45113 +Language=English +%1 +. +MessageId=45114 +Language=English +%1 +. +MessageId=45115 +Language=English +%1 +. +MessageId=45116 +Language=English +%1 +. +MessageId=45117 +Language=English +%1 +. +MessageId=45118 +Language=English +%1 +. +MessageId=45119 +Language=English +%1 +. +MessageId=45120 +Language=English +%1 +. +MessageId=45121 +Language=English +%1 +. +MessageId=45122 +Language=English +%1 +. +MessageId=45123 +Language=English +%1 +. +MessageId=45124 +Language=English +%1 +. +MessageId=45125 +Language=English +%1 +. +MessageId=45126 +Language=English +%1 +. +MessageId=45127 +Language=English +%1 +. +MessageId=45128 +Language=English +%1 +. +MessageId=45129 +Language=English +%1 +. +MessageId=45130 +Language=English +%1 +. +MessageId=45131 +Language=English +%1 +. +MessageId=45132 +Language=English +%1 +. +MessageId=45133 +Language=English +%1 +. +MessageId=45134 +Language=English +%1 +. +MessageId=45135 +Language=English +%1 +. +MessageId=45136 +Language=English +%1 +. +MessageId=45137 +Language=English +%1 +. +MessageId=45138 +Language=English +%1 +. +MessageId=45139 +Language=English +%1 +. +MessageId=45140 +Language=English +%1 +. +MessageId=45141 +Language=English +%1 +. +MessageId=45142 +Language=English +%1 +. +MessageId=45143 +Language=English +%1 +. +MessageId=45144 +Language=English +%1 +. +MessageId=45145 +Language=English +%1 +. +MessageId=45146 +Language=English +%1 +. +MessageId=45147 +Language=English +%1 +. +MessageId=45148 +Language=English +%1 +. +MessageId=45149 +Language=English +%1 +. +MessageId=45150 +Language=English +%1 +. +MessageId=45151 +Language=English +%1 +. +MessageId=45152 +Language=English +%1 +. +MessageId=45153 +Language=English +%1 +. +MessageId=45154 +Language=English +%1 +. +MessageId=45155 +Language=English +%1 +. +MessageId=45156 +Language=English +%1 +. +MessageId=45157 +Language=English +%1 +. +MessageId=45158 +Language=English +%1 +. +MessageId=45159 +Language=English +%1 +. +MessageId=45160 +Language=English +%1 +. +MessageId=45161 +Language=English +%1 +. +MessageId=45162 +Language=English +%1 +. +MessageId=45163 +Language=English +%1 +. +MessageId=45164 +Language=English +%1 +. +MessageId=45165 +Language=English +%1 +. +MessageId=45166 +Language=English +%1 +. +MessageId=45167 +Language=English +%1 +. +MessageId=45168 +Language=English +%1 +. +MessageId=45169 +Language=English +%1 +. +MessageId=45170 +Language=English +%1 +. +MessageId=45171 +Language=English +%1 +. +MessageId=45172 +Language=English +%1 +. +MessageId=45173 +Language=English +%1 +. +MessageId=45174 +Language=English +%1 +. +MessageId=45175 +Language=English +%1 +. +MessageId=45176 +Language=English +%1 +. +MessageId=45177 +Language=English +%1 +. +MessageId=45178 +Language=English +%1 +. +MessageId=45179 +Language=English +%1 +. +MessageId=45180 +Language=English +%1 +. +MessageId=45181 +Language=English +%1 +. +MessageId=45182 +Language=English +%1 +. +MessageId=45183 +Language=English +%1 +. +MessageId=45184 +Language=English +%1 +. +MessageId=45185 +Language=English +%1 +. +MessageId=45186 +Language=English +%1 +. +MessageId=45187 +Language=English +%1 +. +MessageId=45188 +Language=English +%1 +. +MessageId=45189 +Language=English +%1 +. +MessageId=45190 +Language=English +%1 +. +MessageId=45191 +Language=English +%1 +. +MessageId=45192 +Language=English +%1 +. +MessageId=45193 +Language=English +%1 +. +MessageId=45194 +Language=English +%1 +. +MessageId=45195 +Language=English +%1 +. +MessageId=45196 +Language=English +%1 +. +MessageId=45197 +Language=English +%1 +. +MessageId=45198 +Language=English +%1 +. +MessageId=45199 +Language=English +%1 +. +MessageId=45200 +Language=English +%1 +. +MessageId=45201 +Language=English +%1 +. +MessageId=45202 +Language=English +%1 +. +MessageId=45203 +Language=English +%1 +. +MessageId=45204 +Language=English +%1 +. +MessageId=45205 +Language=English +%1 +. +MessageId=45206 +Language=English +%1 +. +MessageId=45207 +Language=English +%1 +. +MessageId=45208 +Language=English +%1 +. +MessageId=45209 +Language=English +%1 +. +MessageId=45210 +Language=English +%1 +. +MessageId=45211 +Language=English +%1 +. +MessageId=45212 +Language=English +%1 +. +MessageId=45213 +Language=English +%1 +. +MessageId=45214 +Language=English +%1 +. +MessageId=45215 +Language=English +%1 +. +MessageId=45216 +Language=English +%1 +. +MessageId=45217 +Language=English +%1 +. +MessageId=45218 +Language=English +%1 +. +MessageId=45219 +Language=English +%1 +. +MessageId=45220 +Language=English +%1 +. +MessageId=45221 +Language=English +%1 +. +MessageId=45222 +Language=English +%1 +. +MessageId=45223 +Language=English +%1 +. +MessageId=45224 +Language=English +%1 +. +MessageId=45225 +Language=English +%1 +. +MessageId=45226 +Language=English +%1 +. +MessageId=45227 +Language=English +%1 +. +MessageId=45228 +Language=English +%1 +. +MessageId=45229 +Language=English +%1 +. +MessageId=45230 +Language=English +%1 +. +MessageId=45231 +Language=English +%1 +. +MessageId=45232 +Language=English +%1 +. +MessageId=45233 +Language=English +%1 +. +MessageId=45234 +Language=English +%1 +. +MessageId=45235 +Language=English +%1 +. +MessageId=45236 +Language=English +%1 +. +MessageId=45237 +Language=English +%1 +. +MessageId=45238 +Language=English +%1 +. +MessageId=45239 +Language=English +%1 +. +MessageId=45240 +Language=English +%1 +. +MessageId=45241 +Language=English +%1 +. +MessageId=45242 +Language=English +%1 +. +MessageId=45243 +Language=English +%1 +. +MessageId=45244 +Language=English +%1 +. +MessageId=45245 +Language=English +%1 +. +MessageId=45246 +Language=English +%1 +. +MessageId=45247 +Language=English +%1 +. +MessageId=45248 +Language=English +%1 +. +MessageId=45249 +Language=English +%1 +. +MessageId=45250 +Language=English +%1 +. +MessageId=45251 +Language=English +%1 +. +MessageId=45252 +Language=English +%1 +. +MessageId=45253 +Language=English +%1 +. +MessageId=45254 +Language=English +%1 +. +MessageId=45255 +Language=English +%1 +. +MessageId=45256 +Language=English +%1 +. +MessageId=45257 +Language=English +%1 +. +MessageId=45258 +Language=English +%1 +. +MessageId=45259 +Language=English +%1 +. +MessageId=45260 +Language=English +%1 +. +MessageId=45261 +Language=English +%1 +. +MessageId=45262 +Language=English +%1 +. +MessageId=45263 +Language=English +%1 +. +MessageId=45264 +Language=English +%1 +. +MessageId=45265 +Language=English +%1 +. +MessageId=45266 +Language=English +%1 +. +MessageId=45267 +Language=English +%1 +. +MessageId=45268 +Language=English +%1 +. +MessageId=45269 +Language=English +%1 +. +MessageId=45270 +Language=English +%1 +. +MessageId=45271 +Language=English +%1 +. +MessageId=45272 +Language=English +%1 +. +MessageId=45273 +Language=English +%1 +. +MessageId=45274 +Language=English +%1 +. +MessageId=45275 +Language=English +%1 +. +MessageId=45276 +Language=English +%1 +. +MessageId=45277 +Language=English +%1 +. +MessageId=45278 +Language=English +%1 +. +MessageId=45279 +Language=English +%1 +. +MessageId=45280 +Language=English +%1 +. +MessageId=45281 +Language=English +%1 +. +MessageId=45282 +Language=English +%1 +. +MessageId=45283 +Language=English +%1 +. +MessageId=45284 +Language=English +%1 +. +MessageId=45285 +Language=English +%1 +. +MessageId=45286 +Language=English +%1 +. +MessageId=45287 +Language=English +%1 +. +MessageId=45288 +Language=English +%1 +. +MessageId=45289 +Language=English +%1 +. +MessageId=45290 +Language=English +%1 +. +MessageId=45291 +Language=English +%1 +. +MessageId=45292 +Language=English +%1 +. +MessageId=45293 +Language=English +%1 +. +MessageId=45294 +Language=English +%1 +. +MessageId=45295 +Language=English +%1 +. +MessageId=45296 +Language=English +%1 +. +MessageId=45297 +Language=English +%1 +. +MessageId=45298 +Language=English +%1 +. +MessageId=45299 +Language=English +%1 +. +MessageId=45300 +Language=English +%1 +. +MessageId=45301 +Language=English +%1 +. +MessageId=45302 +Language=English +%1 +. +MessageId=45303 +Language=English +%1 +. +MessageId=45304 +Language=English +%1 +. +MessageId=45305 +Language=English +%1 +. +MessageId=45306 +Language=English +%1 +. +MessageId=45307 +Language=English +%1 +. +MessageId=45308 +Language=English +%1 +. +MessageId=45309 +Language=English +%1 +. +MessageId=45310 +Language=English +%1 +. +MessageId=45311 +Language=English +%1 +. +MessageId=45312 +Language=English +%1 +. +MessageId=45313 +Language=English +%1 +. +MessageId=45314 +Language=English +%1 +. +MessageId=45315 +Language=English +%1 +. +MessageId=45316 +Language=English +%1 +. +MessageId=45317 +Language=English +%1 +. +MessageId=45318 +Language=English +%1 +. +MessageId=45319 +Language=English +%1 +. +MessageId=45320 +Language=English +%1 +. +MessageId=45321 +Language=English +%1 +. +MessageId=45322 +Language=English +%1 +. +MessageId=45323 +Language=English +%1 +. +MessageId=45324 +Language=English +%1 +. +MessageId=45325 +Language=English +%1 +. +MessageId=45326 +Language=English +%1 +. +MessageId=45327 +Language=English +%1 +. +MessageId=45328 +Language=English +%1 +. +MessageId=45329 +Language=English +%1 +. +MessageId=45330 +Language=English +%1 +. +MessageId=45331 +Language=English +%1 +. +MessageId=45332 +Language=English +%1 +. +MessageId=45333 +Language=English +%1 +. +MessageId=45334 +Language=English +%1 +. +MessageId=45335 +Language=English +%1 +. +MessageId=45336 +Language=English +%1 +. +MessageId=45337 +Language=English +%1 +. +MessageId=45338 +Language=English +%1 +. +MessageId=45339 +Language=English +%1 +. +MessageId=45340 +Language=English +%1 +. +MessageId=45341 +Language=English +%1 +. +MessageId=45342 +Language=English +%1 +. +MessageId=45343 +Language=English +%1 +. +MessageId=45344 +Language=English +%1 +. +MessageId=45345 +Language=English +%1 +. +MessageId=45346 +Language=English +%1 +. +MessageId=45347 +Language=English +%1 +. +MessageId=45348 +Language=English +%1 +. +MessageId=45349 +Language=English +%1 +. +MessageId=45350 +Language=English +%1 +. +MessageId=45351 +Language=English +%1 +. +MessageId=45352 +Language=English +%1 +. +MessageId=45353 +Language=English +%1 +. +MessageId=45354 +Language=English +%1 +. +MessageId=45355 +Language=English +%1 +. +MessageId=45356 +Language=English +%1 +. +MessageId=45357 +Language=English +%1 +. +MessageId=45358 +Language=English +%1 +. +MessageId=45359 +Language=English +%1 +. +MessageId=45360 +Language=English +%1 +. +MessageId=45361 +Language=English +%1 +. +MessageId=45362 +Language=English +%1 +. +MessageId=45363 +Language=English +%1 +. +MessageId=45364 +Language=English +%1 +. +MessageId=45365 +Language=English +%1 +. +MessageId=45366 +Language=English +%1 +. +MessageId=45367 +Language=English +%1 +. +MessageId=45368 +Language=English +%1 +. +MessageId=45369 +Language=English +%1 +. +MessageId=45370 +Language=English +%1 +. +MessageId=45371 +Language=English +%1 +. +MessageId=45372 +Language=English +%1 +. +MessageId=45373 +Language=English +%1 +. +MessageId=45374 +Language=English +%1 +. +MessageId=45375 +Language=English +%1 +. +MessageId=45376 +Language=English +%1 +. +MessageId=45377 +Language=English +%1 +. +MessageId=45378 +Language=English +%1 +. +MessageId=45379 +Language=English +%1 +. +MessageId=45380 +Language=English +%1 +. +MessageId=45381 +Language=English +%1 +. +MessageId=45382 +Language=English +%1 +. +MessageId=45383 +Language=English +%1 +. +MessageId=45384 +Language=English +%1 +. +MessageId=45385 +Language=English +%1 +. +MessageId=45386 +Language=English +%1 +. +MessageId=45387 +Language=English +%1 +. +MessageId=45388 +Language=English +%1 +. +MessageId=45389 +Language=English +%1 +. +MessageId=45390 +Language=English +%1 +. +MessageId=45391 +Language=English +%1 +. +MessageId=45392 +Language=English +%1 +. +MessageId=45393 +Language=English +%1 +. +MessageId=45394 +Language=English +%1 +. +MessageId=45395 +Language=English +%1 +. +MessageId=45396 +Language=English +%1 +. +MessageId=45397 +Language=English +%1 +. +MessageId=45398 +Language=English +%1 +. +MessageId=45399 +Language=English +%1 +. +MessageId=45400 +Language=English +%1 +. +MessageId=45401 +Language=English +%1 +. +MessageId=45402 +Language=English +%1 +. +MessageId=45403 +Language=English +%1 +. +MessageId=45404 +Language=English +%1 +. +MessageId=45405 +Language=English +%1 +. +MessageId=45406 +Language=English +%1 +. +MessageId=45407 +Language=English +%1 +. +MessageId=45408 +Language=English +%1 +. +MessageId=45409 +Language=English +%1 +. +MessageId=45410 +Language=English +%1 +. +MessageId=45411 +Language=English +%1 +. +MessageId=45412 +Language=English +%1 +. +MessageId=45413 +Language=English +%1 +. +MessageId=45414 +Language=English +%1 +. +MessageId=45415 +Language=English +%1 +. +MessageId=45416 +Language=English +%1 +. +MessageId=45417 +Language=English +%1 +. +MessageId=45418 +Language=English +%1 +. +MessageId=45419 +Language=English +%1 +. +MessageId=45420 +Language=English +%1 +. +MessageId=45421 +Language=English +%1 +. +MessageId=45422 +Language=English +%1 +. +MessageId=45423 +Language=English +%1 +. +MessageId=45424 +Language=English +%1 +. +MessageId=45425 +Language=English +%1 +. +MessageId=45426 +Language=English +%1 +. +MessageId=45427 +Language=English +%1 +. +MessageId=45428 +Language=English +%1 +. +MessageId=45429 +Language=English +%1 +. +MessageId=45430 +Language=English +%1 +. +MessageId=45431 +Language=English +%1 +. +MessageId=45432 +Language=English +%1 +. +MessageId=45433 +Language=English +%1 +. +MessageId=45434 +Language=English +%1 +. +MessageId=45435 +Language=English +%1 +. +MessageId=45436 +Language=English +%1 +. +MessageId=45437 +Language=English +%1 +. +MessageId=45438 +Language=English +%1 +. +MessageId=45439 +Language=English +%1 +. +MessageId=45440 +Language=English +%1 +. +MessageId=45441 +Language=English +%1 +. +MessageId=45442 +Language=English +%1 +. +MessageId=45443 +Language=English +%1 +. +MessageId=45444 +Language=English +%1 +. +MessageId=45445 +Language=English +%1 +. +MessageId=45446 +Language=English +%1 +. +MessageId=45447 +Language=English +%1 +. +MessageId=45448 +Language=English +%1 +. +MessageId=45449 +Language=English +%1 +. +MessageId=45450 +Language=English +%1 +. +MessageId=45451 +Language=English +%1 +. +MessageId=45452 +Language=English +%1 +. +MessageId=45453 +Language=English +%1 +. +MessageId=45454 +Language=English +%1 +. +MessageId=45455 +Language=English +%1 +. +MessageId=45456 +Language=English +%1 +. +MessageId=45457 +Language=English +%1 +. +MessageId=45458 +Language=English +%1 +. +MessageId=45459 +Language=English +%1 +. +MessageId=45460 +Language=English +%1 +. +MessageId=45461 +Language=English +%1 +. +MessageId=45462 +Language=English +%1 +. +MessageId=45463 +Language=English +%1 +. +MessageId=45464 +Language=English +%1 +. +MessageId=45465 +Language=English +%1 +. +MessageId=45466 +Language=English +%1 +. +MessageId=45467 +Language=English +%1 +. +MessageId=45468 +Language=English +%1 +. +MessageId=45469 +Language=English +%1 +. +MessageId=45470 +Language=English +%1 +. +MessageId=45471 +Language=English +%1 +. +MessageId=45472 +Language=English +%1 +. +MessageId=45473 +Language=English +%1 +. +MessageId=45474 +Language=English +%1 +. +MessageId=45475 +Language=English +%1 +. +MessageId=45476 +Language=English +%1 +. +MessageId=45477 +Language=English +%1 +. +MessageId=45478 +Language=English +%1 +. +MessageId=45479 +Language=English +%1 +. +MessageId=45480 +Language=English +%1 +. +MessageId=45481 +Language=English +%1 +. +MessageId=45482 +Language=English +%1 +. +MessageId=45483 +Language=English +%1 +. +MessageId=45484 +Language=English +%1 +. +MessageId=45485 +Language=English +%1 +. +MessageId=45486 +Language=English +%1 +. +MessageId=45487 +Language=English +%1 +. +MessageId=45488 +Language=English +%1 +. +MessageId=45489 +Language=English +%1 +. +MessageId=45490 +Language=English +%1 +. +MessageId=45491 +Language=English +%1 +. +MessageId=45492 +Language=English +%1 +. +MessageId=45493 +Language=English +%1 +. +MessageId=45494 +Language=English +%1 +. +MessageId=45495 +Language=English +%1 +. +MessageId=45496 +Language=English +%1 +. +MessageId=45497 +Language=English +%1 +. +MessageId=45498 +Language=English +%1 +. +MessageId=45499 +Language=English +%1 +. +MessageId=45500 +Language=English +%1 +. +MessageId=45501 +Language=English +%1 +. +MessageId=45502 +Language=English +%1 +. +MessageId=45503 +Language=English +%1 +. +MessageId=45504 +Language=English +%1 +. +MessageId=45505 +Language=English +%1 +. +MessageId=45506 +Language=English +%1 +. +MessageId=45507 +Language=English +%1 +. +MessageId=45508 +Language=English +%1 +. +MessageId=45509 +Language=English +%1 +. +MessageId=45510 +Language=English +%1 +. +MessageId=45511 +Language=English +%1 +. +MessageId=45512 +Language=English +%1 +. +MessageId=45513 +Language=English +%1 +. +MessageId=45514 +Language=English +%1 +. +MessageId=45515 +Language=English +%1 +. +MessageId=45516 +Language=English +%1 +. +MessageId=45517 +Language=English +%1 +. +MessageId=45518 +Language=English +%1 +. +MessageId=45519 +Language=English +%1 +. +MessageId=45520 +Language=English +%1 +. +MessageId=45521 +Language=English +%1 +. +MessageId=45522 +Language=English +%1 +. +MessageId=45523 +Language=English +%1 +. +MessageId=45524 +Language=English +%1 +. +MessageId=45525 +Language=English +%1 +. +MessageId=45526 +Language=English +%1 +. +MessageId=45527 +Language=English +%1 +. +MessageId=45528 +Language=English +%1 +. +MessageId=45529 +Language=English +%1 +. +MessageId=45530 +Language=English +%1 +. +MessageId=45531 +Language=English +%1 +. +MessageId=45532 +Language=English +%1 +. +MessageId=45533 +Language=English +%1 +. +MessageId=45534 +Language=English +%1 +. +MessageId=45535 +Language=English +%1 +. +MessageId=45536 +Language=English +%1 +. +MessageId=45537 +Language=English +%1 +. +MessageId=45538 +Language=English +%1 +. +MessageId=45539 +Language=English +%1 +. +MessageId=45540 +Language=English +%1 +. +MessageId=45541 +Language=English +%1 +. +MessageId=45542 +Language=English +%1 +. +MessageId=45543 +Language=English +%1 +. +MessageId=45544 +Language=English +%1 +. +MessageId=45545 +Language=English +%1 +. +MessageId=45546 +Language=English +%1 +. +MessageId=45547 +Language=English +%1 +. +MessageId=45548 +Language=English +%1 +. +MessageId=45549 +Language=English +%1 +. +MessageId=45550 +Language=English +%1 +. +MessageId=45551 +Language=English +%1 +. +MessageId=45552 +Language=English +%1 +. +MessageId=45553 +Language=English +%1 +. +MessageId=45554 +Language=English +%1 +. +MessageId=45555 +Language=English +%1 +. +MessageId=45556 +Language=English +%1 +. +MessageId=45557 +Language=English +%1 +. +MessageId=45558 +Language=English +%1 +. +MessageId=45559 +Language=English +%1 +. +MessageId=45560 +Language=English +%1 +. +MessageId=45561 +Language=English +%1 +. +MessageId=45562 +Language=English +%1 +. +MessageId=45563 +Language=English +%1 +. +MessageId=45564 +Language=English +%1 +. +MessageId=45565 +Language=English +%1 +. +MessageId=45566 +Language=English +%1 +. +MessageId=45567 +Language=English +%1 +. +MessageId=45568 +Language=English +%1 +. +MessageId=45569 +Language=English +%1 +. +MessageId=45570 +Language=English +%1 +. +MessageId=45571 +Language=English +%1 +. +MessageId=45572 +Language=English +%1 +. +MessageId=45573 +Language=English +%1 +. +MessageId=45574 +Language=English +%1 +. +MessageId=45575 +Language=English +%1 +. +MessageId=45576 +Language=English +%1 +. +MessageId=45577 +Language=English +%1 +. +MessageId=45578 +Language=English +%1 +. +MessageId=45579 +Language=English +%1 +. +MessageId=45580 +Language=English +%1 +. +MessageId=45581 +Language=English +%1 +. +MessageId=45582 +Language=English +%1 +. +MessageId=45583 +Language=English +%1 +. +MessageId=45584 +Language=English +%1 +. +MessageId=45585 +Language=English +%1 +. +MessageId=45586 +Language=English +%1 +. +MessageId=45587 +Language=English +%1 +. +MessageId=45588 +Language=English +%1 +. +MessageId=45589 +Language=English +%1 +. +MessageId=45590 +Language=English +%1 +. +MessageId=45591 +Language=English +%1 +. +MessageId=45592 +Language=English +%1 +. +MessageId=45593 +Language=English +%1 +. +MessageId=45594 +Language=English +%1 +. +MessageId=45595 +Language=English +%1 +. +MessageId=45596 +Language=English +%1 +. +MessageId=45597 +Language=English +%1 +. +MessageId=45598 +Language=English +%1 +. +MessageId=45599 +Language=English +%1 +. +MessageId=45600 +Language=English +%1 +. +MessageId=45601 +Language=English +%1 +. +MessageId=45602 +Language=English +%1 +. +MessageId=45603 +Language=English +%1 +. +MessageId=45604 +Language=English +%1 +. +MessageId=45605 +Language=English +%1 +. +MessageId=45606 +Language=English +%1 +. +MessageId=45607 +Language=English +%1 +. +MessageId=45608 +Language=English +%1 +. +MessageId=45609 +Language=English +%1 +. +MessageId=45610 +Language=English +%1 +. +MessageId=45611 +Language=English +%1 +. +MessageId=45612 +Language=English +%1 +. +MessageId=45613 +Language=English +%1 +. +MessageId=45614 +Language=English +%1 +. +MessageId=45615 +Language=English +%1 +. +MessageId=45616 +Language=English +%1 +. +MessageId=45617 +Language=English +%1 +. +MessageId=45618 +Language=English +%1 +. +MessageId=45619 +Language=English +%1 +. +MessageId=45620 +Language=English +%1 +. +MessageId=45621 +Language=English +%1 +. +MessageId=45622 +Language=English +%1 +. +MessageId=45623 +Language=English +%1 +. +MessageId=45624 +Language=English +%1 +. +MessageId=45625 +Language=English +%1 +. +MessageId=45626 +Language=English +%1 +. +MessageId=45627 +Language=English +%1 +. +MessageId=45628 +Language=English +%1 +. +MessageId=45629 +Language=English +%1 +. +MessageId=45630 +Language=English +%1 +. +MessageId=45631 +Language=English +%1 +. +MessageId=45632 +Language=English +%1 +. +MessageId=45633 +Language=English +%1 +. +MessageId=45634 +Language=English +%1 +. +MessageId=45635 +Language=English +%1 +. +MessageId=45636 +Language=English +%1 +. +MessageId=45637 +Language=English +%1 +. +MessageId=45638 +Language=English +%1 +. +MessageId=45639 +Language=English +%1 +. +MessageId=45640 +Language=English +%1 +. +MessageId=45641 +Language=English +%1 +. +MessageId=45642 +Language=English +%1 +. +MessageId=45643 +Language=English +%1 +. +MessageId=45644 +Language=English +%1 +. +MessageId=45645 +Language=English +%1 +. +MessageId=45646 +Language=English +%1 +. +MessageId=45647 +Language=English +%1 +. +MessageId=45648 +Language=English +%1 +. +MessageId=45649 +Language=English +%1 +. +MessageId=45650 +Language=English +%1 +. +MessageId=45651 +Language=English +%1 +. +MessageId=45652 +Language=English +%1 +. +MessageId=45653 +Language=English +%1 +. +MessageId=45654 +Language=English +%1 +. +MessageId=45655 +Language=English +%1 +. +MessageId=45656 +Language=English +%1 +. +MessageId=45657 +Language=English +%1 +. +MessageId=45658 +Language=English +%1 +. +MessageId=45659 +Language=English +%1 +. +MessageId=45660 +Language=English +%1 +. +MessageId=45661 +Language=English +%1 +. +MessageId=45662 +Language=English +%1 +. +MessageId=45663 +Language=English +%1 +. +MessageId=45664 +Language=English +%1 +. +MessageId=45665 +Language=English +%1 +. +MessageId=45666 +Language=English +%1 +. +MessageId=45667 +Language=English +%1 +. +MessageId=45668 +Language=English +%1 +. +MessageId=45669 +Language=English +%1 +. +MessageId=45670 +Language=English +%1 +. +MessageId=45671 +Language=English +%1 +. +MessageId=45672 +Language=English +%1 +. +MessageId=45673 +Language=English +%1 +. +MessageId=45674 +Language=English +%1 +. +MessageId=45675 +Language=English +%1 +. +MessageId=45676 +Language=English +%1 +. +MessageId=45677 +Language=English +%1 +. +MessageId=45678 +Language=English +%1 +. +MessageId=45679 +Language=English +%1 +. +MessageId=45680 +Language=English +%1 +. +MessageId=45681 +Language=English +%1 +. +MessageId=45682 +Language=English +%1 +. +MessageId=45683 +Language=English +%1 +. +MessageId=45684 +Language=English +%1 +. +MessageId=45685 +Language=English +%1 +. +MessageId=45686 +Language=English +%1 +. +MessageId=45687 +Language=English +%1 +. +MessageId=45688 +Language=English +%1 +. +MessageId=45689 +Language=English +%1 +. +MessageId=45690 +Language=English +%1 +. +MessageId=45691 +Language=English +%1 +. +MessageId=45692 +Language=English +%1 +. +MessageId=45693 +Language=English +%1 +. +MessageId=45694 +Language=English +%1 +. +MessageId=45695 +Language=English +%1 +. +MessageId=45696 +Language=English +%1 +. +MessageId=45697 +Language=English +%1 +. +MessageId=45698 +Language=English +%1 +. +MessageId=45699 +Language=English +%1 +. +MessageId=45700 +Language=English +%1 +. +MessageId=45701 +Language=English +%1 +. +MessageId=45702 +Language=English +%1 +. +MessageId=45703 +Language=English +%1 +. +MessageId=45704 +Language=English +%1 +. +MessageId=45705 +Language=English +%1 +. +MessageId=45706 +Language=English +%1 +. +MessageId=45707 +Language=English +%1 +. +MessageId=45708 +Language=English +%1 +. +MessageId=45709 +Language=English +%1 +. +MessageId=45710 +Language=English +%1 +. +MessageId=45711 +Language=English +%1 +. +MessageId=45712 +Language=English +%1 +. +MessageId=45713 +Language=English +%1 +. +MessageId=45714 +Language=English +%1 +. +MessageId=45715 +Language=English +%1 +. +MessageId=45716 +Language=English +%1 +. +MessageId=45717 +Language=English +%1 +. +MessageId=45718 +Language=English +%1 +. +MessageId=45719 +Language=English +%1 +. +MessageId=45720 +Language=English +%1 +. +MessageId=45721 +Language=English +%1 +. +MessageId=45722 +Language=English +%1 +. +MessageId=45723 +Language=English +%1 +. +MessageId=45724 +Language=English +%1 +. +MessageId=45725 +Language=English +%1 +. +MessageId=45726 +Language=English +%1 +. +MessageId=45727 +Language=English +%1 +. +MessageId=45728 +Language=English +%1 +. +MessageId=45729 +Language=English +%1 +. +MessageId=45730 +Language=English +%1 +. +MessageId=45731 +Language=English +%1 +. +MessageId=45732 +Language=English +%1 +. +MessageId=45733 +Language=English +%1 +. +MessageId=45734 +Language=English +%1 +. +MessageId=45735 +Language=English +%1 +. +MessageId=45736 +Language=English +%1 +. +MessageId=45737 +Language=English +%1 +. +MessageId=45738 +Language=English +%1 +. +MessageId=45739 +Language=English +%1 +. +MessageId=45740 +Language=English +%1 +. +MessageId=45741 +Language=English +%1 +. +MessageId=45742 +Language=English +%1 +. +MessageId=45743 +Language=English +%1 +. +MessageId=45744 +Language=English +%1 +. +MessageId=45745 +Language=English +%1 +. +MessageId=45746 +Language=English +%1 +. +MessageId=45747 +Language=English +%1 +. +MessageId=45748 +Language=English +%1 +. +MessageId=45749 +Language=English +%1 +. +MessageId=45750 +Language=English +%1 +. +MessageId=45751 +Language=English +%1 +. +MessageId=45752 +Language=English +%1 +. +MessageId=45753 +Language=English +%1 +. +MessageId=45754 +Language=English +%1 +. +MessageId=45755 +Language=English +%1 +. +MessageId=45756 +Language=English +%1 +. +MessageId=45757 +Language=English +%1 +. +MessageId=45758 +Language=English +%1 +. +MessageId=45759 +Language=English +%1 +. +MessageId=45760 +Language=English +%1 +. +MessageId=45761 +Language=English +%1 +. +MessageId=45762 +Language=English +%1 +. +MessageId=45763 +Language=English +%1 +. +MessageId=45764 +Language=English +%1 +. +MessageId=45765 +Language=English +%1 +. +MessageId=45766 +Language=English +%1 +. +MessageId=45767 +Language=English +%1 +. +MessageId=45768 +Language=English +%1 +. +MessageId=45769 +Language=English +%1 +. +MessageId=45770 +Language=English +%1 +. +MessageId=45771 +Language=English +%1 +. +MessageId=45772 +Language=English +%1 +. +MessageId=45773 +Language=English +%1 +. +MessageId=45774 +Language=English +%1 +. +MessageId=45775 +Language=English +%1 +. +MessageId=45776 +Language=English +%1 +. +MessageId=45777 +Language=English +%1 +. +MessageId=45778 +Language=English +%1 +. +MessageId=45779 +Language=English +%1 +. +MessageId=45780 +Language=English +%1 +. +MessageId=45781 +Language=English +%1 +. +MessageId=45782 +Language=English +%1 +. +MessageId=45783 +Language=English +%1 +. +MessageId=45784 +Language=English +%1 +. +MessageId=45785 +Language=English +%1 +. +MessageId=45786 +Language=English +%1 +. +MessageId=45787 +Language=English +%1 +. +MessageId=45788 +Language=English +%1 +. +MessageId=45789 +Language=English +%1 +. +MessageId=45790 +Language=English +%1 +. +MessageId=45791 +Language=English +%1 +. +MessageId=45792 +Language=English +%1 +. +MessageId=45793 +Language=English +%1 +. +MessageId=45794 +Language=English +%1 +. +MessageId=45795 +Language=English +%1 +. +MessageId=45796 +Language=English +%1 +. +MessageId=45797 +Language=English +%1 +. +MessageId=45798 +Language=English +%1 +. +MessageId=45799 +Language=English +%1 +. +MessageId=45800 +Language=English +%1 +. +MessageId=45801 +Language=English +%1 +. +MessageId=45802 +Language=English +%1 +. +MessageId=45803 +Language=English +%1 +. +MessageId=45804 +Language=English +%1 +. +MessageId=45805 +Language=English +%1 +. +MessageId=45806 +Language=English +%1 +. +MessageId=45807 +Language=English +%1 +. +MessageId=45808 +Language=English +%1 +. +MessageId=45809 +Language=English +%1 +. +MessageId=45810 +Language=English +%1 +. +MessageId=45811 +Language=English +%1 +. +MessageId=45812 +Language=English +%1 +. +MessageId=45813 +Language=English +%1 +. +MessageId=45814 +Language=English +%1 +. +MessageId=45815 +Language=English +%1 +. +MessageId=45816 +Language=English +%1 +. +MessageId=45817 +Language=English +%1 +. +MessageId=45818 +Language=English +%1 +. +MessageId=45819 +Language=English +%1 +. +MessageId=45820 +Language=English +%1 +. +MessageId=45821 +Language=English +%1 +. +MessageId=45822 +Language=English +%1 +. +MessageId=45823 +Language=English +%1 +. +MessageId=45824 +Language=English +%1 +. +MessageId=45825 +Language=English +%1 +. +MessageId=45826 +Language=English +%1 +. +MessageId=45827 +Language=English +%1 +. +MessageId=45828 +Language=English +%1 +. +MessageId=45829 +Language=English +%1 +. +MessageId=45830 +Language=English +%1 +. +MessageId=45831 +Language=English +%1 +. +MessageId=45832 +Language=English +%1 +. +MessageId=45833 +Language=English +%1 +. +MessageId=45834 +Language=English +%1 +. +MessageId=45835 +Language=English +%1 +. +MessageId=45836 +Language=English +%1 +. +MessageId=45837 +Language=English +%1 +. +MessageId=45838 +Language=English +%1 +. +MessageId=45839 +Language=English +%1 +. +MessageId=45840 +Language=English +%1 +. +MessageId=45841 +Language=English +%1 +. +MessageId=45842 +Language=English +%1 +. +MessageId=45843 +Language=English +%1 +. +MessageId=45844 +Language=English +%1 +. +MessageId=45845 +Language=English +%1 +. +MessageId=45846 +Language=English +%1 +. +MessageId=45847 +Language=English +%1 +. +MessageId=45848 +Language=English +%1 +. +MessageId=45849 +Language=English +%1 +. +MessageId=45850 +Language=English +%1 +. +MessageId=45851 +Language=English +%1 +. +MessageId=45852 +Language=English +%1 +. +MessageId=45853 +Language=English +%1 +. +MessageId=45854 +Language=English +%1 +. +MessageId=45855 +Language=English +%1 +. +MessageId=45856 +Language=English +%1 +. +MessageId=45857 +Language=English +%1 +. +MessageId=45858 +Language=English +%1 +. +MessageId=45859 +Language=English +%1 +. +MessageId=45860 +Language=English +%1 +. +MessageId=45861 +Language=English +%1 +. +MessageId=45862 +Language=English +%1 +. +MessageId=45863 +Language=English +%1 +. +MessageId=45864 +Language=English +%1 +. +MessageId=45865 +Language=English +%1 +. +MessageId=45866 +Language=English +%1 +. +MessageId=45867 +Language=English +%1 +. +MessageId=45868 +Language=English +%1 +. +MessageId=45869 +Language=English +%1 +. +MessageId=45870 +Language=English +%1 +. +MessageId=45871 +Language=English +%1 +. +MessageId=45872 +Language=English +%1 +. +MessageId=45873 +Language=English +%1 +. +MessageId=45874 +Language=English +%1 +. +MessageId=45875 +Language=English +%1 +. +MessageId=45876 +Language=English +%1 +. +MessageId=45877 +Language=English +%1 +. +MessageId=45878 +Language=English +%1 +. +MessageId=45879 +Language=English +%1 +. +MessageId=45880 +Language=English +%1 +. +MessageId=45881 +Language=English +%1 +. +MessageId=45882 +Language=English +%1 +. +MessageId=45883 +Language=English +%1 +. +MessageId=45884 +Language=English +%1 +. +MessageId=45885 +Language=English +%1 +. +MessageId=45886 +Language=English +%1 +. +MessageId=45887 +Language=English +%1 +. +MessageId=45888 +Language=English +%1 +. +MessageId=45889 +Language=English +%1 +. +MessageId=45890 +Language=English +%1 +. +MessageId=45891 +Language=English +%1 +. +MessageId=45892 +Language=English +%1 +. +MessageId=45893 +Language=English +%1 +. +MessageId=45894 +Language=English +%1 +. +MessageId=45895 +Language=English +%1 +. +MessageId=45896 +Language=English +%1 +. +MessageId=45897 +Language=English +%1 +. +MessageId=45898 +Language=English +%1 +. +MessageId=45899 +Language=English +%1 +. +MessageId=45900 +Language=English +%1 +. +MessageId=45901 +Language=English +%1 +. +MessageId=45902 +Language=English +%1 +. +MessageId=45903 +Language=English +%1 +. +MessageId=45904 +Language=English +%1 +. +MessageId=45905 +Language=English +%1 +. +MessageId=45906 +Language=English +%1 +. +MessageId=45907 +Language=English +%1 +. +MessageId=45908 +Language=English +%1 +. +MessageId=45909 +Language=English +%1 +. +MessageId=45910 +Language=English +%1 +. +MessageId=45911 +Language=English +%1 +. +MessageId=45912 +Language=English +%1 +. +MessageId=45913 +Language=English +%1 +. +MessageId=45914 +Language=English +%1 +. +MessageId=45915 +Language=English +%1 +. +MessageId=45916 +Language=English +%1 +. +MessageId=45917 +Language=English +%1 +. +MessageId=45918 +Language=English +%1 +. +MessageId=45919 +Language=English +%1 +. +MessageId=45920 +Language=English +%1 +. +MessageId=45921 +Language=English +%1 +. +MessageId=45922 +Language=English +%1 +. +MessageId=45923 +Language=English +%1 +. +MessageId=45924 +Language=English +%1 +. +MessageId=45925 +Language=English +%1 +. +MessageId=45926 +Language=English +%1 +. +MessageId=45927 +Language=English +%1 +. +MessageId=45928 +Language=English +%1 +. +MessageId=45929 +Language=English +%1 +. +MessageId=45930 +Language=English +%1 +. +MessageId=45931 +Language=English +%1 +. +MessageId=45932 +Language=English +%1 +. +MessageId=45933 +Language=English +%1 +. +MessageId=45934 +Language=English +%1 +. +MessageId=45935 +Language=English +%1 +. +MessageId=45936 +Language=English +%1 +. +MessageId=45937 +Language=English +%1 +. +MessageId=45938 +Language=English +%1 +. +MessageId=45939 +Language=English +%1 +. +MessageId=45940 +Language=English +%1 +. +MessageId=45941 +Language=English +%1 +. +MessageId=45942 +Language=English +%1 +. +MessageId=45943 +Language=English +%1 +. +MessageId=45944 +Language=English +%1 +. +MessageId=45945 +Language=English +%1 +. +MessageId=45946 +Language=English +%1 +. +MessageId=45947 +Language=English +%1 +. +MessageId=45948 +Language=English +%1 +. +MessageId=45949 +Language=English +%1 +. +MessageId=45950 +Language=English +%1 +. +MessageId=45951 +Language=English +%1 +. +MessageId=45952 +Language=English +%1 +. +MessageId=45953 +Language=English +%1 +. +MessageId=45954 +Language=English +%1 +. +MessageId=45955 +Language=English +%1 +. +MessageId=45956 +Language=English +%1 +. +MessageId=45957 +Language=English +%1 +. +MessageId=45958 +Language=English +%1 +. +MessageId=45959 +Language=English +%1 +. +MessageId=45960 +Language=English +%1 +. +MessageId=45961 +Language=English +%1 +. +MessageId=45962 +Language=English +%1 +. +MessageId=45963 +Language=English +%1 +. +MessageId=45964 +Language=English +%1 +. +MessageId=45965 +Language=English +%1 +. +MessageId=45966 +Language=English +%1 +. +MessageId=45967 +Language=English +%1 +. +MessageId=45968 +Language=English +%1 +. +MessageId=45969 +Language=English +%1 +. +MessageId=45970 +Language=English +%1 +. +MessageId=45971 +Language=English +%1 +. +MessageId=45972 +Language=English +%1 +. +MessageId=45973 +Language=English +%1 +. +MessageId=45974 +Language=English +%1 +. +MessageId=45975 +Language=English +%1 +. +MessageId=45976 +Language=English +%1 +. +MessageId=45977 +Language=English +%1 +. +MessageId=45978 +Language=English +%1 +. +MessageId=45979 +Language=English +%1 +. +MessageId=45980 +Language=English +%1 +. +MessageId=45981 +Language=English +%1 +. +MessageId=45982 +Language=English +%1 +. +MessageId=45983 +Language=English +%1 +. +MessageId=45984 +Language=English +%1 +. +MessageId=45985 +Language=English +%1 +. +MessageId=45986 +Language=English +%1 +. +MessageId=45987 +Language=English +%1 +. +MessageId=45988 +Language=English +%1 +. +MessageId=45989 +Language=English +%1 +. +MessageId=45990 +Language=English +%1 +. +MessageId=45991 +Language=English +%1 +. +MessageId=45992 +Language=English +%1 +. +MessageId=45993 +Language=English +%1 +. +MessageId=45994 +Language=English +%1 +. +MessageId=45995 +Language=English +%1 +. +MessageId=45996 +Language=English +%1 +. +MessageId=45997 +Language=English +%1 +. +MessageId=45998 +Language=English +%1 +. +MessageId=45999 +Language=English +%1 +. +MessageId=46000 +Language=English +%1 +. +MessageId=46001 +Language=English +%1 +. +MessageId=46002 +Language=English +%1 +. +MessageId=46003 +Language=English +%1 +. +MessageId=46004 +Language=English +%1 +. +MessageId=46005 +Language=English +%1 +. +MessageId=46006 +Language=English +%1 +. +MessageId=46007 +Language=English +%1 +. +MessageId=46008 +Language=English +%1 +. +MessageId=46009 +Language=English +%1 +. +MessageId=46010 +Language=English +%1 +. +MessageId=46011 +Language=English +%1 +. +MessageId=46012 +Language=English +%1 +. +MessageId=46013 +Language=English +%1 +. +MessageId=46014 +Language=English +%1 +. +MessageId=46015 +Language=English +%1 +. +MessageId=46016 +Language=English +%1 +. +MessageId=46017 +Language=English +%1 +. +MessageId=46018 +Language=English +%1 +. +MessageId=46019 +Language=English +%1 +. +MessageId=46020 +Language=English +%1 +. +MessageId=46021 +Language=English +%1 +. +MessageId=46022 +Language=English +%1 +. +MessageId=46023 +Language=English +%1 +. +MessageId=46024 +Language=English +%1 +. +MessageId=46025 +Language=English +%1 +. +MessageId=46026 +Language=English +%1 +. +MessageId=46027 +Language=English +%1 +. +MessageId=46028 +Language=English +%1 +. +MessageId=46029 +Language=English +%1 +. +MessageId=46030 +Language=English +%1 +. +MessageId=46031 +Language=English +%1 +. +MessageId=46032 +Language=English +%1 +. +MessageId=46033 +Language=English +%1 +. +MessageId=46034 +Language=English +%1 +. +MessageId=46035 +Language=English +%1 +. +MessageId=46036 +Language=English +%1 +. +MessageId=46037 +Language=English +%1 +. +MessageId=46038 +Language=English +%1 +. +MessageId=46039 +Language=English +%1 +. +MessageId=46040 +Language=English +%1 +. +MessageId=46041 +Language=English +%1 +. +MessageId=46042 +Language=English +%1 +. +MessageId=46043 +Language=English +%1 +. +MessageId=46044 +Language=English +%1 +. +MessageId=46045 +Language=English +%1 +. +MessageId=46046 +Language=English +%1 +. +MessageId=46047 +Language=English +%1 +. +MessageId=46048 +Language=English +%1 +. +MessageId=46049 +Language=English +%1 +. +MessageId=46050 +Language=English +%1 +. +MessageId=46051 +Language=English +%1 +. +MessageId=46052 +Language=English +%1 +. +MessageId=46053 +Language=English +%1 +. +MessageId=46054 +Language=English +%1 +. +MessageId=46055 +Language=English +%1 +. +MessageId=46056 +Language=English +%1 +. +MessageId=46057 +Language=English +%1 +. +MessageId=46058 +Language=English +%1 +. +MessageId=46059 +Language=English +%1 +. +MessageId=46060 +Language=English +%1 +. +MessageId=46061 +Language=English +%1 +. +MessageId=46062 +Language=English +%1 +. +MessageId=46063 +Language=English +%1 +. +MessageId=46064 +Language=English +%1 +. +MessageId=46065 +Language=English +%1 +. +MessageId=46066 +Language=English +%1 +. +MessageId=46067 +Language=English +%1 +. +MessageId=46068 +Language=English +%1 +. +MessageId=46069 +Language=English +%1 +. +MessageId=46070 +Language=English +%1 +. +MessageId=46071 +Language=English +%1 +. +MessageId=46072 +Language=English +%1 +. +MessageId=46073 +Language=English +%1 +. +MessageId=46074 +Language=English +%1 +. +MessageId=46075 +Language=English +%1 +. +MessageId=46076 +Language=English +%1 +. +MessageId=46077 +Language=English +%1 +. +MessageId=46078 +Language=English +%1 +. +MessageId=46079 +Language=English +%1 +. +MessageId=46080 +Language=English +%1 +. +MessageId=46081 +Language=English +%1 +. +MessageId=46082 +Language=English +%1 +. +MessageId=46083 +Language=English +%1 +. +MessageId=46084 +Language=English +%1 +. +MessageId=46085 +Language=English +%1 +. +MessageId=46086 +Language=English +%1 +. +MessageId=46087 +Language=English +%1 +. +MessageId=46088 +Language=English +%1 +. +MessageId=46089 +Language=English +%1 +. +MessageId=46090 +Language=English +%1 +. +MessageId=46091 +Language=English +%1 +. +MessageId=46092 +Language=English +%1 +. +MessageId=46093 +Language=English +%1 +. +MessageId=46094 +Language=English +%1 +. +MessageId=46095 +Language=English +%1 +. +MessageId=46096 +Language=English +%1 +. +MessageId=46097 +Language=English +%1 +. +MessageId=46098 +Language=English +%1 +. +MessageId=46099 +Language=English +%1 +. +MessageId=46100 +Language=English +%1 +. +MessageId=46101 +Language=English +%1 +. +MessageId=46102 +Language=English +%1 +. +MessageId=46103 +Language=English +%1 +. +MessageId=46104 +Language=English +%1 +. +MessageId=46105 +Language=English +%1 +. +MessageId=46106 +Language=English +%1 +. +MessageId=46107 +Language=English +%1 +. +MessageId=46108 +Language=English +%1 +. +MessageId=46109 +Language=English +%1 +. +MessageId=46110 +Language=English +%1 +. +MessageId=46111 +Language=English +%1 +. +MessageId=46112 +Language=English +%1 +. +MessageId=46113 +Language=English +%1 +. +MessageId=46114 +Language=English +%1 +. +MessageId=46115 +Language=English +%1 +. +MessageId=46116 +Language=English +%1 +. +MessageId=46117 +Language=English +%1 +. +MessageId=46118 +Language=English +%1 +. +MessageId=46119 +Language=English +%1 +. +MessageId=46120 +Language=English +%1 +. +MessageId=46121 +Language=English +%1 +. +MessageId=46122 +Language=English +%1 +. +MessageId=46123 +Language=English +%1 +. +MessageId=46124 +Language=English +%1 +. +MessageId=46125 +Language=English +%1 +. +MessageId=46126 +Language=English +%1 +. +MessageId=46127 +Language=English +%1 +. +MessageId=46128 +Language=English +%1 +. +MessageId=46129 +Language=English +%1 +. +MessageId=46130 +Language=English +%1 +. +MessageId=46131 +Language=English +%1 +. +MessageId=46132 +Language=English +%1 +. +MessageId=46133 +Language=English +%1 +. +MessageId=46134 +Language=English +%1 +. +MessageId=46135 +Language=English +%1 +. +MessageId=46136 +Language=English +%1 +. +MessageId=46137 +Language=English +%1 +. +MessageId=46138 +Language=English +%1 +. +MessageId=46139 +Language=English +%1 +. +MessageId=46140 +Language=English +%1 +. +MessageId=46141 +Language=English +%1 +. +MessageId=46142 +Language=English +%1 +. +MessageId=46143 +Language=English +%1 +. +MessageId=46144 +Language=English +%1 +. +MessageId=46145 +Language=English +%1 +. +MessageId=46146 +Language=English +%1 +. +MessageId=46147 +Language=English +%1 +. +MessageId=46148 +Language=English +%1 +. +MessageId=46149 +Language=English +%1 +. +MessageId=46150 +Language=English +%1 +. +MessageId=46151 +Language=English +%1 +. +MessageId=46152 +Language=English +%1 +. +MessageId=46153 +Language=English +%1 +. +MessageId=46154 +Language=English +%1 +. +MessageId=46155 +Language=English +%1 +. +MessageId=46156 +Language=English +%1 +. +MessageId=46157 +Language=English +%1 +. +MessageId=46158 +Language=English +%1 +. +MessageId=46159 +Language=English +%1 +. +MessageId=46160 +Language=English +%1 +. +MessageId=46161 +Language=English +%1 +. +MessageId=46162 +Language=English +%1 +. +MessageId=46163 +Language=English +%1 +. +MessageId=46164 +Language=English +%1 +. +MessageId=46165 +Language=English +%1 +. +MessageId=46166 +Language=English +%1 +. +MessageId=46167 +Language=English +%1 +. +MessageId=46168 +Language=English +%1 +. +MessageId=46169 +Language=English +%1 +. +MessageId=46170 +Language=English +%1 +. +MessageId=46171 +Language=English +%1 +. +MessageId=46172 +Language=English +%1 +. +MessageId=46173 +Language=English +%1 +. +MessageId=46174 +Language=English +%1 +. +MessageId=46175 +Language=English +%1 +. +MessageId=46176 +Language=English +%1 +. +MessageId=46177 +Language=English +%1 +. +MessageId=46178 +Language=English +%1 +. +MessageId=46179 +Language=English +%1 +. +MessageId=46180 +Language=English +%1 +. +MessageId=46181 +Language=English +%1 +. +MessageId=46182 +Language=English +%1 +. +MessageId=46183 +Language=English +%1 +. +MessageId=46184 +Language=English +%1 +. +MessageId=46185 +Language=English +%1 +. +MessageId=46186 +Language=English +%1 +. +MessageId=46187 +Language=English +%1 +. +MessageId=46188 +Language=English +%1 +. +MessageId=46189 +Language=English +%1 +. +MessageId=46190 +Language=English +%1 +. +MessageId=46191 +Language=English +%1 +. +MessageId=46192 +Language=English +%1 +. +MessageId=46193 +Language=English +%1 +. +MessageId=46194 +Language=English +%1 +. +MessageId=46195 +Language=English +%1 +. +MessageId=46196 +Language=English +%1 +. +MessageId=46197 +Language=English +%1 +. +MessageId=46198 +Language=English +%1 +. +MessageId=46199 +Language=English +%1 +. +MessageId=46200 +Language=English +%1 +. +MessageId=46201 +Language=English +%1 +. +MessageId=46202 +Language=English +%1 +. +MessageId=46203 +Language=English +%1 +. +MessageId=46204 +Language=English +%1 +. +MessageId=46205 +Language=English +%1 +. +MessageId=46206 +Language=English +%1 +. +MessageId=46207 +Language=English +%1 +. +MessageId=46208 +Language=English +%1 +. +MessageId=46209 +Language=English +%1 +. +MessageId=46210 +Language=English +%1 +. +MessageId=46211 +Language=English +%1 +. +MessageId=46212 +Language=English +%1 +. +MessageId=46213 +Language=English +%1 +. +MessageId=46214 +Language=English +%1 +. +MessageId=46215 +Language=English +%1 +. +MessageId=46216 +Language=English +%1 +. +MessageId=46217 +Language=English +%1 +. +MessageId=46218 +Language=English +%1 +. +MessageId=46219 +Language=English +%1 +. +MessageId=46220 +Language=English +%1 +. +MessageId=46221 +Language=English +%1 +. +MessageId=46222 +Language=English +%1 +. +MessageId=46223 +Language=English +%1 +. +MessageId=46224 +Language=English +%1 +. +MessageId=46225 +Language=English +%1 +. +MessageId=46226 +Language=English +%1 +. +MessageId=46227 +Language=English +%1 +. +MessageId=46228 +Language=English +%1 +. +MessageId=46229 +Language=English +%1 +. +MessageId=46230 +Language=English +%1 +. +MessageId=46231 +Language=English +%1 +. +MessageId=46232 +Language=English +%1 +. +MessageId=46233 +Language=English +%1 +. +MessageId=46234 +Language=English +%1 +. +MessageId=46235 +Language=English +%1 +. +MessageId=46236 +Language=English +%1 +. +MessageId=46237 +Language=English +%1 +. +MessageId=46238 +Language=English +%1 +. +MessageId=46239 +Language=English +%1 +. +MessageId=46240 +Language=English +%1 +. +MessageId=46241 +Language=English +%1 +. +MessageId=46242 +Language=English +%1 +. +MessageId=46243 +Language=English +%1 +. +MessageId=46244 +Language=English +%1 +. +MessageId=46245 +Language=English +%1 +. +MessageId=46246 +Language=English +%1 +. +MessageId=46247 +Language=English +%1 +. +MessageId=46248 +Language=English +%1 +. +MessageId=46249 +Language=English +%1 +. +MessageId=46250 +Language=English +%1 +. +MessageId=46251 +Language=English +%1 +. +MessageId=46252 +Language=English +%1 +. +MessageId=46253 +Language=English +%1 +. +MessageId=46254 +Language=English +%1 +. +MessageId=46255 +Language=English +%1 +. +MessageId=46256 +Language=English +%1 +. +MessageId=46257 +Language=English +%1 +. +MessageId=46258 +Language=English +%1 +. +MessageId=46259 +Language=English +%1 +. +MessageId=46260 +Language=English +%1 +. +MessageId=46261 +Language=English +%1 +. +MessageId=46262 +Language=English +%1 +. +MessageId=46263 +Language=English +%1 +. +MessageId=46264 +Language=English +%1 +. +MessageId=46265 +Language=English +%1 +. +MessageId=46266 +Language=English +%1 +. +MessageId=46267 +Language=English +%1 +. +MessageId=46268 +Language=English +%1 +. +MessageId=46269 +Language=English +%1 +. +MessageId=46270 +Language=English +%1 +. +MessageId=46271 +Language=English +%1 +. +MessageId=46272 +Language=English +%1 +. +MessageId=46273 +Language=English +%1 +. +MessageId=46274 +Language=English +%1 +. +MessageId=46275 +Language=English +%1 +. +MessageId=46276 +Language=English +%1 +. +MessageId=46277 +Language=English +%1 +. +MessageId=46278 +Language=English +%1 +. +MessageId=46279 +Language=English +%1 +. +MessageId=46280 +Language=English +%1 +. +MessageId=46281 +Language=English +%1 +. +MessageId=46282 +Language=English +%1 +. +MessageId=46283 +Language=English +%1 +. +MessageId=46284 +Language=English +%1 +. +MessageId=46285 +Language=English +%1 +. +MessageId=46286 +Language=English +%1 +. +MessageId=46287 +Language=English +%1 +. +MessageId=46288 +Language=English +%1 +. +MessageId=46289 +Language=English +%1 +. +MessageId=46290 +Language=English +%1 +. +MessageId=46291 +Language=English +%1 +. +MessageId=46292 +Language=English +%1 +. +MessageId=46293 +Language=English +%1 +. +MessageId=46294 +Language=English +%1 +. +MessageId=46295 +Language=English +%1 +. +MessageId=46296 +Language=English +%1 +. +MessageId=46297 +Language=English +%1 +. +MessageId=46298 +Language=English +%1 +. +MessageId=46299 +Language=English +%1 +. +MessageId=46300 +Language=English +%1 +. +MessageId=46301 +Language=English +%1 +. +MessageId=46302 +Language=English +%1 +. +MessageId=46303 +Language=English +%1 +. +MessageId=46304 +Language=English +%1 +. +MessageId=46305 +Language=English +%1 +. +MessageId=46306 +Language=English +%1 +. +MessageId=46307 +Language=English +%1 +. +MessageId=46308 +Language=English +%1 +. +MessageId=46309 +Language=English +%1 +. +MessageId=46310 +Language=English +%1 +. +MessageId=46311 +Language=English +%1 +. +MessageId=46312 +Language=English +%1 +. +MessageId=46313 +Language=English +%1 +. +MessageId=46314 +Language=English +%1 +. +MessageId=46315 +Language=English +%1 +. +MessageId=46316 +Language=English +%1 +. +MessageId=46317 +Language=English +%1 +. +MessageId=46318 +Language=English +%1 +. +MessageId=46319 +Language=English +%1 +. +MessageId=46320 +Language=English +%1 +. +MessageId=46321 +Language=English +%1 +. +MessageId=46322 +Language=English +%1 +. +MessageId=46323 +Language=English +%1 +. +MessageId=46324 +Language=English +%1 +. +MessageId=46325 +Language=English +%1 +. +MessageId=46326 +Language=English +%1 +. +MessageId=46327 +Language=English +%1 +. +MessageId=46328 +Language=English +%1 +. +MessageId=46329 +Language=English +%1 +. +MessageId=46330 +Language=English +%1 +. +MessageId=46331 +Language=English +%1 +. +MessageId=46332 +Language=English +%1 +. +MessageId=46333 +Language=English +%1 +. +MessageId=46334 +Language=English +%1 +. +MessageId=46335 +Language=English +%1 +. +MessageId=46336 +Language=English +%1 +. +MessageId=46337 +Language=English +%1 +. +MessageId=46338 +Language=English +%1 +. +MessageId=46339 +Language=English +%1 +. +MessageId=46340 +Language=English +%1 +. +MessageId=46341 +Language=English +%1 +. +MessageId=46342 +Language=English +%1 +. +MessageId=46343 +Language=English +%1 +. +MessageId=46344 +Language=English +%1 +. +MessageId=46345 +Language=English +%1 +. +MessageId=46346 +Language=English +%1 +. +MessageId=46347 +Language=English +%1 +. +MessageId=46348 +Language=English +%1 +. +MessageId=46349 +Language=English +%1 +. +MessageId=46350 +Language=English +%1 +. +MessageId=46351 +Language=English +%1 +. +MessageId=46352 +Language=English +%1 +. +MessageId=46353 +Language=English +%1 +. +MessageId=46354 +Language=English +%1 +. +MessageId=46355 +Language=English +%1 +. +MessageId=46356 +Language=English +%1 +. +MessageId=46357 +Language=English +%1 +. +MessageId=46358 +Language=English +%1 +. +MessageId=46359 +Language=English +%1 +. +MessageId=46360 +Language=English +%1 +. +MessageId=46361 +Language=English +%1 +. +MessageId=46362 +Language=English +%1 +. +MessageId=46363 +Language=English +%1 +. +MessageId=46364 +Language=English +%1 +. +MessageId=46365 +Language=English +%1 +. +MessageId=46366 +Language=English +%1 +. +MessageId=46367 +Language=English +%1 +. +MessageId=46368 +Language=English +%1 +. +MessageId=46369 +Language=English +%1 +. +MessageId=46370 +Language=English +%1 +. +MessageId=46371 +Language=English +%1 +. +MessageId=46372 +Language=English +%1 +. +MessageId=46373 +Language=English +%1 +. +MessageId=46374 +Language=English +%1 +. +MessageId=46375 +Language=English +%1 +. +MessageId=46376 +Language=English +%1 +. +MessageId=46377 +Language=English +%1 +. +MessageId=46378 +Language=English +%1 +. +MessageId=46379 +Language=English +%1 +. +MessageId=46380 +Language=English +%1 +. +MessageId=46381 +Language=English +%1 +. +MessageId=46382 +Language=English +%1 +. +MessageId=46383 +Language=English +%1 +. +MessageId=46384 +Language=English +%1 +. +MessageId=46385 +Language=English +%1 +. +MessageId=46386 +Language=English +%1 +. +MessageId=46387 +Language=English +%1 +. +MessageId=46388 +Language=English +%1 +. +MessageId=46389 +Language=English +%1 +. +MessageId=46390 +Language=English +%1 +. +MessageId=46391 +Language=English +%1 +. +MessageId=46392 +Language=English +%1 +. +MessageId=46393 +Language=English +%1 +. +MessageId=46394 +Language=English +%1 +. +MessageId=46395 +Language=English +%1 +. +MessageId=46396 +Language=English +%1 +. +MessageId=46397 +Language=English +%1 +. +MessageId=46398 +Language=English +%1 +. +MessageId=46399 +Language=English +%1 +. +MessageId=46400 +Language=English +%1 +. +MessageId=46401 +Language=English +%1 +. +MessageId=46402 +Language=English +%1 +. +MessageId=46403 +Language=English +%1 +. +MessageId=46404 +Language=English +%1 +. +MessageId=46405 +Language=English +%1 +. +MessageId=46406 +Language=English +%1 +. +MessageId=46407 +Language=English +%1 +. +MessageId=46408 +Language=English +%1 +. +MessageId=46409 +Language=English +%1 +. +MessageId=46410 +Language=English +%1 +. +MessageId=46411 +Language=English +%1 +. +MessageId=46412 +Language=English +%1 +. +MessageId=46413 +Language=English +%1 +. +MessageId=46414 +Language=English +%1 +. +MessageId=46415 +Language=English +%1 +. +MessageId=46416 +Language=English +%1 +. +MessageId=46417 +Language=English +%1 +. +MessageId=46418 +Language=English +%1 +. +MessageId=46419 +Language=English +%1 +. +MessageId=46420 +Language=English +%1 +. +MessageId=46421 +Language=English +%1 +. +MessageId=46422 +Language=English +%1 +. +MessageId=46423 +Language=English +%1 +. +MessageId=46424 +Language=English +%1 +. +MessageId=46425 +Language=English +%1 +. +MessageId=46426 +Language=English +%1 +. +MessageId=46427 +Language=English +%1 +. +MessageId=46428 +Language=English +%1 +. +MessageId=46429 +Language=English +%1 +. +MessageId=46430 +Language=English +%1 +. +MessageId=46431 +Language=English +%1 +. +MessageId=46432 +Language=English +%1 +. +MessageId=46433 +Language=English +%1 +. +MessageId=46434 +Language=English +%1 +. +MessageId=46435 +Language=English +%1 +. +MessageId=46436 +Language=English +%1 +. +MessageId=46437 +Language=English +%1 +. +MessageId=46438 +Language=English +%1 +. +MessageId=46439 +Language=English +%1 +. +MessageId=46440 +Language=English +%1 +. +MessageId=46441 +Language=English +%1 +. +MessageId=46442 +Language=English +%1 +. +MessageId=46443 +Language=English +%1 +. +MessageId=46444 +Language=English +%1 +. +MessageId=46445 +Language=English +%1 +. +MessageId=46446 +Language=English +%1 +. +MessageId=46447 +Language=English +%1 +. +MessageId=46448 +Language=English +%1 +. +MessageId=46449 +Language=English +%1 +. +MessageId=46450 +Language=English +%1 +. +MessageId=46451 +Language=English +%1 +. +MessageId=46452 +Language=English +%1 +. +MessageId=46453 +Language=English +%1 +. +MessageId=46454 +Language=English +%1 +. +MessageId=46455 +Language=English +%1 +. +MessageId=46456 +Language=English +%1 +. +MessageId=46457 +Language=English +%1 +. +MessageId=46458 +Language=English +%1 +. +MessageId=46459 +Language=English +%1 +. +MessageId=46460 +Language=English +%1 +. +MessageId=46461 +Language=English +%1 +. +MessageId=46462 +Language=English +%1 +. +MessageId=46463 +Language=English +%1 +. +MessageId=46464 +Language=English +%1 +. +MessageId=46465 +Language=English +%1 +. +MessageId=46466 +Language=English +%1 +. +MessageId=46467 +Language=English +%1 +. +MessageId=46468 +Language=English +%1 +. +MessageId=46469 +Language=English +%1 +. +MessageId=46470 +Language=English +%1 +. +MessageId=46471 +Language=English +%1 +. +MessageId=46472 +Language=English +%1 +. +MessageId=46473 +Language=English +%1 +. +MessageId=46474 +Language=English +%1 +. +MessageId=46475 +Language=English +%1 +. +MessageId=46476 +Language=English +%1 +. +MessageId=46477 +Language=English +%1 +. +MessageId=46478 +Language=English +%1 +. +MessageId=46479 +Language=English +%1 +. +MessageId=46480 +Language=English +%1 +. +MessageId=46481 +Language=English +%1 +. +MessageId=46482 +Language=English +%1 +. +MessageId=46483 +Language=English +%1 +. +MessageId=46484 +Language=English +%1 +. +MessageId=46485 +Language=English +%1 +. +MessageId=46486 +Language=English +%1 +. +MessageId=46487 +Language=English +%1 +. +MessageId=46488 +Language=English +%1 +. +MessageId=46489 +Language=English +%1 +. +MessageId=46490 +Language=English +%1 +. +MessageId=46491 +Language=English +%1 +. +MessageId=46492 +Language=English +%1 +. +MessageId=46493 +Language=English +%1 +. +MessageId=46494 +Language=English +%1 +. +MessageId=46495 +Language=English +%1 +. +MessageId=46496 +Language=English +%1 +. +MessageId=46497 +Language=English +%1 +. +MessageId=46498 +Language=English +%1 +. +MessageId=46499 +Language=English +%1 +. +MessageId=46500 +Language=English +%1 +. +MessageId=46501 +Language=English +%1 +. +MessageId=46502 +Language=English +%1 +. +MessageId=46503 +Language=English +%1 +. +MessageId=46504 +Language=English +%1 +. +MessageId=46505 +Language=English +%1 +. +MessageId=46506 +Language=English +%1 +. +MessageId=46507 +Language=English +%1 +. +MessageId=46508 +Language=English +%1 +. +MessageId=46509 +Language=English +%1 +. +MessageId=46510 +Language=English +%1 +. +MessageId=46511 +Language=English +%1 +. +MessageId=46512 +Language=English +%1 +. +MessageId=46513 +Language=English +%1 +. +MessageId=46514 +Language=English +%1 +. +MessageId=46515 +Language=English +%1 +. +MessageId=46516 +Language=English +%1 +. +MessageId=46517 +Language=English +%1 +. +MessageId=46518 +Language=English +%1 +. +MessageId=46519 +Language=English +%1 +. +MessageId=46520 +Language=English +%1 +. +MessageId=46521 +Language=English +%1 +. +MessageId=46522 +Language=English +%1 +. +MessageId=46523 +Language=English +%1 +. +MessageId=46524 +Language=English +%1 +. +MessageId=46525 +Language=English +%1 +. +MessageId=46526 +Language=English +%1 +. +MessageId=46527 +Language=English +%1 +. +MessageId=46528 +Language=English +%1 +. +MessageId=46529 +Language=English +%1 +. +MessageId=46530 +Language=English +%1 +. +MessageId=46531 +Language=English +%1 +. +MessageId=46532 +Language=English +%1 +. +MessageId=46533 +Language=English +%1 +. +MessageId=46534 +Language=English +%1 +. +MessageId=46535 +Language=English +%1 +. +MessageId=46536 +Language=English +%1 +. +MessageId=46537 +Language=English +%1 +. +MessageId=46538 +Language=English +%1 +. +MessageId=46539 +Language=English +%1 +. +MessageId=46540 +Language=English +%1 +. +MessageId=46541 +Language=English +%1 +. +MessageId=46542 +Language=English +%1 +. +MessageId=46543 +Language=English +%1 +. +MessageId=46544 +Language=English +%1 +. +MessageId=46545 +Language=English +%1 +. +MessageId=46546 +Language=English +%1 +. +MessageId=46547 +Language=English +%1 +. +MessageId=46548 +Language=English +%1 +. +MessageId=46549 +Language=English +%1 +. +MessageId=46550 +Language=English +%1 +. +MessageId=46551 +Language=English +%1 +. +MessageId=46552 +Language=English +%1 +. +MessageId=46553 +Language=English +%1 +. +MessageId=46554 +Language=English +%1 +. +MessageId=46555 +Language=English +%1 +. +MessageId=46556 +Language=English +%1 +. +MessageId=46557 +Language=English +%1 +. +MessageId=46558 +Language=English +%1 +. +MessageId=46559 +Language=English +%1 +. +MessageId=46560 +Language=English +%1 +. +MessageId=46561 +Language=English +%1 +. +MessageId=46562 +Language=English +%1 +. +MessageId=46563 +Language=English +%1 +. +MessageId=46564 +Language=English +%1 +. +MessageId=46565 +Language=English +%1 +. +MessageId=46566 +Language=English +%1 +. +MessageId=46567 +Language=English +%1 +. +MessageId=46568 +Language=English +%1 +. +MessageId=46569 +Language=English +%1 +. +MessageId=46570 +Language=English +%1 +. +MessageId=46571 +Language=English +%1 +. +MessageId=46572 +Language=English +%1 +. +MessageId=46573 +Language=English +%1 +. +MessageId=46574 +Language=English +%1 +. +MessageId=46575 +Language=English +%1 +. +MessageId=46576 +Language=English +%1 +. +MessageId=46577 +Language=English +%1 +. +MessageId=46578 +Language=English +%1 +. +MessageId=46579 +Language=English +%1 +. +MessageId=46580 +Language=English +%1 +. +MessageId=46581 +Language=English +%1 +. +MessageId=46582 +Language=English +%1 +. +MessageId=46583 +Language=English +%1 +. +MessageId=46584 +Language=English +%1 +. +MessageId=46585 +Language=English +%1 +. +MessageId=46586 +Language=English +%1 +. +MessageId=46587 +Language=English +%1 +. +MessageId=46588 +Language=English +%1 +. +MessageId=46589 +Language=English +%1 +. +MessageId=46590 +Language=English +%1 +. +MessageId=46591 +Language=English +%1 +. +MessageId=46592 +Language=English +%1 +. +MessageId=46593 +Language=English +%1 +. +MessageId=46594 +Language=English +%1 +. +MessageId=46595 +Language=English +%1 +. +MessageId=46596 +Language=English +%1 +. +MessageId=46597 +Language=English +%1 +. +MessageId=46598 +Language=English +%1 +. +MessageId=46599 +Language=English +%1 +. +MessageId=46600 +Language=English +%1 +. +MessageId=46601 +Language=English +%1 +. +MessageId=46602 +Language=English +%1 +. +MessageId=46603 +Language=English +%1 +. +MessageId=46604 +Language=English +%1 +. +MessageId=46605 +Language=English +%1 +. +MessageId=46606 +Language=English +%1 +. +MessageId=46607 +Language=English +%1 +. +MessageId=46608 +Language=English +%1 +. +MessageId=46609 +Language=English +%1 +. +MessageId=46610 +Language=English +%1 +. +MessageId=46611 +Language=English +%1 +. +MessageId=46612 +Language=English +%1 +. +MessageId=46613 +Language=English +%1 +. +MessageId=46614 +Language=English +%1 +. +MessageId=46615 +Language=English +%1 +. +MessageId=46616 +Language=English +%1 +. +MessageId=46617 +Language=English +%1 +. +MessageId=46618 +Language=English +%1 +. +MessageId=46619 +Language=English +%1 +. +MessageId=46620 +Language=English +%1 +. +MessageId=46621 +Language=English +%1 +. +MessageId=46622 +Language=English +%1 +. +MessageId=46623 +Language=English +%1 +. +MessageId=46624 +Language=English +%1 +. +MessageId=46625 +Language=English +%1 +. +MessageId=46626 +Language=English +%1 +. +MessageId=46627 +Language=English +%1 +. +MessageId=46628 +Language=English +%1 +. +MessageId=46629 +Language=English +%1 +. +MessageId=46630 +Language=English +%1 +. +MessageId=46631 +Language=English +%1 +. +MessageId=46632 +Language=English +%1 +. +MessageId=46633 +Language=English +%1 +. +MessageId=46634 +Language=English +%1 +. +MessageId=46635 +Language=English +%1 +. +MessageId=46636 +Language=English +%1 +. +MessageId=46637 +Language=English +%1 +. +MessageId=46638 +Language=English +%1 +. +MessageId=46639 +Language=English +%1 +. +MessageId=46640 +Language=English +%1 +. +MessageId=46641 +Language=English +%1 +. +MessageId=46642 +Language=English +%1 +. +MessageId=46643 +Language=English +%1 +. +MessageId=46644 +Language=English +%1 +. +MessageId=46645 +Language=English +%1 +. +MessageId=46646 +Language=English +%1 +. +MessageId=46647 +Language=English +%1 +. +MessageId=46648 +Language=English +%1 +. +MessageId=46649 +Language=English +%1 +. +MessageId=46650 +Language=English +%1 +. +MessageId=46651 +Language=English +%1 +. +MessageId=46652 +Language=English +%1 +. +MessageId=46653 +Language=English +%1 +. +MessageId=46654 +Language=English +%1 +. +MessageId=46655 +Language=English +%1 +. +MessageId=46656 +Language=English +%1 +. +MessageId=46657 +Language=English +%1 +. +MessageId=46658 +Language=English +%1 +. +MessageId=46659 +Language=English +%1 +. +MessageId=46660 +Language=English +%1 +. +MessageId=46661 +Language=English +%1 +. +MessageId=46662 +Language=English +%1 +. +MessageId=46663 +Language=English +%1 +. +MessageId=46664 +Language=English +%1 +. +MessageId=46665 +Language=English +%1 +. +MessageId=46666 +Language=English +%1 +. +MessageId=46667 +Language=English +%1 +. +MessageId=46668 +Language=English +%1 +. +MessageId=46669 +Language=English +%1 +. +MessageId=46670 +Language=English +%1 +. +MessageId=46671 +Language=English +%1 +. +MessageId=46672 +Language=English +%1 +. +MessageId=46673 +Language=English +%1 +. +MessageId=46674 +Language=English +%1 +. +MessageId=46675 +Language=English +%1 +. +MessageId=46676 +Language=English +%1 +. +MessageId=46677 +Language=English +%1 +. +MessageId=46678 +Language=English +%1 +. +MessageId=46679 +Language=English +%1 +. +MessageId=46680 +Language=English +%1 +. +MessageId=46681 +Language=English +%1 +. +MessageId=46682 +Language=English +%1 +. +MessageId=46683 +Language=English +%1 +. +MessageId=46684 +Language=English +%1 +. +MessageId=46685 +Language=English +%1 +. +MessageId=46686 +Language=English +%1 +. +MessageId=46687 +Language=English +%1 +. +MessageId=46688 +Language=English +%1 +. +MessageId=46689 +Language=English +%1 +. +MessageId=46690 +Language=English +%1 +. +MessageId=46691 +Language=English +%1 +. +MessageId=46692 +Language=English +%1 +. +MessageId=46693 +Language=English +%1 +. +MessageId=46694 +Language=English +%1 +. +MessageId=46695 +Language=English +%1 +. +MessageId=46696 +Language=English +%1 +. +MessageId=46697 +Language=English +%1 +. +MessageId=46698 +Language=English +%1 +. +MessageId=46699 +Language=English +%1 +. +MessageId=46700 +Language=English +%1 +. +MessageId=46701 +Language=English +%1 +. +MessageId=46702 +Language=English +%1 +. +MessageId=46703 +Language=English +%1 +. +MessageId=46704 +Language=English +%1 +. +MessageId=46705 +Language=English +%1 +. +MessageId=46706 +Language=English +%1 +. +MessageId=46707 +Language=English +%1 +. +MessageId=46708 +Language=English +%1 +. +MessageId=46709 +Language=English +%1 +. +MessageId=46710 +Language=English +%1 +. +MessageId=46711 +Language=English +%1 +. +MessageId=46712 +Language=English +%1 +. +MessageId=46713 +Language=English +%1 +. +MessageId=46714 +Language=English +%1 +. +MessageId=46715 +Language=English +%1 +. +MessageId=46716 +Language=English +%1 +. +MessageId=46717 +Language=English +%1 +. +MessageId=46718 +Language=English +%1 +. +MessageId=46719 +Language=English +%1 +. +MessageId=46720 +Language=English +%1 +. +MessageId=46721 +Language=English +%1 +. +MessageId=46722 +Language=English +%1 +. +MessageId=46723 +Language=English +%1 +. +MessageId=46724 +Language=English +%1 +. +MessageId=46725 +Language=English +%1 +. +MessageId=46726 +Language=English +%1 +. +MessageId=46727 +Language=English +%1 +. +MessageId=46728 +Language=English +%1 +. +MessageId=46729 +Language=English +%1 +. +MessageId=46730 +Language=English +%1 +. +MessageId=46731 +Language=English +%1 +. +MessageId=46732 +Language=English +%1 +. +MessageId=46733 +Language=English +%1 +. +MessageId=46734 +Language=English +%1 +. +MessageId=46735 +Language=English +%1 +. +MessageId=46736 +Language=English +%1 +. +MessageId=46737 +Language=English +%1 +. +MessageId=46738 +Language=English +%1 +. +MessageId=46739 +Language=English +%1 +. +MessageId=46740 +Language=English +%1 +. +MessageId=46741 +Language=English +%1 +. +MessageId=46742 +Language=English +%1 +. +MessageId=46743 +Language=English +%1 +. +MessageId=46744 +Language=English +%1 +. +MessageId=46745 +Language=English +%1 +. +MessageId=46746 +Language=English +%1 +. +MessageId=46747 +Language=English +%1 +. +MessageId=46748 +Language=English +%1 +. +MessageId=46749 +Language=English +%1 +. +MessageId=46750 +Language=English +%1 +. +MessageId=46751 +Language=English +%1 +. +MessageId=46752 +Language=English +%1 +. +MessageId=46753 +Language=English +%1 +. +MessageId=46754 +Language=English +%1 +. +MessageId=46755 +Language=English +%1 +. +MessageId=46756 +Language=English +%1 +. +MessageId=46757 +Language=English +%1 +. +MessageId=46758 +Language=English +%1 +. +MessageId=46759 +Language=English +%1 +. +MessageId=46760 +Language=English +%1 +. +MessageId=46761 +Language=English +%1 +. +MessageId=46762 +Language=English +%1 +. +MessageId=46763 +Language=English +%1 +. +MessageId=46764 +Language=English +%1 +. +MessageId=46765 +Language=English +%1 +. +MessageId=46766 +Language=English +%1 +. +MessageId=46767 +Language=English +%1 +. +MessageId=46768 +Language=English +%1 +. +MessageId=46769 +Language=English +%1 +. +MessageId=46770 +Language=English +%1 +. +MessageId=46771 +Language=English +%1 +. +MessageId=46772 +Language=English +%1 +. +MessageId=46773 +Language=English +%1 +. +MessageId=46774 +Language=English +%1 +. +MessageId=46775 +Language=English +%1 +. +MessageId=46776 +Language=English +%1 +. +MessageId=46777 +Language=English +%1 +. +MessageId=46778 +Language=English +%1 +. +MessageId=46779 +Language=English +%1 +. +MessageId=46780 +Language=English +%1 +. +MessageId=46781 +Language=English +%1 +. +MessageId=46782 +Language=English +%1 +. +MessageId=46783 +Language=English +%1 +. +MessageId=46784 +Language=English +%1 +. +MessageId=46785 +Language=English +%1 +. +MessageId=46786 +Language=English +%1 +. +MessageId=46787 +Language=English +%1 +. +MessageId=46788 +Language=English +%1 +. +MessageId=46789 +Language=English +%1 +. +MessageId=46790 +Language=English +%1 +. +MessageId=46791 +Language=English +%1 +. +MessageId=46792 +Language=English +%1 +. +MessageId=46793 +Language=English +%1 +. +MessageId=46794 +Language=English +%1 +. +MessageId=46795 +Language=English +%1 +. +MessageId=46796 +Language=English +%1 +. +MessageId=46797 +Language=English +%1 +. +MessageId=46798 +Language=English +%1 +. +MessageId=46799 +Language=English +%1 +. +MessageId=46800 +Language=English +%1 +. +MessageId=46801 +Language=English +%1 +. +MessageId=46802 +Language=English +%1 +. +MessageId=46803 +Language=English +%1 +. +MessageId=46804 +Language=English +%1 +. +MessageId=46805 +Language=English +%1 +. +MessageId=46806 +Language=English +%1 +. +MessageId=46807 +Language=English +%1 +. +MessageId=46808 +Language=English +%1 +. +MessageId=46809 +Language=English +%1 +. +MessageId=46810 +Language=English +%1 +. +MessageId=46811 +Language=English +%1 +. +MessageId=46812 +Language=English +%1 +. +MessageId=46813 +Language=English +%1 +. +MessageId=46814 +Language=English +%1 +. +MessageId=46815 +Language=English +%1 +. +MessageId=46816 +Language=English +%1 +. +MessageId=46817 +Language=English +%1 +. +MessageId=46818 +Language=English +%1 +. +MessageId=46819 +Language=English +%1 +. +MessageId=46820 +Language=English +%1 +. +MessageId=46821 +Language=English +%1 +. +MessageId=46822 +Language=English +%1 +. +MessageId=46823 +Language=English +%1 +. +MessageId=46824 +Language=English +%1 +. +MessageId=46825 +Language=English +%1 +. +MessageId=46826 +Language=English +%1 +. +MessageId=46827 +Language=English +%1 +. +MessageId=46828 +Language=English +%1 +. +MessageId=46829 +Language=English +%1 +. +MessageId=46830 +Language=English +%1 +. +MessageId=46831 +Language=English +%1 +. +MessageId=46832 +Language=English +%1 +. +MessageId=46833 +Language=English +%1 +. +MessageId=46834 +Language=English +%1 +. +MessageId=46835 +Language=English +%1 +. +MessageId=46836 +Language=English +%1 +. +MessageId=46837 +Language=English +%1 +. +MessageId=46838 +Language=English +%1 +. +MessageId=46839 +Language=English +%1 +. +MessageId=46840 +Language=English +%1 +. +MessageId=46841 +Language=English +%1 +. +MessageId=46842 +Language=English +%1 +. +MessageId=46843 +Language=English +%1 +. +MessageId=46844 +Language=English +%1 +. +MessageId=46845 +Language=English +%1 +. +MessageId=46846 +Language=English +%1 +. +MessageId=46847 +Language=English +%1 +. +MessageId=46848 +Language=English +%1 +. +MessageId=46849 +Language=English +%1 +. +MessageId=46850 +Language=English +%1 +. +MessageId=46851 +Language=English +%1 +. +MessageId=46852 +Language=English +%1 +. +MessageId=46853 +Language=English +%1 +. +MessageId=46854 +Language=English +%1 +. +MessageId=46855 +Language=English +%1 +. +MessageId=46856 +Language=English +%1 +. +MessageId=46857 +Language=English +%1 +. +MessageId=46858 +Language=English +%1 +. +MessageId=46859 +Language=English +%1 +. +MessageId=46860 +Language=English +%1 +. +MessageId=46861 +Language=English +%1 +. +MessageId=46862 +Language=English +%1 +. +MessageId=46863 +Language=English +%1 +. +MessageId=46864 +Language=English +%1 +. +MessageId=46865 +Language=English +%1 +. +MessageId=46866 +Language=English +%1 +. +MessageId=46867 +Language=English +%1 +. +MessageId=46868 +Language=English +%1 +. +MessageId=46869 +Language=English +%1 +. +MessageId=46870 +Language=English +%1 +. +MessageId=46871 +Language=English +%1 +. +MessageId=46872 +Language=English +%1 +. +MessageId=46873 +Language=English +%1 +. +MessageId=46874 +Language=English +%1 +. +MessageId=46875 +Language=English +%1 +. +MessageId=46876 +Language=English +%1 +. +MessageId=46877 +Language=English +%1 +. +MessageId=46878 +Language=English +%1 +. +MessageId=46879 +Language=English +%1 +. +MessageId=46880 +Language=English +%1 +. +MessageId=46881 +Language=English +%1 +. +MessageId=46882 +Language=English +%1 +. +MessageId=46883 +Language=English +%1 +. +MessageId=46884 +Language=English +%1 +. +MessageId=46885 +Language=English +%1 +. +MessageId=46886 +Language=English +%1 +. +MessageId=46887 +Language=English +%1 +. +MessageId=46888 +Language=English +%1 +. +MessageId=46889 +Language=English +%1 +. +MessageId=46890 +Language=English +%1 +. +MessageId=46891 +Language=English +%1 +. +MessageId=46892 +Language=English +%1 +. +MessageId=46893 +Language=English +%1 +. +MessageId=46894 +Language=English +%1 +. +MessageId=46895 +Language=English +%1 +. +MessageId=46896 +Language=English +%1 +. +MessageId=46897 +Language=English +%1 +. +MessageId=46898 +Language=English +%1 +. +MessageId=46899 +Language=English +%1 +. +MessageId=46900 +Language=English +%1 +. +MessageId=46901 +Language=English +%1 +. +MessageId=46902 +Language=English +%1 +. +MessageId=46903 +Language=English +%1 +. +MessageId=46904 +Language=English +%1 +. +MessageId=46905 +Language=English +%1 +. +MessageId=46906 +Language=English +%1 +. +MessageId=46907 +Language=English +%1 +. +MessageId=46908 +Language=English +%1 +. +MessageId=46909 +Language=English +%1 +. +MessageId=46910 +Language=English +%1 +. +MessageId=46911 +Language=English +%1 +. +MessageId=46912 +Language=English +%1 +. +MessageId=46913 +Language=English +%1 +. +MessageId=46914 +Language=English +%1 +. +MessageId=46915 +Language=English +%1 +. +MessageId=46916 +Language=English +%1 +. +MessageId=46917 +Language=English +%1 +. +MessageId=46918 +Language=English +%1 +. +MessageId=46919 +Language=English +%1 +. +MessageId=46920 +Language=English +%1 +. +MessageId=46921 +Language=English +%1 +. +MessageId=46922 +Language=English +%1 +. +MessageId=46923 +Language=English +%1 +. +MessageId=46924 +Language=English +%1 +. +MessageId=46925 +Language=English +%1 +. +MessageId=46926 +Language=English +%1 +. +MessageId=46927 +Language=English +%1 +. +MessageId=46928 +Language=English +%1 +. +MessageId=46929 +Language=English +%1 +. +MessageId=46930 +Language=English +%1 +. +MessageId=46931 +Language=English +%1 +. +MessageId=46932 +Language=English +%1 +. +MessageId=46933 +Language=English +%1 +. +MessageId=46934 +Language=English +%1 +. +MessageId=46935 +Language=English +%1 +. +MessageId=46936 +Language=English +%1 +. +MessageId=46937 +Language=English +%1 +. +MessageId=46938 +Language=English +%1 +. +MessageId=46939 +Language=English +%1 +. +MessageId=46940 +Language=English +%1 +. +MessageId=46941 +Language=English +%1 +. +MessageId=46942 +Language=English +%1 +. +MessageId=46943 +Language=English +%1 +. +MessageId=46944 +Language=English +%1 +. +MessageId=46945 +Language=English +%1 +. +MessageId=46946 +Language=English +%1 +. +MessageId=46947 +Language=English +%1 +. +MessageId=46948 +Language=English +%1 +. +MessageId=46949 +Language=English +%1 +. +MessageId=46950 +Language=English +%1 +. +MessageId=46951 +Language=English +%1 +. +MessageId=46952 +Language=English +%1 +. +MessageId=46953 +Language=English +%1 +. +MessageId=46954 +Language=English +%1 +. +MessageId=46955 +Language=English +%1 +. +MessageId=46956 +Language=English +%1 +. +MessageId=46957 +Language=English +%1 +. +MessageId=46958 +Language=English +%1 +. +MessageId=46959 +Language=English +%1 +. +MessageId=46960 +Language=English +%1 +. +MessageId=46961 +Language=English +%1 +. +MessageId=46962 +Language=English +%1 +. +MessageId=46963 +Language=English +%1 +. +MessageId=46964 +Language=English +%1 +. +MessageId=46965 +Language=English +%1 +. +MessageId=46966 +Language=English +%1 +. +MessageId=46967 +Language=English +%1 +. +MessageId=46968 +Language=English +%1 +. +MessageId=46969 +Language=English +%1 +. +MessageId=46970 +Language=English +%1 +. +MessageId=46971 +Language=English +%1 +. +MessageId=46972 +Language=English +%1 +. +MessageId=46973 +Language=English +%1 +. +MessageId=46974 +Language=English +%1 +. +MessageId=46975 +Language=English +%1 +. +MessageId=46976 +Language=English +%1 +. +MessageId=46977 +Language=English +%1 +. +MessageId=46978 +Language=English +%1 +. +MessageId=46979 +Language=English +%1 +. +MessageId=46980 +Language=English +%1 +. +MessageId=46981 +Language=English +%1 +. +MessageId=46982 +Language=English +%1 +. +MessageId=46983 +Language=English +%1 +. +MessageId=46984 +Language=English +%1 +. +MessageId=46985 +Language=English +%1 +. +MessageId=46986 +Language=English +%1 +. +MessageId=46987 +Language=English +%1 +. +MessageId=46988 +Language=English +%1 +. +MessageId=46989 +Language=English +%1 +. +MessageId=46990 +Language=English +%1 +. +MessageId=46991 +Language=English +%1 +. +MessageId=46992 +Language=English +%1 +. +MessageId=46993 +Language=English +%1 +. +MessageId=46994 +Language=English +%1 +. +MessageId=46995 +Language=English +%1 +. +MessageId=46996 +Language=English +%1 +. +MessageId=46997 +Language=English +%1 +. +MessageId=46998 +Language=English +%1 +. +MessageId=46999 +Language=English +%1 +. +MessageId=47000 +Language=English +%1 +. +MessageId=47001 +Language=English +%1 +. +MessageId=47002 +Language=English +%1 +. +MessageId=47003 +Language=English +%1 +. +MessageId=47004 +Language=English +%1 +. +MessageId=47005 +Language=English +%1 +. +MessageId=47006 +Language=English +%1 +. +MessageId=47007 +Language=English +%1 +. +MessageId=47008 +Language=English +%1 +. +MessageId=47009 +Language=English +%1 +. +MessageId=47010 +Language=English +%1 +. +MessageId=47011 +Language=English +%1 +. +MessageId=47012 +Language=English +%1 +. +MessageId=47013 +Language=English +%1 +. +MessageId=47014 +Language=English +%1 +. +MessageId=47015 +Language=English +%1 +. +MessageId=47016 +Language=English +%1 +. +MessageId=47017 +Language=English +%1 +. +MessageId=47018 +Language=English +%1 +. +MessageId=47019 +Language=English +%1 +. +MessageId=47020 +Language=English +%1 +. +MessageId=47021 +Language=English +%1 +. +MessageId=47022 +Language=English +%1 +. +MessageId=47023 +Language=English +%1 +. +MessageId=47024 +Language=English +%1 +. +MessageId=47025 +Language=English +%1 +. +MessageId=47026 +Language=English +%1 +. +MessageId=47027 +Language=English +%1 +. +MessageId=47028 +Language=English +%1 +. +MessageId=47029 +Language=English +%1 +. +MessageId=47030 +Language=English +%1 +. +MessageId=47031 +Language=English +%1 +. +MessageId=47032 +Language=English +%1 +. +MessageId=47033 +Language=English +%1 +. +MessageId=47034 +Language=English +%1 +. +MessageId=47035 +Language=English +%1 +. +MessageId=47036 +Language=English +%1 +. +MessageId=47037 +Language=English +%1 +. +MessageId=47038 +Language=English +%1 +. +MessageId=47039 +Language=English +%1 +. +MessageId=47040 +Language=English +%1 +. +MessageId=47041 +Language=English +%1 +. +MessageId=47042 +Language=English +%1 +. +MessageId=47043 +Language=English +%1 +. +MessageId=47044 +Language=English +%1 +. +MessageId=47045 +Language=English +%1 +. +MessageId=47046 +Language=English +%1 +. +MessageId=47047 +Language=English +%1 +. +MessageId=47048 +Language=English +%1 +. +MessageId=47049 +Language=English +%1 +. +MessageId=47050 +Language=English +%1 +. +MessageId=47051 +Language=English +%1 +. +MessageId=47052 +Language=English +%1 +. +MessageId=47053 +Language=English +%1 +. +MessageId=47054 +Language=English +%1 +. +MessageId=47055 +Language=English +%1 +. +MessageId=47056 +Language=English +%1 +. +MessageId=47057 +Language=English +%1 +. +MessageId=47058 +Language=English +%1 +. +MessageId=47059 +Language=English +%1 +. +MessageId=47060 +Language=English +%1 +. +MessageId=47061 +Language=English +%1 +. +MessageId=47062 +Language=English +%1 +. +MessageId=47063 +Language=English +%1 +. +MessageId=47064 +Language=English +%1 +. +MessageId=47065 +Language=English +%1 +. +MessageId=47066 +Language=English +%1 +. +MessageId=47067 +Language=English +%1 +. +MessageId=47068 +Language=English +%1 +. +MessageId=47069 +Language=English +%1 +. +MessageId=47070 +Language=English +%1 +. +MessageId=47071 +Language=English +%1 +. +MessageId=47072 +Language=English +%1 +. +MessageId=47073 +Language=English +%1 +. +MessageId=47074 +Language=English +%1 +. +MessageId=47075 +Language=English +%1 +. +MessageId=47076 +Language=English +%1 +. +MessageId=47077 +Language=English +%1 +. +MessageId=47078 +Language=English +%1 +. +MessageId=47079 +Language=English +%1 +. +MessageId=47080 +Language=English +%1 +. +MessageId=47081 +Language=English +%1 +. +MessageId=47082 +Language=English +%1 +. +MessageId=47083 +Language=English +%1 +. +MessageId=47084 +Language=English +%1 +. +MessageId=47085 +Language=English +%1 +. +MessageId=47086 +Language=English +%1 +. +MessageId=47087 +Language=English +%1 +. +MessageId=47088 +Language=English +%1 +. +MessageId=47089 +Language=English +%1 +. +MessageId=47090 +Language=English +%1 +. +MessageId=47091 +Language=English +%1 +. +MessageId=47092 +Language=English +%1 +. +MessageId=47093 +Language=English +%1 +. +MessageId=47094 +Language=English +%1 +. +MessageId=47095 +Language=English +%1 +. +MessageId=47096 +Language=English +%1 +. +MessageId=47097 +Language=English +%1 +. +MessageId=47098 +Language=English +%1 +. +MessageId=47099 +Language=English +%1 +. +MessageId=47100 +Language=English +%1 +. +MessageId=47101 +Language=English +%1 +. +MessageId=47102 +Language=English +%1 +. +MessageId=47103 +Language=English +%1 +. +MessageId=47104 +Language=English +%1 +. +MessageId=47105 +Language=English +%1 +. +MessageId=47106 +Language=English +%1 +. +MessageId=47107 +Language=English +%1 +. +MessageId=47108 +Language=English +%1 +. +MessageId=47109 +Language=English +%1 +. +MessageId=47110 +Language=English +%1 +. +MessageId=47111 +Language=English +%1 +. +MessageId=47112 +Language=English +%1 +. +MessageId=47113 +Language=English +%1 +. +MessageId=47114 +Language=English +%1 +. +MessageId=47115 +Language=English +%1 +. +MessageId=47116 +Language=English +%1 +. +MessageId=47117 +Language=English +%1 +. +MessageId=47118 +Language=English +%1 +. +MessageId=47119 +Language=English +%1 +. +MessageId=47120 +Language=English +%1 +. +MessageId=47121 +Language=English +%1 +. +MessageId=47122 +Language=English +%1 +. +MessageId=47123 +Language=English +%1 +. +MessageId=47124 +Language=English +%1 +. +MessageId=47125 +Language=English +%1 +. +MessageId=47126 +Language=English +%1 +. +MessageId=47127 +Language=English +%1 +. +MessageId=47128 +Language=English +%1 +. +MessageId=47129 +Language=English +%1 +. +MessageId=47130 +Language=English +%1 +. +MessageId=47131 +Language=English +%1 +. +MessageId=47132 +Language=English +%1 +. +MessageId=47133 +Language=English +%1 +. +MessageId=47134 +Language=English +%1 +. +MessageId=47135 +Language=English +%1 +. +MessageId=47136 +Language=English +%1 +. +MessageId=47137 +Language=English +%1 +. +MessageId=47138 +Language=English +%1 +. +MessageId=47139 +Language=English +%1 +. +MessageId=47140 +Language=English +%1 +. +MessageId=47141 +Language=English +%1 +. +MessageId=47142 +Language=English +%1 +. +MessageId=47143 +Language=English +%1 +. +MessageId=47144 +Language=English +%1 +. +MessageId=47145 +Language=English +%1 +. +MessageId=47146 +Language=English +%1 +. +MessageId=47147 +Language=English +%1 +. +MessageId=47148 +Language=English +%1 +. +MessageId=47149 +Language=English +%1 +. +MessageId=47150 +Language=English +%1 +. +MessageId=47151 +Language=English +%1 +. +MessageId=47152 +Language=English +%1 +. +MessageId=47153 +Language=English +%1 +. +MessageId=47154 +Language=English +%1 +. +MessageId=47155 +Language=English +%1 +. +MessageId=47156 +Language=English +%1 +. +MessageId=47157 +Language=English +%1 +. +MessageId=47158 +Language=English +%1 +. +MessageId=47159 +Language=English +%1 +. +MessageId=47160 +Language=English +%1 +. +MessageId=47161 +Language=English +%1 +. +MessageId=47162 +Language=English +%1 +. +MessageId=47163 +Language=English +%1 +. +MessageId=47164 +Language=English +%1 +. +MessageId=47165 +Language=English +%1 +. +MessageId=47166 +Language=English +%1 +. +MessageId=47167 +Language=English +%1 +. +MessageId=47168 +Language=English +%1 +. +MessageId=47169 +Language=English +%1 +. +MessageId=47170 +Language=English +%1 +. +MessageId=47171 +Language=English +%1 +. +MessageId=47172 +Language=English +%1 +. +MessageId=47173 +Language=English +%1 +. +MessageId=47174 +Language=English +%1 +. +MessageId=47175 +Language=English +%1 +. +MessageId=47176 +Language=English +%1 +. +MessageId=47177 +Language=English +%1 +. +MessageId=47178 +Language=English +%1 +. +MessageId=47179 +Language=English +%1 +. +MessageId=47180 +Language=English +%1 +. +MessageId=47181 +Language=English +%1 +. +MessageId=47182 +Language=English +%1 +. +MessageId=47183 +Language=English +%1 +. +MessageId=47184 +Language=English +%1 +. +MessageId=47185 +Language=English +%1 +. +MessageId=47186 +Language=English +%1 +. +MessageId=47187 +Language=English +%1 +. +MessageId=47188 +Language=English +%1 +. +MessageId=47189 +Language=English +%1 +. +MessageId=47190 +Language=English +%1 +. +MessageId=47191 +Language=English +%1 +. +MessageId=47192 +Language=English +%1 +. +MessageId=47193 +Language=English +%1 +. +MessageId=47194 +Language=English +%1 +. +MessageId=47195 +Language=English +%1 +. +MessageId=47196 +Language=English +%1 +. +MessageId=47197 +Language=English +%1 +. +MessageId=47198 +Language=English +%1 +. +MessageId=47199 +Language=English +%1 +. +MessageId=47200 +Language=English +%1 +. +MessageId=47201 +Language=English +%1 +. +MessageId=47202 +Language=English +%1 +. +MessageId=47203 +Language=English +%1 +. +MessageId=47204 +Language=English +%1 +. +MessageId=47205 +Language=English +%1 +. +MessageId=47206 +Language=English +%1 +. +MessageId=47207 +Language=English +%1 +. +MessageId=47208 +Language=English +%1 +. +MessageId=47209 +Language=English +%1 +. +MessageId=47210 +Language=English +%1 +. +MessageId=47211 +Language=English +%1 +. +MessageId=47212 +Language=English +%1 +. +MessageId=47213 +Language=English +%1 +. +MessageId=47214 +Language=English +%1 +. +MessageId=47215 +Language=English +%1 +. +MessageId=47216 +Language=English +%1 +. +MessageId=47217 +Language=English +%1 +. +MessageId=47218 +Language=English +%1 +. +MessageId=47219 +Language=English +%1 +. +MessageId=47220 +Language=English +%1 +. +MessageId=47221 +Language=English +%1 +. +MessageId=47222 +Language=English +%1 +. +MessageId=47223 +Language=English +%1 +. +MessageId=47224 +Language=English +%1 +. +MessageId=47225 +Language=English +%1 +. +MessageId=47226 +Language=English +%1 +. +MessageId=47227 +Language=English +%1 +. +MessageId=47228 +Language=English +%1 +. +MessageId=47229 +Language=English +%1 +. +MessageId=47230 +Language=English +%1 +. +MessageId=47231 +Language=English +%1 +. +MessageId=47232 +Language=English +%1 +. +MessageId=47233 +Language=English +%1 +. +MessageId=47234 +Language=English +%1 +. +MessageId=47235 +Language=English +%1 +. +MessageId=47236 +Language=English +%1 +. +MessageId=47237 +Language=English +%1 +. +MessageId=47238 +Language=English +%1 +. +MessageId=47239 +Language=English +%1 +. +MessageId=47240 +Language=English +%1 +. +MessageId=47241 +Language=English +%1 +. +MessageId=47242 +Language=English +%1 +. +MessageId=47243 +Language=English +%1 +. +MessageId=47244 +Language=English +%1 +. +MessageId=47245 +Language=English +%1 +. +MessageId=47246 +Language=English +%1 +. +MessageId=47247 +Language=English +%1 +. +MessageId=47248 +Language=English +%1 +. +MessageId=47249 +Language=English +%1 +. +MessageId=47250 +Language=English +%1 +. +MessageId=47251 +Language=English +%1 +. +MessageId=47252 +Language=English +%1 +. +MessageId=47253 +Language=English +%1 +. +MessageId=47254 +Language=English +%1 +. +MessageId=47255 +Language=English +%1 +. +MessageId=47256 +Language=English +%1 +. +MessageId=47257 +Language=English +%1 +. +MessageId=47258 +Language=English +%1 +. +MessageId=47259 +Language=English +%1 +. +MessageId=47260 +Language=English +%1 +. +MessageId=47261 +Language=English +%1 +. +MessageId=47262 +Language=English +%1 +. +MessageId=47263 +Language=English +%1 +. +MessageId=47264 +Language=English +%1 +. +MessageId=47265 +Language=English +%1 +. +MessageId=47266 +Language=English +%1 +. +MessageId=47267 +Language=English +%1 +. +MessageId=47268 +Language=English +%1 +. +MessageId=47269 +Language=English +%1 +. +MessageId=47270 +Language=English +%1 +. +MessageId=47271 +Language=English +%1 +. +MessageId=47272 +Language=English +%1 +. +MessageId=47273 +Language=English +%1 +. +MessageId=47274 +Language=English +%1 +. +MessageId=47275 +Language=English +%1 +. +MessageId=47276 +Language=English +%1 +. +MessageId=47277 +Language=English +%1 +. +MessageId=47278 +Language=English +%1 +. +MessageId=47279 +Language=English +%1 +. +MessageId=47280 +Language=English +%1 +. +MessageId=47281 +Language=English +%1 +. +MessageId=47282 +Language=English +%1 +. +MessageId=47283 +Language=English +%1 +. +MessageId=47284 +Language=English +%1 +. +MessageId=47285 +Language=English +%1 +. +MessageId=47286 +Language=English +%1 +. +MessageId=47287 +Language=English +%1 +. +MessageId=47288 +Language=English +%1 +. +MessageId=47289 +Language=English +%1 +. +MessageId=47290 +Language=English +%1 +. +MessageId=47291 +Language=English +%1 +. +MessageId=47292 +Language=English +%1 +. +MessageId=47293 +Language=English +%1 +. +MessageId=47294 +Language=English +%1 +. +MessageId=47295 +Language=English +%1 +. +MessageId=47296 +Language=English +%1 +. +MessageId=47297 +Language=English +%1 +. +MessageId=47298 +Language=English +%1 +. +MessageId=47299 +Language=English +%1 +. +MessageId=47300 +Language=English +%1 +. +MessageId=47301 +Language=English +%1 +. +MessageId=47302 +Language=English +%1 +. +MessageId=47303 +Language=English +%1 +. +MessageId=47304 +Language=English +%1 +. +MessageId=47305 +Language=English +%1 +. +MessageId=47306 +Language=English +%1 +. +MessageId=47307 +Language=English +%1 +. +MessageId=47308 +Language=English +%1 +. +MessageId=47309 +Language=English +%1 +. +MessageId=47310 +Language=English +%1 +. +MessageId=47311 +Language=English +%1 +. +MessageId=47312 +Language=English +%1 +. +MessageId=47313 +Language=English +%1 +. +MessageId=47314 +Language=English +%1 +. +MessageId=47315 +Language=English +%1 +. +MessageId=47316 +Language=English +%1 +. +MessageId=47317 +Language=English +%1 +. +MessageId=47318 +Language=English +%1 +. +MessageId=47319 +Language=English +%1 +. +MessageId=47320 +Language=English +%1 +. +MessageId=47321 +Language=English +%1 +. +MessageId=47322 +Language=English +%1 +. +MessageId=47323 +Language=English +%1 +. +MessageId=47324 +Language=English +%1 +. +MessageId=47325 +Language=English +%1 +. +MessageId=47326 +Language=English +%1 +. +MessageId=47327 +Language=English +%1 +. +MessageId=47328 +Language=English +%1 +. +MessageId=47329 +Language=English +%1 +. +MessageId=47330 +Language=English +%1 +. +MessageId=47331 +Language=English +%1 +. +MessageId=47332 +Language=English +%1 +. +MessageId=47333 +Language=English +%1 +. +MessageId=47334 +Language=English +%1 +. +MessageId=47335 +Language=English +%1 +. +MessageId=47336 +Language=English +%1 +. +MessageId=47337 +Language=English +%1 +. +MessageId=47338 +Language=English +%1 +. +MessageId=47339 +Language=English +%1 +. +MessageId=47340 +Language=English +%1 +. +MessageId=47341 +Language=English +%1 +. +MessageId=47342 +Language=English +%1 +. +MessageId=47343 +Language=English +%1 +. +MessageId=47344 +Language=English +%1 +. +MessageId=47345 +Language=English +%1 +. +MessageId=47346 +Language=English +%1 +. +MessageId=47347 +Language=English +%1 +. +MessageId=47348 +Language=English +%1 +. +MessageId=47349 +Language=English +%1 +. +MessageId=47350 +Language=English +%1 +. +MessageId=47351 +Language=English +%1 +. +MessageId=47352 +Language=English +%1 +. +MessageId=47353 +Language=English +%1 +. +MessageId=47354 +Language=English +%1 +. +MessageId=47355 +Language=English +%1 +. +MessageId=47356 +Language=English +%1 +. +MessageId=47357 +Language=English +%1 +. +MessageId=47358 +Language=English +%1 +. +MessageId=47359 +Language=English +%1 +. +MessageId=47360 +Language=English +%1 +. +MessageId=47361 +Language=English +%1 +. +MessageId=47362 +Language=English +%1 +. +MessageId=47363 +Language=English +%1 +. +MessageId=47364 +Language=English +%1 +. +MessageId=47365 +Language=English +%1 +. +MessageId=47366 +Language=English +%1 +. +MessageId=47367 +Language=English +%1 +. +MessageId=47368 +Language=English +%1 +. +MessageId=47369 +Language=English +%1 +. +MessageId=47370 +Language=English +%1 +. +MessageId=47371 +Language=English +%1 +. +MessageId=47372 +Language=English +%1 +. +MessageId=47373 +Language=English +%1 +. +MessageId=47374 +Language=English +%1 +. +MessageId=47375 +Language=English +%1 +. +MessageId=47376 +Language=English +%1 +. +MessageId=47377 +Language=English +%1 +. +MessageId=47378 +Language=English +%1 +. +MessageId=47379 +Language=English +%1 +. +MessageId=47380 +Language=English +%1 +. +MessageId=47381 +Language=English +%1 +. +MessageId=47382 +Language=English +%1 +. +MessageId=47383 +Language=English +%1 +. +MessageId=47384 +Language=English +%1 +. +MessageId=47385 +Language=English +%1 +. +MessageId=47386 +Language=English +%1 +. +MessageId=47387 +Language=English +%1 +. +MessageId=47388 +Language=English +%1 +. +MessageId=47389 +Language=English +%1 +. +MessageId=47390 +Language=English +%1 +. +MessageId=47391 +Language=English +%1 +. +MessageId=47392 +Language=English +%1 +. +MessageId=47393 +Language=English +%1 +. +MessageId=47394 +Language=English +%1 +. +MessageId=47395 +Language=English +%1 +. +MessageId=47396 +Language=English +%1 +. +MessageId=47397 +Language=English +%1 +. +MessageId=47398 +Language=English +%1 +. +MessageId=47399 +Language=English +%1 +. +MessageId=47400 +Language=English +%1 +. +MessageId=47401 +Language=English +%1 +. +MessageId=47402 +Language=English +%1 +. +MessageId=47403 +Language=English +%1 +. +MessageId=47404 +Language=English +%1 +. +MessageId=47405 +Language=English +%1 +. +MessageId=47406 +Language=English +%1 +. +MessageId=47407 +Language=English +%1 +. +MessageId=47408 +Language=English +%1 +. +MessageId=47409 +Language=English +%1 +. +MessageId=47410 +Language=English +%1 +. +MessageId=47411 +Language=English +%1 +. +MessageId=47412 +Language=English +%1 +. +MessageId=47413 +Language=English +%1 +. +MessageId=47414 +Language=English +%1 +. +MessageId=47415 +Language=English +%1 +. +MessageId=47416 +Language=English +%1 +. +MessageId=47417 +Language=English +%1 +. +MessageId=47418 +Language=English +%1 +. +MessageId=47419 +Language=English +%1 +. +MessageId=47420 +Language=English +%1 +. +MessageId=47421 +Language=English +%1 +. +MessageId=47422 +Language=English +%1 +. +MessageId=47423 +Language=English +%1 +. +MessageId=47424 +Language=English +%1 +. +MessageId=47425 +Language=English +%1 +. +MessageId=47426 +Language=English +%1 +. +MessageId=47427 +Language=English +%1 +. +MessageId=47428 +Language=English +%1 +. +MessageId=47429 +Language=English +%1 +. +MessageId=47430 +Language=English +%1 +. +MessageId=47431 +Language=English +%1 +. +MessageId=47432 +Language=English +%1 +. +MessageId=47433 +Language=English +%1 +. +MessageId=47434 +Language=English +%1 +. +MessageId=47435 +Language=English +%1 +. +MessageId=47436 +Language=English +%1 +. +MessageId=47437 +Language=English +%1 +. +MessageId=47438 +Language=English +%1 +. +MessageId=47439 +Language=English +%1 +. +MessageId=47440 +Language=English +%1 +. +MessageId=47441 +Language=English +%1 +. +MessageId=47442 +Language=English +%1 +. +MessageId=47443 +Language=English +%1 +. +MessageId=47444 +Language=English +%1 +. +MessageId=47445 +Language=English +%1 +. +MessageId=47446 +Language=English +%1 +. +MessageId=47447 +Language=English +%1 +. +MessageId=47448 +Language=English +%1 +. +MessageId=47449 +Language=English +%1 +. +MessageId=47450 +Language=English +%1 +. +MessageId=47451 +Language=English +%1 +. +MessageId=47452 +Language=English +%1 +. +MessageId=47453 +Language=English +%1 +. +MessageId=47454 +Language=English +%1 +. +MessageId=47455 +Language=English +%1 +. +MessageId=47456 +Language=English +%1 +. +MessageId=47457 +Language=English +%1 +. +MessageId=47458 +Language=English +%1 +. +MessageId=47459 +Language=English +%1 +. +MessageId=47460 +Language=English +%1 +. +MessageId=47461 +Language=English +%1 +. +MessageId=47462 +Language=English +%1 +. +MessageId=47463 +Language=English +%1 +. +MessageId=47464 +Language=English +%1 +. +MessageId=47465 +Language=English +%1 +. +MessageId=47466 +Language=English +%1 +. +MessageId=47467 +Language=English +%1 +. +MessageId=47468 +Language=English +%1 +. +MessageId=47469 +Language=English +%1 +. +MessageId=47470 +Language=English +%1 +. +MessageId=47471 +Language=English +%1 +. +MessageId=47472 +Language=English +%1 +. +MessageId=47473 +Language=English +%1 +. +MessageId=47474 +Language=English +%1 +. +MessageId=47475 +Language=English +%1 +. +MessageId=47476 +Language=English +%1 +. +MessageId=47477 +Language=English +%1 +. +MessageId=47478 +Language=English +%1 +. +MessageId=47479 +Language=English +%1 +. +MessageId=47480 +Language=English +%1 +. +MessageId=47481 +Language=English +%1 +. +MessageId=47482 +Language=English +%1 +. +MessageId=47483 +Language=English +%1 +. +MessageId=47484 +Language=English +%1 +. +MessageId=47485 +Language=English +%1 +. +MessageId=47486 +Language=English +%1 +. +MessageId=47487 +Language=English +%1 +. +MessageId=47488 +Language=English +%1 +. +MessageId=47489 +Language=English +%1 +. +MessageId=47490 +Language=English +%1 +. +MessageId=47491 +Language=English +%1 +. +MessageId=47492 +Language=English +%1 +. +MessageId=47493 +Language=English +%1 +. +MessageId=47494 +Language=English +%1 +. +MessageId=47495 +Language=English +%1 +. +MessageId=47496 +Language=English +%1 +. +MessageId=47497 +Language=English +%1 +. +MessageId=47498 +Language=English +%1 +. +MessageId=47499 +Language=English +%1 +. +MessageId=47500 +Language=English +%1 +. +MessageId=47501 +Language=English +%1 +. +MessageId=47502 +Language=English +%1 +. +MessageId=47503 +Language=English +%1 +. +MessageId=47504 +Language=English +%1 +. +MessageId=47505 +Language=English +%1 +. +MessageId=47506 +Language=English +%1 +. +MessageId=47507 +Language=English +%1 +. +MessageId=47508 +Language=English +%1 +. +MessageId=47509 +Language=English +%1 +. +MessageId=47510 +Language=English +%1 +. +MessageId=47511 +Language=English +%1 +. +MessageId=47512 +Language=English +%1 +. +MessageId=47513 +Language=English +%1 +. +MessageId=47514 +Language=English +%1 +. +MessageId=47515 +Language=English +%1 +. +MessageId=47516 +Language=English +%1 +. +MessageId=47517 +Language=English +%1 +. +MessageId=47518 +Language=English +%1 +. +MessageId=47519 +Language=English +%1 +. +MessageId=47520 +Language=English +%1 +. +MessageId=47521 +Language=English +%1 +. +MessageId=47522 +Language=English +%1 +. +MessageId=47523 +Language=English +%1 +. +MessageId=47524 +Language=English +%1 +. +MessageId=47525 +Language=English +%1 +. +MessageId=47526 +Language=English +%1 +. +MessageId=47527 +Language=English +%1 +. +MessageId=47528 +Language=English +%1 +. +MessageId=47529 +Language=English +%1 +. +MessageId=47530 +Language=English +%1 +. +MessageId=47531 +Language=English +%1 +. +MessageId=47532 +Language=English +%1 +. +MessageId=47533 +Language=English +%1 +. +MessageId=47534 +Language=English +%1 +. +MessageId=47535 +Language=English +%1 +. +MessageId=47536 +Language=English +%1 +. +MessageId=47537 +Language=English +%1 +. +MessageId=47538 +Language=English +%1 +. +MessageId=47539 +Language=English +%1 +. +MessageId=47540 +Language=English +%1 +. +MessageId=47541 +Language=English +%1 +. +MessageId=47542 +Language=English +%1 +. +MessageId=47543 +Language=English +%1 +. +MessageId=47544 +Language=English +%1 +. +MessageId=47545 +Language=English +%1 +. +MessageId=47546 +Language=English +%1 +. +MessageId=47547 +Language=English +%1 +. +MessageId=47548 +Language=English +%1 +. +MessageId=47549 +Language=English +%1 +. +MessageId=47550 +Language=English +%1 +. +MessageId=47551 +Language=English +%1 +. +MessageId=47552 +Language=English +%1 +. +MessageId=47553 +Language=English +%1 +. +MessageId=47554 +Language=English +%1 +. +MessageId=47555 +Language=English +%1 +. +MessageId=47556 +Language=English +%1 +. +MessageId=47557 +Language=English +%1 +. +MessageId=47558 +Language=English +%1 +. +MessageId=47559 +Language=English +%1 +. +MessageId=47560 +Language=English +%1 +. +MessageId=47561 +Language=English +%1 +. +MessageId=47562 +Language=English +%1 +. +MessageId=47563 +Language=English +%1 +. +MessageId=47564 +Language=English +%1 +. +MessageId=47565 +Language=English +%1 +. +MessageId=47566 +Language=English +%1 +. +MessageId=47567 +Language=English +%1 +. +MessageId=47568 +Language=English +%1 +. +MessageId=47569 +Language=English +%1 +. +MessageId=47570 +Language=English +%1 +. +MessageId=47571 +Language=English +%1 +. +MessageId=47572 +Language=English +%1 +. +MessageId=47573 +Language=English +%1 +. +MessageId=47574 +Language=English +%1 +. +MessageId=47575 +Language=English +%1 +. +MessageId=47576 +Language=English +%1 +. +MessageId=47577 +Language=English +%1 +. +MessageId=47578 +Language=English +%1 +. +MessageId=47579 +Language=English +%1 +. +MessageId=47580 +Language=English +%1 +. +MessageId=47581 +Language=English +%1 +. +MessageId=47582 +Language=English +%1 +. +MessageId=47583 +Language=English +%1 +. +MessageId=47584 +Language=English +%1 +. +MessageId=47585 +Language=English +%1 +. +MessageId=47586 +Language=English +%1 +. +MessageId=47587 +Language=English +%1 +. +MessageId=47588 +Language=English +%1 +. +MessageId=47589 +Language=English +%1 +. +MessageId=47590 +Language=English +%1 +. +MessageId=47591 +Language=English +%1 +. +MessageId=47592 +Language=English +%1 +. +MessageId=47593 +Language=English +%1 +. +MessageId=47594 +Language=English +%1 +. +MessageId=47595 +Language=English +%1 +. +MessageId=47596 +Language=English +%1 +. +MessageId=47597 +Language=English +%1 +. +MessageId=47598 +Language=English +%1 +. +MessageId=47599 +Language=English +%1 +. +MessageId=47600 +Language=English +%1 +. +MessageId=47601 +Language=English +%1 +. +MessageId=47602 +Language=English +%1 +. +MessageId=47603 +Language=English +%1 +. +MessageId=47604 +Language=English +%1 +. +MessageId=47605 +Language=English +%1 +. +MessageId=47606 +Language=English +%1 +. +MessageId=47607 +Language=English +%1 +. +MessageId=47608 +Language=English +%1 +. +MessageId=47609 +Language=English +%1 +. +MessageId=47610 +Language=English +%1 +. +MessageId=47611 +Language=English +%1 +. +MessageId=47612 +Language=English +%1 +. +MessageId=47613 +Language=English +%1 +. +MessageId=47614 +Language=English +%1 +. +MessageId=47615 +Language=English +%1 +. +MessageId=47616 +Language=English +%1 +. +MessageId=47617 +Language=English +%1 +. +MessageId=47618 +Language=English +%1 +. +MessageId=47619 +Language=English +%1 +. +MessageId=47620 +Language=English +%1 +. +MessageId=47621 +Language=English +%1 +. +MessageId=47622 +Language=English +%1 +. +MessageId=47623 +Language=English +%1 +. +MessageId=47624 +Language=English +%1 +. +MessageId=47625 +Language=English +%1 +. +MessageId=47626 +Language=English +%1 +. +MessageId=47627 +Language=English +%1 +. +MessageId=47628 +Language=English +%1 +. +MessageId=47629 +Language=English +%1 +. +MessageId=47630 +Language=English +%1 +. +MessageId=47631 +Language=English +%1 +. +MessageId=47632 +Language=English +%1 +. +MessageId=47633 +Language=English +%1 +. +MessageId=47634 +Language=English +%1 +. +MessageId=47635 +Language=English +%1 +. +MessageId=47636 +Language=English +%1 +. +MessageId=47637 +Language=English +%1 +. +MessageId=47638 +Language=English +%1 +. +MessageId=47639 +Language=English +%1 +. +MessageId=47640 +Language=English +%1 +. +MessageId=47641 +Language=English +%1 +. +MessageId=47642 +Language=English +%1 +. +MessageId=47643 +Language=English +%1 +. +MessageId=47644 +Language=English +%1 +. +MessageId=47645 +Language=English +%1 +. +MessageId=47646 +Language=English +%1 +. +MessageId=47647 +Language=English +%1 +. +MessageId=47648 +Language=English +%1 +. +MessageId=47649 +Language=English +%1 +. +MessageId=47650 +Language=English +%1 +. +MessageId=47651 +Language=English +%1 +. +MessageId=47652 +Language=English +%1 +. +MessageId=47653 +Language=English +%1 +. +MessageId=47654 +Language=English +%1 +. +MessageId=47655 +Language=English +%1 +. +MessageId=47656 +Language=English +%1 +. +MessageId=47657 +Language=English +%1 +. +MessageId=47658 +Language=English +%1 +. +MessageId=47659 +Language=English +%1 +. +MessageId=47660 +Language=English +%1 +. +MessageId=47661 +Language=English +%1 +. +MessageId=47662 +Language=English +%1 +. +MessageId=47663 +Language=English +%1 +. +MessageId=47664 +Language=English +%1 +. +MessageId=47665 +Language=English +%1 +. +MessageId=47666 +Language=English +%1 +. +MessageId=47667 +Language=English +%1 +. +MessageId=47668 +Language=English +%1 +. +MessageId=47669 +Language=English +%1 +. +MessageId=47670 +Language=English +%1 +. +MessageId=47671 +Language=English +%1 +. +MessageId=47672 +Language=English +%1 +. +MessageId=47673 +Language=English +%1 +. +MessageId=47674 +Language=English +%1 +. +MessageId=47675 +Language=English +%1 +. +MessageId=47676 +Language=English +%1 +. +MessageId=47677 +Language=English +%1 +. +MessageId=47678 +Language=English +%1 +. +MessageId=47679 +Language=English +%1 +. +MessageId=47680 +Language=English +%1 +. +MessageId=47681 +Language=English +%1 +. +MessageId=47682 +Language=English +%1 +. +MessageId=47683 +Language=English +%1 +. +MessageId=47684 +Language=English +%1 +. +MessageId=47685 +Language=English +%1 +. +MessageId=47686 +Language=English +%1 +. +MessageId=47687 +Language=English +%1 +. +MessageId=47688 +Language=English +%1 +. +MessageId=47689 +Language=English +%1 +. +MessageId=47690 +Language=English +%1 +. +MessageId=47691 +Language=English +%1 +. +MessageId=47692 +Language=English +%1 +. +MessageId=47693 +Language=English +%1 +. +MessageId=47694 +Language=English +%1 +. +MessageId=47695 +Language=English +%1 +. +MessageId=47696 +Language=English +%1 +. +MessageId=47697 +Language=English +%1 +. +MessageId=47698 +Language=English +%1 +. +MessageId=47699 +Language=English +%1 +. +MessageId=47700 +Language=English +%1 +. +MessageId=47701 +Language=English +%1 +. +MessageId=47702 +Language=English +%1 +. +MessageId=47703 +Language=English +%1 +. +MessageId=47704 +Language=English +%1 +. +MessageId=47705 +Language=English +%1 +. +MessageId=47706 +Language=English +%1 +. +MessageId=47707 +Language=English +%1 +. +MessageId=47708 +Language=English +%1 +. +MessageId=47709 +Language=English +%1 +. +MessageId=47710 +Language=English +%1 +. +MessageId=47711 +Language=English +%1 +. +MessageId=47712 +Language=English +%1 +. +MessageId=47713 +Language=English +%1 +. +MessageId=47714 +Language=English +%1 +. +MessageId=47715 +Language=English +%1 +. +MessageId=47716 +Language=English +%1 +. +MessageId=47717 +Language=English +%1 +. +MessageId=47718 +Language=English +%1 +. +MessageId=47719 +Language=English +%1 +. +MessageId=47720 +Language=English +%1 +. +MessageId=47721 +Language=English +%1 +. +MessageId=47722 +Language=English +%1 +. +MessageId=47723 +Language=English +%1 +. +MessageId=47724 +Language=English +%1 +. +MessageId=47725 +Language=English +%1 +. +MessageId=47726 +Language=English +%1 +. +MessageId=47727 +Language=English +%1 +. +MessageId=47728 +Language=English +%1 +. +MessageId=47729 +Language=English +%1 +. +MessageId=47730 +Language=English +%1 +. +MessageId=47731 +Language=English +%1 +. +MessageId=47732 +Language=English +%1 +. +MessageId=47733 +Language=English +%1 +. +MessageId=47734 +Language=English +%1 +. +MessageId=47735 +Language=English +%1 +. +MessageId=47736 +Language=English +%1 +. +MessageId=47737 +Language=English +%1 +. +MessageId=47738 +Language=English +%1 +. +MessageId=47739 +Language=English +%1 +. +MessageId=47740 +Language=English +%1 +. +MessageId=47741 +Language=English +%1 +. +MessageId=47742 +Language=English +%1 +. +MessageId=47743 +Language=English +%1 +. +MessageId=47744 +Language=English +%1 +. +MessageId=47745 +Language=English +%1 +. +MessageId=47746 +Language=English +%1 +. +MessageId=47747 +Language=English +%1 +. +MessageId=47748 +Language=English +%1 +. +MessageId=47749 +Language=English +%1 +. +MessageId=47750 +Language=English +%1 +. +MessageId=47751 +Language=English +%1 +. +MessageId=47752 +Language=English +%1 +. +MessageId=47753 +Language=English +%1 +. +MessageId=47754 +Language=English +%1 +. +MessageId=47755 +Language=English +%1 +. +MessageId=47756 +Language=English +%1 +. +MessageId=47757 +Language=English +%1 +. +MessageId=47758 +Language=English +%1 +. +MessageId=47759 +Language=English +%1 +. +MessageId=47760 +Language=English +%1 +. +MessageId=47761 +Language=English +%1 +. +MessageId=47762 +Language=English +%1 +. +MessageId=47763 +Language=English +%1 +. +MessageId=47764 +Language=English +%1 +. +MessageId=47765 +Language=English +%1 +. +MessageId=47766 +Language=English +%1 +. +MessageId=47767 +Language=English +%1 +. +MessageId=47768 +Language=English +%1 +. +MessageId=47769 +Language=English +%1 +. +MessageId=47770 +Language=English +%1 +. +MessageId=47771 +Language=English +%1 +. +MessageId=47772 +Language=English +%1 +. +MessageId=47773 +Language=English +%1 +. +MessageId=47774 +Language=English +%1 +. +MessageId=47775 +Language=English +%1 +. +MessageId=47776 +Language=English +%1 +. +MessageId=47777 +Language=English +%1 +. +MessageId=47778 +Language=English +%1 +. +MessageId=47779 +Language=English +%1 +. +MessageId=47780 +Language=English +%1 +. +MessageId=47781 +Language=English +%1 +. +MessageId=47782 +Language=English +%1 +. +MessageId=47783 +Language=English +%1 +. +MessageId=47784 +Language=English +%1 +. +MessageId=47785 +Language=English +%1 +. +MessageId=47786 +Language=English +%1 +. +MessageId=47787 +Language=English +%1 +. +MessageId=47788 +Language=English +%1 +. +MessageId=47789 +Language=English +%1 +. +MessageId=47790 +Language=English +%1 +. +MessageId=47791 +Language=English +%1 +. +MessageId=47792 +Language=English +%1 +. +MessageId=47793 +Language=English +%1 +. +MessageId=47794 +Language=English +%1 +. +MessageId=47795 +Language=English +%1 +. +MessageId=47796 +Language=English +%1 +. +MessageId=47797 +Language=English +%1 +. +MessageId=47798 +Language=English +%1 +. +MessageId=47799 +Language=English +%1 +. +MessageId=47800 +Language=English +%1 +. +MessageId=47801 +Language=English +%1 +. +MessageId=47802 +Language=English +%1 +. +MessageId=47803 +Language=English +%1 +. +MessageId=47804 +Language=English +%1 +. +MessageId=47805 +Language=English +%1 +. +MessageId=47806 +Language=English +%1 +. +MessageId=47807 +Language=English +%1 +. +MessageId=47808 +Language=English +%1 +. +MessageId=47809 +Language=English +%1 +. +MessageId=47810 +Language=English +%1 +. +MessageId=47811 +Language=English +%1 +. +MessageId=47812 +Language=English +%1 +. +MessageId=47813 +Language=English +%1 +. +MessageId=47814 +Language=English +%1 +. +MessageId=47815 +Language=English +%1 +. +MessageId=47816 +Language=English +%1 +. +MessageId=47817 +Language=English +%1 +. +MessageId=47818 +Language=English +%1 +. +MessageId=47819 +Language=English +%1 +. +MessageId=47820 +Language=English +%1 +. +MessageId=47821 +Language=English +%1 +. +MessageId=47822 +Language=English +%1 +. +MessageId=47823 +Language=English +%1 +. +MessageId=47824 +Language=English +%1 +. +MessageId=47825 +Language=English +%1 +. +MessageId=47826 +Language=English +%1 +. +MessageId=47827 +Language=English +%1 +. +MessageId=47828 +Language=English +%1 +. +MessageId=47829 +Language=English +%1 +. +MessageId=47830 +Language=English +%1 +. +MessageId=47831 +Language=English +%1 +. +MessageId=47832 +Language=English +%1 +. +MessageId=47833 +Language=English +%1 +. +MessageId=47834 +Language=English +%1 +. +MessageId=47835 +Language=English +%1 +. +MessageId=47836 +Language=English +%1 +. +MessageId=47837 +Language=English +%1 +. +MessageId=47838 +Language=English +%1 +. +MessageId=47839 +Language=English +%1 +. +MessageId=47840 +Language=English +%1 +. +MessageId=47841 +Language=English +%1 +. +MessageId=47842 +Language=English +%1 +. +MessageId=47843 +Language=English +%1 +. +MessageId=47844 +Language=English +%1 +. +MessageId=47845 +Language=English +%1 +. +MessageId=47846 +Language=English +%1 +. +MessageId=47847 +Language=English +%1 +. +MessageId=47848 +Language=English +%1 +. +MessageId=47849 +Language=English +%1 +. +MessageId=47850 +Language=English +%1 +. +MessageId=47851 +Language=English +%1 +. +MessageId=47852 +Language=English +%1 +. +MessageId=47853 +Language=English +%1 +. +MessageId=47854 +Language=English +%1 +. +MessageId=47855 +Language=English +%1 +. +MessageId=47856 +Language=English +%1 +. +MessageId=47857 +Language=English +%1 +. +MessageId=47858 +Language=English +%1 +. +MessageId=47859 +Language=English +%1 +. +MessageId=47860 +Language=English +%1 +. +MessageId=47861 +Language=English +%1 +. +MessageId=47862 +Language=English +%1 +. +MessageId=47863 +Language=English +%1 +. +MessageId=47864 +Language=English +%1 +. +MessageId=47865 +Language=English +%1 +. +MessageId=47866 +Language=English +%1 +. +MessageId=47867 +Language=English +%1 +. +MessageId=47868 +Language=English +%1 +. +MessageId=47869 +Language=English +%1 +. +MessageId=47870 +Language=English +%1 +. +MessageId=47871 +Language=English +%1 +. +MessageId=47872 +Language=English +%1 +. +MessageId=47873 +Language=English +%1 +. +MessageId=47874 +Language=English +%1 +. +MessageId=47875 +Language=English +%1 +. +MessageId=47876 +Language=English +%1 +. +MessageId=47877 +Language=English +%1 +. +MessageId=47878 +Language=English +%1 +. +MessageId=47879 +Language=English +%1 +. +MessageId=47880 +Language=English +%1 +. +MessageId=47881 +Language=English +%1 +. +MessageId=47882 +Language=English +%1 +. +MessageId=47883 +Language=English +%1 +. +MessageId=47884 +Language=English +%1 +. +MessageId=47885 +Language=English +%1 +. +MessageId=47886 +Language=English +%1 +. +MessageId=47887 +Language=English +%1 +. +MessageId=47888 +Language=English +%1 +. +MessageId=47889 +Language=English +%1 +. +MessageId=47890 +Language=English +%1 +. +MessageId=47891 +Language=English +%1 +. +MessageId=47892 +Language=English +%1 +. +MessageId=47893 +Language=English +%1 +. +MessageId=47894 +Language=English +%1 +. +MessageId=47895 +Language=English +%1 +. +MessageId=47896 +Language=English +%1 +. +MessageId=47897 +Language=English +%1 +. +MessageId=47898 +Language=English +%1 +. +MessageId=47899 +Language=English +%1 +. +MessageId=47900 +Language=English +%1 +. +MessageId=47901 +Language=English +%1 +. +MessageId=47902 +Language=English +%1 +. +MessageId=47903 +Language=English +%1 +. +MessageId=47904 +Language=English +%1 +. +MessageId=47905 +Language=English +%1 +. +MessageId=47906 +Language=English +%1 +. +MessageId=47907 +Language=English +%1 +. +MessageId=47908 +Language=English +%1 +. +MessageId=47909 +Language=English +%1 +. +MessageId=47910 +Language=English +%1 +. +MessageId=47911 +Language=English +%1 +. +MessageId=47912 +Language=English +%1 +. +MessageId=47913 +Language=English +%1 +. +MessageId=47914 +Language=English +%1 +. +MessageId=47915 +Language=English +%1 +. +MessageId=47916 +Language=English +%1 +. +MessageId=47917 +Language=English +%1 +. +MessageId=47918 +Language=English +%1 +. +MessageId=47919 +Language=English +%1 +. +MessageId=47920 +Language=English +%1 +. +MessageId=47921 +Language=English +%1 +. +MessageId=47922 +Language=English +%1 +. +MessageId=47923 +Language=English +%1 +. +MessageId=47924 +Language=English +%1 +. +MessageId=47925 +Language=English +%1 +. +MessageId=47926 +Language=English +%1 +. +MessageId=47927 +Language=English +%1 +. +MessageId=47928 +Language=English +%1 +. +MessageId=47929 +Language=English +%1 +. +MessageId=47930 +Language=English +%1 +. +MessageId=47931 +Language=English +%1 +. +MessageId=47932 +Language=English +%1 +. +MessageId=47933 +Language=English +%1 +. +MessageId=47934 +Language=English +%1 +. +MessageId=47935 +Language=English +%1 +. +MessageId=47936 +Language=English +%1 +. +MessageId=47937 +Language=English +%1 +. +MessageId=47938 +Language=English +%1 +. +MessageId=47939 +Language=English +%1 +. +MessageId=47940 +Language=English +%1 +. +MessageId=47941 +Language=English +%1 +. +MessageId=47942 +Language=English +%1 +. +MessageId=47943 +Language=English +%1 +. +MessageId=47944 +Language=English +%1 +. +MessageId=47945 +Language=English +%1 +. +MessageId=47946 +Language=English +%1 +. +MessageId=47947 +Language=English +%1 +. +MessageId=47948 +Language=English +%1 +. +MessageId=47949 +Language=English +%1 +. +MessageId=47950 +Language=English +%1 +. +MessageId=47951 +Language=English +%1 +. +MessageId=47952 +Language=English +%1 +. +MessageId=47953 +Language=English +%1 +. +MessageId=47954 +Language=English +%1 +. +MessageId=47955 +Language=English +%1 +. +MessageId=47956 +Language=English +%1 +. +MessageId=47957 +Language=English +%1 +. +MessageId=47958 +Language=English +%1 +. +MessageId=47959 +Language=English +%1 +. +MessageId=47960 +Language=English +%1 +. +MessageId=47961 +Language=English +%1 +. +MessageId=47962 +Language=English +%1 +. +MessageId=47963 +Language=English +%1 +. +MessageId=47964 +Language=English +%1 +. +MessageId=47965 +Language=English +%1 +. +MessageId=47966 +Language=English +%1 +. +MessageId=47967 +Language=English +%1 +. +MessageId=47968 +Language=English +%1 +. +MessageId=47969 +Language=English +%1 +. +MessageId=47970 +Language=English +%1 +. +MessageId=47971 +Language=English +%1 +. +MessageId=47972 +Language=English +%1 +. +MessageId=47973 +Language=English +%1 +. +MessageId=47974 +Language=English +%1 +. +MessageId=47975 +Language=English +%1 +. +MessageId=47976 +Language=English +%1 +. +MessageId=47977 +Language=English +%1 +. +MessageId=47978 +Language=English +%1 +. +MessageId=47979 +Language=English +%1 +. +MessageId=47980 +Language=English +%1 +. +MessageId=47981 +Language=English +%1 +. +MessageId=47982 +Language=English +%1 +. +MessageId=47983 +Language=English +%1 +. +MessageId=47984 +Language=English +%1 +. +MessageId=47985 +Language=English +%1 +. +MessageId=47986 +Language=English +%1 +. +MessageId=47987 +Language=English +%1 +. +MessageId=47988 +Language=English +%1 +. +MessageId=47989 +Language=English +%1 +. +MessageId=47990 +Language=English +%1 +. +MessageId=47991 +Language=English +%1 +. +MessageId=47992 +Language=English +%1 +. +MessageId=47993 +Language=English +%1 +. +MessageId=47994 +Language=English +%1 +. +MessageId=47995 +Language=English +%1 +. +MessageId=47996 +Language=English +%1 +. +MessageId=47997 +Language=English +%1 +. +MessageId=47998 +Language=English +%1 +. +MessageId=47999 +Language=English +%1 +. +MessageId=48000 +Language=English +%1 +. +MessageId=48001 +Language=English +%1 +. +MessageId=48002 +Language=English +%1 +. +MessageId=48003 +Language=English +%1 +. +MessageId=48004 +Language=English +%1 +. +MessageId=48005 +Language=English +%1 +. +MessageId=48006 +Language=English +%1 +. +MessageId=48007 +Language=English +%1 +. +MessageId=48008 +Language=English +%1 +. +MessageId=48009 +Language=English +%1 +. +MessageId=48010 +Language=English +%1 +. +MessageId=48011 +Language=English +%1 +. +MessageId=48012 +Language=English +%1 +. +MessageId=48013 +Language=English +%1 +. +MessageId=48014 +Language=English +%1 +. +MessageId=48015 +Language=English +%1 +. +MessageId=48016 +Language=English +%1 +. +MessageId=48017 +Language=English +%1 +. +MessageId=48018 +Language=English +%1 +. +MessageId=48019 +Language=English +%1 +. +MessageId=48020 +Language=English +%1 +. +MessageId=48021 +Language=English +%1 +. +MessageId=48022 +Language=English +%1 +. +MessageId=48023 +Language=English +%1 +. +MessageId=48024 +Language=English +%1 +. +MessageId=48025 +Language=English +%1 +. +MessageId=48026 +Language=English +%1 +. +MessageId=48027 +Language=English +%1 +. +MessageId=48028 +Language=English +%1 +. +MessageId=48029 +Language=English +%1 +. +MessageId=48030 +Language=English +%1 +. +MessageId=48031 +Language=English +%1 +. +MessageId=48032 +Language=English +%1 +. +MessageId=48033 +Language=English +%1 +. +MessageId=48034 +Language=English +%1 +. +MessageId=48035 +Language=English +%1 +. +MessageId=48036 +Language=English +%1 +. +MessageId=48037 +Language=English +%1 +. +MessageId=48038 +Language=English +%1 +. +MessageId=48039 +Language=English +%1 +. +MessageId=48040 +Language=English +%1 +. +MessageId=48041 +Language=English +%1 +. +MessageId=48042 +Language=English +%1 +. +MessageId=48043 +Language=English +%1 +. +MessageId=48044 +Language=English +%1 +. +MessageId=48045 +Language=English +%1 +. +MessageId=48046 +Language=English +%1 +. +MessageId=48047 +Language=English +%1 +. +MessageId=48048 +Language=English +%1 +. +MessageId=48049 +Language=English +%1 +. +MessageId=48050 +Language=English +%1 +. +MessageId=48051 +Language=English +%1 +. +MessageId=48052 +Language=English +%1 +. +MessageId=48053 +Language=English +%1 +. +MessageId=48054 +Language=English +%1 +. +MessageId=48055 +Language=English +%1 +. +MessageId=48056 +Language=English +%1 +. +MessageId=48057 +Language=English +%1 +. +MessageId=48058 +Language=English +%1 +. +MessageId=48059 +Language=English +%1 +. +MessageId=48060 +Language=English +%1 +. +MessageId=48061 +Language=English +%1 +. +MessageId=48062 +Language=English +%1 +. +MessageId=48063 +Language=English +%1 +. +MessageId=48064 +Language=English +%1 +. +MessageId=48065 +Language=English +%1 +. +MessageId=48066 +Language=English +%1 +. +MessageId=48067 +Language=English +%1 +. +MessageId=48068 +Language=English +%1 +. +MessageId=48069 +Language=English +%1 +. +MessageId=48070 +Language=English +%1 +. +MessageId=48071 +Language=English +%1 +. +MessageId=48072 +Language=English +%1 +. +MessageId=48073 +Language=English +%1 +. +MessageId=48074 +Language=English +%1 +. +MessageId=48075 +Language=English +%1 +. +MessageId=48076 +Language=English +%1 +. +MessageId=48077 +Language=English +%1 +. +MessageId=48078 +Language=English +%1 +. +MessageId=48079 +Language=English +%1 +. +MessageId=48080 +Language=English +%1 +. +MessageId=48081 +Language=English +%1 +. +MessageId=48082 +Language=English +%1 +. +MessageId=48083 +Language=English +%1 +. +MessageId=48084 +Language=English +%1 +. +MessageId=48085 +Language=English +%1 +. +MessageId=48086 +Language=English +%1 +. +MessageId=48087 +Language=English +%1 +. +MessageId=48088 +Language=English +%1 +. +MessageId=48089 +Language=English +%1 +. +MessageId=48090 +Language=English +%1 +. +MessageId=48091 +Language=English +%1 +. +MessageId=48092 +Language=English +%1 +. +MessageId=48093 +Language=English +%1 +. +MessageId=48094 +Language=English +%1 +. +MessageId=48095 +Language=English +%1 +. +MessageId=48096 +Language=English +%1 +. +MessageId=48097 +Language=English +%1 +. +MessageId=48098 +Language=English +%1 +. +MessageId=48099 +Language=English +%1 +. +MessageId=48100 +Language=English +%1 +. +MessageId=48101 +Language=English +%1 +. +MessageId=48102 +Language=English +%1 +. +MessageId=48103 +Language=English +%1 +. +MessageId=48104 +Language=English +%1 +. +MessageId=48105 +Language=English +%1 +. +MessageId=48106 +Language=English +%1 +. +MessageId=48107 +Language=English +%1 +. +MessageId=48108 +Language=English +%1 +. +MessageId=48109 +Language=English +%1 +. +MessageId=48110 +Language=English +%1 +. +MessageId=48111 +Language=English +%1 +. +MessageId=48112 +Language=English +%1 +. +MessageId=48113 +Language=English +%1 +. +MessageId=48114 +Language=English +%1 +. +MessageId=48115 +Language=English +%1 +. +MessageId=48116 +Language=English +%1 +. +MessageId=48117 +Language=English +%1 +. +MessageId=48118 +Language=English +%1 +. +MessageId=48119 +Language=English +%1 +. +MessageId=48120 +Language=English +%1 +. +MessageId=48121 +Language=English +%1 +. +MessageId=48122 +Language=English +%1 +. +MessageId=48123 +Language=English +%1 +. +MessageId=48124 +Language=English +%1 +. +MessageId=48125 +Language=English +%1 +. +MessageId=48126 +Language=English +%1 +. +MessageId=48127 +Language=English +%1 +. +MessageId=48128 +Language=English +%1 +. +MessageId=48129 +Language=English +%1 +. +MessageId=48130 +Language=English +%1 +. +MessageId=48131 +Language=English +%1 +. +MessageId=48132 +Language=English +%1 +. +MessageId=48133 +Language=English +%1 +. +MessageId=48134 +Language=English +%1 +. +MessageId=48135 +Language=English +%1 +. +MessageId=48136 +Language=English +%1 +. +MessageId=48137 +Language=English +%1 +. +MessageId=48138 +Language=English +%1 +. +MessageId=48139 +Language=English +%1 +. +MessageId=48140 +Language=English +%1 +. +MessageId=48141 +Language=English +%1 +. +MessageId=48142 +Language=English +%1 +. +MessageId=48143 +Language=English +%1 +. +MessageId=48144 +Language=English +%1 +. +MessageId=48145 +Language=English +%1 +. +MessageId=48146 +Language=English +%1 +. +MessageId=48147 +Language=English +%1 +. +MessageId=48148 +Language=English +%1 +. +MessageId=48149 +Language=English +%1 +. +MessageId=48150 +Language=English +%1 +. +MessageId=48151 +Language=English +%1 +. +MessageId=48152 +Language=English +%1 +. +MessageId=48153 +Language=English +%1 +. +MessageId=48154 +Language=English +%1 +. +MessageId=48155 +Language=English +%1 +. +MessageId=48156 +Language=English +%1 +. +MessageId=48157 +Language=English +%1 +. +MessageId=48158 +Language=English +%1 +. +MessageId=48159 +Language=English +%1 +. +MessageId=48160 +Language=English +%1 +. +MessageId=48161 +Language=English +%1 +. +MessageId=48162 +Language=English +%1 +. +MessageId=48163 +Language=English +%1 +. +MessageId=48164 +Language=English +%1 +. +MessageId=48165 +Language=English +%1 +. +MessageId=48166 +Language=English +%1 +. +MessageId=48167 +Language=English +%1 +. +MessageId=48168 +Language=English +%1 +. +MessageId=48169 +Language=English +%1 +. +MessageId=48170 +Language=English +%1 +. +MessageId=48171 +Language=English +%1 +. +MessageId=48172 +Language=English +%1 +. +MessageId=48173 +Language=English +%1 +. +MessageId=48174 +Language=English +%1 +. +MessageId=48175 +Language=English +%1 +. +MessageId=48176 +Language=English +%1 +. +MessageId=48177 +Language=English +%1 +. +MessageId=48178 +Language=English +%1 +. +MessageId=48179 +Language=English +%1 +. +MessageId=48180 +Language=English +%1 +. +MessageId=48181 +Language=English +%1 +. +MessageId=48182 +Language=English +%1 +. +MessageId=48183 +Language=English +%1 +. +MessageId=48184 +Language=English +%1 +. +MessageId=48185 +Language=English +%1 +. +MessageId=48186 +Language=English +%1 +. +MessageId=48187 +Language=English +%1 +. +MessageId=48188 +Language=English +%1 +. +MessageId=48189 +Language=English +%1 +. +MessageId=48190 +Language=English +%1 +. +MessageId=48191 +Language=English +%1 +. +MessageId=48192 +Language=English +%1 +. +MessageId=48193 +Language=English +%1 +. +MessageId=48194 +Language=English +%1 +. +MessageId=48195 +Language=English +%1 +. +MessageId=48196 +Language=English +%1 +. +MessageId=48197 +Language=English +%1 +. +MessageId=48198 +Language=English +%1 +. +MessageId=48199 +Language=English +%1 +. +MessageId=48200 +Language=English +%1 +. +MessageId=48201 +Language=English +%1 +. +MessageId=48202 +Language=English +%1 +. +MessageId=48203 +Language=English +%1 +. +MessageId=48204 +Language=English +%1 +. +MessageId=48205 +Language=English +%1 +. +MessageId=48206 +Language=English +%1 +. +MessageId=48207 +Language=English +%1 +. +MessageId=48208 +Language=English +%1 +. +MessageId=48209 +Language=English +%1 +. +MessageId=48210 +Language=English +%1 +. +MessageId=48211 +Language=English +%1 +. +MessageId=48212 +Language=English +%1 +. +MessageId=48213 +Language=English +%1 +. +MessageId=48214 +Language=English +%1 +. +MessageId=48215 +Language=English +%1 +. +MessageId=48216 +Language=English +%1 +. +MessageId=48217 +Language=English +%1 +. +MessageId=48218 +Language=English +%1 +. +MessageId=48219 +Language=English +%1 +. +MessageId=48220 +Language=English +%1 +. +MessageId=48221 +Language=English +%1 +. +MessageId=48222 +Language=English +%1 +. +MessageId=48223 +Language=English +%1 +. +MessageId=48224 +Language=English +%1 +. +MessageId=48225 +Language=English +%1 +. +MessageId=48226 +Language=English +%1 +. +MessageId=48227 +Language=English +%1 +. +MessageId=48228 +Language=English +%1 +. +MessageId=48229 +Language=English +%1 +. +MessageId=48230 +Language=English +%1 +. +MessageId=48231 +Language=English +%1 +. +MessageId=48232 +Language=English +%1 +. +MessageId=48233 +Language=English +%1 +. +MessageId=48234 +Language=English +%1 +. +MessageId=48235 +Language=English +%1 +. +MessageId=48236 +Language=English +%1 +. +MessageId=48237 +Language=English +%1 +. +MessageId=48238 +Language=English +%1 +. +MessageId=48239 +Language=English +%1 +. +MessageId=48240 +Language=English +%1 +. +MessageId=48241 +Language=English +%1 +. +MessageId=48242 +Language=English +%1 +. +MessageId=48243 +Language=English +%1 +. +MessageId=48244 +Language=English +%1 +. +MessageId=48245 +Language=English +%1 +. +MessageId=48246 +Language=English +%1 +. +MessageId=48247 +Language=English +%1 +. +MessageId=48248 +Language=English +%1 +. +MessageId=48249 +Language=English +%1 +. +MessageId=48250 +Language=English +%1 +. +MessageId=48251 +Language=English +%1 +. +MessageId=48252 +Language=English +%1 +. +MessageId=48253 +Language=English +%1 +. +MessageId=48254 +Language=English +%1 +. +MessageId=48255 +Language=English +%1 +. +MessageId=48256 +Language=English +%1 +. +MessageId=48257 +Language=English +%1 +. +MessageId=48258 +Language=English +%1 +. +MessageId=48259 +Language=English +%1 +. +MessageId=48260 +Language=English +%1 +. +MessageId=48261 +Language=English +%1 +. +MessageId=48262 +Language=English +%1 +. +MessageId=48263 +Language=English +%1 +. +MessageId=48264 +Language=English +%1 +. +MessageId=48265 +Language=English +%1 +. +MessageId=48266 +Language=English +%1 +. +MessageId=48267 +Language=English +%1 +. +MessageId=48268 +Language=English +%1 +. +MessageId=48269 +Language=English +%1 +. +MessageId=48270 +Language=English +%1 +. +MessageId=48271 +Language=English +%1 +. +MessageId=48272 +Language=English +%1 +. +MessageId=48273 +Language=English +%1 +. +MessageId=48274 +Language=English +%1 +. +MessageId=48275 +Language=English +%1 +. +MessageId=48276 +Language=English +%1 +. +MessageId=48277 +Language=English +%1 +. +MessageId=48278 +Language=English +%1 +. +MessageId=48279 +Language=English +%1 +. +MessageId=48280 +Language=English +%1 +. +MessageId=48281 +Language=English +%1 +. +MessageId=48282 +Language=English +%1 +. +MessageId=48283 +Language=English +%1 +. +MessageId=48284 +Language=English +%1 +. +MessageId=48285 +Language=English +%1 +. +MessageId=48286 +Language=English +%1 +. +MessageId=48287 +Language=English +%1 +. +MessageId=48288 +Language=English +%1 +. +MessageId=48289 +Language=English +%1 +. +MessageId=48290 +Language=English +%1 +. +MessageId=48291 +Language=English +%1 +. +MessageId=48292 +Language=English +%1 +. +MessageId=48293 +Language=English +%1 +. +MessageId=48294 +Language=English +%1 +. +MessageId=48295 +Language=English +%1 +. +MessageId=48296 +Language=English +%1 +. +MessageId=48297 +Language=English +%1 +. +MessageId=48298 +Language=English +%1 +. +MessageId=48299 +Language=English +%1 +. +MessageId=48300 +Language=English +%1 +. +MessageId=48301 +Language=English +%1 +. +MessageId=48302 +Language=English +%1 +. +MessageId=48303 +Language=English +%1 +. +MessageId=48304 +Language=English +%1 +. +MessageId=48305 +Language=English +%1 +. +MessageId=48306 +Language=English +%1 +. +MessageId=48307 +Language=English +%1 +. +MessageId=48308 +Language=English +%1 +. +MessageId=48309 +Language=English +%1 +. +MessageId=48310 +Language=English +%1 +. +MessageId=48311 +Language=English +%1 +. +MessageId=48312 +Language=English +%1 +. +MessageId=48313 +Language=English +%1 +. +MessageId=48314 +Language=English +%1 +. +MessageId=48315 +Language=English +%1 +. +MessageId=48316 +Language=English +%1 +. +MessageId=48317 +Language=English +%1 +. +MessageId=48318 +Language=English +%1 +. +MessageId=48319 +Language=English +%1 +. +MessageId=48320 +Language=English +%1 +. +MessageId=48321 +Language=English +%1 +. +MessageId=48322 +Language=English +%1 +. +MessageId=48323 +Language=English +%1 +. +MessageId=48324 +Language=English +%1 +. +MessageId=48325 +Language=English +%1 +. +MessageId=48326 +Language=English +%1 +. +MessageId=48327 +Language=English +%1 +. +MessageId=48328 +Language=English +%1 +. +MessageId=48329 +Language=English +%1 +. +MessageId=48330 +Language=English +%1 +. +MessageId=48331 +Language=English +%1 +. +MessageId=48332 +Language=English +%1 +. +MessageId=48333 +Language=English +%1 +. +MessageId=48334 +Language=English +%1 +. +MessageId=48335 +Language=English +%1 +. +MessageId=48336 +Language=English +%1 +. +MessageId=48337 +Language=English +%1 +. +MessageId=48338 +Language=English +%1 +. +MessageId=48339 +Language=English +%1 +. +MessageId=48340 +Language=English +%1 +. +MessageId=48341 +Language=English +%1 +. +MessageId=48342 +Language=English +%1 +. +MessageId=48343 +Language=English +%1 +. +MessageId=48344 +Language=English +%1 +. +MessageId=48345 +Language=English +%1 +. +MessageId=48346 +Language=English +%1 +. +MessageId=48347 +Language=English +%1 +. +MessageId=48348 +Language=English +%1 +. +MessageId=48349 +Language=English +%1 +. +MessageId=48350 +Language=English +%1 +. +MessageId=48351 +Language=English +%1 +. +MessageId=48352 +Language=English +%1 +. +MessageId=48353 +Language=English +%1 +. +MessageId=48354 +Language=English +%1 +. +MessageId=48355 +Language=English +%1 +. +MessageId=48356 +Language=English +%1 +. +MessageId=48357 +Language=English +%1 +. +MessageId=48358 +Language=English +%1 +. +MessageId=48359 +Language=English +%1 +. +MessageId=48360 +Language=English +%1 +. +MessageId=48361 +Language=English +%1 +. +MessageId=48362 +Language=English +%1 +. +MessageId=48363 +Language=English +%1 +. +MessageId=48364 +Language=English +%1 +. +MessageId=48365 +Language=English +%1 +. +MessageId=48366 +Language=English +%1 +. +MessageId=48367 +Language=English +%1 +. +MessageId=48368 +Language=English +%1 +. +MessageId=48369 +Language=English +%1 +. +MessageId=48370 +Language=English +%1 +. +MessageId=48371 +Language=English +%1 +. +MessageId=48372 +Language=English +%1 +. +MessageId=48373 +Language=English +%1 +. +MessageId=48374 +Language=English +%1 +. +MessageId=48375 +Language=English +%1 +. +MessageId=48376 +Language=English +%1 +. +MessageId=48377 +Language=English +%1 +. +MessageId=48378 +Language=English +%1 +. +MessageId=48379 +Language=English +%1 +. +MessageId=48380 +Language=English +%1 +. +MessageId=48381 +Language=English +%1 +. +MessageId=48382 +Language=English +%1 +. +MessageId=48383 +Language=English +%1 +. +MessageId=48384 +Language=English +%1 +. +MessageId=48385 +Language=English +%1 +. +MessageId=48386 +Language=English +%1 +. +MessageId=48387 +Language=English +%1 +. +MessageId=48388 +Language=English +%1 +. +MessageId=48389 +Language=English +%1 +. +MessageId=48390 +Language=English +%1 +. +MessageId=48391 +Language=English +%1 +. +MessageId=48392 +Language=English +%1 +. +MessageId=48393 +Language=English +%1 +. +MessageId=48394 +Language=English +%1 +. +MessageId=48395 +Language=English +%1 +. +MessageId=48396 +Language=English +%1 +. +MessageId=48397 +Language=English +%1 +. +MessageId=48398 +Language=English +%1 +. +MessageId=48399 +Language=English +%1 +. +MessageId=48400 +Language=English +%1 +. +MessageId=48401 +Language=English +%1 +. +MessageId=48402 +Language=English +%1 +. +MessageId=48403 +Language=English +%1 +. +MessageId=48404 +Language=English +%1 +. +MessageId=48405 +Language=English +%1 +. +MessageId=48406 +Language=English +%1 +. +MessageId=48407 +Language=English +%1 +. +MessageId=48408 +Language=English +%1 +. +MessageId=48409 +Language=English +%1 +. +MessageId=48410 +Language=English +%1 +. +MessageId=48411 +Language=English +%1 +. +MessageId=48412 +Language=English +%1 +. +MessageId=48413 +Language=English +%1 +. +MessageId=48414 +Language=English +%1 +. +MessageId=48415 +Language=English +%1 +. +MessageId=48416 +Language=English +%1 +. +MessageId=48417 +Language=English +%1 +. +MessageId=48418 +Language=English +%1 +. +MessageId=48419 +Language=English +%1 +. +MessageId=48420 +Language=English +%1 +. +MessageId=48421 +Language=English +%1 +. +MessageId=48422 +Language=English +%1 +. +MessageId=48423 +Language=English +%1 +. +MessageId=48424 +Language=English +%1 +. +MessageId=48425 +Language=English +%1 +. +MessageId=48426 +Language=English +%1 +. +MessageId=48427 +Language=English +%1 +. +MessageId=48428 +Language=English +%1 +. +MessageId=48429 +Language=English +%1 +. +MessageId=48430 +Language=English +%1 +. +MessageId=48431 +Language=English +%1 +. +MessageId=48432 +Language=English +%1 +. +MessageId=48433 +Language=English +%1 +. +MessageId=48434 +Language=English +%1 +. +MessageId=48435 +Language=English +%1 +. +MessageId=48436 +Language=English +%1 +. +MessageId=48437 +Language=English +%1 +. +MessageId=48438 +Language=English +%1 +. +MessageId=48439 +Language=English +%1 +. +MessageId=48440 +Language=English +%1 +. +MessageId=48441 +Language=English +%1 +. +MessageId=48442 +Language=English +%1 +. +MessageId=48443 +Language=English +%1 +. +MessageId=48444 +Language=English +%1 +. +MessageId=48445 +Language=English +%1 +. +MessageId=48446 +Language=English +%1 +. +MessageId=48447 +Language=English +%1 +. +MessageId=48448 +Language=English +%1 +. +MessageId=48449 +Language=English +%1 +. +MessageId=48450 +Language=English +%1 +. +MessageId=48451 +Language=English +%1 +. +MessageId=48452 +Language=English +%1 +. +MessageId=48453 +Language=English +%1 +. +MessageId=48454 +Language=English +%1 +. +MessageId=48455 +Language=English +%1 +. +MessageId=48456 +Language=English +%1 +. +MessageId=48457 +Language=English +%1 +. +MessageId=48458 +Language=English +%1 +. +MessageId=48459 +Language=English +%1 +. +MessageId=48460 +Language=English +%1 +. +MessageId=48461 +Language=English +%1 +. +MessageId=48462 +Language=English +%1 +. +MessageId=48463 +Language=English +%1 +. +MessageId=48464 +Language=English +%1 +. +MessageId=48465 +Language=English +%1 +. +MessageId=48466 +Language=English +%1 +. +MessageId=48467 +Language=English +%1 +. +MessageId=48468 +Language=English +%1 +. +MessageId=48469 +Language=English +%1 +. +MessageId=48470 +Language=English +%1 +. +MessageId=48471 +Language=English +%1 +. +MessageId=48472 +Language=English +%1 +. +MessageId=48473 +Language=English +%1 +. +MessageId=48474 +Language=English +%1 +. +MessageId=48475 +Language=English +%1 +. +MessageId=48476 +Language=English +%1 +. +MessageId=48477 +Language=English +%1 +. +MessageId=48478 +Language=English +%1 +. +MessageId=48479 +Language=English +%1 +. +MessageId=48480 +Language=English +%1 +. +MessageId=48481 +Language=English +%1 +. +MessageId=48482 +Language=English +%1 +. +MessageId=48483 +Language=English +%1 +. +MessageId=48484 +Language=English +%1 +. +MessageId=48485 +Language=English +%1 +. +MessageId=48486 +Language=English +%1 +. +MessageId=48487 +Language=English +%1 +. +MessageId=48488 +Language=English +%1 +. +MessageId=48489 +Language=English +%1 +. +MessageId=48490 +Language=English +%1 +. +MessageId=48491 +Language=English +%1 +. +MessageId=48492 +Language=English +%1 +. +MessageId=48493 +Language=English +%1 +. +MessageId=48494 +Language=English +%1 +. +MessageId=48495 +Language=English +%1 +. +MessageId=48496 +Language=English +%1 +. +MessageId=48497 +Language=English +%1 +. +MessageId=48498 +Language=English +%1 +. +MessageId=48499 +Language=English +%1 +. +MessageId=48500 +Language=English +%1 +. +MessageId=48501 +Language=English +%1 +. +MessageId=48502 +Language=English +%1 +. +MessageId=48503 +Language=English +%1 +. +MessageId=48504 +Language=English +%1 +. +MessageId=48505 +Language=English +%1 +. +MessageId=48506 +Language=English +%1 +. +MessageId=48507 +Language=English +%1 +. +MessageId=48508 +Language=English +%1 +. +MessageId=48509 +Language=English +%1 +. +MessageId=48510 +Language=English +%1 +. +MessageId=48511 +Language=English +%1 +. +MessageId=48512 +Language=English +%1 +. +MessageId=48513 +Language=English +%1 +. +MessageId=48514 +Language=English +%1 +. +MessageId=48515 +Language=English +%1 +. +MessageId=48516 +Language=English +%1 +. +MessageId=48517 +Language=English +%1 +. +MessageId=48518 +Language=English +%1 +. +MessageId=48519 +Language=English +%1 +. +MessageId=48520 +Language=English +%1 +. +MessageId=48521 +Language=English +%1 +. +MessageId=48522 +Language=English +%1 +. +MessageId=48523 +Language=English +%1 +. +MessageId=48524 +Language=English +%1 +. +MessageId=48525 +Language=English +%1 +. +MessageId=48526 +Language=English +%1 +. +MessageId=48527 +Language=English +%1 +. +MessageId=48528 +Language=English +%1 +. +MessageId=48529 +Language=English +%1 +. +MessageId=48530 +Language=English +%1 +. +MessageId=48531 +Language=English +%1 +. +MessageId=48532 +Language=English +%1 +. +MessageId=48533 +Language=English +%1 +. +MessageId=48534 +Language=English +%1 +. +MessageId=48535 +Language=English +%1 +. +MessageId=48536 +Language=English +%1 +. +MessageId=48537 +Language=English +%1 +. +MessageId=48538 +Language=English +%1 +. +MessageId=48539 +Language=English +%1 +. +MessageId=48540 +Language=English +%1 +. +MessageId=48541 +Language=English +%1 +. +MessageId=48542 +Language=English +%1 +. +MessageId=48543 +Language=English +%1 +. +MessageId=48544 +Language=English +%1 +. +MessageId=48545 +Language=English +%1 +. +MessageId=48546 +Language=English +%1 +. +MessageId=48547 +Language=English +%1 +. +MessageId=48548 +Language=English +%1 +. +MessageId=48549 +Language=English +%1 +. +MessageId=48550 +Language=English +%1 +. +MessageId=48551 +Language=English +%1 +. +MessageId=48552 +Language=English +%1 +. +MessageId=48553 +Language=English +%1 +. +MessageId=48554 +Language=English +%1 +. +MessageId=48555 +Language=English +%1 +. +MessageId=48556 +Language=English +%1 +. +MessageId=48557 +Language=English +%1 +. +MessageId=48558 +Language=English +%1 +. +MessageId=48559 +Language=English +%1 +. +MessageId=48560 +Language=English +%1 +. +MessageId=48561 +Language=English +%1 +. +MessageId=48562 +Language=English +%1 +. +MessageId=48563 +Language=English +%1 +. +MessageId=48564 +Language=English +%1 +. +MessageId=48565 +Language=English +%1 +. +MessageId=48566 +Language=English +%1 +. +MessageId=48567 +Language=English +%1 +. +MessageId=48568 +Language=English +%1 +. +MessageId=48569 +Language=English +%1 +. +MessageId=48570 +Language=English +%1 +. +MessageId=48571 +Language=English +%1 +. +MessageId=48572 +Language=English +%1 +. +MessageId=48573 +Language=English +%1 +. +MessageId=48574 +Language=English +%1 +. +MessageId=48575 +Language=English +%1 +. +MessageId=48576 +Language=English +%1 +. +MessageId=48577 +Language=English +%1 +. +MessageId=48578 +Language=English +%1 +. +MessageId=48579 +Language=English +%1 +. +MessageId=48580 +Language=English +%1 +. +MessageId=48581 +Language=English +%1 +. +MessageId=48582 +Language=English +%1 +. +MessageId=48583 +Language=English +%1 +. +MessageId=48584 +Language=English +%1 +. +MessageId=48585 +Language=English +%1 +. +MessageId=48586 +Language=English +%1 +. +MessageId=48587 +Language=English +%1 +. +MessageId=48588 +Language=English +%1 +. +MessageId=48589 +Language=English +%1 +. +MessageId=48590 +Language=English +%1 +. +MessageId=48591 +Language=English +%1 +. +MessageId=48592 +Language=English +%1 +. +MessageId=48593 +Language=English +%1 +. +MessageId=48594 +Language=English +%1 +. +MessageId=48595 +Language=English +%1 +. +MessageId=48596 +Language=English +%1 +. +MessageId=48597 +Language=English +%1 +. +MessageId=48598 +Language=English +%1 +. +MessageId=48599 +Language=English +%1 +. +MessageId=48600 +Language=English +%1 +. +MessageId=48601 +Language=English +%1 +. +MessageId=48602 +Language=English +%1 +. +MessageId=48603 +Language=English +%1 +. +MessageId=48604 +Language=English +%1 +. +MessageId=48605 +Language=English +%1 +. +MessageId=48606 +Language=English +%1 +. +MessageId=48607 +Language=English +%1 +. +MessageId=48608 +Language=English +%1 +. +MessageId=48609 +Language=English +%1 +. +MessageId=48610 +Language=English +%1 +. +MessageId=48611 +Language=English +%1 +. +MessageId=48612 +Language=English +%1 +. +MessageId=48613 +Language=English +%1 +. +MessageId=48614 +Language=English +%1 +. +MessageId=48615 +Language=English +%1 +. +MessageId=48616 +Language=English +%1 +. +MessageId=48617 +Language=English +%1 +. +MessageId=48618 +Language=English +%1 +. +MessageId=48619 +Language=English +%1 +. +MessageId=48620 +Language=English +%1 +. +MessageId=48621 +Language=English +%1 +. +MessageId=48622 +Language=English +%1 +. +MessageId=48623 +Language=English +%1 +. +MessageId=48624 +Language=English +%1 +. +MessageId=48625 +Language=English +%1 +. +MessageId=48626 +Language=English +%1 +. +MessageId=48627 +Language=English +%1 +. +MessageId=48628 +Language=English +%1 +. +MessageId=48629 +Language=English +%1 +. +MessageId=48630 +Language=English +%1 +. +MessageId=48631 +Language=English +%1 +. +MessageId=48632 +Language=English +%1 +. +MessageId=48633 +Language=English +%1 +. +MessageId=48634 +Language=English +%1 +. +MessageId=48635 +Language=English +%1 +. +MessageId=48636 +Language=English +%1 +. +MessageId=48637 +Language=English +%1 +. +MessageId=48638 +Language=English +%1 +. +MessageId=48639 +Language=English +%1 +. +MessageId=48640 +Language=English +%1 +. +MessageId=48641 +Language=English +%1 +. +MessageId=48642 +Language=English +%1 +. +MessageId=48643 +Language=English +%1 +. +MessageId=48644 +Language=English +%1 +. +MessageId=48645 +Language=English +%1 +. +MessageId=48646 +Language=English +%1 +. +MessageId=48647 +Language=English +%1 +. +MessageId=48648 +Language=English +%1 +. +MessageId=48649 +Language=English +%1 +. +MessageId=48650 +Language=English +%1 +. +MessageId=48651 +Language=English +%1 +. +MessageId=48652 +Language=English +%1 +. +MessageId=48653 +Language=English +%1 +. +MessageId=48654 +Language=English +%1 +. +MessageId=48655 +Language=English +%1 +. +MessageId=48656 +Language=English +%1 +. +MessageId=48657 +Language=English +%1 +. +MessageId=48658 +Language=English +%1 +. +MessageId=48659 +Language=English +%1 +. +MessageId=48660 +Language=English +%1 +. +MessageId=48661 +Language=English +%1 +. +MessageId=48662 +Language=English +%1 +. +MessageId=48663 +Language=English +%1 +. +MessageId=48664 +Language=English +%1 +. +MessageId=48665 +Language=English +%1 +. +MessageId=48666 +Language=English +%1 +. +MessageId=48667 +Language=English +%1 +. +MessageId=48668 +Language=English +%1 +. +MessageId=48669 +Language=English +%1 +. +MessageId=48670 +Language=English +%1 +. +MessageId=48671 +Language=English +%1 +. +MessageId=48672 +Language=English +%1 +. +MessageId=48673 +Language=English +%1 +. +MessageId=48674 +Language=English +%1 +. +MessageId=48675 +Language=English +%1 +. +MessageId=48676 +Language=English +%1 +. +MessageId=48677 +Language=English +%1 +. +MessageId=48678 +Language=English +%1 +. +MessageId=48679 +Language=English +%1 +. +MessageId=48680 +Language=English +%1 +. +MessageId=48681 +Language=English +%1 +. +MessageId=48682 +Language=English +%1 +. +MessageId=48683 +Language=English +%1 +. +MessageId=48684 +Language=English +%1 +. +MessageId=48685 +Language=English +%1 +. +MessageId=48686 +Language=English +%1 +. +MessageId=48687 +Language=English +%1 +. +MessageId=48688 +Language=English +%1 +. +MessageId=48689 +Language=English +%1 +. +MessageId=48690 +Language=English +%1 +. +MessageId=48691 +Language=English +%1 +. +MessageId=48692 +Language=English +%1 +. +MessageId=48693 +Language=English +%1 +. +MessageId=48694 +Language=English +%1 +. +MessageId=48695 +Language=English +%1 +. +MessageId=48696 +Language=English +%1 +. +MessageId=48697 +Language=English +%1 +. +MessageId=48698 +Language=English +%1 +. +MessageId=48699 +Language=English +%1 +. +MessageId=48700 +Language=English +%1 +. +MessageId=48701 +Language=English +%1 +. +MessageId=48702 +Language=English +%1 +. +MessageId=48703 +Language=English +%1 +. +MessageId=48704 +Language=English +%1 +. +MessageId=48705 +Language=English +%1 +. +MessageId=48706 +Language=English +%1 +. +MessageId=48707 +Language=English +%1 +. +MessageId=48708 +Language=English +%1 +. +MessageId=48709 +Language=English +%1 +. +MessageId=48710 +Language=English +%1 +. +MessageId=48711 +Language=English +%1 +. +MessageId=48712 +Language=English +%1 +. +MessageId=48713 +Language=English +%1 +. +MessageId=48714 +Language=English +%1 +. +MessageId=48715 +Language=English +%1 +. +MessageId=48716 +Language=English +%1 +. +MessageId=48717 +Language=English +%1 +. +MessageId=48718 +Language=English +%1 +. +MessageId=48719 +Language=English +%1 +. +MessageId=48720 +Language=English +%1 +. +MessageId=48721 +Language=English +%1 +. +MessageId=48722 +Language=English +%1 +. +MessageId=48723 +Language=English +%1 +. +MessageId=48724 +Language=English +%1 +. +MessageId=48725 +Language=English +%1 +. +MessageId=48726 +Language=English +%1 +. +MessageId=48727 +Language=English +%1 +. +MessageId=48728 +Language=English +%1 +. +MessageId=48729 +Language=English +%1 +. +MessageId=48730 +Language=English +%1 +. +MessageId=48731 +Language=English +%1 +. +MessageId=48732 +Language=English +%1 +. +MessageId=48733 +Language=English +%1 +. +MessageId=48734 +Language=English +%1 +. +MessageId=48735 +Language=English +%1 +. +MessageId=48736 +Language=English +%1 +. +MessageId=48737 +Language=English +%1 +. +MessageId=48738 +Language=English +%1 +. +MessageId=48739 +Language=English +%1 +. +MessageId=48740 +Language=English +%1 +. +MessageId=48741 +Language=English +%1 +. +MessageId=48742 +Language=English +%1 +. +MessageId=48743 +Language=English +%1 +. +MessageId=48744 +Language=English +%1 +. +MessageId=48745 +Language=English +%1 +. +MessageId=48746 +Language=English +%1 +. +MessageId=48747 +Language=English +%1 +. +MessageId=48748 +Language=English +%1 +. +MessageId=48749 +Language=English +%1 +. +MessageId=48750 +Language=English +%1 +. +MessageId=48751 +Language=English +%1 +. +MessageId=48752 +Language=English +%1 +. +MessageId=48753 +Language=English +%1 +. +MessageId=48754 +Language=English +%1 +. +MessageId=48755 +Language=English +%1 +. +MessageId=48756 +Language=English +%1 +. +MessageId=48757 +Language=English +%1 +. +MessageId=48758 +Language=English +%1 +. +MessageId=48759 +Language=English +%1 +. +MessageId=48760 +Language=English +%1 +. +MessageId=48761 +Language=English +%1 +. +MessageId=48762 +Language=English +%1 +. +MessageId=48763 +Language=English +%1 +. +MessageId=48764 +Language=English +%1 +. +MessageId=48765 +Language=English +%1 +. +MessageId=48766 +Language=English +%1 +. +MessageId=48767 +Language=English +%1 +. +MessageId=48768 +Language=English +%1 +. +MessageId=48769 +Language=English +%1 +. +MessageId=48770 +Language=English +%1 +. +MessageId=48771 +Language=English +%1 +. +MessageId=48772 +Language=English +%1 +. +MessageId=48773 +Language=English +%1 +. +MessageId=48774 +Language=English +%1 +. +MessageId=48775 +Language=English +%1 +. +MessageId=48776 +Language=English +%1 +. +MessageId=48777 +Language=English +%1 +. +MessageId=48778 +Language=English +%1 +. +MessageId=48779 +Language=English +%1 +. +MessageId=48780 +Language=English +%1 +. +MessageId=48781 +Language=English +%1 +. +MessageId=48782 +Language=English +%1 +. +MessageId=48783 +Language=English +%1 +. +MessageId=48784 +Language=English +%1 +. +MessageId=48785 +Language=English +%1 +. +MessageId=48786 +Language=English +%1 +. +MessageId=48787 +Language=English +%1 +. +MessageId=48788 +Language=English +%1 +. +MessageId=48789 +Language=English +%1 +. +MessageId=48790 +Language=English +%1 +. +MessageId=48791 +Language=English +%1 +. +MessageId=48792 +Language=English +%1 +. +MessageId=48793 +Language=English +%1 +. +MessageId=48794 +Language=English +%1 +. +MessageId=48795 +Language=English +%1 +. +MessageId=48796 +Language=English +%1 +. +MessageId=48797 +Language=English +%1 +. +MessageId=48798 +Language=English +%1 +. +MessageId=48799 +Language=English +%1 +. +MessageId=48800 +Language=English +%1 +. +MessageId=48801 +Language=English +%1 +. +MessageId=48802 +Language=English +%1 +. +MessageId=48803 +Language=English +%1 +. +MessageId=48804 +Language=English +%1 +. +MessageId=48805 +Language=English +%1 +. +MessageId=48806 +Language=English +%1 +. +MessageId=48807 +Language=English +%1 +. +MessageId=48808 +Language=English +%1 +. +MessageId=48809 +Language=English +%1 +. +MessageId=48810 +Language=English +%1 +. +MessageId=48811 +Language=English +%1 +. +MessageId=48812 +Language=English +%1 +. +MessageId=48813 +Language=English +%1 +. +MessageId=48814 +Language=English +%1 +. +MessageId=48815 +Language=English +%1 +. +MessageId=48816 +Language=English +%1 +. +MessageId=48817 +Language=English +%1 +. +MessageId=48818 +Language=English +%1 +. +MessageId=48819 +Language=English +%1 +. +MessageId=48820 +Language=English +%1 +. +MessageId=48821 +Language=English +%1 +. +MessageId=48822 +Language=English +%1 +. +MessageId=48823 +Language=English +%1 +. +MessageId=48824 +Language=English +%1 +. +MessageId=48825 +Language=English +%1 +. +MessageId=48826 +Language=English +%1 +. +MessageId=48827 +Language=English +%1 +. +MessageId=48828 +Language=English +%1 +. +MessageId=48829 +Language=English +%1 +. +MessageId=48830 +Language=English +%1 +. +MessageId=48831 +Language=English +%1 +. +MessageId=48832 +Language=English +%1 +. +MessageId=48833 +Language=English +%1 +. +MessageId=48834 +Language=English +%1 +. +MessageId=48835 +Language=English +%1 +. +MessageId=48836 +Language=English +%1 +. +MessageId=48837 +Language=English +%1 +. +MessageId=48838 +Language=English +%1 +. +MessageId=48839 +Language=English +%1 +. +MessageId=48840 +Language=English +%1 +. +MessageId=48841 +Language=English +%1 +. +MessageId=48842 +Language=English +%1 +. +MessageId=48843 +Language=English +%1 +. +MessageId=48844 +Language=English +%1 +. +MessageId=48845 +Language=English +%1 +. +MessageId=48846 +Language=English +%1 +. +MessageId=48847 +Language=English +%1 +. +MessageId=48848 +Language=English +%1 +. +MessageId=48849 +Language=English +%1 +. +MessageId=48850 +Language=English +%1 +. +MessageId=48851 +Language=English +%1 +. +MessageId=48852 +Language=English +%1 +. +MessageId=48853 +Language=English +%1 +. +MessageId=48854 +Language=English +%1 +. +MessageId=48855 +Language=English +%1 +. +MessageId=48856 +Language=English +%1 +. +MessageId=48857 +Language=English +%1 +. +MessageId=48858 +Language=English +%1 +. +MessageId=48859 +Language=English +%1 +. +MessageId=48860 +Language=English +%1 +. +MessageId=48861 +Language=English +%1 +. +MessageId=48862 +Language=English +%1 +. +MessageId=48863 +Language=English +%1 +. +MessageId=48864 +Language=English +%1 +. +MessageId=48865 +Language=English +%1 +. +MessageId=48866 +Language=English +%1 +. +MessageId=48867 +Language=English +%1 +. +MessageId=48868 +Language=English +%1 +. +MessageId=48869 +Language=English +%1 +. +MessageId=48870 +Language=English +%1 +. +MessageId=48871 +Language=English +%1 +. +MessageId=48872 +Language=English +%1 +. +MessageId=48873 +Language=English +%1 +. +MessageId=48874 +Language=English +%1 +. +MessageId=48875 +Language=English +%1 +. +MessageId=48876 +Language=English +%1 +. +MessageId=48877 +Language=English +%1 +. +MessageId=48878 +Language=English +%1 +. +MessageId=48879 +Language=English +%1 +. +MessageId=48880 +Language=English +%1 +. +MessageId=48881 +Language=English +%1 +. +MessageId=48882 +Language=English +%1 +. +MessageId=48883 +Language=English +%1 +. +MessageId=48884 +Language=English +%1 +. +MessageId=48885 +Language=English +%1 +. +MessageId=48886 +Language=English +%1 +. +MessageId=48887 +Language=English +%1 +. +MessageId=48888 +Language=English +%1 +. +MessageId=48889 +Language=English +%1 +. +MessageId=48890 +Language=English +%1 +. +MessageId=48891 +Language=English +%1 +. +MessageId=48892 +Language=English +%1 +. +MessageId=48893 +Language=English +%1 +. +MessageId=48894 +Language=English +%1 +. +MessageId=48895 +Language=English +%1 +. +MessageId=48896 +Language=English +%1 +. +MessageId=48897 +Language=English +%1 +. +MessageId=48898 +Language=English +%1 +. +MessageId=48899 +Language=English +%1 +. +MessageId=48900 +Language=English +%1 +. +MessageId=48901 +Language=English +%1 +. +MessageId=48902 +Language=English +%1 +. +MessageId=48903 +Language=English +%1 +. +MessageId=48904 +Language=English +%1 +. +MessageId=48905 +Language=English +%1 +. +MessageId=48906 +Language=English +%1 +. +MessageId=48907 +Language=English +%1 +. +MessageId=48908 +Language=English +%1 +. +MessageId=48909 +Language=English +%1 +. +MessageId=48910 +Language=English +%1 +. +MessageId=48911 +Language=English +%1 +. +MessageId=48912 +Language=English +%1 +. +MessageId=48913 +Language=English +%1 +. +MessageId=48914 +Language=English +%1 +. +MessageId=48915 +Language=English +%1 +. +MessageId=48916 +Language=English +%1 +. +MessageId=48917 +Language=English +%1 +. +MessageId=48918 +Language=English +%1 +. +MessageId=48919 +Language=English +%1 +. +MessageId=48920 +Language=English +%1 +. +MessageId=48921 +Language=English +%1 +. +MessageId=48922 +Language=English +%1 +. +MessageId=48923 +Language=English +%1 +. +MessageId=48924 +Language=English +%1 +. +MessageId=48925 +Language=English +%1 +. +MessageId=48926 +Language=English +%1 +. +MessageId=48927 +Language=English +%1 +. +MessageId=48928 +Language=English +%1 +. +MessageId=48929 +Language=English +%1 +. +MessageId=48930 +Language=English +%1 +. +MessageId=48931 +Language=English +%1 +. +MessageId=48932 +Language=English +%1 +. +MessageId=48933 +Language=English +%1 +. +MessageId=48934 +Language=English +%1 +. +MessageId=48935 +Language=English +%1 +. +MessageId=48936 +Language=English +%1 +. +MessageId=48937 +Language=English +%1 +. +MessageId=48938 +Language=English +%1 +. +MessageId=48939 +Language=English +%1 +. +MessageId=48940 +Language=English +%1 +. +MessageId=48941 +Language=English +%1 +. +MessageId=48942 +Language=English +%1 +. +MessageId=48943 +Language=English +%1 +. +MessageId=48944 +Language=English +%1 +. +MessageId=48945 +Language=English +%1 +. +MessageId=48946 +Language=English +%1 +. +MessageId=48947 +Language=English +%1 +. +MessageId=48948 +Language=English +%1 +. +MessageId=48949 +Language=English +%1 +. +MessageId=48950 +Language=English +%1 +. +MessageId=48951 +Language=English +%1 +. +MessageId=48952 +Language=English +%1 +. +MessageId=48953 +Language=English +%1 +. +MessageId=48954 +Language=English +%1 +. +MessageId=48955 +Language=English +%1 +. +MessageId=48956 +Language=English +%1 +. +MessageId=48957 +Language=English +%1 +. +MessageId=48958 +Language=English +%1 +. +MessageId=48959 +Language=English +%1 +. +MessageId=48960 +Language=English +%1 +. +MessageId=48961 +Language=English +%1 +. +MessageId=48962 +Language=English +%1 +. +MessageId=48963 +Language=English +%1 +. +MessageId=48964 +Language=English +%1 +. +MessageId=48965 +Language=English +%1 +. +MessageId=48966 +Language=English +%1 +. +MessageId=48967 +Language=English +%1 +. +MessageId=48968 +Language=English +%1 +. +MessageId=48969 +Language=English +%1 +. +MessageId=48970 +Language=English +%1 +. +MessageId=48971 +Language=English +%1 +. +MessageId=48972 +Language=English +%1 +. +MessageId=48973 +Language=English +%1 +. +MessageId=48974 +Language=English +%1 +. +MessageId=48975 +Language=English +%1 +. +MessageId=48976 +Language=English +%1 +. +MessageId=48977 +Language=English +%1 +. +MessageId=48978 +Language=English +%1 +. +MessageId=48979 +Language=English +%1 +. +MessageId=48980 +Language=English +%1 +. +MessageId=48981 +Language=English +%1 +. +MessageId=48982 +Language=English +%1 +. +MessageId=48983 +Language=English +%1 +. +MessageId=48984 +Language=English +%1 +. +MessageId=48985 +Language=English +%1 +. +MessageId=48986 +Language=English +%1 +. +MessageId=48987 +Language=English +%1 +. +MessageId=48988 +Language=English +%1 +. +MessageId=48989 +Language=English +%1 +. +MessageId=48990 +Language=English +%1 +. +MessageId=48991 +Language=English +%1 +. +MessageId=48992 +Language=English +%1 +. +MessageId=48993 +Language=English +%1 +. +MessageId=48994 +Language=English +%1 +. +MessageId=48995 +Language=English +%1 +. +MessageId=48996 +Language=English +%1 +. +MessageId=48997 +Language=English +%1 +. +MessageId=48998 +Language=English +%1 +. +MessageId=48999 +Language=English +%1 +. +MessageId=49000 +Language=English +%1 +. +MessageId=49001 +Language=English +%1 +. +MessageId=49002 +Language=English +%1 +. +MessageId=49003 +Language=English +%1 +. +MessageId=49004 +Language=English +%1 +. +MessageId=49005 +Language=English +%1 +. +MessageId=49006 +Language=English +%1 +. +MessageId=49007 +Language=English +%1 +. +MessageId=49008 +Language=English +%1 +. +MessageId=49009 +Language=English +%1 +. +MessageId=49010 +Language=English +%1 +. +MessageId=49011 +Language=English +%1 +. +MessageId=49012 +Language=English +%1 +. +MessageId=49013 +Language=English +%1 +. +MessageId=49014 +Language=English +%1 +. +MessageId=49015 +Language=English +%1 +. +MessageId=49016 +Language=English +%1 +. +MessageId=49017 +Language=English +%1 +. +MessageId=49018 +Language=English +%1 +. +MessageId=49019 +Language=English +%1 +. +MessageId=49020 +Language=English +%1 +. +MessageId=49021 +Language=English +%1 +. +MessageId=49022 +Language=English +%1 +. +MessageId=49023 +Language=English +%1 +. +MessageId=49024 +Language=English +%1 +. +MessageId=49025 +Language=English +%1 +. +MessageId=49026 +Language=English +%1 +. +MessageId=49027 +Language=English +%1 +. +MessageId=49028 +Language=English +%1 +. +MessageId=49029 +Language=English +%1 +. +MessageId=49030 +Language=English +%1 +. +MessageId=49031 +Language=English +%1 +. +MessageId=49032 +Language=English +%1 +. +MessageId=49033 +Language=English +%1 +. +MessageId=49034 +Language=English +%1 +. +MessageId=49035 +Language=English +%1 +. +MessageId=49036 +Language=English +%1 +. +MessageId=49037 +Language=English +%1 +. +MessageId=49038 +Language=English +%1 +. +MessageId=49039 +Language=English +%1 +. +MessageId=49040 +Language=English +%1 +. +MessageId=49041 +Language=English +%1 +. +MessageId=49042 +Language=English +%1 +. +MessageId=49043 +Language=English +%1 +. +MessageId=49044 +Language=English +%1 +. +MessageId=49045 +Language=English +%1 +. +MessageId=49046 +Language=English +%1 +. +MessageId=49047 +Language=English +%1 +. +MessageId=49048 +Language=English +%1 +. +MessageId=49049 +Language=English +%1 +. +MessageId=49050 +Language=English +%1 +. +MessageId=49051 +Language=English +%1 +. +MessageId=49052 +Language=English +%1 +. +MessageId=49053 +Language=English +%1 +. +MessageId=49054 +Language=English +%1 +. +MessageId=49055 +Language=English +%1 +. +MessageId=49056 +Language=English +%1 +. +MessageId=49057 +Language=English +%1 +. +MessageId=49058 +Language=English +%1 +. +MessageId=49059 +Language=English +%1 +. +MessageId=49060 +Language=English +%1 +. +MessageId=49061 +Language=English +%1 +. +MessageId=49062 +Language=English +%1 +. +MessageId=49063 +Language=English +%1 +. +MessageId=49064 +Language=English +%1 +. +MessageId=49065 +Language=English +%1 +. +MessageId=49066 +Language=English +%1 +. +MessageId=49067 +Language=English +%1 +. +MessageId=49068 +Language=English +%1 +. +MessageId=49069 +Language=English +%1 +. +MessageId=49070 +Language=English +%1 +. +MessageId=49071 +Language=English +%1 +. +MessageId=49072 +Language=English +%1 +. +MessageId=49073 +Language=English +%1 +. +MessageId=49074 +Language=English +%1 +. +MessageId=49075 +Language=English +%1 +. +MessageId=49076 +Language=English +%1 +. +MessageId=49077 +Language=English +%1 +. +MessageId=49078 +Language=English +%1 +. +MessageId=49079 +Language=English +%1 +. +MessageId=49080 +Language=English +%1 +. +MessageId=49081 +Language=English +%1 +. +MessageId=49082 +Language=English +%1 +. +MessageId=49083 +Language=English +%1 +. +MessageId=49084 +Language=English +%1 +. +MessageId=49085 +Language=English +%1 +. +MessageId=49086 +Language=English +%1 +. +MessageId=49087 +Language=English +%1 +. +MessageId=49088 +Language=English +%1 +. +MessageId=49089 +Language=English +%1 +. +MessageId=49090 +Language=English +%1 +. +MessageId=49091 +Language=English +%1 +. +MessageId=49092 +Language=English +%1 +. +MessageId=49093 +Language=English +%1 +. +MessageId=49094 +Language=English +%1 +. +MessageId=49095 +Language=English +%1 +. +MessageId=49096 +Language=English +%1 +. +MessageId=49097 +Language=English +%1 +. +MessageId=49098 +Language=English +%1 +. +MessageId=49099 +Language=English +%1 +. +MessageId=49100 +Language=English +%1 +. +MessageId=49101 +Language=English +%1 +. +MessageId=49102 +Language=English +%1 +. +MessageId=49103 +Language=English +%1 +. +MessageId=49104 +Language=English +%1 +. +MessageId=49105 +Language=English +%1 +. +MessageId=49106 +Language=English +%1 +. +MessageId=49107 +Language=English +%1 +. +MessageId=49108 +Language=English +%1 +. +MessageId=49109 +Language=English +%1 +. +MessageId=49110 +Language=English +%1 +. +MessageId=49111 +Language=English +%1 +. +MessageId=49112 +Language=English +%1 +. +MessageId=49113 +Language=English +%1 +. +MessageId=49114 +Language=English +%1 +. +MessageId=49115 +Language=English +%1 +. +MessageId=49116 +Language=English +%1 +. +MessageId=49117 +Language=English +%1 +. +MessageId=49118 +Language=English +%1 +. +MessageId=49119 +Language=English +%1 +. +MessageId=49120 +Language=English +%1 +. +MessageId=49121 +Language=English +%1 +. +MessageId=49122 +Language=English +%1 +. +MessageId=49123 +Language=English +%1 +. +MessageId=49124 +Language=English +%1 +. +MessageId=49125 +Language=English +%1 +. +MessageId=49126 +Language=English +%1 +. +MessageId=49127 +Language=English +%1 +. +MessageId=49128 +Language=English +%1 +. +MessageId=49129 +Language=English +%1 +. +MessageId=49130 +Language=English +%1 +. +MessageId=49131 +Language=English +%1 +. +MessageId=49132 +Language=English +%1 +. +MessageId=49133 +Language=English +%1 +. +MessageId=49134 +Language=English +%1 +. +MessageId=49135 +Language=English +%1 +. +MessageId=49136 +Language=English +%1 +. +MessageId=49137 +Language=English +%1 +. +MessageId=49138 +Language=English +%1 +. +MessageId=49139 +Language=English +%1 +. +MessageId=49140 +Language=English +%1 +. +MessageId=49141 +Language=English +%1 +. +MessageId=49142 +Language=English +%1 +. +MessageId=49143 +Language=English +%1 +. +MessageId=49144 +Language=English +%1 +. +MessageId=49145 +Language=English +%1 +. +MessageId=49146 +Language=English +%1 +. +MessageId=49147 +Language=English +%1 +. +MessageId=49148 +Language=English +%1 +. +MessageId=49149 +Language=English +%1 +. +MessageId=49150 +Language=English +%1 +. +MessageId=49151 +Language=English +%1 +. +MessageId=49152 +Language=English +%1 +. +MessageId=49153 +Language=English +%1 +. +MessageId=49154 +Language=English +%1 +. +MessageId=49155 +Language=English +%1 +. +MessageId=49156 +Language=English +%1 +. +MessageId=49157 +Language=English +%1 +. +MessageId=49158 +Language=English +%1 +. +MessageId=49159 +Language=English +%1 +. +MessageId=49160 +Language=English +%1 +. +MessageId=49161 +Language=English +%1 +. +MessageId=49162 +Language=English +%1 +. +MessageId=49163 +Language=English +%1 +. +MessageId=49164 +Language=English +%1 +. +MessageId=49165 +Language=English +%1 +. +MessageId=49166 +Language=English +%1 +. +MessageId=49167 +Language=English +%1 +. +MessageId=49168 +Language=English +%1 +. +MessageId=49169 +Language=English +%1 +. +MessageId=49170 +Language=English +%1 +. +MessageId=49171 +Language=English +%1 +. +MessageId=49172 +Language=English +%1 +. +MessageId=49173 +Language=English +%1 +. +MessageId=49174 +Language=English +%1 +. +MessageId=49175 +Language=English +%1 +. +MessageId=49176 +Language=English +%1 +. +MessageId=49177 +Language=English +%1 +. +MessageId=49178 +Language=English +%1 +. +MessageId=49179 +Language=English +%1 +. +MessageId=49180 +Language=English +%1 +. +MessageId=49181 +Language=English +%1 +. +MessageId=49182 +Language=English +%1 +. +MessageId=49183 +Language=English +%1 +. +MessageId=49184 +Language=English +%1 +. +MessageId=49185 +Language=English +%1 +. +MessageId=49186 +Language=English +%1 +. +MessageId=49187 +Language=English +%1 +. +MessageId=49188 +Language=English +%1 +. +MessageId=49189 +Language=English +%1 +. +MessageId=49190 +Language=English +%1 +. +MessageId=49191 +Language=English +%1 +. +MessageId=49192 +Language=English +%1 +. +MessageId=49193 +Language=English +%1 +. +MessageId=49194 +Language=English +%1 +. +MessageId=49195 +Language=English +%1 +. +MessageId=49196 +Language=English +%1 +. +MessageId=49197 +Language=English +%1 +. +MessageId=49198 +Language=English +%1 +. +MessageId=49199 +Language=English +%1 +. +MessageId=49200 +Language=English +%1 +. +MessageId=49201 +Language=English +%1 +. +MessageId=49202 +Language=English +%1 +. +MessageId=49203 +Language=English +%1 +. +MessageId=49204 +Language=English +%1 +. +MessageId=49205 +Language=English +%1 +. +MessageId=49206 +Language=English +%1 +. +MessageId=49207 +Language=English +%1 +. +MessageId=49208 +Language=English +%1 +. +MessageId=49209 +Language=English +%1 +. +MessageId=49210 +Language=English +%1 +. +MessageId=49211 +Language=English +%1 +. +MessageId=49212 +Language=English +%1 +. +MessageId=49213 +Language=English +%1 +. +MessageId=49214 +Language=English +%1 +. +MessageId=49215 +Language=English +%1 +. +MessageId=49216 +Language=English +%1 +. +MessageId=49217 +Language=English +%1 +. +MessageId=49218 +Language=English +%1 +. +MessageId=49219 +Language=English +%1 +. +MessageId=49220 +Language=English +%1 +. +MessageId=49221 +Language=English +%1 +. +MessageId=49222 +Language=English +%1 +. +MessageId=49223 +Language=English +%1 +. +MessageId=49224 +Language=English +%1 +. +MessageId=49225 +Language=English +%1 +. +MessageId=49226 +Language=English +%1 +. +MessageId=49227 +Language=English +%1 +. +MessageId=49228 +Language=English +%1 +. +MessageId=49229 +Language=English +%1 +. +MessageId=49230 +Language=English +%1 +. +MessageId=49231 +Language=English +%1 +. +MessageId=49232 +Language=English +%1 +. +MessageId=49233 +Language=English +%1 +. +MessageId=49234 +Language=English +%1 +. +MessageId=49235 +Language=English +%1 +. +MessageId=49236 +Language=English +%1 +. +MessageId=49237 +Language=English +%1 +. +MessageId=49238 +Language=English +%1 +. +MessageId=49239 +Language=English +%1 +. +MessageId=49240 +Language=English +%1 +. +MessageId=49241 +Language=English +%1 +. +MessageId=49242 +Language=English +%1 +. +MessageId=49243 +Language=English +%1 +. +MessageId=49244 +Language=English +%1 +. +MessageId=49245 +Language=English +%1 +. +MessageId=49246 +Language=English +%1 +. +MessageId=49247 +Language=English +%1 +. +MessageId=49248 +Language=English +%1 +. +MessageId=49249 +Language=English +%1 +. +MessageId=49250 +Language=English +%1 +. +MessageId=49251 +Language=English +%1 +. +MessageId=49252 +Language=English +%1 +. +MessageId=49253 +Language=English +%1 +. +MessageId=49254 +Language=English +%1 +. +MessageId=49255 +Language=English +%1 +. +MessageId=49256 +Language=English +%1 +. +MessageId=49257 +Language=English +%1 +. +MessageId=49258 +Language=English +%1 +. +MessageId=49259 +Language=English +%1 +. +MessageId=49260 +Language=English +%1 +. +MessageId=49261 +Language=English +%1 +. +MessageId=49262 +Language=English +%1 +. +MessageId=49263 +Language=English +%1 +. +MessageId=49264 +Language=English +%1 +. +MessageId=49265 +Language=English +%1 +. +MessageId=49266 +Language=English +%1 +. +MessageId=49267 +Language=English +%1 +. +MessageId=49268 +Language=English +%1 +. +MessageId=49269 +Language=English +%1 +. +MessageId=49270 +Language=English +%1 +. +MessageId=49271 +Language=English +%1 +. +MessageId=49272 +Language=English +%1 +. +MessageId=49273 +Language=English +%1 +. +MessageId=49274 +Language=English +%1 +. +MessageId=49275 +Language=English +%1 +. +MessageId=49276 +Language=English +%1 +. +MessageId=49277 +Language=English +%1 +. +MessageId=49278 +Language=English +%1 +. +MessageId=49279 +Language=English +%1 +. +MessageId=49280 +Language=English +%1 +. +MessageId=49281 +Language=English +%1 +. +MessageId=49282 +Language=English +%1 +. +MessageId=49283 +Language=English +%1 +. +MessageId=49284 +Language=English +%1 +. +MessageId=49285 +Language=English +%1 +. +MessageId=49286 +Language=English +%1 +. +MessageId=49287 +Language=English +%1 +. +MessageId=49288 +Language=English +%1 +. +MessageId=49289 +Language=English +%1 +. +MessageId=49290 +Language=English +%1 +. +MessageId=49291 +Language=English +%1 +. +MessageId=49292 +Language=English +%1 +. +MessageId=49293 +Language=English +%1 +. +MessageId=49294 +Language=English +%1 +. +MessageId=49295 +Language=English +%1 +. +MessageId=49296 +Language=English +%1 +. +MessageId=49297 +Language=English +%1 +. +MessageId=49298 +Language=English +%1 +. +MessageId=49299 +Language=English +%1 +. +MessageId=49300 +Language=English +%1 +. +MessageId=49301 +Language=English +%1 +. +MessageId=49302 +Language=English +%1 +. +MessageId=49303 +Language=English +%1 +. +MessageId=49304 +Language=English +%1 +. +MessageId=49305 +Language=English +%1 +. +MessageId=49306 +Language=English +%1 +. +MessageId=49307 +Language=English +%1 +. +MessageId=49308 +Language=English +%1 +. +MessageId=49309 +Language=English +%1 +. +MessageId=49310 +Language=English +%1 +. +MessageId=49311 +Language=English +%1 +. +MessageId=49312 +Language=English +%1 +. +MessageId=49313 +Language=English +%1 +. +MessageId=49314 +Language=English +%1 +. +MessageId=49315 +Language=English +%1 +. +MessageId=49316 +Language=English +%1 +. +MessageId=49317 +Language=English +%1 +. +MessageId=49318 +Language=English +%1 +. +MessageId=49319 +Language=English +%1 +. +MessageId=49320 +Language=English +%1 +. +MessageId=49321 +Language=English +%1 +. +MessageId=49322 +Language=English +%1 +. +MessageId=49323 +Language=English +%1 +. +MessageId=49324 +Language=English +%1 +. +MessageId=49325 +Language=English +%1 +. +MessageId=49326 +Language=English +%1 +. +MessageId=49327 +Language=English +%1 +. +MessageId=49328 +Language=English +%1 +. +MessageId=49329 +Language=English +%1 +. +MessageId=49330 +Language=English +%1 +. +MessageId=49331 +Language=English +%1 +. +MessageId=49332 +Language=English +%1 +. +MessageId=49333 +Language=English +%1 +. +MessageId=49334 +Language=English +%1 +. +MessageId=49335 +Language=English +%1 +. +MessageId=49336 +Language=English +%1 +. +MessageId=49337 +Language=English +%1 +. +MessageId=49338 +Language=English +%1 +. +MessageId=49339 +Language=English +%1 +. +MessageId=49340 +Language=English +%1 +. +MessageId=49341 +Language=English +%1 +. +MessageId=49342 +Language=English +%1 +. +MessageId=49343 +Language=English +%1 +. +MessageId=49344 +Language=English +%1 +. +MessageId=49345 +Language=English +%1 +. +MessageId=49346 +Language=English +%1 +. +MessageId=49347 +Language=English +%1 +. +MessageId=49348 +Language=English +%1 +. +MessageId=49349 +Language=English +%1 +. +MessageId=49350 +Language=English +%1 +. +MessageId=49351 +Language=English +%1 +. +MessageId=49352 +Language=English +%1 +. +MessageId=49353 +Language=English +%1 +. +MessageId=49354 +Language=English +%1 +. +MessageId=49355 +Language=English +%1 +. +MessageId=49356 +Language=English +%1 +. +MessageId=49357 +Language=English +%1 +. +MessageId=49358 +Language=English +%1 +. +MessageId=49359 +Language=English +%1 +. +MessageId=49360 +Language=English +%1 +. +MessageId=49361 +Language=English +%1 +. +MessageId=49362 +Language=English +%1 +. +MessageId=49363 +Language=English +%1 +. +MessageId=49364 +Language=English +%1 +. +MessageId=49365 +Language=English +%1 +. +MessageId=49366 +Language=English +%1 +. +MessageId=49367 +Language=English +%1 +. +MessageId=49368 +Language=English +%1 +. +MessageId=49369 +Language=English +%1 +. +MessageId=49370 +Language=English +%1 +. +MessageId=49371 +Language=English +%1 +. +MessageId=49372 +Language=English +%1 +. +MessageId=49373 +Language=English +%1 +. +MessageId=49374 +Language=English +%1 +. +MessageId=49375 +Language=English +%1 +. +MessageId=49376 +Language=English +%1 +. +MessageId=49377 +Language=English +%1 +. +MessageId=49378 +Language=English +%1 +. +MessageId=49379 +Language=English +%1 +. +MessageId=49380 +Language=English +%1 +. +MessageId=49381 +Language=English +%1 +. +MessageId=49382 +Language=English +%1 +. +MessageId=49383 +Language=English +%1 +. +MessageId=49384 +Language=English +%1 +. +MessageId=49385 +Language=English +%1 +. +MessageId=49386 +Language=English +%1 +. +MessageId=49387 +Language=English +%1 +. +MessageId=49388 +Language=English +%1 +. +MessageId=49389 +Language=English +%1 +. +MessageId=49390 +Language=English +%1 +. +MessageId=49391 +Language=English +%1 +. +MessageId=49392 +Language=English +%1 +. +MessageId=49393 +Language=English +%1 +. +MessageId=49394 +Language=English +%1 +. +MessageId=49395 +Language=English +%1 +. +MessageId=49396 +Language=English +%1 +. +MessageId=49397 +Language=English +%1 +. +MessageId=49398 +Language=English +%1 +. +MessageId=49399 +Language=English +%1 +. +MessageId=49400 +Language=English +%1 +. +MessageId=49401 +Language=English +%1 +. +MessageId=49402 +Language=English +%1 +. +MessageId=49403 +Language=English +%1 +. +MessageId=49404 +Language=English +%1 +. +MessageId=49405 +Language=English +%1 +. +MessageId=49406 +Language=English +%1 +. +MessageId=49407 +Language=English +%1 +. +MessageId=49408 +Language=English +%1 +. +MessageId=49409 +Language=English +%1 +. +MessageId=49410 +Language=English +%1 +. +MessageId=49411 +Language=English +%1 +. +MessageId=49412 +Language=English +%1 +. +MessageId=49413 +Language=English +%1 +. +MessageId=49414 +Language=English +%1 +. +MessageId=49415 +Language=English +%1 +. +MessageId=49416 +Language=English +%1 +. +MessageId=49417 +Language=English +%1 +. +MessageId=49418 +Language=English +%1 +. +MessageId=49419 +Language=English +%1 +. +MessageId=49420 +Language=English +%1 +. +MessageId=49421 +Language=English +%1 +. +MessageId=49422 +Language=English +%1 +. +MessageId=49423 +Language=English +%1 +. +MessageId=49424 +Language=English +%1 +. +MessageId=49425 +Language=English +%1 +. +MessageId=49426 +Language=English +%1 +. +MessageId=49427 +Language=English +%1 +. +MessageId=49428 +Language=English +%1 +. +MessageId=49429 +Language=English +%1 +. +MessageId=49430 +Language=English +%1 +. +MessageId=49431 +Language=English +%1 +. +MessageId=49432 +Language=English +%1 +. +MessageId=49433 +Language=English +%1 +. +MessageId=49434 +Language=English +%1 +. +MessageId=49435 +Language=English +%1 +. +MessageId=49436 +Language=English +%1 +. +MessageId=49437 +Language=English +%1 +. +MessageId=49438 +Language=English +%1 +. +MessageId=49439 +Language=English +%1 +. +MessageId=49440 +Language=English +%1 +. +MessageId=49441 +Language=English +%1 +. +MessageId=49442 +Language=English +%1 +. +MessageId=49443 +Language=English +%1 +. +MessageId=49444 +Language=English +%1 +. +MessageId=49445 +Language=English +%1 +. +MessageId=49446 +Language=English +%1 +. +MessageId=49447 +Language=English +%1 +. +MessageId=49448 +Language=English +%1 +. +MessageId=49449 +Language=English +%1 +. +MessageId=49450 +Language=English +%1 +. +MessageId=49451 +Language=English +%1 +. +MessageId=49452 +Language=English +%1 +. +MessageId=49453 +Language=English +%1 +. +MessageId=49454 +Language=English +%1 +. +MessageId=49455 +Language=English +%1 +. +MessageId=49456 +Language=English +%1 +. +MessageId=49457 +Language=English +%1 +. +MessageId=49458 +Language=English +%1 +. +MessageId=49459 +Language=English +%1 +. +MessageId=49460 +Language=English +%1 +. +MessageId=49461 +Language=English +%1 +. +MessageId=49462 +Language=English +%1 +. +MessageId=49463 +Language=English +%1 +. +MessageId=49464 +Language=English +%1 +. +MessageId=49465 +Language=English +%1 +. +MessageId=49466 +Language=English +%1 +. +MessageId=49467 +Language=English +%1 +. +MessageId=49468 +Language=English +%1 +. +MessageId=49469 +Language=English +%1 +. +MessageId=49470 +Language=English +%1 +. +MessageId=49471 +Language=English +%1 +. +MessageId=49472 +Language=English +%1 +. +MessageId=49473 +Language=English +%1 +. +MessageId=49474 +Language=English +%1 +. +MessageId=49475 +Language=English +%1 +. +MessageId=49476 +Language=English +%1 +. +MessageId=49477 +Language=English +%1 +. +MessageId=49478 +Language=English +%1 +. +MessageId=49479 +Language=English +%1 +. +MessageId=49480 +Language=English +%1 +. +MessageId=49481 +Language=English +%1 +. +MessageId=49482 +Language=English +%1 +. +MessageId=49483 +Language=English +%1 +. +MessageId=49484 +Language=English +%1 +. +MessageId=49485 +Language=English +%1 +. +MessageId=49486 +Language=English +%1 +. +MessageId=49487 +Language=English +%1 +. +MessageId=49488 +Language=English +%1 +. +MessageId=49489 +Language=English +%1 +. +MessageId=49490 +Language=English +%1 +. +MessageId=49491 +Language=English +%1 +. +MessageId=49492 +Language=English +%1 +. +MessageId=49493 +Language=English +%1 +. +MessageId=49494 +Language=English +%1 +. +MessageId=49495 +Language=English +%1 +. +MessageId=49496 +Language=English +%1 +. +MessageId=49497 +Language=English +%1 +. +MessageId=49498 +Language=English +%1 +. +MessageId=49499 +Language=English +%1 +. +MessageId=49500 +Language=English +%1 +. +MessageId=49501 +Language=English +%1 +. +MessageId=49502 +Language=English +%1 +. +MessageId=49503 +Language=English +%1 +. +MessageId=49504 +Language=English +%1 +. +MessageId=49505 +Language=English +%1 +. +MessageId=49506 +Language=English +%1 +. +MessageId=49507 +Language=English +%1 +. +MessageId=49508 +Language=English +%1 +. +MessageId=49509 +Language=English +%1 +. +MessageId=49510 +Language=English +%1 +. +MessageId=49511 +Language=English +%1 +. +MessageId=49512 +Language=English +%1 +. +MessageId=49513 +Language=English +%1 +. +MessageId=49514 +Language=English +%1 +. +MessageId=49515 +Language=English +%1 +. +MessageId=49516 +Language=English +%1 +. +MessageId=49517 +Language=English +%1 +. +MessageId=49518 +Language=English +%1 +. +MessageId=49519 +Language=English +%1 +. +MessageId=49520 +Language=English +%1 +. +MessageId=49521 +Language=English +%1 +. +MessageId=49522 +Language=English +%1 +. +MessageId=49523 +Language=English +%1 +. +MessageId=49524 +Language=English +%1 +. +MessageId=49525 +Language=English +%1 +. +MessageId=49526 +Language=English +%1 +. +MessageId=49527 +Language=English +%1 +. +MessageId=49528 +Language=English +%1 +. +MessageId=49529 +Language=English +%1 +. +MessageId=49530 +Language=English +%1 +. +MessageId=49531 +Language=English +%1 +. +MessageId=49532 +Language=English +%1 +. +MessageId=49533 +Language=English +%1 +. +MessageId=49534 +Language=English +%1 +. +MessageId=49535 +Language=English +%1 +. +MessageId=49536 +Language=English +%1 +. +MessageId=49537 +Language=English +%1 +. +MessageId=49538 +Language=English +%1 +. +MessageId=49539 +Language=English +%1 +. +MessageId=49540 +Language=English +%1 +. +MessageId=49541 +Language=English +%1 +. +MessageId=49542 +Language=English +%1 +. +MessageId=49543 +Language=English +%1 +. +MessageId=49544 +Language=English +%1 +. +MessageId=49545 +Language=English +%1 +. +MessageId=49546 +Language=English +%1 +. +MessageId=49547 +Language=English +%1 +. +MessageId=49548 +Language=English +%1 +. +MessageId=49549 +Language=English +%1 +. +MessageId=49550 +Language=English +%1 +. +MessageId=49551 +Language=English +%1 +. +MessageId=49552 +Language=English +%1 +. +MessageId=49553 +Language=English +%1 +. +MessageId=49554 +Language=English +%1 +. +MessageId=49555 +Language=English +%1 +. +MessageId=49556 +Language=English +%1 +. +MessageId=49557 +Language=English +%1 +. +MessageId=49558 +Language=English +%1 +. +MessageId=49559 +Language=English +%1 +. +MessageId=49560 +Language=English +%1 +. +MessageId=49561 +Language=English +%1 +. +MessageId=49562 +Language=English +%1 +. +MessageId=49563 +Language=English +%1 +. +MessageId=49564 +Language=English +%1 +. +MessageId=49565 +Language=English +%1 +. +MessageId=49566 +Language=English +%1 +. +MessageId=49567 +Language=English +%1 +. +MessageId=49568 +Language=English +%1 +. +MessageId=49569 +Language=English +%1 +. +MessageId=49570 +Language=English +%1 +. +MessageId=49571 +Language=English +%1 +. +MessageId=49572 +Language=English +%1 +. +MessageId=49573 +Language=English +%1 +. +MessageId=49574 +Language=English +%1 +. +MessageId=49575 +Language=English +%1 +. +MessageId=49576 +Language=English +%1 +. +MessageId=49577 +Language=English +%1 +. +MessageId=49578 +Language=English +%1 +. +MessageId=49579 +Language=English +%1 +. +MessageId=49580 +Language=English +%1 +. +MessageId=49581 +Language=English +%1 +. +MessageId=49582 +Language=English +%1 +. +MessageId=49583 +Language=English +%1 +. +MessageId=49584 +Language=English +%1 +. +MessageId=49585 +Language=English +%1 +. +MessageId=49586 +Language=English +%1 +. +MessageId=49587 +Language=English +%1 +. +MessageId=49588 +Language=English +%1 +. +MessageId=49589 +Language=English +%1 +. +MessageId=49590 +Language=English +%1 +. +MessageId=49591 +Language=English +%1 +. +MessageId=49592 +Language=English +%1 +. +MessageId=49593 +Language=English +%1 +. +MessageId=49594 +Language=English +%1 +. +MessageId=49595 +Language=English +%1 +. +MessageId=49596 +Language=English +%1 +. +MessageId=49597 +Language=English +%1 +. +MessageId=49598 +Language=English +%1 +. +MessageId=49599 +Language=English +%1 +. +MessageId=49600 +Language=English +%1 +. +MessageId=49601 +Language=English +%1 +. +MessageId=49602 +Language=English +%1 +. +MessageId=49603 +Language=English +%1 +. +MessageId=49604 +Language=English +%1 +. +MessageId=49605 +Language=English +%1 +. +MessageId=49606 +Language=English +%1 +. +MessageId=49607 +Language=English +%1 +. +MessageId=49608 +Language=English +%1 +. +MessageId=49609 +Language=English +%1 +. +MessageId=49610 +Language=English +%1 +. +MessageId=49611 +Language=English +%1 +. +MessageId=49612 +Language=English +%1 +. +MessageId=49613 +Language=English +%1 +. +MessageId=49614 +Language=English +%1 +. +MessageId=49615 +Language=English +%1 +. +MessageId=49616 +Language=English +%1 +. +MessageId=49617 +Language=English +%1 +. +MessageId=49618 +Language=English +%1 +. +MessageId=49619 +Language=English +%1 +. +MessageId=49620 +Language=English +%1 +. +MessageId=49621 +Language=English +%1 +. +MessageId=49622 +Language=English +%1 +. +MessageId=49623 +Language=English +%1 +. +MessageId=49624 +Language=English +%1 +. +MessageId=49625 +Language=English +%1 +. +MessageId=49626 +Language=English +%1 +. +MessageId=49627 +Language=English +%1 +. +MessageId=49628 +Language=English +%1 +. +MessageId=49629 +Language=English +%1 +. +MessageId=49630 +Language=English +%1 +. +MessageId=49631 +Language=English +%1 +. +MessageId=49632 +Language=English +%1 +. +MessageId=49633 +Language=English +%1 +. +MessageId=49634 +Language=English +%1 +. +MessageId=49635 +Language=English +%1 +. +MessageId=49636 +Language=English +%1 +. +MessageId=49637 +Language=English +%1 +. +MessageId=49638 +Language=English +%1 +. +MessageId=49639 +Language=English +%1 +. +MessageId=49640 +Language=English +%1 +. +MessageId=49641 +Language=English +%1 +. +MessageId=49642 +Language=English +%1 +. +MessageId=49643 +Language=English +%1 +. +MessageId=49644 +Language=English +%1 +. +MessageId=49645 +Language=English +%1 +. +MessageId=49646 +Language=English +%1 +. +MessageId=49647 +Language=English +%1 +. +MessageId=49648 +Language=English +%1 +. +MessageId=49649 +Language=English +%1 +. +MessageId=49650 +Language=English +%1 +. +MessageId=49651 +Language=English +%1 +. +MessageId=49652 +Language=English +%1 +. +MessageId=49653 +Language=English +%1 +. +MessageId=49654 +Language=English +%1 +. +MessageId=49655 +Language=English +%1 +. +MessageId=49656 +Language=English +%1 +. +MessageId=49657 +Language=English +%1 +. +MessageId=49658 +Language=English +%1 +. +MessageId=49659 +Language=English +%1 +. +MessageId=49660 +Language=English +%1 +. +MessageId=49661 +Language=English +%1 +. +MessageId=49662 +Language=English +%1 +. +MessageId=49663 +Language=English +%1 +. +MessageId=49664 +Language=English +%1 +. +MessageId=49665 +Language=English +%1 +. +MessageId=49666 +Language=English +%1 +. +MessageId=49667 +Language=English +%1 +. +MessageId=49668 +Language=English +%1 +. +MessageId=49669 +Language=English +%1 +. +MessageId=49670 +Language=English +%1 +. +MessageId=49671 +Language=English +%1 +. +MessageId=49672 +Language=English +%1 +. +MessageId=49673 +Language=English +%1 +. +MessageId=49674 +Language=English +%1 +. +MessageId=49675 +Language=English +%1 +. +MessageId=49676 +Language=English +%1 +. +MessageId=49677 +Language=English +%1 +. +MessageId=49678 +Language=English +%1 +. +MessageId=49679 +Language=English +%1 +. +MessageId=49680 +Language=English +%1 +. +MessageId=49681 +Language=English +%1 +. +MessageId=49682 +Language=English +%1 +. +MessageId=49683 +Language=English +%1 +. +MessageId=49684 +Language=English +%1 +. +MessageId=49685 +Language=English +%1 +. +MessageId=49686 +Language=English +%1 +. +MessageId=49687 +Language=English +%1 +. +MessageId=49688 +Language=English +%1 +. +MessageId=49689 +Language=English +%1 +. +MessageId=49690 +Language=English +%1 +. +MessageId=49691 +Language=English +%1 +. +MessageId=49692 +Language=English +%1 +. +MessageId=49693 +Language=English +%1 +. +MessageId=49694 +Language=English +%1 +. +MessageId=49695 +Language=English +%1 +. +MessageId=49696 +Language=English +%1 +. +MessageId=49697 +Language=English +%1 +. +MessageId=49698 +Language=English +%1 +. +MessageId=49699 +Language=English +%1 +. +MessageId=49700 +Language=English +%1 +. +MessageId=49701 +Language=English +%1 +. +MessageId=49702 +Language=English +%1 +. +MessageId=49703 +Language=English +%1 +. +MessageId=49704 +Language=English +%1 +. +MessageId=49705 +Language=English +%1 +. +MessageId=49706 +Language=English +%1 +. +MessageId=49707 +Language=English +%1 +. +MessageId=49708 +Language=English +%1 +. +MessageId=49709 +Language=English +%1 +. +MessageId=49710 +Language=English +%1 +. +MessageId=49711 +Language=English +%1 +. +MessageId=49712 +Language=English +%1 +. +MessageId=49713 +Language=English +%1 +. +MessageId=49714 +Language=English +%1 +. +MessageId=49715 +Language=English +%1 +. +MessageId=49716 +Language=English +%1 +. +MessageId=49717 +Language=English +%1 +. +MessageId=49718 +Language=English +%1 +. +MessageId=49719 +Language=English +%1 +. +MessageId=49720 +Language=English +%1 +. +MessageId=49721 +Language=English +%1 +. +MessageId=49722 +Language=English +%1 +. +MessageId=49723 +Language=English +%1 +. +MessageId=49724 +Language=English +%1 +. +MessageId=49725 +Language=English +%1 +. +MessageId=49726 +Language=English +%1 +. +MessageId=49727 +Language=English +%1 +. +MessageId=49728 +Language=English +%1 +. +MessageId=49729 +Language=English +%1 +. +MessageId=49730 +Language=English +%1 +. +MessageId=49731 +Language=English +%1 +. +MessageId=49732 +Language=English +%1 +. +MessageId=49733 +Language=English +%1 +. +MessageId=49734 +Language=English +%1 +. +MessageId=49735 +Language=English +%1 +. +MessageId=49736 +Language=English +%1 +. +MessageId=49737 +Language=English +%1 +. +MessageId=49738 +Language=English +%1 +. +MessageId=49739 +Language=English +%1 +. +MessageId=49740 +Language=English +%1 +. +MessageId=49741 +Language=English +%1 +. +MessageId=49742 +Language=English +%1 +. +MessageId=49743 +Language=English +%1 +. +MessageId=49744 +Language=English +%1 +. +MessageId=49745 +Language=English +%1 +. +MessageId=49746 +Language=English +%1 +. +MessageId=49747 +Language=English +%1 +. +MessageId=49748 +Language=English +%1 +. +MessageId=49749 +Language=English +%1 +. +MessageId=49750 +Language=English +%1 +. +MessageId=49751 +Language=English +%1 +. +MessageId=49752 +Language=English +%1 +. +MessageId=49753 +Language=English +%1 +. +MessageId=49754 +Language=English +%1 +. +MessageId=49755 +Language=English +%1 +. +MessageId=49756 +Language=English +%1 +. +MessageId=49757 +Language=English +%1 +. +MessageId=49758 +Language=English +%1 +. +MessageId=49759 +Language=English +%1 +. +MessageId=49760 +Language=English +%1 +. +MessageId=49761 +Language=English +%1 +. +MessageId=49762 +Language=English +%1 +. +MessageId=49763 +Language=English +%1 +. +MessageId=49764 +Language=English +%1 +. +MessageId=49765 +Language=English +%1 +. +MessageId=49766 +Language=English +%1 +. +MessageId=49767 +Language=English +%1 +. +MessageId=49768 +Language=English +%1 +. +MessageId=49769 +Language=English +%1 +. +MessageId=49770 +Language=English +%1 +. +MessageId=49771 +Language=English +%1 +. +MessageId=49772 +Language=English +%1 +. +MessageId=49773 +Language=English +%1 +. +MessageId=49774 +Language=English +%1 +. +MessageId=49775 +Language=English +%1 +. +MessageId=49776 +Language=English +%1 +. +MessageId=49777 +Language=English +%1 +. +MessageId=49778 +Language=English +%1 +. +MessageId=49779 +Language=English +%1 +. +MessageId=49780 +Language=English +%1 +. +MessageId=49781 +Language=English +%1 +. +MessageId=49782 +Language=English +%1 +. +MessageId=49783 +Language=English +%1 +. +MessageId=49784 +Language=English +%1 +. +MessageId=49785 +Language=English +%1 +. +MessageId=49786 +Language=English +%1 +. +MessageId=49787 +Language=English +%1 +. +MessageId=49788 +Language=English +%1 +. +MessageId=49789 +Language=English +%1 +. +MessageId=49790 +Language=English +%1 +. +MessageId=49791 +Language=English +%1 +. +MessageId=49792 +Language=English +%1 +. +MessageId=49793 +Language=English +%1 +. +MessageId=49794 +Language=English +%1 +. +MessageId=49795 +Language=English +%1 +. +MessageId=49796 +Language=English +%1 +. +MessageId=49797 +Language=English +%1 +. +MessageId=49798 +Language=English +%1 +. +MessageId=49799 +Language=English +%1 +. +MessageId=49800 +Language=English +%1 +. +MessageId=49801 +Language=English +%1 +. +MessageId=49802 +Language=English +%1 +. +MessageId=49803 +Language=English +%1 +. +MessageId=49804 +Language=English +%1 +. +MessageId=49805 +Language=English +%1 +. +MessageId=49806 +Language=English +%1 +. +MessageId=49807 +Language=English +%1 +. +MessageId=49808 +Language=English +%1 +. +MessageId=49809 +Language=English +%1 +. +MessageId=49810 +Language=English +%1 +. +MessageId=49811 +Language=English +%1 +. +MessageId=49812 +Language=English +%1 +. +MessageId=49813 +Language=English +%1 +. +MessageId=49814 +Language=English +%1 +. +MessageId=49815 +Language=English +%1 +. +MessageId=49816 +Language=English +%1 +. +MessageId=49817 +Language=English +%1 +. +MessageId=49818 +Language=English +%1 +. +MessageId=49819 +Language=English +%1 +. +MessageId=49820 +Language=English +%1 +. +MessageId=49821 +Language=English +%1 +. +MessageId=49822 +Language=English +%1 +. +MessageId=49823 +Language=English +%1 +. +MessageId=49824 +Language=English +%1 +. +MessageId=49825 +Language=English +%1 +. +MessageId=49826 +Language=English +%1 +. +MessageId=49827 +Language=English +%1 +. +MessageId=49828 +Language=English +%1 +. +MessageId=49829 +Language=English +%1 +. +MessageId=49830 +Language=English +%1 +. +MessageId=49831 +Language=English +%1 +. +MessageId=49832 +Language=English +%1 +. +MessageId=49833 +Language=English +%1 +. +MessageId=49834 +Language=English +%1 +. +MessageId=49835 +Language=English +%1 +. +MessageId=49836 +Language=English +%1 +. +MessageId=49837 +Language=English +%1 +. +MessageId=49838 +Language=English +%1 +. +MessageId=49839 +Language=English +%1 +. +MessageId=49840 +Language=English +%1 +. +MessageId=49841 +Language=English +%1 +. +MessageId=49842 +Language=English +%1 +. +MessageId=49843 +Language=English +%1 +. +MessageId=49844 +Language=English +%1 +. +MessageId=49845 +Language=English +%1 +. +MessageId=49846 +Language=English +%1 +. +MessageId=49847 +Language=English +%1 +. +MessageId=49848 +Language=English +%1 +. +MessageId=49849 +Language=English +%1 +. +MessageId=49850 +Language=English +%1 +. +MessageId=49851 +Language=English +%1 +. +MessageId=49852 +Language=English +%1 +. +MessageId=49853 +Language=English +%1 +. +MessageId=49854 +Language=English +%1 +. +MessageId=49855 +Language=English +%1 +. +MessageId=49856 +Language=English +%1 +. +MessageId=49857 +Language=English +%1 +. +MessageId=49858 +Language=English +%1 +. +MessageId=49859 +Language=English +%1 +. +MessageId=49860 +Language=English +%1 +. +MessageId=49861 +Language=English +%1 +. +MessageId=49862 +Language=English +%1 +. +MessageId=49863 +Language=English +%1 +. +MessageId=49864 +Language=English +%1 +. +MessageId=49865 +Language=English +%1 +. +MessageId=49866 +Language=English +%1 +. +MessageId=49867 +Language=English +%1 +. +MessageId=49868 +Language=English +%1 +. +MessageId=49869 +Language=English +%1 +. +MessageId=49870 +Language=English +%1 +. +MessageId=49871 +Language=English +%1 +. +MessageId=49872 +Language=English +%1 +. +MessageId=49873 +Language=English +%1 +. +MessageId=49874 +Language=English +%1 +. +MessageId=49875 +Language=English +%1 +. +MessageId=49876 +Language=English +%1 +. +MessageId=49877 +Language=English +%1 +. +MessageId=49878 +Language=English +%1 +. +MessageId=49879 +Language=English +%1 +. +MessageId=49880 +Language=English +%1 +. +MessageId=49881 +Language=English +%1 +. +MessageId=49882 +Language=English +%1 +. +MessageId=49883 +Language=English +%1 +. +MessageId=49884 +Language=English +%1 +. +MessageId=49885 +Language=English +%1 +. +MessageId=49886 +Language=English +%1 +. +MessageId=49887 +Language=English +%1 +. +MessageId=49888 +Language=English +%1 +. +MessageId=49889 +Language=English +%1 +. +MessageId=49890 +Language=English +%1 +. +MessageId=49891 +Language=English +%1 +. +MessageId=49892 +Language=English +%1 +. +MessageId=49893 +Language=English +%1 +. +MessageId=49894 +Language=English +%1 +. +MessageId=49895 +Language=English +%1 +. +MessageId=49896 +Language=English +%1 +. +MessageId=49897 +Language=English +%1 +. +MessageId=49898 +Language=English +%1 +. +MessageId=49899 +Language=English +%1 +. +MessageId=49900 +Language=English +%1 +. +MessageId=49901 +Language=English +%1 +. +MessageId=49902 +Language=English +%1 +. +MessageId=49903 +Language=English +%1 +. +MessageId=49904 +Language=English +%1 +. +MessageId=49905 +Language=English +%1 +. +MessageId=49906 +Language=English +%1 +. +MessageId=49907 +Language=English +%1 +. +MessageId=49908 +Language=English +%1 +. +MessageId=49909 +Language=English +%1 +. +MessageId=49910 +Language=English +%1 +. +MessageId=49911 +Language=English +%1 +. +MessageId=49912 +Language=English +%1 +. +MessageId=49913 +Language=English +%1 +. +MessageId=49914 +Language=English +%1 +. +MessageId=49915 +Language=English +%1 +. +MessageId=49916 +Language=English +%1 +. +MessageId=49917 +Language=English +%1 +. +MessageId=49918 +Language=English +%1 +. +MessageId=49919 +Language=English +%1 +. +MessageId=49920 +Language=English +%1 +. +MessageId=49921 +Language=English +%1 +. +MessageId=49922 +Language=English +%1 +. +MessageId=49923 +Language=English +%1 +. +MessageId=49924 +Language=English +%1 +. +MessageId=49925 +Language=English +%1 +. +MessageId=49926 +Language=English +%1 +. +MessageId=49927 +Language=English +%1 +. +MessageId=49928 +Language=English +%1 +. +MessageId=49929 +Language=English +%1 +. +MessageId=49930 +Language=English +%1 +. +MessageId=49931 +Language=English +%1 +. +MessageId=49932 +Language=English +%1 +. +MessageId=49933 +Language=English +%1 +. +MessageId=49934 +Language=English +%1 +. +MessageId=49935 +Language=English +%1 +. +MessageId=49936 +Language=English +%1 +. +MessageId=49937 +Language=English +%1 +. +MessageId=49938 +Language=English +%1 +. +MessageId=49939 +Language=English +%1 +. +MessageId=49940 +Language=English +%1 +. +MessageId=49941 +Language=English +%1 +. +MessageId=49942 +Language=English +%1 +. +MessageId=49943 +Language=English +%1 +. +MessageId=49944 +Language=English +%1 +. +MessageId=49945 +Language=English +%1 +. +MessageId=49946 +Language=English +%1 +. +MessageId=49947 +Language=English +%1 +. +MessageId=49948 +Language=English +%1 +. +MessageId=49949 +Language=English +%1 +. +MessageId=49950 +Language=English +%1 +. +MessageId=49951 +Language=English +%1 +. +MessageId=49952 +Language=English +%1 +. +MessageId=49953 +Language=English +%1 +. +MessageId=49954 +Language=English +%1 +. +MessageId=49955 +Language=English +%1 +. +MessageId=49956 +Language=English +%1 +. +MessageId=49957 +Language=English +%1 +. +MessageId=49958 +Language=English +%1 +. +MessageId=49959 +Language=English +%1 +. +MessageId=49960 +Language=English +%1 +. +MessageId=49961 +Language=English +%1 +. +MessageId=49962 +Language=English +%1 +. +MessageId=49963 +Language=English +%1 +. +MessageId=49964 +Language=English +%1 +. +MessageId=49965 +Language=English +%1 +. +MessageId=49966 +Language=English +%1 +. +MessageId=49967 +Language=English +%1 +. +MessageId=49968 +Language=English +%1 +. +MessageId=49969 +Language=English +%1 +. +MessageId=49970 +Language=English +%1 +. +MessageId=49971 +Language=English +%1 +. +MessageId=49972 +Language=English +%1 +. +MessageId=49973 +Language=English +%1 +. +MessageId=49974 +Language=English +%1 +. +MessageId=49975 +Language=English +%1 +. +MessageId=49976 +Language=English +%1 +. +MessageId=49977 +Language=English +%1 +. +MessageId=49978 +Language=English +%1 +. +MessageId=49979 +Language=English +%1 +. +MessageId=49980 +Language=English +%1 +. +MessageId=49981 +Language=English +%1 +. +MessageId=49982 +Language=English +%1 +. +MessageId=49983 +Language=English +%1 +. +MessageId=49984 +Language=English +%1 +. +MessageId=49985 +Language=English +%1 +. +MessageId=49986 +Language=English +%1 +. +MessageId=49987 +Language=English +%1 +. +MessageId=49988 +Language=English +%1 +. +MessageId=49989 +Language=English +%1 +. +MessageId=49990 +Language=English +%1 +. +MessageId=49991 +Language=English +%1 +. +MessageId=49992 +Language=English +%1 +. +MessageId=49993 +Language=English +%1 +. +MessageId=49994 +Language=English +%1 +. +MessageId=49995 +Language=English +%1 +. +MessageId=49996 +Language=English +%1 +. +MessageId=49997 +Language=English +%1 +. +MessageId=49998 +Language=English +%1 +. +MessageId=49999 +Language=English +%1 +. +MessageId=50000 +Language=English +%1 +. +MessageId=50001 +Language=English +%1 +. +MessageId=50002 +Language=English +%1 +. +MessageId=50003 +Language=English +%1 +. +MessageId=50004 +Language=English +%1 +. +MessageId=50005 +Language=English +%1 +. +MessageId=50006 +Language=English +%1 +. +MessageId=50007 +Language=English +%1 +. +MessageId=50008 +Language=English +%1 +. +MessageId=50009 +Language=English +%1 +. +MessageId=50010 +Language=English +%1 +. +MessageId=50011 +Language=English +%1 +. +MessageId=50012 +Language=English +%1 +. +MessageId=50013 +Language=English +%1 +. +MessageId=50014 +Language=English +%1 +. +MessageId=50015 +Language=English +%1 +. +MessageId=50016 +Language=English +%1 +. +MessageId=50017 +Language=English +%1 +. +MessageId=50018 +Language=English +%1 +. +MessageId=50019 +Language=English +%1 +. +MessageId=50020 +Language=English +%1 +. +MessageId=50021 +Language=English +%1 +. +MessageId=50022 +Language=English +%1 +. +MessageId=50023 +Language=English +%1 +. +MessageId=50024 +Language=English +%1 +. +MessageId=50025 +Language=English +%1 +. +MessageId=50026 +Language=English +%1 +. +MessageId=50027 +Language=English +%1 +. +MessageId=50028 +Language=English +%1 +. +MessageId=50029 +Language=English +%1 +. +MessageId=50030 +Language=English +%1 +. +MessageId=50031 +Language=English +%1 +. +MessageId=50032 +Language=English +%1 +. +MessageId=50033 +Language=English +%1 +. +MessageId=50034 +Language=English +%1 +. +MessageId=50035 +Language=English +%1 +. +MessageId=50036 +Language=English +%1 +. +MessageId=50037 +Language=English +%1 +. +MessageId=50038 +Language=English +%1 +. +MessageId=50039 +Language=English +%1 +. +MessageId=50040 +Language=English +%1 +. +MessageId=50041 +Language=English +%1 +. +MessageId=50042 +Language=English +%1 +. +MessageId=50043 +Language=English +%1 +. +MessageId=50044 +Language=English +%1 +. +MessageId=50045 +Language=English +%1 +. +MessageId=50046 +Language=English +%1 +. +MessageId=50047 +Language=English +%1 +. +MessageId=50048 +Language=English +%1 +. +MessageId=50049 +Language=English +%1 +. +MessageId=50050 +Language=English +%1 +. +MessageId=50051 +Language=English +%1 +. +MessageId=50052 +Language=English +%1 +. +MessageId=50053 +Language=English +%1 +. +MessageId=50054 +Language=English +%1 +. +MessageId=50055 +Language=English +%1 +. +MessageId=50056 +Language=English +%1 +. +MessageId=50057 +Language=English +%1 +. +MessageId=50058 +Language=English +%1 +. +MessageId=50059 +Language=English +%1 +. +MessageId=50060 +Language=English +%1 +. +MessageId=50061 +Language=English +%1 +. +MessageId=50062 +Language=English +%1 +. +MessageId=50063 +Language=English +%1 +. +MessageId=50064 +Language=English +%1 +. +MessageId=50065 +Language=English +%1 +. +MessageId=50066 +Language=English +%1 +. +MessageId=50067 +Language=English +%1 +. +MessageId=50068 +Language=English +%1 +. +MessageId=50069 +Language=English +%1 +. +MessageId=50070 +Language=English +%1 +. +MessageId=50071 +Language=English +%1 +. +MessageId=50072 +Language=English +%1 +. +MessageId=50073 +Language=English +%1 +. +MessageId=50074 +Language=English +%1 +. +MessageId=50075 +Language=English +%1 +. +MessageId=50076 +Language=English +%1 +. +MessageId=50077 +Language=English +%1 +. +MessageId=50078 +Language=English +%1 +. +MessageId=50079 +Language=English +%1 +. +MessageId=50080 +Language=English +%1 +. +MessageId=50081 +Language=English +%1 +. +MessageId=50082 +Language=English +%1 +. +MessageId=50083 +Language=English +%1 +. +MessageId=50084 +Language=English +%1 +. +MessageId=50085 +Language=English +%1 +. +MessageId=50086 +Language=English +%1 +. +MessageId=50087 +Language=English +%1 +. +MessageId=50088 +Language=English +%1 +. +MessageId=50089 +Language=English +%1 +. +MessageId=50090 +Language=English +%1 +. +MessageId=50091 +Language=English +%1 +. +MessageId=50092 +Language=English +%1 +. +MessageId=50093 +Language=English +%1 +. +MessageId=50094 +Language=English +%1 +. +MessageId=50095 +Language=English +%1 +. +MessageId=50096 +Language=English +%1 +. +MessageId=50097 +Language=English +%1 +. +MessageId=50098 +Language=English +%1 +. +MessageId=50099 +Language=English +%1 +. +MessageId=50100 +Language=English +%1 +. +MessageId=50101 +Language=English +%1 +. +MessageId=50102 +Language=English +%1 +. +MessageId=50103 +Language=English +%1 +. +MessageId=50104 +Language=English +%1 +. +MessageId=50105 +Language=English +%1 +. +MessageId=50106 +Language=English +%1 +. +MessageId=50107 +Language=English +%1 +. +MessageId=50108 +Language=English +%1 +. +MessageId=50109 +Language=English +%1 +. +MessageId=50110 +Language=English +%1 +. +MessageId=50111 +Language=English +%1 +. +MessageId=50112 +Language=English +%1 +. +MessageId=50113 +Language=English +%1 +. +MessageId=50114 +Language=English +%1 +. +MessageId=50115 +Language=English +%1 +. +MessageId=50116 +Language=English +%1 +. +MessageId=50117 +Language=English +%1 +. +MessageId=50118 +Language=English +%1 +. +MessageId=50119 +Language=English +%1 +. +MessageId=50120 +Language=English +%1 +. +MessageId=50121 +Language=English +%1 +. +MessageId=50122 +Language=English +%1 +. +MessageId=50123 +Language=English +%1 +. +MessageId=50124 +Language=English +%1 +. +MessageId=50125 +Language=English +%1 +. +MessageId=50126 +Language=English +%1 +. +MessageId=50127 +Language=English +%1 +. +MessageId=50128 +Language=English +%1 +. +MessageId=50129 +Language=English +%1 +. +MessageId=50130 +Language=English +%1 +. +MessageId=50131 +Language=English +%1 +. +MessageId=50132 +Language=English +%1 +. +MessageId=50133 +Language=English +%1 +. +MessageId=50134 +Language=English +%1 +. +MessageId=50135 +Language=English +%1 +. +MessageId=50136 +Language=English +%1 +. +MessageId=50137 +Language=English +%1 +. +MessageId=50138 +Language=English +%1 +. +MessageId=50139 +Language=English +%1 +. +MessageId=50140 +Language=English +%1 +. +MessageId=50141 +Language=English +%1 +. +MessageId=50142 +Language=English +%1 +. +MessageId=50143 +Language=English +%1 +. +MessageId=50144 +Language=English +%1 +. +MessageId=50145 +Language=English +%1 +. +MessageId=50146 +Language=English +%1 +. +MessageId=50147 +Language=English +%1 +. +MessageId=50148 +Language=English +%1 +. +MessageId=50149 +Language=English +%1 +. +MessageId=50150 +Language=English +%1 +. +MessageId=50151 +Language=English +%1 +. +MessageId=50152 +Language=English +%1 +. +MessageId=50153 +Language=English +%1 +. +MessageId=50154 +Language=English +%1 +. +MessageId=50155 +Language=English +%1 +. +MessageId=50156 +Language=English +%1 +. +MessageId=50157 +Language=English +%1 +. +MessageId=50158 +Language=English +%1 +. +MessageId=50159 +Language=English +%1 +. +MessageId=50160 +Language=English +%1 +. +MessageId=50161 +Language=English +%1 +. +MessageId=50162 +Language=English +%1 +. +MessageId=50163 +Language=English +%1 +. +MessageId=50164 +Language=English +%1 +. +MessageId=50165 +Language=English +%1 +. +MessageId=50166 +Language=English +%1 +. +MessageId=50167 +Language=English +%1 +. +MessageId=50168 +Language=English +%1 +. +MessageId=50169 +Language=English +%1 +. +MessageId=50170 +Language=English +%1 +. +MessageId=50171 +Language=English +%1 +. +MessageId=50172 +Language=English +%1 +. +MessageId=50173 +Language=English +%1 +. +MessageId=50174 +Language=English +%1 +. +MessageId=50175 +Language=English +%1 +. +MessageId=50176 +Language=English +%1 +. +MessageId=50177 +Language=English +%1 +. +MessageId=50178 +Language=English +%1 +. +MessageId=50179 +Language=English +%1 +. +MessageId=50180 +Language=English +%1 +. +MessageId=50181 +Language=English +%1 +. +MessageId=50182 +Language=English +%1 +. +MessageId=50183 +Language=English +%1 +. +MessageId=50184 +Language=English +%1 +. +MessageId=50185 +Language=English +%1 +. +MessageId=50186 +Language=English +%1 +. +MessageId=50187 +Language=English +%1 +. +MessageId=50188 +Language=English +%1 +. +MessageId=50189 +Language=English +%1 +. +MessageId=50190 +Language=English +%1 +. +MessageId=50191 +Language=English +%1 +. +MessageId=50192 +Language=English +%1 +. +MessageId=50193 +Language=English +%1 +. +MessageId=50194 +Language=English +%1 +. +MessageId=50195 +Language=English +%1 +. +MessageId=50196 +Language=English +%1 +. +MessageId=50197 +Language=English +%1 +. +MessageId=50198 +Language=English +%1 +. +MessageId=50199 +Language=English +%1 +. +MessageId=50200 +Language=English +%1 +. +MessageId=50201 +Language=English +%1 +. +MessageId=50202 +Language=English +%1 +. +MessageId=50203 +Language=English +%1 +. +MessageId=50204 +Language=English +%1 +. +MessageId=50205 +Language=English +%1 +. +MessageId=50206 +Language=English +%1 +. +MessageId=50207 +Language=English +%1 +. +MessageId=50208 +Language=English +%1 +. +MessageId=50209 +Language=English +%1 +. +MessageId=50210 +Language=English +%1 +. +MessageId=50211 +Language=English +%1 +. +MessageId=50212 +Language=English +%1 +. +MessageId=50213 +Language=English +%1 +. +MessageId=50214 +Language=English +%1 +. +MessageId=50215 +Language=English +%1 +. +MessageId=50216 +Language=English +%1 +. +MessageId=50217 +Language=English +%1 +. +MessageId=50218 +Language=English +%1 +. +MessageId=50219 +Language=English +%1 +. +MessageId=50220 +Language=English +%1 +. +MessageId=50221 +Language=English +%1 +. +MessageId=50222 +Language=English +%1 +. +MessageId=50223 +Language=English +%1 +. +MessageId=50224 +Language=English +%1 +. +MessageId=50225 +Language=English +%1 +. +MessageId=50226 +Language=English +%1 +. +MessageId=50227 +Language=English +%1 +. +MessageId=50228 +Language=English +%1 +. +MessageId=50229 +Language=English +%1 +. +MessageId=50230 +Language=English +%1 +. +MessageId=50231 +Language=English +%1 +. +MessageId=50232 +Language=English +%1 +. +MessageId=50233 +Language=English +%1 +. +MessageId=50234 +Language=English +%1 +. +MessageId=50235 +Language=English +%1 +. +MessageId=50236 +Language=English +%1 +. +MessageId=50237 +Language=English +%1 +. +MessageId=50238 +Language=English +%1 +. +MessageId=50239 +Language=English +%1 +. +MessageId=50240 +Language=English +%1 +. +MessageId=50241 +Language=English +%1 +. +MessageId=50242 +Language=English +%1 +. +MessageId=50243 +Language=English +%1 +. +MessageId=50244 +Language=English +%1 +. +MessageId=50245 +Language=English +%1 +. +MessageId=50246 +Language=English +%1 +. +MessageId=50247 +Language=English +%1 +. +MessageId=50248 +Language=English +%1 +. +MessageId=50249 +Language=English +%1 +. +MessageId=50250 +Language=English +%1 +. +MessageId=50251 +Language=English +%1 +. +MessageId=50252 +Language=English +%1 +. +MessageId=50253 +Language=English +%1 +. +MessageId=50254 +Language=English +%1 +. +MessageId=50255 +Language=English +%1 +. +MessageId=50256 +Language=English +%1 +. +MessageId=50257 +Language=English +%1 +. +MessageId=50258 +Language=English +%1 +. +MessageId=50259 +Language=English +%1 +. +MessageId=50260 +Language=English +%1 +. +MessageId=50261 +Language=English +%1 +. +MessageId=50262 +Language=English +%1 +. +MessageId=50263 +Language=English +%1 +. +MessageId=50264 +Language=English +%1 +. +MessageId=50265 +Language=English +%1 +. +MessageId=50266 +Language=English +%1 +. +MessageId=50267 +Language=English +%1 +. +MessageId=50268 +Language=English +%1 +. +MessageId=50269 +Language=English +%1 +. +MessageId=50270 +Language=English +%1 +. +MessageId=50271 +Language=English +%1 +. +MessageId=50272 +Language=English +%1 +. +MessageId=50273 +Language=English +%1 +. +MessageId=50274 +Language=English +%1 +. +MessageId=50275 +Language=English +%1 +. +MessageId=50276 +Language=English +%1 +. +MessageId=50277 +Language=English +%1 +. +MessageId=50278 +Language=English +%1 +. +MessageId=50279 +Language=English +%1 +. +MessageId=50280 +Language=English +%1 +. +MessageId=50281 +Language=English +%1 +. +MessageId=50282 +Language=English +%1 +. +MessageId=50283 +Language=English +%1 +. +MessageId=50284 +Language=English +%1 +. +MessageId=50285 +Language=English +%1 +. +MessageId=50286 +Language=English +%1 +. +MessageId=50287 +Language=English +%1 +. +MessageId=50288 +Language=English +%1 +. +MessageId=50289 +Language=English +%1 +. +MessageId=50290 +Language=English +%1 +. +MessageId=50291 +Language=English +%1 +. +MessageId=50292 +Language=English +%1 +. +MessageId=50293 +Language=English +%1 +. +MessageId=50294 +Language=English +%1 +. +MessageId=50295 +Language=English +%1 +. +MessageId=50296 +Language=English +%1 +. +MessageId=50297 +Language=English +%1 +. +MessageId=50298 +Language=English +%1 +. +MessageId=50299 +Language=English +%1 +. +MessageId=50300 +Language=English +%1 +. +MessageId=50301 +Language=English +%1 +. +MessageId=50302 +Language=English +%1 +. +MessageId=50303 +Language=English +%1 +. +MessageId=50304 +Language=English +%1 +. +MessageId=50305 +Language=English +%1 +. +MessageId=50306 +Language=English +%1 +. +MessageId=50307 +Language=English +%1 +. +MessageId=50308 +Language=English +%1 +. +MessageId=50309 +Language=English +%1 +. +MessageId=50310 +Language=English +%1 +. +MessageId=50311 +Language=English +%1 +. +MessageId=50312 +Language=English +%1 +. +MessageId=50313 +Language=English +%1 +. +MessageId=50314 +Language=English +%1 +. +MessageId=50315 +Language=English +%1 +. +MessageId=50316 +Language=English +%1 +. +MessageId=50317 +Language=English +%1 +. +MessageId=50318 +Language=English +%1 +. +MessageId=50319 +Language=English +%1 +. +MessageId=50320 +Language=English +%1 +. +MessageId=50321 +Language=English +%1 +. +MessageId=50322 +Language=English +%1 +. +MessageId=50323 +Language=English +%1 +. +MessageId=50324 +Language=English +%1 +. +MessageId=50325 +Language=English +%1 +. +MessageId=50326 +Language=English +%1 +. +MessageId=50327 +Language=English +%1 +. +MessageId=50328 +Language=English +%1 +. +MessageId=50329 +Language=English +%1 +. +MessageId=50330 +Language=English +%1 +. +MessageId=50331 +Language=English +%1 +. +MessageId=50332 +Language=English +%1 +. +MessageId=50333 +Language=English +%1 +. +MessageId=50334 +Language=English +%1 +. +MessageId=50335 +Language=English +%1 +. +MessageId=50336 +Language=English +%1 +. +MessageId=50337 +Language=English +%1 +. +MessageId=50338 +Language=English +%1 +. +MessageId=50339 +Language=English +%1 +. +MessageId=50340 +Language=English +%1 +. +MessageId=50341 +Language=English +%1 +. +MessageId=50342 +Language=English +%1 +. +MessageId=50343 +Language=English +%1 +. +MessageId=50344 +Language=English +%1 +. +MessageId=50345 +Language=English +%1 +. +MessageId=50346 +Language=English +%1 +. +MessageId=50347 +Language=English +%1 +. +MessageId=50348 +Language=English +%1 +. +MessageId=50349 +Language=English +%1 +. +MessageId=50350 +Language=English +%1 +. +MessageId=50351 +Language=English +%1 +. +MessageId=50352 +Language=English +%1 +. +MessageId=50353 +Language=English +%1 +. +MessageId=50354 +Language=English +%1 +. +MessageId=50355 +Language=English +%1 +. +MessageId=50356 +Language=English +%1 +. +MessageId=50357 +Language=English +%1 +. +MessageId=50358 +Language=English +%1 +. +MessageId=50359 +Language=English +%1 +. +MessageId=50360 +Language=English +%1 +. +MessageId=50361 +Language=English +%1 +. +MessageId=50362 +Language=English +%1 +. +MessageId=50363 +Language=English +%1 +. +MessageId=50364 +Language=English +%1 +. +MessageId=50365 +Language=English +%1 +. +MessageId=50366 +Language=English +%1 +. +MessageId=50367 +Language=English +%1 +. +MessageId=50368 +Language=English +%1 +. +MessageId=50369 +Language=English +%1 +. +MessageId=50370 +Language=English +%1 +. +MessageId=50371 +Language=English +%1 +. +MessageId=50372 +Language=English +%1 +. +MessageId=50373 +Language=English +%1 +. +MessageId=50374 +Language=English +%1 +. +MessageId=50375 +Language=English +%1 +. +MessageId=50376 +Language=English +%1 +. +MessageId=50377 +Language=English +%1 +. +MessageId=50378 +Language=English +%1 +. +MessageId=50379 +Language=English +%1 +. +MessageId=50380 +Language=English +%1 +. +MessageId=50381 +Language=English +%1 +. +MessageId=50382 +Language=English +%1 +. +MessageId=50383 +Language=English +%1 +. +MessageId=50384 +Language=English +%1 +. +MessageId=50385 +Language=English +%1 +. +MessageId=50386 +Language=English +%1 +. +MessageId=50387 +Language=English +%1 +. +MessageId=50388 +Language=English +%1 +. +MessageId=50389 +Language=English +%1 +. +MessageId=50390 +Language=English +%1 +. +MessageId=50391 +Language=English +%1 +. +MessageId=50392 +Language=English +%1 +. +MessageId=50393 +Language=English +%1 +. +MessageId=50394 +Language=English +%1 +. +MessageId=50395 +Language=English +%1 +. +MessageId=50396 +Language=English +%1 +. +MessageId=50397 +Language=English +%1 +. +MessageId=50398 +Language=English +%1 +. +MessageId=50399 +Language=English +%1 +. +MessageId=50400 +Language=English +%1 +. +MessageId=50401 +Language=English +%1 +. +MessageId=50402 +Language=English +%1 +. +MessageId=50403 +Language=English +%1 +. +MessageId=50404 +Language=English +%1 +. +MessageId=50405 +Language=English +%1 +. +MessageId=50406 +Language=English +%1 +. +MessageId=50407 +Language=English +%1 +. +MessageId=50408 +Language=English +%1 +. +MessageId=50409 +Language=English +%1 +. +MessageId=50410 +Language=English +%1 +. +MessageId=50411 +Language=English +%1 +. +MessageId=50412 +Language=English +%1 +. +MessageId=50413 +Language=English +%1 +. +MessageId=50414 +Language=English +%1 +. +MessageId=50415 +Language=English +%1 +. +MessageId=50416 +Language=English +%1 +. +MessageId=50417 +Language=English +%1 +. +MessageId=50418 +Language=English +%1 +. +MessageId=50419 +Language=English +%1 +. +MessageId=50420 +Language=English +%1 +. +MessageId=50421 +Language=English +%1 +. +MessageId=50422 +Language=English +%1 +. +MessageId=50423 +Language=English +%1 +. +MessageId=50424 +Language=English +%1 +. +MessageId=50425 +Language=English +%1 +. +MessageId=50426 +Language=English +%1 +. +MessageId=50427 +Language=English +%1 +. +MessageId=50428 +Language=English +%1 +. +MessageId=50429 +Language=English +%1 +. +MessageId=50430 +Language=English +%1 +. +MessageId=50431 +Language=English +%1 +. +MessageId=50432 +Language=English +%1 +. +MessageId=50433 +Language=English +%1 +. +MessageId=50434 +Language=English +%1 +. +MessageId=50435 +Language=English +%1 +. +MessageId=50436 +Language=English +%1 +. +MessageId=50437 +Language=English +%1 +. +MessageId=50438 +Language=English +%1 +. +MessageId=50439 +Language=English +%1 +. +MessageId=50440 +Language=English +%1 +. +MessageId=50441 +Language=English +%1 +. +MessageId=50442 +Language=English +%1 +. +MessageId=50443 +Language=English +%1 +. +MessageId=50444 +Language=English +%1 +. +MessageId=50445 +Language=English +%1 +. +MessageId=50446 +Language=English +%1 +. +MessageId=50447 +Language=English +%1 +. +MessageId=50448 +Language=English +%1 +. +MessageId=50449 +Language=English +%1 +. +MessageId=50450 +Language=English +%1 +. +MessageId=50451 +Language=English +%1 +. +MessageId=50452 +Language=English +%1 +. +MessageId=50453 +Language=English +%1 +. +MessageId=50454 +Language=English +%1 +. +MessageId=50455 +Language=English +%1 +. +MessageId=50456 +Language=English +%1 +. +MessageId=50457 +Language=English +%1 +. +MessageId=50458 +Language=English +%1 +. +MessageId=50459 +Language=English +%1 +. +MessageId=50460 +Language=English +%1 +. +MessageId=50461 +Language=English +%1 +. +MessageId=50462 +Language=English +%1 +. +MessageId=50463 +Language=English +%1 +. +MessageId=50464 +Language=English +%1 +. +MessageId=50465 +Language=English +%1 +. +MessageId=50466 +Language=English +%1 +. +MessageId=50467 +Language=English +%1 +. +MessageId=50468 +Language=English +%1 +. +MessageId=50469 +Language=English +%1 +. +MessageId=50470 +Language=English +%1 +. +MessageId=50471 +Language=English +%1 +. +MessageId=50472 +Language=English +%1 +. +MessageId=50473 +Language=English +%1 +. +MessageId=50474 +Language=English +%1 +. +MessageId=50475 +Language=English +%1 +. +MessageId=50476 +Language=English +%1 +. +MessageId=50477 +Language=English +%1 +. +MessageId=50478 +Language=English +%1 +. +MessageId=50479 +Language=English +%1 +. +MessageId=50480 +Language=English +%1 +. +MessageId=50481 +Language=English +%1 +. +MessageId=50482 +Language=English +%1 +. +MessageId=50483 +Language=English +%1 +. +MessageId=50484 +Language=English +%1 +. +MessageId=50485 +Language=English +%1 +. +MessageId=50486 +Language=English +%1 +. +MessageId=50487 +Language=English +%1 +. +MessageId=50488 +Language=English +%1 +. +MessageId=50489 +Language=English +%1 +. +MessageId=50490 +Language=English +%1 +. +MessageId=50491 +Language=English +%1 +. +MessageId=50492 +Language=English +%1 +. +MessageId=50493 +Language=English +%1 +. +MessageId=50494 +Language=English +%1 +. +MessageId=50495 +Language=English +%1 +. +MessageId=50496 +Language=English +%1 +. +MessageId=50497 +Language=English +%1 +. +MessageId=50498 +Language=English +%1 +. +MessageId=50499 +Language=English +%1 +. +MessageId=50500 +Language=English +%1 +. +MessageId=50501 +Language=English +%1 +. +MessageId=50502 +Language=English +%1 +. +MessageId=50503 +Language=English +%1 +. +MessageId=50504 +Language=English +%1 +. +MessageId=50505 +Language=English +%1 +. +MessageId=50506 +Language=English +%1 +. +MessageId=50507 +Language=English +%1 +. +MessageId=50508 +Language=English +%1 +. +MessageId=50509 +Language=English +%1 +. +MessageId=50510 +Language=English +%1 +. +MessageId=50511 +Language=English +%1 +. +MessageId=50512 +Language=English +%1 +. +MessageId=50513 +Language=English +%1 +. +MessageId=50514 +Language=English +%1 +. +MessageId=50515 +Language=English +%1 +. +MessageId=50516 +Language=English +%1 +. +MessageId=50517 +Language=English +%1 +. +MessageId=50518 +Language=English +%1 +. +MessageId=50519 +Language=English +%1 +. +MessageId=50520 +Language=English +%1 +. +MessageId=50521 +Language=English +%1 +. +MessageId=50522 +Language=English +%1 +. +MessageId=50523 +Language=English +%1 +. +MessageId=50524 +Language=English +%1 +. +MessageId=50525 +Language=English +%1 +. +MessageId=50526 +Language=English +%1 +. +MessageId=50527 +Language=English +%1 +. +MessageId=50528 +Language=English +%1 +. +MessageId=50529 +Language=English +%1 +. +MessageId=50530 +Language=English +%1 +. +MessageId=50531 +Language=English +%1 +. +MessageId=50532 +Language=English +%1 +. +MessageId=50533 +Language=English +%1 +. +MessageId=50534 +Language=English +%1 +. +MessageId=50535 +Language=English +%1 +. +MessageId=50536 +Language=English +%1 +. +MessageId=50537 +Language=English +%1 +. +MessageId=50538 +Language=English +%1 +. +MessageId=50539 +Language=English +%1 +. +MessageId=50540 +Language=English +%1 +. +MessageId=50541 +Language=English +%1 +. +MessageId=50542 +Language=English +%1 +. +MessageId=50543 +Language=English +%1 +. +MessageId=50544 +Language=English +%1 +. +MessageId=50545 +Language=English +%1 +. +MessageId=50546 +Language=English +%1 +. +MessageId=50547 +Language=English +%1 +. +MessageId=50548 +Language=English +%1 +. +MessageId=50549 +Language=English +%1 +. +MessageId=50550 +Language=English +%1 +. +MessageId=50551 +Language=English +%1 +. +MessageId=50552 +Language=English +%1 +. +MessageId=50553 +Language=English +%1 +. +MessageId=50554 +Language=English +%1 +. +MessageId=50555 +Language=English +%1 +. +MessageId=50556 +Language=English +%1 +. +MessageId=50557 +Language=English +%1 +. +MessageId=50558 +Language=English +%1 +. +MessageId=50559 +Language=English +%1 +. +MessageId=50560 +Language=English +%1 +. +MessageId=50561 +Language=English +%1 +. +MessageId=50562 +Language=English +%1 +. +MessageId=50563 +Language=English +%1 +. +MessageId=50564 +Language=English +%1 +. +MessageId=50565 +Language=English +%1 +. +MessageId=50566 +Language=English +%1 +. +MessageId=50567 +Language=English +%1 +. +MessageId=50568 +Language=English +%1 +. +MessageId=50569 +Language=English +%1 +. +MessageId=50570 +Language=English +%1 +. +MessageId=50571 +Language=English +%1 +. +MessageId=50572 +Language=English +%1 +. +MessageId=50573 +Language=English +%1 +. +MessageId=50574 +Language=English +%1 +. +MessageId=50575 +Language=English +%1 +. +MessageId=50576 +Language=English +%1 +. +MessageId=50577 +Language=English +%1 +. +MessageId=50578 +Language=English +%1 +. +MessageId=50579 +Language=English +%1 +. +MessageId=50580 +Language=English +%1 +. +MessageId=50581 +Language=English +%1 +. +MessageId=50582 +Language=English +%1 +. +MessageId=50583 +Language=English +%1 +. +MessageId=50584 +Language=English +%1 +. +MessageId=50585 +Language=English +%1 +. +MessageId=50586 +Language=English +%1 +. +MessageId=50587 +Language=English +%1 +. +MessageId=50588 +Language=English +%1 +. +MessageId=50589 +Language=English +%1 +. +MessageId=50590 +Language=English +%1 +. +MessageId=50591 +Language=English +%1 +. +MessageId=50592 +Language=English +%1 +. +MessageId=50593 +Language=English +%1 +. +MessageId=50594 +Language=English +%1 +. +MessageId=50595 +Language=English +%1 +. +MessageId=50596 +Language=English +%1 +. +MessageId=50597 +Language=English +%1 +. +MessageId=50598 +Language=English +%1 +. +MessageId=50599 +Language=English +%1 +. +MessageId=50600 +Language=English +%1 +. +MessageId=50601 +Language=English +%1 +. +MessageId=50602 +Language=English +%1 +. +MessageId=50603 +Language=English +%1 +. +MessageId=50604 +Language=English +%1 +. +MessageId=50605 +Language=English +%1 +. +MessageId=50606 +Language=English +%1 +. +MessageId=50607 +Language=English +%1 +. +MessageId=50608 +Language=English +%1 +. +MessageId=50609 +Language=English +%1 +. +MessageId=50610 +Language=English +%1 +. +MessageId=50611 +Language=English +%1 +. +MessageId=50612 +Language=English +%1 +. +MessageId=50613 +Language=English +%1 +. +MessageId=50614 +Language=English +%1 +. +MessageId=50615 +Language=English +%1 +. +MessageId=50616 +Language=English +%1 +. +MessageId=50617 +Language=English +%1 +. +MessageId=50618 +Language=English +%1 +. +MessageId=50619 +Language=English +%1 +. +MessageId=50620 +Language=English +%1 +. +MessageId=50621 +Language=English +%1 +. +MessageId=50622 +Language=English +%1 +. +MessageId=50623 +Language=English +%1 +. +MessageId=50624 +Language=English +%1 +. +MessageId=50625 +Language=English +%1 +. +MessageId=50626 +Language=English +%1 +. +MessageId=50627 +Language=English +%1 +. +MessageId=50628 +Language=English +%1 +. +MessageId=50629 +Language=English +%1 +. +MessageId=50630 +Language=English +%1 +. +MessageId=50631 +Language=English +%1 +. +MessageId=50632 +Language=English +%1 +. +MessageId=50633 +Language=English +%1 +. +MessageId=50634 +Language=English +%1 +. +MessageId=50635 +Language=English +%1 +. +MessageId=50636 +Language=English +%1 +. +MessageId=50637 +Language=English +%1 +. +MessageId=50638 +Language=English +%1 +. +MessageId=50639 +Language=English +%1 +. +MessageId=50640 +Language=English +%1 +. +MessageId=50641 +Language=English +%1 +. +MessageId=50642 +Language=English +%1 +. +MessageId=50643 +Language=English +%1 +. +MessageId=50644 +Language=English +%1 +. +MessageId=50645 +Language=English +%1 +. +MessageId=50646 +Language=English +%1 +. +MessageId=50647 +Language=English +%1 +. +MessageId=50648 +Language=English +%1 +. +MessageId=50649 +Language=English +%1 +. +MessageId=50650 +Language=English +%1 +. +MessageId=50651 +Language=English +%1 +. +MessageId=50652 +Language=English +%1 +. +MessageId=50653 +Language=English +%1 +. +MessageId=50654 +Language=English +%1 +. +MessageId=50655 +Language=English +%1 +. +MessageId=50656 +Language=English +%1 +. +MessageId=50657 +Language=English +%1 +. +MessageId=50658 +Language=English +%1 +. +MessageId=50659 +Language=English +%1 +. +MessageId=50660 +Language=English +%1 +. +MessageId=50661 +Language=English +%1 +. +MessageId=50662 +Language=English +%1 +. +MessageId=50663 +Language=English +%1 +. +MessageId=50664 +Language=English +%1 +. +MessageId=50665 +Language=English +%1 +. +MessageId=50666 +Language=English +%1 +. +MessageId=50667 +Language=English +%1 +. +MessageId=50668 +Language=English +%1 +. +MessageId=50669 +Language=English +%1 +. +MessageId=50670 +Language=English +%1 +. +MessageId=50671 +Language=English +%1 +. +MessageId=50672 +Language=English +%1 +. +MessageId=50673 +Language=English +%1 +. +MessageId=50674 +Language=English +%1 +. +MessageId=50675 +Language=English +%1 +. +MessageId=50676 +Language=English +%1 +. +MessageId=50677 +Language=English +%1 +. +MessageId=50678 +Language=English +%1 +. +MessageId=50679 +Language=English +%1 +. +MessageId=50680 +Language=English +%1 +. +MessageId=50681 +Language=English +%1 +. +MessageId=50682 +Language=English +%1 +. +MessageId=50683 +Language=English +%1 +. +MessageId=50684 +Language=English +%1 +. +MessageId=50685 +Language=English +%1 +. +MessageId=50686 +Language=English +%1 +. +MessageId=50687 +Language=English +%1 +. +MessageId=50688 +Language=English +%1 +. +MessageId=50689 +Language=English +%1 +. +MessageId=50690 +Language=English +%1 +. +MessageId=50691 +Language=English +%1 +. +MessageId=50692 +Language=English +%1 +. +MessageId=50693 +Language=English +%1 +. +MessageId=50694 +Language=English +%1 +. +MessageId=50695 +Language=English +%1 +. +MessageId=50696 +Language=English +%1 +. +MessageId=50697 +Language=English +%1 +. +MessageId=50698 +Language=English +%1 +. +MessageId=50699 +Language=English +%1 +. +MessageId=50700 +Language=English +%1 +. +MessageId=50701 +Language=English +%1 +. +MessageId=50702 +Language=English +%1 +. +MessageId=50703 +Language=English +%1 +. +MessageId=50704 +Language=English +%1 +. +MessageId=50705 +Language=English +%1 +. +MessageId=50706 +Language=English +%1 +. +MessageId=50707 +Language=English +%1 +. +MessageId=50708 +Language=English +%1 +. +MessageId=50709 +Language=English +%1 +. +MessageId=50710 +Language=English +%1 +. +MessageId=50711 +Language=English +%1 +. +MessageId=50712 +Language=English +%1 +. +MessageId=50713 +Language=English +%1 +. +MessageId=50714 +Language=English +%1 +. +MessageId=50715 +Language=English +%1 +. +MessageId=50716 +Language=English +%1 +. +MessageId=50717 +Language=English +%1 +. +MessageId=50718 +Language=English +%1 +. +MessageId=50719 +Language=English +%1 +. +MessageId=50720 +Language=English +%1 +. +MessageId=50721 +Language=English +%1 +. +MessageId=50722 +Language=English +%1 +. +MessageId=50723 +Language=English +%1 +. +MessageId=50724 +Language=English +%1 +. +MessageId=50725 +Language=English +%1 +. +MessageId=50726 +Language=English +%1 +. +MessageId=50727 +Language=English +%1 +. +MessageId=50728 +Language=English +%1 +. +MessageId=50729 +Language=English +%1 +. +MessageId=50730 +Language=English +%1 +. +MessageId=50731 +Language=English +%1 +. +MessageId=50732 +Language=English +%1 +. +MessageId=50733 +Language=English +%1 +. +MessageId=50734 +Language=English +%1 +. +MessageId=50735 +Language=English +%1 +. +MessageId=50736 +Language=English +%1 +. +MessageId=50737 +Language=English +%1 +. +MessageId=50738 +Language=English +%1 +. +MessageId=50739 +Language=English +%1 +. +MessageId=50740 +Language=English +%1 +. +MessageId=50741 +Language=English +%1 +. +MessageId=50742 +Language=English +%1 +. +MessageId=50743 +Language=English +%1 +. +MessageId=50744 +Language=English +%1 +. +MessageId=50745 +Language=English +%1 +. +MessageId=50746 +Language=English +%1 +. +MessageId=50747 +Language=English +%1 +. +MessageId=50748 +Language=English +%1 +. +MessageId=50749 +Language=English +%1 +. +MessageId=50750 +Language=English +%1 +. +MessageId=50751 +Language=English +%1 +. +MessageId=50752 +Language=English +%1 +. +MessageId=50753 +Language=English +%1 +. +MessageId=50754 +Language=English +%1 +. +MessageId=50755 +Language=English +%1 +. +MessageId=50756 +Language=English +%1 +. +MessageId=50757 +Language=English +%1 +. +MessageId=50758 +Language=English +%1 +. +MessageId=50759 +Language=English +%1 +. +MessageId=50760 +Language=English +%1 +. +MessageId=50761 +Language=English +%1 +. +MessageId=50762 +Language=English +%1 +. +MessageId=50763 +Language=English +%1 +. +MessageId=50764 +Language=English +%1 +. +MessageId=50765 +Language=English +%1 +. +MessageId=50766 +Language=English +%1 +. +MessageId=50767 +Language=English +%1 +. +MessageId=50768 +Language=English +%1 +. +MessageId=50769 +Language=English +%1 +. +MessageId=50770 +Language=English +%1 +. +MessageId=50771 +Language=English +%1 +. +MessageId=50772 +Language=English +%1 +. +MessageId=50773 +Language=English +%1 +. +MessageId=50774 +Language=English +%1 +. +MessageId=50775 +Language=English +%1 +. +MessageId=50776 +Language=English +%1 +. +MessageId=50777 +Language=English +%1 +. +MessageId=50778 +Language=English +%1 +. +MessageId=50779 +Language=English +%1 +. +MessageId=50780 +Language=English +%1 +. +MessageId=50781 +Language=English +%1 +. +MessageId=50782 +Language=English +%1 +. +MessageId=50783 +Language=English +%1 +. +MessageId=50784 +Language=English +%1 +. +MessageId=50785 +Language=English +%1 +. +MessageId=50786 +Language=English +%1 +. +MessageId=50787 +Language=English +%1 +. +MessageId=50788 +Language=English +%1 +. +MessageId=50789 +Language=English +%1 +. +MessageId=50790 +Language=English +%1 +. +MessageId=50791 +Language=English +%1 +. +MessageId=50792 +Language=English +%1 +. +MessageId=50793 +Language=English +%1 +. +MessageId=50794 +Language=English +%1 +. +MessageId=50795 +Language=English +%1 +. +MessageId=50796 +Language=English +%1 +. +MessageId=50797 +Language=English +%1 +. +MessageId=50798 +Language=English +%1 +. +MessageId=50799 +Language=English +%1 +. +MessageId=50800 +Language=English +%1 +. +MessageId=50801 +Language=English +%1 +. +MessageId=50802 +Language=English +%1 +. +MessageId=50803 +Language=English +%1 +. +MessageId=50804 +Language=English +%1 +. +MessageId=50805 +Language=English +%1 +. +MessageId=50806 +Language=English +%1 +. +MessageId=50807 +Language=English +%1 +. +MessageId=50808 +Language=English +%1 +. +MessageId=50809 +Language=English +%1 +. +MessageId=50810 +Language=English +%1 +. +MessageId=50811 +Language=English +%1 +. +MessageId=50812 +Language=English +%1 +. +MessageId=50813 +Language=English +%1 +. +MessageId=50814 +Language=English +%1 +. +MessageId=50815 +Language=English +%1 +. +MessageId=50816 +Language=English +%1 +. +MessageId=50817 +Language=English +%1 +. +MessageId=50818 +Language=English +%1 +. +MessageId=50819 +Language=English +%1 +. +MessageId=50820 +Language=English +%1 +. +MessageId=50821 +Language=English +%1 +. +MessageId=50822 +Language=English +%1 +. +MessageId=50823 +Language=English +%1 +. +MessageId=50824 +Language=English +%1 +. +MessageId=50825 +Language=English +%1 +. +MessageId=50826 +Language=English +%1 +. +MessageId=50827 +Language=English +%1 +. +MessageId=50828 +Language=English +%1 +. +MessageId=50829 +Language=English +%1 +. +MessageId=50830 +Language=English +%1 +. +MessageId=50831 +Language=English +%1 +. +MessageId=50832 +Language=English +%1 +. +MessageId=50833 +Language=English +%1 +. +MessageId=50834 +Language=English +%1 +. +MessageId=50835 +Language=English +%1 +. +MessageId=50836 +Language=English +%1 +. +MessageId=50837 +Language=English +%1 +. +MessageId=50838 +Language=English +%1 +. +MessageId=50839 +Language=English +%1 +. +MessageId=50840 +Language=English +%1 +. +MessageId=50841 +Language=English +%1 +. +MessageId=50842 +Language=English +%1 +. +MessageId=50843 +Language=English +%1 +. +MessageId=50844 +Language=English +%1 +. +MessageId=50845 +Language=English +%1 +. +MessageId=50846 +Language=English +%1 +. +MessageId=50847 +Language=English +%1 +. +MessageId=50848 +Language=English +%1 +. +MessageId=50849 +Language=English +%1 +. +MessageId=50850 +Language=English +%1 +. +MessageId=50851 +Language=English +%1 +. +MessageId=50852 +Language=English +%1 +. +MessageId=50853 +Language=English +%1 +. +MessageId=50854 +Language=English +%1 +. +MessageId=50855 +Language=English +%1 +. +MessageId=50856 +Language=English +%1 +. +MessageId=50857 +Language=English +%1 +. +MessageId=50858 +Language=English +%1 +. +MessageId=50859 +Language=English +%1 +. +MessageId=50860 +Language=English +%1 +. +MessageId=50861 +Language=English +%1 +. +MessageId=50862 +Language=English +%1 +. +MessageId=50863 +Language=English +%1 +. +MessageId=50864 +Language=English +%1 +. +MessageId=50865 +Language=English +%1 +. +MessageId=50866 +Language=English +%1 +. +MessageId=50867 +Language=English +%1 +. +MessageId=50868 +Language=English +%1 +. +MessageId=50869 +Language=English +%1 +. +MessageId=50870 +Language=English +%1 +. +MessageId=50871 +Language=English +%1 +. +MessageId=50872 +Language=English +%1 +. +MessageId=50873 +Language=English +%1 +. +MessageId=50874 +Language=English +%1 +. +MessageId=50875 +Language=English +%1 +. +MessageId=50876 +Language=English +%1 +. +MessageId=50877 +Language=English +%1 +. +MessageId=50878 +Language=English +%1 +. +MessageId=50879 +Language=English +%1 +. +MessageId=50880 +Language=English +%1 +. +MessageId=50881 +Language=English +%1 +. +MessageId=50882 +Language=English +%1 +. +MessageId=50883 +Language=English +%1 +. +MessageId=50884 +Language=English +%1 +. +MessageId=50885 +Language=English +%1 +. +MessageId=50886 +Language=English +%1 +. +MessageId=50887 +Language=English +%1 +. +MessageId=50888 +Language=English +%1 +. +MessageId=50889 +Language=English +%1 +. +MessageId=50890 +Language=English +%1 +. +MessageId=50891 +Language=English +%1 +. +MessageId=50892 +Language=English +%1 +. +MessageId=50893 +Language=English +%1 +. +MessageId=50894 +Language=English +%1 +. +MessageId=50895 +Language=English +%1 +. +MessageId=50896 +Language=English +%1 +. +MessageId=50897 +Language=English +%1 +. +MessageId=50898 +Language=English +%1 +. +MessageId=50899 +Language=English +%1 +. +MessageId=50900 +Language=English +%1 +. +MessageId=50901 +Language=English +%1 +. +MessageId=50902 +Language=English +%1 +. +MessageId=50903 +Language=English +%1 +. +MessageId=50904 +Language=English +%1 +. +MessageId=50905 +Language=English +%1 +. +MessageId=50906 +Language=English +%1 +. +MessageId=50907 +Language=English +%1 +. +MessageId=50908 +Language=English +%1 +. +MessageId=50909 +Language=English +%1 +. +MessageId=50910 +Language=English +%1 +. +MessageId=50911 +Language=English +%1 +. +MessageId=50912 +Language=English +%1 +. +MessageId=50913 +Language=English +%1 +. +MessageId=50914 +Language=English +%1 +. +MessageId=50915 +Language=English +%1 +. +MessageId=50916 +Language=English +%1 +. +MessageId=50917 +Language=English +%1 +. +MessageId=50918 +Language=English +%1 +. +MessageId=50919 +Language=English +%1 +. +MessageId=50920 +Language=English +%1 +. +MessageId=50921 +Language=English +%1 +. +MessageId=50922 +Language=English +%1 +. +MessageId=50923 +Language=English +%1 +. +MessageId=50924 +Language=English +%1 +. +MessageId=50925 +Language=English +%1 +. +MessageId=50926 +Language=English +%1 +. +MessageId=50927 +Language=English +%1 +. +MessageId=50928 +Language=English +%1 +. +MessageId=50929 +Language=English +%1 +. +MessageId=50930 +Language=English +%1 +. +MessageId=50931 +Language=English +%1 +. +MessageId=50932 +Language=English +%1 +. +MessageId=50933 +Language=English +%1 +. +MessageId=50934 +Language=English +%1 +. +MessageId=50935 +Language=English +%1 +. +MessageId=50936 +Language=English +%1 +. +MessageId=50937 +Language=English +%1 +. +MessageId=50938 +Language=English +%1 +. +MessageId=50939 +Language=English +%1 +. +MessageId=50940 +Language=English +%1 +. +MessageId=50941 +Language=English +%1 +. +MessageId=50942 +Language=English +%1 +. +MessageId=50943 +Language=English +%1 +. +MessageId=50944 +Language=English +%1 +. +MessageId=50945 +Language=English +%1 +. +MessageId=50946 +Language=English +%1 +. +MessageId=50947 +Language=English +%1 +. +MessageId=50948 +Language=English +%1 +. +MessageId=50949 +Language=English +%1 +. +MessageId=50950 +Language=English +%1 +. +MessageId=50951 +Language=English +%1 +. +MessageId=50952 +Language=English +%1 +. +MessageId=50953 +Language=English +%1 +. +MessageId=50954 +Language=English +%1 +. +MessageId=50955 +Language=English +%1 +. +MessageId=50956 +Language=English +%1 +. +MessageId=50957 +Language=English +%1 +. +MessageId=50958 +Language=English +%1 +. +MessageId=50959 +Language=English +%1 +. +MessageId=50960 +Language=English +%1 +. +MessageId=50961 +Language=English +%1 +. +MessageId=50962 +Language=English +%1 +. +MessageId=50963 +Language=English +%1 +. +MessageId=50964 +Language=English +%1 +. +MessageId=50965 +Language=English +%1 +. +MessageId=50966 +Language=English +%1 +. +MessageId=50967 +Language=English +%1 +. +MessageId=50968 +Language=English +%1 +. +MessageId=50969 +Language=English +%1 +. +MessageId=50970 +Language=English +%1 +. +MessageId=50971 +Language=English +%1 +. +MessageId=50972 +Language=English +%1 +. +MessageId=50973 +Language=English +%1 +. +MessageId=50974 +Language=English +%1 +. +MessageId=50975 +Language=English +%1 +. +MessageId=50976 +Language=English +%1 +. +MessageId=50977 +Language=English +%1 +. +MessageId=50978 +Language=English +%1 +. +MessageId=50979 +Language=English +%1 +. +MessageId=50980 +Language=English +%1 +. +MessageId=50981 +Language=English +%1 +. +MessageId=50982 +Language=English +%1 +. +MessageId=50983 +Language=English +%1 +. +MessageId=50984 +Language=English +%1 +. +MessageId=50985 +Language=English +%1 +. +MessageId=50986 +Language=English +%1 +. +MessageId=50987 +Language=English +%1 +. +MessageId=50988 +Language=English +%1 +. +MessageId=50989 +Language=English +%1 +. +MessageId=50990 +Language=English +%1 +. +MessageId=50991 +Language=English +%1 +. +MessageId=50992 +Language=English +%1 +. +MessageId=50993 +Language=English +%1 +. +MessageId=50994 +Language=English +%1 +. +MessageId=50995 +Language=English +%1 +. +MessageId=50996 +Language=English +%1 +. +MessageId=50997 +Language=English +%1 +. +MessageId=50998 +Language=English +%1 +. +MessageId=50999 +Language=English +%1 +. +MessageId=51000 +Language=English +%1 +. +MessageId=51001 +Language=English +%1 +. +MessageId=51002 +Language=English +%1 +. +MessageId=51003 +Language=English +%1 +. +MessageId=51004 +Language=English +%1 +. +MessageId=51005 +Language=English +%1 +. +MessageId=51006 +Language=English +%1 +. +MessageId=51007 +Language=English +%1 +. +MessageId=51008 +Language=English +%1 +. +MessageId=51009 +Language=English +%1 +. +MessageId=51010 +Language=English +%1 +. +MessageId=51011 +Language=English +%1 +. +MessageId=51012 +Language=English +%1 +. +MessageId=51013 +Language=English +%1 +. +MessageId=51014 +Language=English +%1 +. +MessageId=51015 +Language=English +%1 +. +MessageId=51016 +Language=English +%1 +. +MessageId=51017 +Language=English +%1 +. +MessageId=51018 +Language=English +%1 +. +MessageId=51019 +Language=English +%1 +. +MessageId=51020 +Language=English +%1 +. +MessageId=51021 +Language=English +%1 +. +MessageId=51022 +Language=English +%1 +. +MessageId=51023 +Language=English +%1 +. +MessageId=51024 +Language=English +%1 +. +MessageId=51025 +Language=English +%1 +. +MessageId=51026 +Language=English +%1 +. +MessageId=51027 +Language=English +%1 +. +MessageId=51028 +Language=English +%1 +. +MessageId=51029 +Language=English +%1 +. +MessageId=51030 +Language=English +%1 +. +MessageId=51031 +Language=English +%1 +. +MessageId=51032 +Language=English +%1 +. +MessageId=51033 +Language=English +%1 +. +MessageId=51034 +Language=English +%1 +. +MessageId=51035 +Language=English +%1 +. +MessageId=51036 +Language=English +%1 +. +MessageId=51037 +Language=English +%1 +. +MessageId=51038 +Language=English +%1 +. +MessageId=51039 +Language=English +%1 +. +MessageId=51040 +Language=English +%1 +. +MessageId=51041 +Language=English +%1 +. +MessageId=51042 +Language=English +%1 +. +MessageId=51043 +Language=English +%1 +. +MessageId=51044 +Language=English +%1 +. +MessageId=51045 +Language=English +%1 +. +MessageId=51046 +Language=English +%1 +. +MessageId=51047 +Language=English +%1 +. +MessageId=51048 +Language=English +%1 +. +MessageId=51049 +Language=English +%1 +. +MessageId=51050 +Language=English +%1 +. +MessageId=51051 +Language=English +%1 +. +MessageId=51052 +Language=English +%1 +. +MessageId=51053 +Language=English +%1 +. +MessageId=51054 +Language=English +%1 +. +MessageId=51055 +Language=English +%1 +. +MessageId=51056 +Language=English +%1 +. +MessageId=51057 +Language=English +%1 +. +MessageId=51058 +Language=English +%1 +. +MessageId=51059 +Language=English +%1 +. +MessageId=51060 +Language=English +%1 +. +MessageId=51061 +Language=English +%1 +. +MessageId=51062 +Language=English +%1 +. +MessageId=51063 +Language=English +%1 +. +MessageId=51064 +Language=English +%1 +. +MessageId=51065 +Language=English +%1 +. +MessageId=51066 +Language=English +%1 +. +MessageId=51067 +Language=English +%1 +. +MessageId=51068 +Language=English +%1 +. +MessageId=51069 +Language=English +%1 +. +MessageId=51070 +Language=English +%1 +. +MessageId=51071 +Language=English +%1 +. +MessageId=51072 +Language=English +%1 +. +MessageId=51073 +Language=English +%1 +. +MessageId=51074 +Language=English +%1 +. +MessageId=51075 +Language=English +%1 +. +MessageId=51076 +Language=English +%1 +. +MessageId=51077 +Language=English +%1 +. +MessageId=51078 +Language=English +%1 +. +MessageId=51079 +Language=English +%1 +. +MessageId=51080 +Language=English +%1 +. +MessageId=51081 +Language=English +%1 +. +MessageId=51082 +Language=English +%1 +. +MessageId=51083 +Language=English +%1 +. +MessageId=51084 +Language=English +%1 +. +MessageId=51085 +Language=English +%1 +. +MessageId=51086 +Language=English +%1 +. +MessageId=51087 +Language=English +%1 +. +MessageId=51088 +Language=English +%1 +. +MessageId=51089 +Language=English +%1 +. +MessageId=51090 +Language=English +%1 +. +MessageId=51091 +Language=English +%1 +. +MessageId=51092 +Language=English +%1 +. +MessageId=51093 +Language=English +%1 +. +MessageId=51094 +Language=English +%1 +. +MessageId=51095 +Language=English +%1 +. +MessageId=51096 +Language=English +%1 +. +MessageId=51097 +Language=English +%1 +. +MessageId=51098 +Language=English +%1 +. +MessageId=51099 +Language=English +%1 +. +MessageId=51100 +Language=English +%1 +. +MessageId=51101 +Language=English +%1 +. +MessageId=51102 +Language=English +%1 +. +MessageId=51103 +Language=English +%1 +. +MessageId=51104 +Language=English +%1 +. +MessageId=51105 +Language=English +%1 +. +MessageId=51106 +Language=English +%1 +. +MessageId=51107 +Language=English +%1 +. +MessageId=51108 +Language=English +%1 +. +MessageId=51109 +Language=English +%1 +. +MessageId=51110 +Language=English +%1 +. +MessageId=51111 +Language=English +%1 +. +MessageId=51112 +Language=English +%1 +. +MessageId=51113 +Language=English +%1 +. +MessageId=51114 +Language=English +%1 +. +MessageId=51115 +Language=English +%1 +. +MessageId=51116 +Language=English +%1 +. +MessageId=51117 +Language=English +%1 +. +MessageId=51118 +Language=English +%1 +. +MessageId=51119 +Language=English +%1 +. +MessageId=51120 +Language=English +%1 +. +MessageId=51121 +Language=English +%1 +. +MessageId=51122 +Language=English +%1 +. +MessageId=51123 +Language=English +%1 +. +MessageId=51124 +Language=English +%1 +. +MessageId=51125 +Language=English +%1 +. +MessageId=51126 +Language=English +%1 +. +MessageId=51127 +Language=English +%1 +. +MessageId=51128 +Language=English +%1 +. +MessageId=51129 +Language=English +%1 +. +MessageId=51130 +Language=English +%1 +. +MessageId=51131 +Language=English +%1 +. +MessageId=51132 +Language=English +%1 +. +MessageId=51133 +Language=English +%1 +. +MessageId=51134 +Language=English +%1 +. +MessageId=51135 +Language=English +%1 +. +MessageId=51136 +Language=English +%1 +. +MessageId=51137 +Language=English +%1 +. +MessageId=51138 +Language=English +%1 +. +MessageId=51139 +Language=English +%1 +. +MessageId=51140 +Language=English +%1 +. +MessageId=51141 +Language=English +%1 +. +MessageId=51142 +Language=English +%1 +. +MessageId=51143 +Language=English +%1 +. +MessageId=51144 +Language=English +%1 +. +MessageId=51145 +Language=English +%1 +. +MessageId=51146 +Language=English +%1 +. +MessageId=51147 +Language=English +%1 +. +MessageId=51148 +Language=English +%1 +. +MessageId=51149 +Language=English +%1 +. +MessageId=51150 +Language=English +%1 +. +MessageId=51151 +Language=English +%1 +. +MessageId=51152 +Language=English +%1 +. +MessageId=51153 +Language=English +%1 +. +MessageId=51154 +Language=English +%1 +. +MessageId=51155 +Language=English +%1 +. +MessageId=51156 +Language=English +%1 +. +MessageId=51157 +Language=English +%1 +. +MessageId=51158 +Language=English +%1 +. +MessageId=51159 +Language=English +%1 +. +MessageId=51160 +Language=English +%1 +. +MessageId=51161 +Language=English +%1 +. +MessageId=51162 +Language=English +%1 +. +MessageId=51163 +Language=English +%1 +. +MessageId=51164 +Language=English +%1 +. +MessageId=51165 +Language=English +%1 +. +MessageId=51166 +Language=English +%1 +. +MessageId=51167 +Language=English +%1 +. +MessageId=51168 +Language=English +%1 +. +MessageId=51169 +Language=English +%1 +. +MessageId=51170 +Language=English +%1 +. +MessageId=51171 +Language=English +%1 +. +MessageId=51172 +Language=English +%1 +. +MessageId=51173 +Language=English +%1 +. +MessageId=51174 +Language=English +%1 +. +MessageId=51175 +Language=English +%1 +. +MessageId=51176 +Language=English +%1 +. +MessageId=51177 +Language=English +%1 +. +MessageId=51178 +Language=English +%1 +. +MessageId=51179 +Language=English +%1 +. +MessageId=51180 +Language=English +%1 +. +MessageId=51181 +Language=English +%1 +. +MessageId=51182 +Language=English +%1 +. +MessageId=51183 +Language=English +%1 +. +MessageId=51184 +Language=English +%1 +. +MessageId=51185 +Language=English +%1 +. +MessageId=51186 +Language=English +%1 +. +MessageId=51187 +Language=English +%1 +. +MessageId=51188 +Language=English +%1 +. +MessageId=51189 +Language=English +%1 +. +MessageId=51190 +Language=English +%1 +. +MessageId=51191 +Language=English +%1 +. +MessageId=51192 +Language=English +%1 +. +MessageId=51193 +Language=English +%1 +. +MessageId=51194 +Language=English +%1 +. +MessageId=51195 +Language=English +%1 +. +MessageId=51196 +Language=English +%1 +. +MessageId=51197 +Language=English +%1 +. +MessageId=51198 +Language=English +%1 +. +MessageId=51199 +Language=English +%1 +. +MessageId=51200 +Language=English +%1 +. +MessageId=51201 +Language=English +%1 +. +MessageId=51202 +Language=English +%1 +. +MessageId=51203 +Language=English +%1 +. +MessageId=51204 +Language=English +%1 +. +MessageId=51205 +Language=English +%1 +. +MessageId=51206 +Language=English +%1 +. +MessageId=51207 +Language=English +%1 +. +MessageId=51208 +Language=English +%1 +. +MessageId=51209 +Language=English +%1 +. +MessageId=51210 +Language=English +%1 +. +MessageId=51211 +Language=English +%1 +. +MessageId=51212 +Language=English +%1 +. +MessageId=51213 +Language=English +%1 +. +MessageId=51214 +Language=English +%1 +. +MessageId=51215 +Language=English +%1 +. +MessageId=51216 +Language=English +%1 +. +MessageId=51217 +Language=English +%1 +. +MessageId=51218 +Language=English +%1 +. +MessageId=51219 +Language=English +%1 +. +MessageId=51220 +Language=English +%1 +. +MessageId=51221 +Language=English +%1 +. +MessageId=51222 +Language=English +%1 +. +MessageId=51223 +Language=English +%1 +. +MessageId=51224 +Language=English +%1 +. +MessageId=51225 +Language=English +%1 +. +MessageId=51226 +Language=English +%1 +. +MessageId=51227 +Language=English +%1 +. +MessageId=51228 +Language=English +%1 +. +MessageId=51229 +Language=English +%1 +. +MessageId=51230 +Language=English +%1 +. +MessageId=51231 +Language=English +%1 +. +MessageId=51232 +Language=English +%1 +. +MessageId=51233 +Language=English +%1 +. +MessageId=51234 +Language=English +%1 +. +MessageId=51235 +Language=English +%1 +. +MessageId=51236 +Language=English +%1 +. +MessageId=51237 +Language=English +%1 +. +MessageId=51238 +Language=English +%1 +. +MessageId=51239 +Language=English +%1 +. +MessageId=51240 +Language=English +%1 +. +MessageId=51241 +Language=English +%1 +. +MessageId=51242 +Language=English +%1 +. +MessageId=51243 +Language=English +%1 +. +MessageId=51244 +Language=English +%1 +. +MessageId=51245 +Language=English +%1 +. +MessageId=51246 +Language=English +%1 +. +MessageId=51247 +Language=English +%1 +. +MessageId=51248 +Language=English +%1 +. +MessageId=51249 +Language=English +%1 +. +MessageId=51250 +Language=English +%1 +. +MessageId=51251 +Language=English +%1 +. +MessageId=51252 +Language=English +%1 +. +MessageId=51253 +Language=English +%1 +. +MessageId=51254 +Language=English +%1 +. +MessageId=51255 +Language=English +%1 +. +MessageId=51256 +Language=English +%1 +. +MessageId=51257 +Language=English +%1 +. +MessageId=51258 +Language=English +%1 +. +MessageId=51259 +Language=English +%1 +. +MessageId=51260 +Language=English +%1 +. +MessageId=51261 +Language=English +%1 +. +MessageId=51262 +Language=English +%1 +. +MessageId=51263 +Language=English +%1 +. +MessageId=51264 +Language=English +%1 +. +MessageId=51265 +Language=English +%1 +. +MessageId=51266 +Language=English +%1 +. +MessageId=51267 +Language=English +%1 +. +MessageId=51268 +Language=English +%1 +. +MessageId=51269 +Language=English +%1 +. +MessageId=51270 +Language=English +%1 +. +MessageId=51271 +Language=English +%1 +. +MessageId=51272 +Language=English +%1 +. +MessageId=51273 +Language=English +%1 +. +MessageId=51274 +Language=English +%1 +. +MessageId=51275 +Language=English +%1 +. +MessageId=51276 +Language=English +%1 +. +MessageId=51277 +Language=English +%1 +. +MessageId=51278 +Language=English +%1 +. +MessageId=51279 +Language=English +%1 +. +MessageId=51280 +Language=English +%1 +. +MessageId=51281 +Language=English +%1 +. +MessageId=51282 +Language=English +%1 +. +MessageId=51283 +Language=English +%1 +. +MessageId=51284 +Language=English +%1 +. +MessageId=51285 +Language=English +%1 +. +MessageId=51286 +Language=English +%1 +. +MessageId=51287 +Language=English +%1 +. +MessageId=51288 +Language=English +%1 +. +MessageId=51289 +Language=English +%1 +. +MessageId=51290 +Language=English +%1 +. +MessageId=51291 +Language=English +%1 +. +MessageId=51292 +Language=English +%1 +. +MessageId=51293 +Language=English +%1 +. +MessageId=51294 +Language=English +%1 +. +MessageId=51295 +Language=English +%1 +. +MessageId=51296 +Language=English +%1 +. +MessageId=51297 +Language=English +%1 +. +MessageId=51298 +Language=English +%1 +. +MessageId=51299 +Language=English +%1 +. +MessageId=51300 +Language=English +%1 +. +MessageId=51301 +Language=English +%1 +. +MessageId=51302 +Language=English +%1 +. +MessageId=51303 +Language=English +%1 +. +MessageId=51304 +Language=English +%1 +. +MessageId=51305 +Language=English +%1 +. +MessageId=51306 +Language=English +%1 +. +MessageId=51307 +Language=English +%1 +. +MessageId=51308 +Language=English +%1 +. +MessageId=51309 +Language=English +%1 +. +MessageId=51310 +Language=English +%1 +. +MessageId=51311 +Language=English +%1 +. +MessageId=51312 +Language=English +%1 +. +MessageId=51313 +Language=English +%1 +. +MessageId=51314 +Language=English +%1 +. +MessageId=51315 +Language=English +%1 +. +MessageId=51316 +Language=English +%1 +. +MessageId=51317 +Language=English +%1 +. +MessageId=51318 +Language=English +%1 +. +MessageId=51319 +Language=English +%1 +. +MessageId=51320 +Language=English +%1 +. +MessageId=51321 +Language=English +%1 +. +MessageId=51322 +Language=English +%1 +. +MessageId=51323 +Language=English +%1 +. +MessageId=51324 +Language=English +%1 +. +MessageId=51325 +Language=English +%1 +. +MessageId=51326 +Language=English +%1 +. +MessageId=51327 +Language=English +%1 +. +MessageId=51328 +Language=English +%1 +. +MessageId=51329 +Language=English +%1 +. +MessageId=51330 +Language=English +%1 +. +MessageId=51331 +Language=English +%1 +. +MessageId=51332 +Language=English +%1 +. +MessageId=51333 +Language=English +%1 +. +MessageId=51334 +Language=English +%1 +. +MessageId=51335 +Language=English +%1 +. +MessageId=51336 +Language=English +%1 +. +MessageId=51337 +Language=English +%1 +. +MessageId=51338 +Language=English +%1 +. +MessageId=51339 +Language=English +%1 +. +MessageId=51340 +Language=English +%1 +. +MessageId=51341 +Language=English +%1 +. +MessageId=51342 +Language=English +%1 +. +MessageId=51343 +Language=English +%1 +. +MessageId=51344 +Language=English +%1 +. +MessageId=51345 +Language=English +%1 +. +MessageId=51346 +Language=English +%1 +. +MessageId=51347 +Language=English +%1 +. +MessageId=51348 +Language=English +%1 +. +MessageId=51349 +Language=English +%1 +. +MessageId=51350 +Language=English +%1 +. +MessageId=51351 +Language=English +%1 +. +MessageId=51352 +Language=English +%1 +. +MessageId=51353 +Language=English +%1 +. +MessageId=51354 +Language=English +%1 +. +MessageId=51355 +Language=English +%1 +. +MessageId=51356 +Language=English +%1 +. +MessageId=51357 +Language=English +%1 +. +MessageId=51358 +Language=English +%1 +. +MessageId=51359 +Language=English +%1 +. +MessageId=51360 +Language=English +%1 +. +MessageId=51361 +Language=English +%1 +. +MessageId=51362 +Language=English +%1 +. +MessageId=51363 +Language=English +%1 +. +MessageId=51364 +Language=English +%1 +. +MessageId=51365 +Language=English +%1 +. +MessageId=51366 +Language=English +%1 +. +MessageId=51367 +Language=English +%1 +. +MessageId=51368 +Language=English +%1 +. +MessageId=51369 +Language=English +%1 +. +MessageId=51370 +Language=English +%1 +. +MessageId=51371 +Language=English +%1 +. +MessageId=51372 +Language=English +%1 +. +MessageId=51373 +Language=English +%1 +. +MessageId=51374 +Language=English +%1 +. +MessageId=51375 +Language=English +%1 +. +MessageId=51376 +Language=English +%1 +. +MessageId=51377 +Language=English +%1 +. +MessageId=51378 +Language=English +%1 +. +MessageId=51379 +Language=English +%1 +. +MessageId=51380 +Language=English +%1 +. +MessageId=51381 +Language=English +%1 +. +MessageId=51382 +Language=English +%1 +. +MessageId=51383 +Language=English +%1 +. +MessageId=51384 +Language=English +%1 +. +MessageId=51385 +Language=English +%1 +. +MessageId=51386 +Language=English +%1 +. +MessageId=51387 +Language=English +%1 +. +MessageId=51388 +Language=English +%1 +. +MessageId=51389 +Language=English +%1 +. +MessageId=51390 +Language=English +%1 +. +MessageId=51391 +Language=English +%1 +. +MessageId=51392 +Language=English +%1 +. +MessageId=51393 +Language=English +%1 +. +MessageId=51394 +Language=English +%1 +. +MessageId=51395 +Language=English +%1 +. +MessageId=51396 +Language=English +%1 +. +MessageId=51397 +Language=English +%1 +. +MessageId=51398 +Language=English +%1 +. +MessageId=51399 +Language=English +%1 +. +MessageId=51400 +Language=English +%1 +. +MessageId=51401 +Language=English +%1 +. +MessageId=51402 +Language=English +%1 +. +MessageId=51403 +Language=English +%1 +. +MessageId=51404 +Language=English +%1 +. +MessageId=51405 +Language=English +%1 +. +MessageId=51406 +Language=English +%1 +. +MessageId=51407 +Language=English +%1 +. +MessageId=51408 +Language=English +%1 +. +MessageId=51409 +Language=English +%1 +. +MessageId=51410 +Language=English +%1 +. +MessageId=51411 +Language=English +%1 +. +MessageId=51412 +Language=English +%1 +. +MessageId=51413 +Language=English +%1 +. +MessageId=51414 +Language=English +%1 +. +MessageId=51415 +Language=English +%1 +. +MessageId=51416 +Language=English +%1 +. +MessageId=51417 +Language=English +%1 +. +MessageId=51418 +Language=English +%1 +. +MessageId=51419 +Language=English +%1 +. +MessageId=51420 +Language=English +%1 +. +MessageId=51421 +Language=English +%1 +. +MessageId=51422 +Language=English +%1 +. +MessageId=51423 +Language=English +%1 +. +MessageId=51424 +Language=English +%1 +. +MessageId=51425 +Language=English +%1 +. +MessageId=51426 +Language=English +%1 +. +MessageId=51427 +Language=English +%1 +. +MessageId=51428 +Language=English +%1 +. +MessageId=51429 +Language=English +%1 +. +MessageId=51430 +Language=English +%1 +. +MessageId=51431 +Language=English +%1 +. +MessageId=51432 +Language=English +%1 +. +MessageId=51433 +Language=English +%1 +. +MessageId=51434 +Language=English +%1 +. +MessageId=51435 +Language=English +%1 +. +MessageId=51436 +Language=English +%1 +. +MessageId=51437 +Language=English +%1 +. +MessageId=51438 +Language=English +%1 +. +MessageId=51439 +Language=English +%1 +. +MessageId=51440 +Language=English +%1 +. +MessageId=51441 +Language=English +%1 +. +MessageId=51442 +Language=English +%1 +. +MessageId=51443 +Language=English +%1 +. +MessageId=51444 +Language=English +%1 +. +MessageId=51445 +Language=English +%1 +. +MessageId=51446 +Language=English +%1 +. +MessageId=51447 +Language=English +%1 +. +MessageId=51448 +Language=English +%1 +. +MessageId=51449 +Language=English +%1 +. +MessageId=51450 +Language=English +%1 +. +MessageId=51451 +Language=English +%1 +. +MessageId=51452 +Language=English +%1 +. +MessageId=51453 +Language=English +%1 +. +MessageId=51454 +Language=English +%1 +. +MessageId=51455 +Language=English +%1 +. +MessageId=51456 +Language=English +%1 +. +MessageId=51457 +Language=English +%1 +. +MessageId=51458 +Language=English +%1 +. +MessageId=51459 +Language=English +%1 +. +MessageId=51460 +Language=English +%1 +. +MessageId=51461 +Language=English +%1 +. +MessageId=51462 +Language=English +%1 +. +MessageId=51463 +Language=English +%1 +. +MessageId=51464 +Language=English +%1 +. +MessageId=51465 +Language=English +%1 +. +MessageId=51466 +Language=English +%1 +. +MessageId=51467 +Language=English +%1 +. +MessageId=51468 +Language=English +%1 +. +MessageId=51469 +Language=English +%1 +. +MessageId=51470 +Language=English +%1 +. +MessageId=51471 +Language=English +%1 +. +MessageId=51472 +Language=English +%1 +. +MessageId=51473 +Language=English +%1 +. +MessageId=51474 +Language=English +%1 +. +MessageId=51475 +Language=English +%1 +. +MessageId=51476 +Language=English +%1 +. +MessageId=51477 +Language=English +%1 +. +MessageId=51478 +Language=English +%1 +. +MessageId=51479 +Language=English +%1 +. +MessageId=51480 +Language=English +%1 +. +MessageId=51481 +Language=English +%1 +. +MessageId=51482 +Language=English +%1 +. +MessageId=51483 +Language=English +%1 +. +MessageId=51484 +Language=English +%1 +. +MessageId=51485 +Language=English +%1 +. +MessageId=51486 +Language=English +%1 +. +MessageId=51487 +Language=English +%1 +. +MessageId=51488 +Language=English +%1 +. +MessageId=51489 +Language=English +%1 +. +MessageId=51490 +Language=English +%1 +. +MessageId=51491 +Language=English +%1 +. +MessageId=51492 +Language=English +%1 +. +MessageId=51493 +Language=English +%1 +. +MessageId=51494 +Language=English +%1 +. +MessageId=51495 +Language=English +%1 +. +MessageId=51496 +Language=English +%1 +. +MessageId=51497 +Language=English +%1 +. +MessageId=51498 +Language=English +%1 +. +MessageId=51499 +Language=English +%1 +. +MessageId=51500 +Language=English +%1 +. +MessageId=51501 +Language=English +%1 +. +MessageId=51502 +Language=English +%1 +. +MessageId=51503 +Language=English +%1 +. +MessageId=51504 +Language=English +%1 +. +MessageId=51505 +Language=English +%1 +. +MessageId=51506 +Language=English +%1 +. +MessageId=51507 +Language=English +%1 +. +MessageId=51508 +Language=English +%1 +. +MessageId=51509 +Language=English +%1 +. +MessageId=51510 +Language=English +%1 +. +MessageId=51511 +Language=English +%1 +. +MessageId=51512 +Language=English +%1 +. +MessageId=51513 +Language=English +%1 +. +MessageId=51514 +Language=English +%1 +. +MessageId=51515 +Language=English +%1 +. +MessageId=51516 +Language=English +%1 +. +MessageId=51517 +Language=English +%1 +. +MessageId=51518 +Language=English +%1 +. +MessageId=51519 +Language=English +%1 +. +MessageId=51520 +Language=English +%1 +. +MessageId=51521 +Language=English +%1 +. +MessageId=51522 +Language=English +%1 +. +MessageId=51523 +Language=English +%1 +. +MessageId=51524 +Language=English +%1 +. +MessageId=51525 +Language=English +%1 +. +MessageId=51526 +Language=English +%1 +. +MessageId=51527 +Language=English +%1 +. +MessageId=51528 +Language=English +%1 +. +MessageId=51529 +Language=English +%1 +. +MessageId=51530 +Language=English +%1 +. +MessageId=51531 +Language=English +%1 +. +MessageId=51532 +Language=English +%1 +. +MessageId=51533 +Language=English +%1 +. +MessageId=51534 +Language=English +%1 +. +MessageId=51535 +Language=English +%1 +. +MessageId=51536 +Language=English +%1 +. +MessageId=51537 +Language=English +%1 +. +MessageId=51538 +Language=English +%1 +. +MessageId=51539 +Language=English +%1 +. +MessageId=51540 +Language=English +%1 +. +MessageId=51541 +Language=English +%1 +. +MessageId=51542 +Language=English +%1 +. +MessageId=51543 +Language=English +%1 +. +MessageId=51544 +Language=English +%1 +. +MessageId=51545 +Language=English +%1 +. +MessageId=51546 +Language=English +%1 +. +MessageId=51547 +Language=English +%1 +. +MessageId=51548 +Language=English +%1 +. +MessageId=51549 +Language=English +%1 +. +MessageId=51550 +Language=English +%1 +. +MessageId=51551 +Language=English +%1 +. +MessageId=51552 +Language=English +%1 +. +MessageId=51553 +Language=English +%1 +. +MessageId=51554 +Language=English +%1 +. +MessageId=51555 +Language=English +%1 +. +MessageId=51556 +Language=English +%1 +. +MessageId=51557 +Language=English +%1 +. +MessageId=51558 +Language=English +%1 +. +MessageId=51559 +Language=English +%1 +. +MessageId=51560 +Language=English +%1 +. +MessageId=51561 +Language=English +%1 +. +MessageId=51562 +Language=English +%1 +. +MessageId=51563 +Language=English +%1 +. +MessageId=51564 +Language=English +%1 +. +MessageId=51565 +Language=English +%1 +. +MessageId=51566 +Language=English +%1 +. +MessageId=51567 +Language=English +%1 +. +MessageId=51568 +Language=English +%1 +. +MessageId=51569 +Language=English +%1 +. +MessageId=51570 +Language=English +%1 +. +MessageId=51571 +Language=English +%1 +. +MessageId=51572 +Language=English +%1 +. +MessageId=51573 +Language=English +%1 +. +MessageId=51574 +Language=English +%1 +. +MessageId=51575 +Language=English +%1 +. +MessageId=51576 +Language=English +%1 +. +MessageId=51577 +Language=English +%1 +. +MessageId=51578 +Language=English +%1 +. +MessageId=51579 +Language=English +%1 +. +MessageId=51580 +Language=English +%1 +. +MessageId=51581 +Language=English +%1 +. +MessageId=51582 +Language=English +%1 +. +MessageId=51583 +Language=English +%1 +. +MessageId=51584 +Language=English +%1 +. +MessageId=51585 +Language=English +%1 +. +MessageId=51586 +Language=English +%1 +. +MessageId=51587 +Language=English +%1 +. +MessageId=51588 +Language=English +%1 +. +MessageId=51589 +Language=English +%1 +. +MessageId=51590 +Language=English +%1 +. +MessageId=51591 +Language=English +%1 +. +MessageId=51592 +Language=English +%1 +. +MessageId=51593 +Language=English +%1 +. +MessageId=51594 +Language=English +%1 +. +MessageId=51595 +Language=English +%1 +. +MessageId=51596 +Language=English +%1 +. +MessageId=51597 +Language=English +%1 +. +MessageId=51598 +Language=English +%1 +. +MessageId=51599 +Language=English +%1 +. +MessageId=51600 +Language=English +%1 +. +MessageId=51601 +Language=English +%1 +. +MessageId=51602 +Language=English +%1 +. +MessageId=51603 +Language=English +%1 +. +MessageId=51604 +Language=English +%1 +. +MessageId=51605 +Language=English +%1 +. +MessageId=51606 +Language=English +%1 +. +MessageId=51607 +Language=English +%1 +. +MessageId=51608 +Language=English +%1 +. +MessageId=51609 +Language=English +%1 +. +MessageId=51610 +Language=English +%1 +. +MessageId=51611 +Language=English +%1 +. +MessageId=51612 +Language=English +%1 +. +MessageId=51613 +Language=English +%1 +. +MessageId=51614 +Language=English +%1 +. +MessageId=51615 +Language=English +%1 +. +MessageId=51616 +Language=English +%1 +. +MessageId=51617 +Language=English +%1 +. +MessageId=51618 +Language=English +%1 +. +MessageId=51619 +Language=English +%1 +. +MessageId=51620 +Language=English +%1 +. +MessageId=51621 +Language=English +%1 +. +MessageId=51622 +Language=English +%1 +. +MessageId=51623 +Language=English +%1 +. +MessageId=51624 +Language=English +%1 +. +MessageId=51625 +Language=English +%1 +. +MessageId=51626 +Language=English +%1 +. +MessageId=51627 +Language=English +%1 +. +MessageId=51628 +Language=English +%1 +. +MessageId=51629 +Language=English +%1 +. +MessageId=51630 +Language=English +%1 +. +MessageId=51631 +Language=English +%1 +. +MessageId=51632 +Language=English +%1 +. +MessageId=51633 +Language=English +%1 +. +MessageId=51634 +Language=English +%1 +. +MessageId=51635 +Language=English +%1 +. +MessageId=51636 +Language=English +%1 +. +MessageId=51637 +Language=English +%1 +. +MessageId=51638 +Language=English +%1 +. +MessageId=51639 +Language=English +%1 +. +MessageId=51640 +Language=English +%1 +. +MessageId=51641 +Language=English +%1 +. +MessageId=51642 +Language=English +%1 +. +MessageId=51643 +Language=English +%1 +. +MessageId=51644 +Language=English +%1 +. +MessageId=51645 +Language=English +%1 +. +MessageId=51646 +Language=English +%1 +. +MessageId=51647 +Language=English +%1 +. +MessageId=51648 +Language=English +%1 +. +MessageId=51649 +Language=English +%1 +. +MessageId=51650 +Language=English +%1 +. +MessageId=51651 +Language=English +%1 +. +MessageId=51652 +Language=English +%1 +. +MessageId=51653 +Language=English +%1 +. +MessageId=51654 +Language=English +%1 +. +MessageId=51655 +Language=English +%1 +. +MessageId=51656 +Language=English +%1 +. +MessageId=51657 +Language=English +%1 +. +MessageId=51658 +Language=English +%1 +. +MessageId=51659 +Language=English +%1 +. +MessageId=51660 +Language=English +%1 +. +MessageId=51661 +Language=English +%1 +. +MessageId=51662 +Language=English +%1 +. +MessageId=51663 +Language=English +%1 +. +MessageId=51664 +Language=English +%1 +. +MessageId=51665 +Language=English +%1 +. +MessageId=51666 +Language=English +%1 +. +MessageId=51667 +Language=English +%1 +. +MessageId=51668 +Language=English +%1 +. +MessageId=51669 +Language=English +%1 +. +MessageId=51670 +Language=English +%1 +. +MessageId=51671 +Language=English +%1 +. +MessageId=51672 +Language=English +%1 +. +MessageId=51673 +Language=English +%1 +. +MessageId=51674 +Language=English +%1 +. +MessageId=51675 +Language=English +%1 +. +MessageId=51676 +Language=English +%1 +. +MessageId=51677 +Language=English +%1 +. +MessageId=51678 +Language=English +%1 +. +MessageId=51679 +Language=English +%1 +. +MessageId=51680 +Language=English +%1 +. +MessageId=51681 +Language=English +%1 +. +MessageId=51682 +Language=English +%1 +. +MessageId=51683 +Language=English +%1 +. +MessageId=51684 +Language=English +%1 +. +MessageId=51685 +Language=English +%1 +. +MessageId=51686 +Language=English +%1 +. +MessageId=51687 +Language=English +%1 +. +MessageId=51688 +Language=English +%1 +. +MessageId=51689 +Language=English +%1 +. +MessageId=51690 +Language=English +%1 +. +MessageId=51691 +Language=English +%1 +. +MessageId=51692 +Language=English +%1 +. +MessageId=51693 +Language=English +%1 +. +MessageId=51694 +Language=English +%1 +. +MessageId=51695 +Language=English +%1 +. +MessageId=51696 +Language=English +%1 +. +MessageId=51697 +Language=English +%1 +. +MessageId=51698 +Language=English +%1 +. +MessageId=51699 +Language=English +%1 +. +MessageId=51700 +Language=English +%1 +. +MessageId=51701 +Language=English +%1 +. +MessageId=51702 +Language=English +%1 +. +MessageId=51703 +Language=English +%1 +. +MessageId=51704 +Language=English +%1 +. +MessageId=51705 +Language=English +%1 +. +MessageId=51706 +Language=English +%1 +. +MessageId=51707 +Language=English +%1 +. +MessageId=51708 +Language=English +%1 +. +MessageId=51709 +Language=English +%1 +. +MessageId=51710 +Language=English +%1 +. +MessageId=51711 +Language=English +%1 +. +MessageId=51712 +Language=English +%1 +. +MessageId=51713 +Language=English +%1 +. +MessageId=51714 +Language=English +%1 +. +MessageId=51715 +Language=English +%1 +. +MessageId=51716 +Language=English +%1 +. +MessageId=51717 +Language=English +%1 +. +MessageId=51718 +Language=English +%1 +. +MessageId=51719 +Language=English +%1 +. +MessageId=51720 +Language=English +%1 +. +MessageId=51721 +Language=English +%1 +. +MessageId=51722 +Language=English +%1 +. +MessageId=51723 +Language=English +%1 +. +MessageId=51724 +Language=English +%1 +. +MessageId=51725 +Language=English +%1 +. +MessageId=51726 +Language=English +%1 +. +MessageId=51727 +Language=English +%1 +. +MessageId=51728 +Language=English +%1 +. +MessageId=51729 +Language=English +%1 +. +MessageId=51730 +Language=English +%1 +. +MessageId=51731 +Language=English +%1 +. +MessageId=51732 +Language=English +%1 +. +MessageId=51733 +Language=English +%1 +. +MessageId=51734 +Language=English +%1 +. +MessageId=51735 +Language=English +%1 +. +MessageId=51736 +Language=English +%1 +. +MessageId=51737 +Language=English +%1 +. +MessageId=51738 +Language=English +%1 +. +MessageId=51739 +Language=English +%1 +. +MessageId=51740 +Language=English +%1 +. +MessageId=51741 +Language=English +%1 +. +MessageId=51742 +Language=English +%1 +. +MessageId=51743 +Language=English +%1 +. +MessageId=51744 +Language=English +%1 +. +MessageId=51745 +Language=English +%1 +. +MessageId=51746 +Language=English +%1 +. +MessageId=51747 +Language=English +%1 +. +MessageId=51748 +Language=English +%1 +. +MessageId=51749 +Language=English +%1 +. +MessageId=51750 +Language=English +%1 +. +MessageId=51751 +Language=English +%1 +. +MessageId=51752 +Language=English +%1 +. +MessageId=51753 +Language=English +%1 +. +MessageId=51754 +Language=English +%1 +. +MessageId=51755 +Language=English +%1 +. +MessageId=51756 +Language=English +%1 +. +MessageId=51757 +Language=English +%1 +. +MessageId=51758 +Language=English +%1 +. +MessageId=51759 +Language=English +%1 +. +MessageId=51760 +Language=English +%1 +. +MessageId=51761 +Language=English +%1 +. +MessageId=51762 +Language=English +%1 +. +MessageId=51763 +Language=English +%1 +. +MessageId=51764 +Language=English +%1 +. +MessageId=51765 +Language=English +%1 +. +MessageId=51766 +Language=English +%1 +. +MessageId=51767 +Language=English +%1 +. +MessageId=51768 +Language=English +%1 +. +MessageId=51769 +Language=English +%1 +. +MessageId=51770 +Language=English +%1 +. +MessageId=51771 +Language=English +%1 +. +MessageId=51772 +Language=English +%1 +. +MessageId=51773 +Language=English +%1 +. +MessageId=51774 +Language=English +%1 +. +MessageId=51775 +Language=English +%1 +. +MessageId=51776 +Language=English +%1 +. +MessageId=51777 +Language=English +%1 +. +MessageId=51778 +Language=English +%1 +. +MessageId=51779 +Language=English +%1 +. +MessageId=51780 +Language=English +%1 +. +MessageId=51781 +Language=English +%1 +. +MessageId=51782 +Language=English +%1 +. +MessageId=51783 +Language=English +%1 +. +MessageId=51784 +Language=English +%1 +. +MessageId=51785 +Language=English +%1 +. +MessageId=51786 +Language=English +%1 +. +MessageId=51787 +Language=English +%1 +. +MessageId=51788 +Language=English +%1 +. +MessageId=51789 +Language=English +%1 +. +MessageId=51790 +Language=English +%1 +. +MessageId=51791 +Language=English +%1 +. +MessageId=51792 +Language=English +%1 +. +MessageId=51793 +Language=English +%1 +. +MessageId=51794 +Language=English +%1 +. +MessageId=51795 +Language=English +%1 +. +MessageId=51796 +Language=English +%1 +. +MessageId=51797 +Language=English +%1 +. +MessageId=51798 +Language=English +%1 +. +MessageId=51799 +Language=English +%1 +. +MessageId=51800 +Language=English +%1 +. +MessageId=51801 +Language=English +%1 +. +MessageId=51802 +Language=English +%1 +. +MessageId=51803 +Language=English +%1 +. +MessageId=51804 +Language=English +%1 +. +MessageId=51805 +Language=English +%1 +. +MessageId=51806 +Language=English +%1 +. +MessageId=51807 +Language=English +%1 +. +MessageId=51808 +Language=English +%1 +. +MessageId=51809 +Language=English +%1 +. +MessageId=51810 +Language=English +%1 +. +MessageId=51811 +Language=English +%1 +. +MessageId=51812 +Language=English +%1 +. +MessageId=51813 +Language=English +%1 +. +MessageId=51814 +Language=English +%1 +. +MessageId=51815 +Language=English +%1 +. +MessageId=51816 +Language=English +%1 +. +MessageId=51817 +Language=English +%1 +. +MessageId=51818 +Language=English +%1 +. +MessageId=51819 +Language=English +%1 +. +MessageId=51820 +Language=English +%1 +. +MessageId=51821 +Language=English +%1 +. +MessageId=51822 +Language=English +%1 +. +MessageId=51823 +Language=English +%1 +. +MessageId=51824 +Language=English +%1 +. +MessageId=51825 +Language=English +%1 +. +MessageId=51826 +Language=English +%1 +. +MessageId=51827 +Language=English +%1 +. +MessageId=51828 +Language=English +%1 +. +MessageId=51829 +Language=English +%1 +. +MessageId=51830 +Language=English +%1 +. +MessageId=51831 +Language=English +%1 +. +MessageId=51832 +Language=English +%1 +. +MessageId=51833 +Language=English +%1 +. +MessageId=51834 +Language=English +%1 +. +MessageId=51835 +Language=English +%1 +. +MessageId=51836 +Language=English +%1 +. +MessageId=51837 +Language=English +%1 +. +MessageId=51838 +Language=English +%1 +. +MessageId=51839 +Language=English +%1 +. +MessageId=51840 +Language=English +%1 +. +MessageId=51841 +Language=English +%1 +. +MessageId=51842 +Language=English +%1 +. +MessageId=51843 +Language=English +%1 +. +MessageId=51844 +Language=English +%1 +. +MessageId=51845 +Language=English +%1 +. +MessageId=51846 +Language=English +%1 +. +MessageId=51847 +Language=English +%1 +. +MessageId=51848 +Language=English +%1 +. +MessageId=51849 +Language=English +%1 +. +MessageId=51850 +Language=English +%1 +. +MessageId=51851 +Language=English +%1 +. +MessageId=51852 +Language=English +%1 +. +MessageId=51853 +Language=English +%1 +. +MessageId=51854 +Language=English +%1 +. +MessageId=51855 +Language=English +%1 +. +MessageId=51856 +Language=English +%1 +. +MessageId=51857 +Language=English +%1 +. +MessageId=51858 +Language=English +%1 +. +MessageId=51859 +Language=English +%1 +. +MessageId=51860 +Language=English +%1 +. +MessageId=51861 +Language=English +%1 +. +MessageId=51862 +Language=English +%1 +. +MessageId=51863 +Language=English +%1 +. +MessageId=51864 +Language=English +%1 +. +MessageId=51865 +Language=English +%1 +. +MessageId=51866 +Language=English +%1 +. +MessageId=51867 +Language=English +%1 +. +MessageId=51868 +Language=English +%1 +. +MessageId=51869 +Language=English +%1 +. +MessageId=51870 +Language=English +%1 +. +MessageId=51871 +Language=English +%1 +. +MessageId=51872 +Language=English +%1 +. +MessageId=51873 +Language=English +%1 +. +MessageId=51874 +Language=English +%1 +. +MessageId=51875 +Language=English +%1 +. +MessageId=51876 +Language=English +%1 +. +MessageId=51877 +Language=English +%1 +. +MessageId=51878 +Language=English +%1 +. +MessageId=51879 +Language=English +%1 +. +MessageId=51880 +Language=English +%1 +. +MessageId=51881 +Language=English +%1 +. +MessageId=51882 +Language=English +%1 +. +MessageId=51883 +Language=English +%1 +. +MessageId=51884 +Language=English +%1 +. +MessageId=51885 +Language=English +%1 +. +MessageId=51886 +Language=English +%1 +. +MessageId=51887 +Language=English +%1 +. +MessageId=51888 +Language=English +%1 +. +MessageId=51889 +Language=English +%1 +. +MessageId=51890 +Language=English +%1 +. +MessageId=51891 +Language=English +%1 +. +MessageId=51892 +Language=English +%1 +. +MessageId=51893 +Language=English +%1 +. +MessageId=51894 +Language=English +%1 +. +MessageId=51895 +Language=English +%1 +. +MessageId=51896 +Language=English +%1 +. +MessageId=51897 +Language=English +%1 +. +MessageId=51898 +Language=English +%1 +. +MessageId=51899 +Language=English +%1 +. +MessageId=51900 +Language=English +%1 +. +MessageId=51901 +Language=English +%1 +. +MessageId=51902 +Language=English +%1 +. +MessageId=51903 +Language=English +%1 +. +MessageId=51904 +Language=English +%1 +. +MessageId=51905 +Language=English +%1 +. +MessageId=51906 +Language=English +%1 +. +MessageId=51907 +Language=English +%1 +. +MessageId=51908 +Language=English +%1 +. +MessageId=51909 +Language=English +%1 +. +MessageId=51910 +Language=English +%1 +. +MessageId=51911 +Language=English +%1 +. +MessageId=51912 +Language=English +%1 +. +MessageId=51913 +Language=English +%1 +. +MessageId=51914 +Language=English +%1 +. +MessageId=51915 +Language=English +%1 +. +MessageId=51916 +Language=English +%1 +. +MessageId=51917 +Language=English +%1 +. +MessageId=51918 +Language=English +%1 +. +MessageId=51919 +Language=English +%1 +. +MessageId=51920 +Language=English +%1 +. +MessageId=51921 +Language=English +%1 +. +MessageId=51922 +Language=English +%1 +. +MessageId=51923 +Language=English +%1 +. +MessageId=51924 +Language=English +%1 +. +MessageId=51925 +Language=English +%1 +. +MessageId=51926 +Language=English +%1 +. +MessageId=51927 +Language=English +%1 +. +MessageId=51928 +Language=English +%1 +. +MessageId=51929 +Language=English +%1 +. +MessageId=51930 +Language=English +%1 +. +MessageId=51931 +Language=English +%1 +. +MessageId=51932 +Language=English +%1 +. +MessageId=51933 +Language=English +%1 +. +MessageId=51934 +Language=English +%1 +. +MessageId=51935 +Language=English +%1 +. +MessageId=51936 +Language=English +%1 +. +MessageId=51937 +Language=English +%1 +. +MessageId=51938 +Language=English +%1 +. +MessageId=51939 +Language=English +%1 +. +MessageId=51940 +Language=English +%1 +. +MessageId=51941 +Language=English +%1 +. +MessageId=51942 +Language=English +%1 +. +MessageId=51943 +Language=English +%1 +. +MessageId=51944 +Language=English +%1 +. +MessageId=51945 +Language=English +%1 +. +MessageId=51946 +Language=English +%1 +. +MessageId=51947 +Language=English +%1 +. +MessageId=51948 +Language=English +%1 +. +MessageId=51949 +Language=English +%1 +. +MessageId=51950 +Language=English +%1 +. +MessageId=51951 +Language=English +%1 +. +MessageId=51952 +Language=English +%1 +. +MessageId=51953 +Language=English +%1 +. +MessageId=51954 +Language=English +%1 +. +MessageId=51955 +Language=English +%1 +. +MessageId=51956 +Language=English +%1 +. +MessageId=51957 +Language=English +%1 +. +MessageId=51958 +Language=English +%1 +. +MessageId=51959 +Language=English +%1 +. +MessageId=51960 +Language=English +%1 +. +MessageId=51961 +Language=English +%1 +. +MessageId=51962 +Language=English +%1 +. +MessageId=51963 +Language=English +%1 +. +MessageId=51964 +Language=English +%1 +. +MessageId=51965 +Language=English +%1 +. +MessageId=51966 +Language=English +%1 +. +MessageId=51967 +Language=English +%1 +. +MessageId=51968 +Language=English +%1 +. +MessageId=51969 +Language=English +%1 +. +MessageId=51970 +Language=English +%1 +. +MessageId=51971 +Language=English +%1 +. +MessageId=51972 +Language=English +%1 +. +MessageId=51973 +Language=English +%1 +. +MessageId=51974 +Language=English +%1 +. +MessageId=51975 +Language=English +%1 +. +MessageId=51976 +Language=English +%1 +. +MessageId=51977 +Language=English +%1 +. +MessageId=51978 +Language=English +%1 +. +MessageId=51979 +Language=English +%1 +. +MessageId=51980 +Language=English +%1 +. +MessageId=51981 +Language=English +%1 +. +MessageId=51982 +Language=English +%1 +. +MessageId=51983 +Language=English +%1 +. +MessageId=51984 +Language=English +%1 +. +MessageId=51985 +Language=English +%1 +. +MessageId=51986 +Language=English +%1 +. +MessageId=51987 +Language=English +%1 +. +MessageId=51988 +Language=English +%1 +. +MessageId=51989 +Language=English +%1 +. +MessageId=51990 +Language=English +%1 +. +MessageId=51991 +Language=English +%1 +. +MessageId=51992 +Language=English +%1 +. +MessageId=51993 +Language=English +%1 +. +MessageId=51994 +Language=English +%1 +. +MessageId=51995 +Language=English +%1 +. +MessageId=51996 +Language=English +%1 +. +MessageId=51997 +Language=English +%1 +. +MessageId=51998 +Language=English +%1 +. +MessageId=51999 +Language=English +%1 +. +MessageId=52000 +Language=English +%1 +. +MessageId=52001 +Language=English +%1 +. +MessageId=52002 +Language=English +%1 +. +MessageId=52003 +Language=English +%1 +. +MessageId=52004 +Language=English +%1 +. +MessageId=52005 +Language=English +%1 +. +MessageId=52006 +Language=English +%1 +. +MessageId=52007 +Language=English +%1 +. +MessageId=52008 +Language=English +%1 +. +MessageId=52009 +Language=English +%1 +. +MessageId=52010 +Language=English +%1 +. +MessageId=52011 +Language=English +%1 +. +MessageId=52012 +Language=English +%1 +. +MessageId=52013 +Language=English +%1 +. +MessageId=52014 +Language=English +%1 +. +MessageId=52015 +Language=English +%1 +. +MessageId=52016 +Language=English +%1 +. +MessageId=52017 +Language=English +%1 +. +MessageId=52018 +Language=English +%1 +. +MessageId=52019 +Language=English +%1 +. +MessageId=52020 +Language=English +%1 +. +MessageId=52021 +Language=English +%1 +. +MessageId=52022 +Language=English +%1 +. +MessageId=52023 +Language=English +%1 +. +MessageId=52024 +Language=English +%1 +. +MessageId=52025 +Language=English +%1 +. +MessageId=52026 +Language=English +%1 +. +MessageId=52027 +Language=English +%1 +. +MessageId=52028 +Language=English +%1 +. +MessageId=52029 +Language=English +%1 +. +MessageId=52030 +Language=English +%1 +. +MessageId=52031 +Language=English +%1 +. +MessageId=52032 +Language=English +%1 +. +MessageId=52033 +Language=English +%1 +. +MessageId=52034 +Language=English +%1 +. +MessageId=52035 +Language=English +%1 +. +MessageId=52036 +Language=English +%1 +. +MessageId=52037 +Language=English +%1 +. +MessageId=52038 +Language=English +%1 +. +MessageId=52039 +Language=English +%1 +. +MessageId=52040 +Language=English +%1 +. +MessageId=52041 +Language=English +%1 +. +MessageId=52042 +Language=English +%1 +. +MessageId=52043 +Language=English +%1 +. +MessageId=52044 +Language=English +%1 +. +MessageId=52045 +Language=English +%1 +. +MessageId=52046 +Language=English +%1 +. +MessageId=52047 +Language=English +%1 +. +MessageId=52048 +Language=English +%1 +. +MessageId=52049 +Language=English +%1 +. +MessageId=52050 +Language=English +%1 +. +MessageId=52051 +Language=English +%1 +. +MessageId=52052 +Language=English +%1 +. +MessageId=52053 +Language=English +%1 +. +MessageId=52054 +Language=English +%1 +. +MessageId=52055 +Language=English +%1 +. +MessageId=52056 +Language=English +%1 +. +MessageId=52057 +Language=English +%1 +. +MessageId=52058 +Language=English +%1 +. +MessageId=52059 +Language=English +%1 +. +MessageId=52060 +Language=English +%1 +. +MessageId=52061 +Language=English +%1 +. +MessageId=52062 +Language=English +%1 +. +MessageId=52063 +Language=English +%1 +. +MessageId=52064 +Language=English +%1 +. +MessageId=52065 +Language=English +%1 +. +MessageId=52066 +Language=English +%1 +. +MessageId=52067 +Language=English +%1 +. +MessageId=52068 +Language=English +%1 +. +MessageId=52069 +Language=English +%1 +. +MessageId=52070 +Language=English +%1 +. +MessageId=52071 +Language=English +%1 +. +MessageId=52072 +Language=English +%1 +. +MessageId=52073 +Language=English +%1 +. +MessageId=52074 +Language=English +%1 +. +MessageId=52075 +Language=English +%1 +. +MessageId=52076 +Language=English +%1 +. +MessageId=52077 +Language=English +%1 +. +MessageId=52078 +Language=English +%1 +. +MessageId=52079 +Language=English +%1 +. +MessageId=52080 +Language=English +%1 +. +MessageId=52081 +Language=English +%1 +. +MessageId=52082 +Language=English +%1 +. +MessageId=52083 +Language=English +%1 +. +MessageId=52084 +Language=English +%1 +. +MessageId=52085 +Language=English +%1 +. +MessageId=52086 +Language=English +%1 +. +MessageId=52087 +Language=English +%1 +. +MessageId=52088 +Language=English +%1 +. +MessageId=52089 +Language=English +%1 +. +MessageId=52090 +Language=English +%1 +. +MessageId=52091 +Language=English +%1 +. +MessageId=52092 +Language=English +%1 +. +MessageId=52093 +Language=English +%1 +. +MessageId=52094 +Language=English +%1 +. +MessageId=52095 +Language=English +%1 +. +MessageId=52096 +Language=English +%1 +. +MessageId=52097 +Language=English +%1 +. +MessageId=52098 +Language=English +%1 +. +MessageId=52099 +Language=English +%1 +. +MessageId=52100 +Language=English +%1 +. +MessageId=52101 +Language=English +%1 +. +MessageId=52102 +Language=English +%1 +. +MessageId=52103 +Language=English +%1 +. +MessageId=52104 +Language=English +%1 +. +MessageId=52105 +Language=English +%1 +. +MessageId=52106 +Language=English +%1 +. +MessageId=52107 +Language=English +%1 +. +MessageId=52108 +Language=English +%1 +. +MessageId=52109 +Language=English +%1 +. +MessageId=52110 +Language=English +%1 +. +MessageId=52111 +Language=English +%1 +. +MessageId=52112 +Language=English +%1 +. +MessageId=52113 +Language=English +%1 +. +MessageId=52114 +Language=English +%1 +. +MessageId=52115 +Language=English +%1 +. +MessageId=52116 +Language=English +%1 +. +MessageId=52117 +Language=English +%1 +. +MessageId=52118 +Language=English +%1 +. +MessageId=52119 +Language=English +%1 +. +MessageId=52120 +Language=English +%1 +. +MessageId=52121 +Language=English +%1 +. +MessageId=52122 +Language=English +%1 +. +MessageId=52123 +Language=English +%1 +. +MessageId=52124 +Language=English +%1 +. +MessageId=52125 +Language=English +%1 +. +MessageId=52126 +Language=English +%1 +. +MessageId=52127 +Language=English +%1 +. +MessageId=52128 +Language=English +%1 +. +MessageId=52129 +Language=English +%1 +. +MessageId=52130 +Language=English +%1 +. +MessageId=52131 +Language=English +%1 +. +MessageId=52132 +Language=English +%1 +. +MessageId=52133 +Language=English +%1 +. +MessageId=52134 +Language=English +%1 +. +MessageId=52135 +Language=English +%1 +. +MessageId=52136 +Language=English +%1 +. +MessageId=52137 +Language=English +%1 +. +MessageId=52138 +Language=English +%1 +. +MessageId=52139 +Language=English +%1 +. +MessageId=52140 +Language=English +%1 +. +MessageId=52141 +Language=English +%1 +. +MessageId=52142 +Language=English +%1 +. +MessageId=52143 +Language=English +%1 +. +MessageId=52144 +Language=English +%1 +. +MessageId=52145 +Language=English +%1 +. +MessageId=52146 +Language=English +%1 +. +MessageId=52147 +Language=English +%1 +. +MessageId=52148 +Language=English +%1 +. +MessageId=52149 +Language=English +%1 +. +MessageId=52150 +Language=English +%1 +. +MessageId=52151 +Language=English +%1 +. +MessageId=52152 +Language=English +%1 +. +MessageId=52153 +Language=English +%1 +. +MessageId=52154 +Language=English +%1 +. +MessageId=52155 +Language=English +%1 +. +MessageId=52156 +Language=English +%1 +. +MessageId=52157 +Language=English +%1 +. +MessageId=52158 +Language=English +%1 +. +MessageId=52159 +Language=English +%1 +. +MessageId=52160 +Language=English +%1 +. +MessageId=52161 +Language=English +%1 +. +MessageId=52162 +Language=English +%1 +. +MessageId=52163 +Language=English +%1 +. +MessageId=52164 +Language=English +%1 +. +MessageId=52165 +Language=English +%1 +. +MessageId=52166 +Language=English +%1 +. +MessageId=52167 +Language=English +%1 +. +MessageId=52168 +Language=English +%1 +. +MessageId=52169 +Language=English +%1 +. +MessageId=52170 +Language=English +%1 +. +MessageId=52171 +Language=English +%1 +. +MessageId=52172 +Language=English +%1 +. +MessageId=52173 +Language=English +%1 +. +MessageId=52174 +Language=English +%1 +. +MessageId=52175 +Language=English +%1 +. +MessageId=52176 +Language=English +%1 +. +MessageId=52177 +Language=English +%1 +. +MessageId=52178 +Language=English +%1 +. +MessageId=52179 +Language=English +%1 +. +MessageId=52180 +Language=English +%1 +. +MessageId=52181 +Language=English +%1 +. +MessageId=52182 +Language=English +%1 +. +MessageId=52183 +Language=English +%1 +. +MessageId=52184 +Language=English +%1 +. +MessageId=52185 +Language=English +%1 +. +MessageId=52186 +Language=English +%1 +. +MessageId=52187 +Language=English +%1 +. +MessageId=52188 +Language=English +%1 +. +MessageId=52189 +Language=English +%1 +. +MessageId=52190 +Language=English +%1 +. +MessageId=52191 +Language=English +%1 +. +MessageId=52192 +Language=English +%1 +. +MessageId=52193 +Language=English +%1 +. +MessageId=52194 +Language=English +%1 +. +MessageId=52195 +Language=English +%1 +. +MessageId=52196 +Language=English +%1 +. +MessageId=52197 +Language=English +%1 +. +MessageId=52198 +Language=English +%1 +. +MessageId=52199 +Language=English +%1 +. +MessageId=52200 +Language=English +%1 +. +MessageId=52201 +Language=English +%1 +. +MessageId=52202 +Language=English +%1 +. +MessageId=52203 +Language=English +%1 +. +MessageId=52204 +Language=English +%1 +. +MessageId=52205 +Language=English +%1 +. +MessageId=52206 +Language=English +%1 +. +MessageId=52207 +Language=English +%1 +. +MessageId=52208 +Language=English +%1 +. +MessageId=52209 +Language=English +%1 +. +MessageId=52210 +Language=English +%1 +. +MessageId=52211 +Language=English +%1 +. +MessageId=52212 +Language=English +%1 +. +MessageId=52213 +Language=English +%1 +. +MessageId=52214 +Language=English +%1 +. +MessageId=52215 +Language=English +%1 +. +MessageId=52216 +Language=English +%1 +. +MessageId=52217 +Language=English +%1 +. +MessageId=52218 +Language=English +%1 +. +MessageId=52219 +Language=English +%1 +. +MessageId=52220 +Language=English +%1 +. +MessageId=52221 +Language=English +%1 +. +MessageId=52222 +Language=English +%1 +. +MessageId=52223 +Language=English +%1 +. +MessageId=52224 +Language=English +%1 +. +MessageId=52225 +Language=English +%1 +. +MessageId=52226 +Language=English +%1 +. +MessageId=52227 +Language=English +%1 +. +MessageId=52228 +Language=English +%1 +. +MessageId=52229 +Language=English +%1 +. +MessageId=52230 +Language=English +%1 +. +MessageId=52231 +Language=English +%1 +. +MessageId=52232 +Language=English +%1 +. +MessageId=52233 +Language=English +%1 +. +MessageId=52234 +Language=English +%1 +. +MessageId=52235 +Language=English +%1 +. +MessageId=52236 +Language=English +%1 +. +MessageId=52237 +Language=English +%1 +. +MessageId=52238 +Language=English +%1 +. +MessageId=52239 +Language=English +%1 +. +MessageId=52240 +Language=English +%1 +. +MessageId=52241 +Language=English +%1 +. +MessageId=52242 +Language=English +%1 +. +MessageId=52243 +Language=English +%1 +. +MessageId=52244 +Language=English +%1 +. +MessageId=52245 +Language=English +%1 +. +MessageId=52246 +Language=English +%1 +. +MessageId=52247 +Language=English +%1 +. +MessageId=52248 +Language=English +%1 +. +MessageId=52249 +Language=English +%1 +. +MessageId=52250 +Language=English +%1 +. +MessageId=52251 +Language=English +%1 +. +MessageId=52252 +Language=English +%1 +. +MessageId=52253 +Language=English +%1 +. +MessageId=52254 +Language=English +%1 +. +MessageId=52255 +Language=English +%1 +. +MessageId=52256 +Language=English +%1 +. +MessageId=52257 +Language=English +%1 +. +MessageId=52258 +Language=English +%1 +. +MessageId=52259 +Language=English +%1 +. +MessageId=52260 +Language=English +%1 +. +MessageId=52261 +Language=English +%1 +. +MessageId=52262 +Language=English +%1 +. +MessageId=52263 +Language=English +%1 +. +MessageId=52264 +Language=English +%1 +. +MessageId=52265 +Language=English +%1 +. +MessageId=52266 +Language=English +%1 +. +MessageId=52267 +Language=English +%1 +. +MessageId=52268 +Language=English +%1 +. +MessageId=52269 +Language=English +%1 +. +MessageId=52270 +Language=English +%1 +. +MessageId=52271 +Language=English +%1 +. +MessageId=52272 +Language=English +%1 +. +MessageId=52273 +Language=English +%1 +. +MessageId=52274 +Language=English +%1 +. +MessageId=52275 +Language=English +%1 +. +MessageId=52276 +Language=English +%1 +. +MessageId=52277 +Language=English +%1 +. +MessageId=52278 +Language=English +%1 +. +MessageId=52279 +Language=English +%1 +. +MessageId=52280 +Language=English +%1 +. +MessageId=52281 +Language=English +%1 +. +MessageId=52282 +Language=English +%1 +. +MessageId=52283 +Language=English +%1 +. +MessageId=52284 +Language=English +%1 +. +MessageId=52285 +Language=English +%1 +. +MessageId=52286 +Language=English +%1 +. +MessageId=52287 +Language=English +%1 +. +MessageId=52288 +Language=English +%1 +. +MessageId=52289 +Language=English +%1 +. +MessageId=52290 +Language=English +%1 +. +MessageId=52291 +Language=English +%1 +. +MessageId=52292 +Language=English +%1 +. +MessageId=52293 +Language=English +%1 +. +MessageId=52294 +Language=English +%1 +. +MessageId=52295 +Language=English +%1 +. +MessageId=52296 +Language=English +%1 +. +MessageId=52297 +Language=English +%1 +. +MessageId=52298 +Language=English +%1 +. +MessageId=52299 +Language=English +%1 +. +MessageId=52300 +Language=English +%1 +. +MessageId=52301 +Language=English +%1 +. +MessageId=52302 +Language=English +%1 +. +MessageId=52303 +Language=English +%1 +. +MessageId=52304 +Language=English +%1 +. +MessageId=52305 +Language=English +%1 +. +MessageId=52306 +Language=English +%1 +. +MessageId=52307 +Language=English +%1 +. +MessageId=52308 +Language=English +%1 +. +MessageId=52309 +Language=English +%1 +. +MessageId=52310 +Language=English +%1 +. +MessageId=52311 +Language=English +%1 +. +MessageId=52312 +Language=English +%1 +. +MessageId=52313 +Language=English +%1 +. +MessageId=52314 +Language=English +%1 +. +MessageId=52315 +Language=English +%1 +. +MessageId=52316 +Language=English +%1 +. +MessageId=52317 +Language=English +%1 +. +MessageId=52318 +Language=English +%1 +. +MessageId=52319 +Language=English +%1 +. +MessageId=52320 +Language=English +%1 +. +MessageId=52321 +Language=English +%1 +. +MessageId=52322 +Language=English +%1 +. +MessageId=52323 +Language=English +%1 +. +MessageId=52324 +Language=English +%1 +. +MessageId=52325 +Language=English +%1 +. +MessageId=52326 +Language=English +%1 +. +MessageId=52327 +Language=English +%1 +. +MessageId=52328 +Language=English +%1 +. +MessageId=52329 +Language=English +%1 +. +MessageId=52330 +Language=English +%1 +. +MessageId=52331 +Language=English +%1 +. +MessageId=52332 +Language=English +%1 +. +MessageId=52333 +Language=English +%1 +. +MessageId=52334 +Language=English +%1 +. +MessageId=52335 +Language=English +%1 +. +MessageId=52336 +Language=English +%1 +. +MessageId=52337 +Language=English +%1 +. +MessageId=52338 +Language=English +%1 +. +MessageId=52339 +Language=English +%1 +. +MessageId=52340 +Language=English +%1 +. +MessageId=52341 +Language=English +%1 +. +MessageId=52342 +Language=English +%1 +. +MessageId=52343 +Language=English +%1 +. +MessageId=52344 +Language=English +%1 +. +MessageId=52345 +Language=English +%1 +. +MessageId=52346 +Language=English +%1 +. +MessageId=52347 +Language=English +%1 +. +MessageId=52348 +Language=English +%1 +. +MessageId=52349 +Language=English +%1 +. +MessageId=52350 +Language=English +%1 +. +MessageId=52351 +Language=English +%1 +. +MessageId=52352 +Language=English +%1 +. +MessageId=52353 +Language=English +%1 +. +MessageId=52354 +Language=English +%1 +. +MessageId=52355 +Language=English +%1 +. +MessageId=52356 +Language=English +%1 +. +MessageId=52357 +Language=English +%1 +. +MessageId=52358 +Language=English +%1 +. +MessageId=52359 +Language=English +%1 +. +MessageId=52360 +Language=English +%1 +. +MessageId=52361 +Language=English +%1 +. +MessageId=52362 +Language=English +%1 +. +MessageId=52363 +Language=English +%1 +. +MessageId=52364 +Language=English +%1 +. +MessageId=52365 +Language=English +%1 +. +MessageId=52366 +Language=English +%1 +. +MessageId=52367 +Language=English +%1 +. +MessageId=52368 +Language=English +%1 +. +MessageId=52369 +Language=English +%1 +. +MessageId=52370 +Language=English +%1 +. +MessageId=52371 +Language=English +%1 +. +MessageId=52372 +Language=English +%1 +. +MessageId=52373 +Language=English +%1 +. +MessageId=52374 +Language=English +%1 +. +MessageId=52375 +Language=English +%1 +. +MessageId=52376 +Language=English +%1 +. +MessageId=52377 +Language=English +%1 +. +MessageId=52378 +Language=English +%1 +. +MessageId=52379 +Language=English +%1 +. +MessageId=52380 +Language=English +%1 +. +MessageId=52381 +Language=English +%1 +. +MessageId=52382 +Language=English +%1 +. +MessageId=52383 +Language=English +%1 +. +MessageId=52384 +Language=English +%1 +. +MessageId=52385 +Language=English +%1 +. +MessageId=52386 +Language=English +%1 +. +MessageId=52387 +Language=English +%1 +. +MessageId=52388 +Language=English +%1 +. +MessageId=52389 +Language=English +%1 +. +MessageId=52390 +Language=English +%1 +. +MessageId=52391 +Language=English +%1 +. +MessageId=52392 +Language=English +%1 +. +MessageId=52393 +Language=English +%1 +. +MessageId=52394 +Language=English +%1 +. +MessageId=52395 +Language=English +%1 +. +MessageId=52396 +Language=English +%1 +. +MessageId=52397 +Language=English +%1 +. +MessageId=52398 +Language=English +%1 +. +MessageId=52399 +Language=English +%1 +. +MessageId=52400 +Language=English +%1 +. +MessageId=52401 +Language=English +%1 +. +MessageId=52402 +Language=English +%1 +. +MessageId=52403 +Language=English +%1 +. +MessageId=52404 +Language=English +%1 +. +MessageId=52405 +Language=English +%1 +. +MessageId=52406 +Language=English +%1 +. +MessageId=52407 +Language=English +%1 +. +MessageId=52408 +Language=English +%1 +. +MessageId=52409 +Language=English +%1 +. +MessageId=52410 +Language=English +%1 +. +MessageId=52411 +Language=English +%1 +. +MessageId=52412 +Language=English +%1 +. +MessageId=52413 +Language=English +%1 +. +MessageId=52414 +Language=English +%1 +. +MessageId=52415 +Language=English +%1 +. +MessageId=52416 +Language=English +%1 +. +MessageId=52417 +Language=English +%1 +. +MessageId=52418 +Language=English +%1 +. +MessageId=52419 +Language=English +%1 +. +MessageId=52420 +Language=English +%1 +. +MessageId=52421 +Language=English +%1 +. +MessageId=52422 +Language=English +%1 +. +MessageId=52423 +Language=English +%1 +. +MessageId=52424 +Language=English +%1 +. +MessageId=52425 +Language=English +%1 +. +MessageId=52426 +Language=English +%1 +. +MessageId=52427 +Language=English +%1 +. +MessageId=52428 +Language=English +%1 +. +MessageId=52429 +Language=English +%1 +. +MessageId=52430 +Language=English +%1 +. +MessageId=52431 +Language=English +%1 +. +MessageId=52432 +Language=English +%1 +. +MessageId=52433 +Language=English +%1 +. +MessageId=52434 +Language=English +%1 +. +MessageId=52435 +Language=English +%1 +. +MessageId=52436 +Language=English +%1 +. +MessageId=52437 +Language=English +%1 +. +MessageId=52438 +Language=English +%1 +. +MessageId=52439 +Language=English +%1 +. +MessageId=52440 +Language=English +%1 +. +MessageId=52441 +Language=English +%1 +. +MessageId=52442 +Language=English +%1 +. +MessageId=52443 +Language=English +%1 +. +MessageId=52444 +Language=English +%1 +. +MessageId=52445 +Language=English +%1 +. +MessageId=52446 +Language=English +%1 +. +MessageId=52447 +Language=English +%1 +. +MessageId=52448 +Language=English +%1 +. +MessageId=52449 +Language=English +%1 +. +MessageId=52450 +Language=English +%1 +. +MessageId=52451 +Language=English +%1 +. +MessageId=52452 +Language=English +%1 +. +MessageId=52453 +Language=English +%1 +. +MessageId=52454 +Language=English +%1 +. +MessageId=52455 +Language=English +%1 +. +MessageId=52456 +Language=English +%1 +. +MessageId=52457 +Language=English +%1 +. +MessageId=52458 +Language=English +%1 +. +MessageId=52459 +Language=English +%1 +. +MessageId=52460 +Language=English +%1 +. +MessageId=52461 +Language=English +%1 +. +MessageId=52462 +Language=English +%1 +. +MessageId=52463 +Language=English +%1 +. +MessageId=52464 +Language=English +%1 +. +MessageId=52465 +Language=English +%1 +. +MessageId=52466 +Language=English +%1 +. +MessageId=52467 +Language=English +%1 +. +MessageId=52468 +Language=English +%1 +. +MessageId=52469 +Language=English +%1 +. +MessageId=52470 +Language=English +%1 +. +MessageId=52471 +Language=English +%1 +. +MessageId=52472 +Language=English +%1 +. +MessageId=52473 +Language=English +%1 +. +MessageId=52474 +Language=English +%1 +. +MessageId=52475 +Language=English +%1 +. +MessageId=52476 +Language=English +%1 +. +MessageId=52477 +Language=English +%1 +. +MessageId=52478 +Language=English +%1 +. +MessageId=52479 +Language=English +%1 +. +MessageId=52480 +Language=English +%1 +. +MessageId=52481 +Language=English +%1 +. +MessageId=52482 +Language=English +%1 +. +MessageId=52483 +Language=English +%1 +. +MessageId=52484 +Language=English +%1 +. +MessageId=52485 +Language=English +%1 +. +MessageId=52486 +Language=English +%1 +. +MessageId=52487 +Language=English +%1 +. +MessageId=52488 +Language=English +%1 +. +MessageId=52489 +Language=English +%1 +. +MessageId=52490 +Language=English +%1 +. +MessageId=52491 +Language=English +%1 +. +MessageId=52492 +Language=English +%1 +. +MessageId=52493 +Language=English +%1 +. +MessageId=52494 +Language=English +%1 +. +MessageId=52495 +Language=English +%1 +. +MessageId=52496 +Language=English +%1 +. +MessageId=52497 +Language=English +%1 +. +MessageId=52498 +Language=English +%1 +. +MessageId=52499 +Language=English +%1 +. +MessageId=52500 +Language=English +%1 +. +MessageId=52501 +Language=English +%1 +. +MessageId=52502 +Language=English +%1 +. +MessageId=52503 +Language=English +%1 +. +MessageId=52504 +Language=English +%1 +. +MessageId=52505 +Language=English +%1 +. +MessageId=52506 +Language=English +%1 +. +MessageId=52507 +Language=English +%1 +. +MessageId=52508 +Language=English +%1 +. +MessageId=52509 +Language=English +%1 +. +MessageId=52510 +Language=English +%1 +. +MessageId=52511 +Language=English +%1 +. +MessageId=52512 +Language=English +%1 +. +MessageId=52513 +Language=English +%1 +. +MessageId=52514 +Language=English +%1 +. +MessageId=52515 +Language=English +%1 +. +MessageId=52516 +Language=English +%1 +. +MessageId=52517 +Language=English +%1 +. +MessageId=52518 +Language=English +%1 +. +MessageId=52519 +Language=English +%1 +. +MessageId=52520 +Language=English +%1 +. +MessageId=52521 +Language=English +%1 +. +MessageId=52522 +Language=English +%1 +. +MessageId=52523 +Language=English +%1 +. +MessageId=52524 +Language=English +%1 +. +MessageId=52525 +Language=English +%1 +. +MessageId=52526 +Language=English +%1 +. +MessageId=52527 +Language=English +%1 +. +MessageId=52528 +Language=English +%1 +. +MessageId=52529 +Language=English +%1 +. +MessageId=52530 +Language=English +%1 +. +MessageId=52531 +Language=English +%1 +. +MessageId=52532 +Language=English +%1 +. +MessageId=52533 +Language=English +%1 +. +MessageId=52534 +Language=English +%1 +. +MessageId=52535 +Language=English +%1 +. +MessageId=52536 +Language=English +%1 +. +MessageId=52537 +Language=English +%1 +. +MessageId=52538 +Language=English +%1 +. +MessageId=52539 +Language=English +%1 +. +MessageId=52540 +Language=English +%1 +. +MessageId=52541 +Language=English +%1 +. +MessageId=52542 +Language=English +%1 +. +MessageId=52543 +Language=English +%1 +. +MessageId=52544 +Language=English +%1 +. +MessageId=52545 +Language=English +%1 +. +MessageId=52546 +Language=English +%1 +. +MessageId=52547 +Language=English +%1 +. +MessageId=52548 +Language=English +%1 +. +MessageId=52549 +Language=English +%1 +. +MessageId=52550 +Language=English +%1 +. +MessageId=52551 +Language=English +%1 +. +MessageId=52552 +Language=English +%1 +. +MessageId=52553 +Language=English +%1 +. +MessageId=52554 +Language=English +%1 +. +MessageId=52555 +Language=English +%1 +. +MessageId=52556 +Language=English +%1 +. +MessageId=52557 +Language=English +%1 +. +MessageId=52558 +Language=English +%1 +. +MessageId=52559 +Language=English +%1 +. +MessageId=52560 +Language=English +%1 +. +MessageId=52561 +Language=English +%1 +. +MessageId=52562 +Language=English +%1 +. +MessageId=52563 +Language=English +%1 +. +MessageId=52564 +Language=English +%1 +. +MessageId=52565 +Language=English +%1 +. +MessageId=52566 +Language=English +%1 +. +MessageId=52567 +Language=English +%1 +. +MessageId=52568 +Language=English +%1 +. +MessageId=52569 +Language=English +%1 +. +MessageId=52570 +Language=English +%1 +. +MessageId=52571 +Language=English +%1 +. +MessageId=52572 +Language=English +%1 +. +MessageId=52573 +Language=English +%1 +. +MessageId=52574 +Language=English +%1 +. +MessageId=52575 +Language=English +%1 +. +MessageId=52576 +Language=English +%1 +. +MessageId=52577 +Language=English +%1 +. +MessageId=52578 +Language=English +%1 +. +MessageId=52579 +Language=English +%1 +. +MessageId=52580 +Language=English +%1 +. +MessageId=52581 +Language=English +%1 +. +MessageId=52582 +Language=English +%1 +. +MessageId=52583 +Language=English +%1 +. +MessageId=52584 +Language=English +%1 +. +MessageId=52585 +Language=English +%1 +. +MessageId=52586 +Language=English +%1 +. +MessageId=52587 +Language=English +%1 +. +MessageId=52588 +Language=English +%1 +. +MessageId=52589 +Language=English +%1 +. +MessageId=52590 +Language=English +%1 +. +MessageId=52591 +Language=English +%1 +. +MessageId=52592 +Language=English +%1 +. +MessageId=52593 +Language=English +%1 +. +MessageId=52594 +Language=English +%1 +. +MessageId=52595 +Language=English +%1 +. +MessageId=52596 +Language=English +%1 +. +MessageId=52597 +Language=English +%1 +. +MessageId=52598 +Language=English +%1 +. +MessageId=52599 +Language=English +%1 +. +MessageId=52600 +Language=English +%1 +. +MessageId=52601 +Language=English +%1 +. +MessageId=52602 +Language=English +%1 +. +MessageId=52603 +Language=English +%1 +. +MessageId=52604 +Language=English +%1 +. +MessageId=52605 +Language=English +%1 +. +MessageId=52606 +Language=English +%1 +. +MessageId=52607 +Language=English +%1 +. +MessageId=52608 +Language=English +%1 +. +MessageId=52609 +Language=English +%1 +. +MessageId=52610 +Language=English +%1 +. +MessageId=52611 +Language=English +%1 +. +MessageId=52612 +Language=English +%1 +. +MessageId=52613 +Language=English +%1 +. +MessageId=52614 +Language=English +%1 +. +MessageId=52615 +Language=English +%1 +. +MessageId=52616 +Language=English +%1 +. +MessageId=52617 +Language=English +%1 +. +MessageId=52618 +Language=English +%1 +. +MessageId=52619 +Language=English +%1 +. +MessageId=52620 +Language=English +%1 +. +MessageId=52621 +Language=English +%1 +. +MessageId=52622 +Language=English +%1 +. +MessageId=52623 +Language=English +%1 +. +MessageId=52624 +Language=English +%1 +. +MessageId=52625 +Language=English +%1 +. +MessageId=52626 +Language=English +%1 +. +MessageId=52627 +Language=English +%1 +. +MessageId=52628 +Language=English +%1 +. +MessageId=52629 +Language=English +%1 +. +MessageId=52630 +Language=English +%1 +. +MessageId=52631 +Language=English +%1 +. +MessageId=52632 +Language=English +%1 +. +MessageId=52633 +Language=English +%1 +. +MessageId=52634 +Language=English +%1 +. +MessageId=52635 +Language=English +%1 +. +MessageId=52636 +Language=English +%1 +. +MessageId=52637 +Language=English +%1 +. +MessageId=52638 +Language=English +%1 +. +MessageId=52639 +Language=English +%1 +. +MessageId=52640 +Language=English +%1 +. +MessageId=52641 +Language=English +%1 +. +MessageId=52642 +Language=English +%1 +. +MessageId=52643 +Language=English +%1 +. +MessageId=52644 +Language=English +%1 +. +MessageId=52645 +Language=English +%1 +. +MessageId=52646 +Language=English +%1 +. +MessageId=52647 +Language=English +%1 +. +MessageId=52648 +Language=English +%1 +. +MessageId=52649 +Language=English +%1 +. +MessageId=52650 +Language=English +%1 +. +MessageId=52651 +Language=English +%1 +. +MessageId=52652 +Language=English +%1 +. +MessageId=52653 +Language=English +%1 +. +MessageId=52654 +Language=English +%1 +. +MessageId=52655 +Language=English +%1 +. +MessageId=52656 +Language=English +%1 +. +MessageId=52657 +Language=English +%1 +. +MessageId=52658 +Language=English +%1 +. +MessageId=52659 +Language=English +%1 +. +MessageId=52660 +Language=English +%1 +. +MessageId=52661 +Language=English +%1 +. +MessageId=52662 +Language=English +%1 +. +MessageId=52663 +Language=English +%1 +. +MessageId=52664 +Language=English +%1 +. +MessageId=52665 +Language=English +%1 +. +MessageId=52666 +Language=English +%1 +. +MessageId=52667 +Language=English +%1 +. +MessageId=52668 +Language=English +%1 +. +MessageId=52669 +Language=English +%1 +. +MessageId=52670 +Language=English +%1 +. +MessageId=52671 +Language=English +%1 +. +MessageId=52672 +Language=English +%1 +. +MessageId=52673 +Language=English +%1 +. +MessageId=52674 +Language=English +%1 +. +MessageId=52675 +Language=English +%1 +. +MessageId=52676 +Language=English +%1 +. +MessageId=52677 +Language=English +%1 +. +MessageId=52678 +Language=English +%1 +. +MessageId=52679 +Language=English +%1 +. +MessageId=52680 +Language=English +%1 +. +MessageId=52681 +Language=English +%1 +. +MessageId=52682 +Language=English +%1 +. +MessageId=52683 +Language=English +%1 +. +MessageId=52684 +Language=English +%1 +. +MessageId=52685 +Language=English +%1 +. +MessageId=52686 +Language=English +%1 +. +MessageId=52687 +Language=English +%1 +. +MessageId=52688 +Language=English +%1 +. +MessageId=52689 +Language=English +%1 +. +MessageId=52690 +Language=English +%1 +. +MessageId=52691 +Language=English +%1 +. +MessageId=52692 +Language=English +%1 +. +MessageId=52693 +Language=English +%1 +. +MessageId=52694 +Language=English +%1 +. +MessageId=52695 +Language=English +%1 +. +MessageId=52696 +Language=English +%1 +. +MessageId=52697 +Language=English +%1 +. +MessageId=52698 +Language=English +%1 +. +MessageId=52699 +Language=English +%1 +. +MessageId=52700 +Language=English +%1 +. +MessageId=52701 +Language=English +%1 +. +MessageId=52702 +Language=English +%1 +. +MessageId=52703 +Language=English +%1 +. +MessageId=52704 +Language=English +%1 +. +MessageId=52705 +Language=English +%1 +. +MessageId=52706 +Language=English +%1 +. +MessageId=52707 +Language=English +%1 +. +MessageId=52708 +Language=English +%1 +. +MessageId=52709 +Language=English +%1 +. +MessageId=52710 +Language=English +%1 +. +MessageId=52711 +Language=English +%1 +. +MessageId=52712 +Language=English +%1 +. +MessageId=52713 +Language=English +%1 +. +MessageId=52714 +Language=English +%1 +. +MessageId=52715 +Language=English +%1 +. +MessageId=52716 +Language=English +%1 +. +MessageId=52717 +Language=English +%1 +. +MessageId=52718 +Language=English +%1 +. +MessageId=52719 +Language=English +%1 +. +MessageId=52720 +Language=English +%1 +. +MessageId=52721 +Language=English +%1 +. +MessageId=52722 +Language=English +%1 +. +MessageId=52723 +Language=English +%1 +. +MessageId=52724 +Language=English +%1 +. +MessageId=52725 +Language=English +%1 +. +MessageId=52726 +Language=English +%1 +. +MessageId=52727 +Language=English +%1 +. +MessageId=52728 +Language=English +%1 +. +MessageId=52729 +Language=English +%1 +. +MessageId=52730 +Language=English +%1 +. +MessageId=52731 +Language=English +%1 +. +MessageId=52732 +Language=English +%1 +. +MessageId=52733 +Language=English +%1 +. +MessageId=52734 +Language=English +%1 +. +MessageId=52735 +Language=English +%1 +. +MessageId=52736 +Language=English +%1 +. +MessageId=52737 +Language=English +%1 +. +MessageId=52738 +Language=English +%1 +. +MessageId=52739 +Language=English +%1 +. +MessageId=52740 +Language=English +%1 +. +MessageId=52741 +Language=English +%1 +. +MessageId=52742 +Language=English +%1 +. +MessageId=52743 +Language=English +%1 +. +MessageId=52744 +Language=English +%1 +. +MessageId=52745 +Language=English +%1 +. +MessageId=52746 +Language=English +%1 +. +MessageId=52747 +Language=English +%1 +. +MessageId=52748 +Language=English +%1 +. +MessageId=52749 +Language=English +%1 +. +MessageId=52750 +Language=English +%1 +. +MessageId=52751 +Language=English +%1 +. +MessageId=52752 +Language=English +%1 +. +MessageId=52753 +Language=English +%1 +. +MessageId=52754 +Language=English +%1 +. +MessageId=52755 +Language=English +%1 +. +MessageId=52756 +Language=English +%1 +. +MessageId=52757 +Language=English +%1 +. +MessageId=52758 +Language=English +%1 +. +MessageId=52759 +Language=English +%1 +. +MessageId=52760 +Language=English +%1 +. +MessageId=52761 +Language=English +%1 +. +MessageId=52762 +Language=English +%1 +. +MessageId=52763 +Language=English +%1 +. +MessageId=52764 +Language=English +%1 +. +MessageId=52765 +Language=English +%1 +. +MessageId=52766 +Language=English +%1 +. +MessageId=52767 +Language=English +%1 +. +MessageId=52768 +Language=English +%1 +. +MessageId=52769 +Language=English +%1 +. +MessageId=52770 +Language=English +%1 +. +MessageId=52771 +Language=English +%1 +. +MessageId=52772 +Language=English +%1 +. +MessageId=52773 +Language=English +%1 +. +MessageId=52774 +Language=English +%1 +. +MessageId=52775 +Language=English +%1 +. +MessageId=52776 +Language=English +%1 +. +MessageId=52777 +Language=English +%1 +. +MessageId=52778 +Language=English +%1 +. +MessageId=52779 +Language=English +%1 +. +MessageId=52780 +Language=English +%1 +. +MessageId=52781 +Language=English +%1 +. +MessageId=52782 +Language=English +%1 +. +MessageId=52783 +Language=English +%1 +. +MessageId=52784 +Language=English +%1 +. +MessageId=52785 +Language=English +%1 +. +MessageId=52786 +Language=English +%1 +. +MessageId=52787 +Language=English +%1 +. +MessageId=52788 +Language=English +%1 +. +MessageId=52789 +Language=English +%1 +. +MessageId=52790 +Language=English +%1 +. +MessageId=52791 +Language=English +%1 +. +MessageId=52792 +Language=English +%1 +. +MessageId=52793 +Language=English +%1 +. +MessageId=52794 +Language=English +%1 +. +MessageId=52795 +Language=English +%1 +. +MessageId=52796 +Language=English +%1 +. +MessageId=52797 +Language=English +%1 +. +MessageId=52798 +Language=English +%1 +. +MessageId=52799 +Language=English +%1 +. +MessageId=52800 +Language=English +%1 +. +MessageId=52801 +Language=English +%1 +. +MessageId=52802 +Language=English +%1 +. +MessageId=52803 +Language=English +%1 +. +MessageId=52804 +Language=English +%1 +. +MessageId=52805 +Language=English +%1 +. +MessageId=52806 +Language=English +%1 +. +MessageId=52807 +Language=English +%1 +. +MessageId=52808 +Language=English +%1 +. +MessageId=52809 +Language=English +%1 +. +MessageId=52810 +Language=English +%1 +. +MessageId=52811 +Language=English +%1 +. +MessageId=52812 +Language=English +%1 +. +MessageId=52813 +Language=English +%1 +. +MessageId=52814 +Language=English +%1 +. +MessageId=52815 +Language=English +%1 +. +MessageId=52816 +Language=English +%1 +. +MessageId=52817 +Language=English +%1 +. +MessageId=52818 +Language=English +%1 +. +MessageId=52819 +Language=English +%1 +. +MessageId=52820 +Language=English +%1 +. +MessageId=52821 +Language=English +%1 +. +MessageId=52822 +Language=English +%1 +. +MessageId=52823 +Language=English +%1 +. +MessageId=52824 +Language=English +%1 +. +MessageId=52825 +Language=English +%1 +. +MessageId=52826 +Language=English +%1 +. +MessageId=52827 +Language=English +%1 +. +MessageId=52828 +Language=English +%1 +. +MessageId=52829 +Language=English +%1 +. +MessageId=52830 +Language=English +%1 +. +MessageId=52831 +Language=English +%1 +. +MessageId=52832 +Language=English +%1 +. +MessageId=52833 +Language=English +%1 +. +MessageId=52834 +Language=English +%1 +. +MessageId=52835 +Language=English +%1 +. +MessageId=52836 +Language=English +%1 +. +MessageId=52837 +Language=English +%1 +. +MessageId=52838 +Language=English +%1 +. +MessageId=52839 +Language=English +%1 +. +MessageId=52840 +Language=English +%1 +. +MessageId=52841 +Language=English +%1 +. +MessageId=52842 +Language=English +%1 +. +MessageId=52843 +Language=English +%1 +. +MessageId=52844 +Language=English +%1 +. +MessageId=52845 +Language=English +%1 +. +MessageId=52846 +Language=English +%1 +. +MessageId=52847 +Language=English +%1 +. +MessageId=52848 +Language=English +%1 +. +MessageId=52849 +Language=English +%1 +. +MessageId=52850 +Language=English +%1 +. +MessageId=52851 +Language=English +%1 +. +MessageId=52852 +Language=English +%1 +. +MessageId=52853 +Language=English +%1 +. +MessageId=52854 +Language=English +%1 +. +MessageId=52855 +Language=English +%1 +. +MessageId=52856 +Language=English +%1 +. +MessageId=52857 +Language=English +%1 +. +MessageId=52858 +Language=English +%1 +. +MessageId=52859 +Language=English +%1 +. +MessageId=52860 +Language=English +%1 +. +MessageId=52861 +Language=English +%1 +. +MessageId=52862 +Language=English +%1 +. +MessageId=52863 +Language=English +%1 +. +MessageId=52864 +Language=English +%1 +. +MessageId=52865 +Language=English +%1 +. +MessageId=52866 +Language=English +%1 +. +MessageId=52867 +Language=English +%1 +. +MessageId=52868 +Language=English +%1 +. +MessageId=52869 +Language=English +%1 +. +MessageId=52870 +Language=English +%1 +. +MessageId=52871 +Language=English +%1 +. +MessageId=52872 +Language=English +%1 +. +MessageId=52873 +Language=English +%1 +. +MessageId=52874 +Language=English +%1 +. +MessageId=52875 +Language=English +%1 +. +MessageId=52876 +Language=English +%1 +. +MessageId=52877 +Language=English +%1 +. +MessageId=52878 +Language=English +%1 +. +MessageId=52879 +Language=English +%1 +. +MessageId=52880 +Language=English +%1 +. +MessageId=52881 +Language=English +%1 +. +MessageId=52882 +Language=English +%1 +. +MessageId=52883 +Language=English +%1 +. +MessageId=52884 +Language=English +%1 +. +MessageId=52885 +Language=English +%1 +. +MessageId=52886 +Language=English +%1 +. +MessageId=52887 +Language=English +%1 +. +MessageId=52888 +Language=English +%1 +. +MessageId=52889 +Language=English +%1 +. +MessageId=52890 +Language=English +%1 +. +MessageId=52891 +Language=English +%1 +. +MessageId=52892 +Language=English +%1 +. +MessageId=52893 +Language=English +%1 +. +MessageId=52894 +Language=English +%1 +. +MessageId=52895 +Language=English +%1 +. +MessageId=52896 +Language=English +%1 +. +MessageId=52897 +Language=English +%1 +. +MessageId=52898 +Language=English +%1 +. +MessageId=52899 +Language=English +%1 +. +MessageId=52900 +Language=English +%1 +. +MessageId=52901 +Language=English +%1 +. +MessageId=52902 +Language=English +%1 +. +MessageId=52903 +Language=English +%1 +. +MessageId=52904 +Language=English +%1 +. +MessageId=52905 +Language=English +%1 +. +MessageId=52906 +Language=English +%1 +. +MessageId=52907 +Language=English +%1 +. +MessageId=52908 +Language=English +%1 +. +MessageId=52909 +Language=English +%1 +. +MessageId=52910 +Language=English +%1 +. +MessageId=52911 +Language=English +%1 +. +MessageId=52912 +Language=English +%1 +. +MessageId=52913 +Language=English +%1 +. +MessageId=52914 +Language=English +%1 +. +MessageId=52915 +Language=English +%1 +. +MessageId=52916 +Language=English +%1 +. +MessageId=52917 +Language=English +%1 +. +MessageId=52918 +Language=English +%1 +. +MessageId=52919 +Language=English +%1 +. +MessageId=52920 +Language=English +%1 +. +MessageId=52921 +Language=English +%1 +. +MessageId=52922 +Language=English +%1 +. +MessageId=52923 +Language=English +%1 +. +MessageId=52924 +Language=English +%1 +. +MessageId=52925 +Language=English +%1 +. +MessageId=52926 +Language=English +%1 +. +MessageId=52927 +Language=English +%1 +. +MessageId=52928 +Language=English +%1 +. +MessageId=52929 +Language=English +%1 +. +MessageId=52930 +Language=English +%1 +. +MessageId=52931 +Language=English +%1 +. +MessageId=52932 +Language=English +%1 +. +MessageId=52933 +Language=English +%1 +. +MessageId=52934 +Language=English +%1 +. +MessageId=52935 +Language=English +%1 +. +MessageId=52936 +Language=English +%1 +. +MessageId=52937 +Language=English +%1 +. +MessageId=52938 +Language=English +%1 +. +MessageId=52939 +Language=English +%1 +. +MessageId=52940 +Language=English +%1 +. +MessageId=52941 +Language=English +%1 +. +MessageId=52942 +Language=English +%1 +. +MessageId=52943 +Language=English +%1 +. +MessageId=52944 +Language=English +%1 +. +MessageId=52945 +Language=English +%1 +. +MessageId=52946 +Language=English +%1 +. +MessageId=52947 +Language=English +%1 +. +MessageId=52948 +Language=English +%1 +. +MessageId=52949 +Language=English +%1 +. +MessageId=52950 +Language=English +%1 +. +MessageId=52951 +Language=English +%1 +. +MessageId=52952 +Language=English +%1 +. +MessageId=52953 +Language=English +%1 +. +MessageId=52954 +Language=English +%1 +. +MessageId=52955 +Language=English +%1 +. +MessageId=52956 +Language=English +%1 +. +MessageId=52957 +Language=English +%1 +. +MessageId=52958 +Language=English +%1 +. +MessageId=52959 +Language=English +%1 +. +MessageId=52960 +Language=English +%1 +. +MessageId=52961 +Language=English +%1 +. +MessageId=52962 +Language=English +%1 +. +MessageId=52963 +Language=English +%1 +. +MessageId=52964 +Language=English +%1 +. +MessageId=52965 +Language=English +%1 +. +MessageId=52966 +Language=English +%1 +. +MessageId=52967 +Language=English +%1 +. +MessageId=52968 +Language=English +%1 +. +MessageId=52969 +Language=English +%1 +. +MessageId=52970 +Language=English +%1 +. +MessageId=52971 +Language=English +%1 +. +MessageId=52972 +Language=English +%1 +. +MessageId=52973 +Language=English +%1 +. +MessageId=52974 +Language=English +%1 +. +MessageId=52975 +Language=English +%1 +. +MessageId=52976 +Language=English +%1 +. +MessageId=52977 +Language=English +%1 +. +MessageId=52978 +Language=English +%1 +. +MessageId=52979 +Language=English +%1 +. +MessageId=52980 +Language=English +%1 +. +MessageId=52981 +Language=English +%1 +. +MessageId=52982 +Language=English +%1 +. +MessageId=52983 +Language=English +%1 +. +MessageId=52984 +Language=English +%1 +. +MessageId=52985 +Language=English +%1 +. +MessageId=52986 +Language=English +%1 +. +MessageId=52987 +Language=English +%1 +. +MessageId=52988 +Language=English +%1 +. +MessageId=52989 +Language=English +%1 +. +MessageId=52990 +Language=English +%1 +. +MessageId=52991 +Language=English +%1 +. +MessageId=52992 +Language=English +%1 +. +MessageId=52993 +Language=English +%1 +. +MessageId=52994 +Language=English +%1 +. +MessageId=52995 +Language=English +%1 +. +MessageId=52996 +Language=English +%1 +. +MessageId=52997 +Language=English +%1 +. +MessageId=52998 +Language=English +%1 +. +MessageId=52999 +Language=English +%1 +. +MessageId=53000 +Language=English +%1 +. +MessageId=53001 +Language=English +%1 +. +MessageId=53002 +Language=English +%1 +. +MessageId=53003 +Language=English +%1 +. +MessageId=53004 +Language=English +%1 +. +MessageId=53005 +Language=English +%1 +. +MessageId=53006 +Language=English +%1 +. +MessageId=53007 +Language=English +%1 +. +MessageId=53008 +Language=English +%1 +. +MessageId=53009 +Language=English +%1 +. +MessageId=53010 +Language=English +%1 +. +MessageId=53011 +Language=English +%1 +. +MessageId=53012 +Language=English +%1 +. +MessageId=53013 +Language=English +%1 +. +MessageId=53014 +Language=English +%1 +. +MessageId=53015 +Language=English +%1 +. +MessageId=53016 +Language=English +%1 +. +MessageId=53017 +Language=English +%1 +. +MessageId=53018 +Language=English +%1 +. +MessageId=53019 +Language=English +%1 +. +MessageId=53020 +Language=English +%1 +. +MessageId=53021 +Language=English +%1 +. +MessageId=53022 +Language=English +%1 +. +MessageId=53023 +Language=English +%1 +. +MessageId=53024 +Language=English +%1 +. +MessageId=53025 +Language=English +%1 +. +MessageId=53026 +Language=English +%1 +. +MessageId=53027 +Language=English +%1 +. +MessageId=53028 +Language=English +%1 +. +MessageId=53029 +Language=English +%1 +. +MessageId=53030 +Language=English +%1 +. +MessageId=53031 +Language=English +%1 +. +MessageId=53032 +Language=English +%1 +. +MessageId=53033 +Language=English +%1 +. +MessageId=53034 +Language=English +%1 +. +MessageId=53035 +Language=English +%1 +. +MessageId=53036 +Language=English +%1 +. +MessageId=53037 +Language=English +%1 +. +MessageId=53038 +Language=English +%1 +. +MessageId=53039 +Language=English +%1 +. +MessageId=53040 +Language=English +%1 +. +MessageId=53041 +Language=English +%1 +. +MessageId=53042 +Language=English +%1 +. +MessageId=53043 +Language=English +%1 +. +MessageId=53044 +Language=English +%1 +. +MessageId=53045 +Language=English +%1 +. +MessageId=53046 +Language=English +%1 +. +MessageId=53047 +Language=English +%1 +. +MessageId=53048 +Language=English +%1 +. +MessageId=53049 +Language=English +%1 +. +MessageId=53050 +Language=English +%1 +. +MessageId=53051 +Language=English +%1 +. +MessageId=53052 +Language=English +%1 +. +MessageId=53053 +Language=English +%1 +. +MessageId=53054 +Language=English +%1 +. +MessageId=53055 +Language=English +%1 +. +MessageId=53056 +Language=English +%1 +. +MessageId=53057 +Language=English +%1 +. +MessageId=53058 +Language=English +%1 +. +MessageId=53059 +Language=English +%1 +. +MessageId=53060 +Language=English +%1 +. +MessageId=53061 +Language=English +%1 +. +MessageId=53062 +Language=English +%1 +. +MessageId=53063 +Language=English +%1 +. +MessageId=53064 +Language=English +%1 +. +MessageId=53065 +Language=English +%1 +. +MessageId=53066 +Language=English +%1 +. +MessageId=53067 +Language=English +%1 +. +MessageId=53068 +Language=English +%1 +. +MessageId=53069 +Language=English +%1 +. +MessageId=53070 +Language=English +%1 +. +MessageId=53071 +Language=English +%1 +. +MessageId=53072 +Language=English +%1 +. +MessageId=53073 +Language=English +%1 +. +MessageId=53074 +Language=English +%1 +. +MessageId=53075 +Language=English +%1 +. +MessageId=53076 +Language=English +%1 +. +MessageId=53077 +Language=English +%1 +. +MessageId=53078 +Language=English +%1 +. +MessageId=53079 +Language=English +%1 +. +MessageId=53080 +Language=English +%1 +. +MessageId=53081 +Language=English +%1 +. +MessageId=53082 +Language=English +%1 +. +MessageId=53083 +Language=English +%1 +. +MessageId=53084 +Language=English +%1 +. +MessageId=53085 +Language=English +%1 +. +MessageId=53086 +Language=English +%1 +. +MessageId=53087 +Language=English +%1 +. +MessageId=53088 +Language=English +%1 +. +MessageId=53089 +Language=English +%1 +. +MessageId=53090 +Language=English +%1 +. +MessageId=53091 +Language=English +%1 +. +MessageId=53092 +Language=English +%1 +. +MessageId=53093 +Language=English +%1 +. +MessageId=53094 +Language=English +%1 +. +MessageId=53095 +Language=English +%1 +. +MessageId=53096 +Language=English +%1 +. +MessageId=53097 +Language=English +%1 +. +MessageId=53098 +Language=English +%1 +. +MessageId=53099 +Language=English +%1 +. +MessageId=53100 +Language=English +%1 +. +MessageId=53101 +Language=English +%1 +. +MessageId=53102 +Language=English +%1 +. +MessageId=53103 +Language=English +%1 +. +MessageId=53104 +Language=English +%1 +. +MessageId=53105 +Language=English +%1 +. +MessageId=53106 +Language=English +%1 +. +MessageId=53107 +Language=English +%1 +. +MessageId=53108 +Language=English +%1 +. +MessageId=53109 +Language=English +%1 +. +MessageId=53110 +Language=English +%1 +. +MessageId=53111 +Language=English +%1 +. +MessageId=53112 +Language=English +%1 +. +MessageId=53113 +Language=English +%1 +. +MessageId=53114 +Language=English +%1 +. +MessageId=53115 +Language=English +%1 +. +MessageId=53116 +Language=English +%1 +. +MessageId=53117 +Language=English +%1 +. +MessageId=53118 +Language=English +%1 +. +MessageId=53119 +Language=English +%1 +. +MessageId=53120 +Language=English +%1 +. +MessageId=53121 +Language=English +%1 +. +MessageId=53122 +Language=English +%1 +. +MessageId=53123 +Language=English +%1 +. +MessageId=53124 +Language=English +%1 +. +MessageId=53125 +Language=English +%1 +. +MessageId=53126 +Language=English +%1 +. +MessageId=53127 +Language=English +%1 +. +MessageId=53128 +Language=English +%1 +. +MessageId=53129 +Language=English +%1 +. +MessageId=53130 +Language=English +%1 +. +MessageId=53131 +Language=English +%1 +. +MessageId=53132 +Language=English +%1 +. +MessageId=53133 +Language=English +%1 +. +MessageId=53134 +Language=English +%1 +. +MessageId=53135 +Language=English +%1 +. +MessageId=53136 +Language=English +%1 +. +MessageId=53137 +Language=English +%1 +. +MessageId=53138 +Language=English +%1 +. +MessageId=53139 +Language=English +%1 +. +MessageId=53140 +Language=English +%1 +. +MessageId=53141 +Language=English +%1 +. +MessageId=53142 +Language=English +%1 +. +MessageId=53143 +Language=English +%1 +. +MessageId=53144 +Language=English +%1 +. +MessageId=53145 +Language=English +%1 +. +MessageId=53146 +Language=English +%1 +. +MessageId=53147 +Language=English +%1 +. +MessageId=53148 +Language=English +%1 +. +MessageId=53149 +Language=English +%1 +. +MessageId=53150 +Language=English +%1 +. +MessageId=53151 +Language=English +%1 +. +MessageId=53152 +Language=English +%1 +. +MessageId=53153 +Language=English +%1 +. +MessageId=53154 +Language=English +%1 +. +MessageId=53155 +Language=English +%1 +. +MessageId=53156 +Language=English +%1 +. +MessageId=53157 +Language=English +%1 +. +MessageId=53158 +Language=English +%1 +. +MessageId=53159 +Language=English +%1 +. +MessageId=53160 +Language=English +%1 +. +MessageId=53161 +Language=English +%1 +. +MessageId=53162 +Language=English +%1 +. +MessageId=53163 +Language=English +%1 +. +MessageId=53164 +Language=English +%1 +. +MessageId=53165 +Language=English +%1 +. +MessageId=53166 +Language=English +%1 +. +MessageId=53167 +Language=English +%1 +. +MessageId=53168 +Language=English +%1 +. +MessageId=53169 +Language=English +%1 +. +MessageId=53170 +Language=English +%1 +. +MessageId=53171 +Language=English +%1 +. +MessageId=53172 +Language=English +%1 +. +MessageId=53173 +Language=English +%1 +. +MessageId=53174 +Language=English +%1 +. +MessageId=53175 +Language=English +%1 +. +MessageId=53176 +Language=English +%1 +. +MessageId=53177 +Language=English +%1 +. +MessageId=53178 +Language=English +%1 +. +MessageId=53179 +Language=English +%1 +. +MessageId=53180 +Language=English +%1 +. +MessageId=53181 +Language=English +%1 +. +MessageId=53182 +Language=English +%1 +. +MessageId=53183 +Language=English +%1 +. +MessageId=53184 +Language=English +%1 +. +MessageId=53185 +Language=English +%1 +. +MessageId=53186 +Language=English +%1 +. +MessageId=53187 +Language=English +%1 +. +MessageId=53188 +Language=English +%1 +. +MessageId=53189 +Language=English +%1 +. +MessageId=53190 +Language=English +%1 +. +MessageId=53191 +Language=English +%1 +. +MessageId=53192 +Language=English +%1 +. +MessageId=53193 +Language=English +%1 +. +MessageId=53194 +Language=English +%1 +. +MessageId=53195 +Language=English +%1 +. +MessageId=53196 +Language=English +%1 +. +MessageId=53197 +Language=English +%1 +. +MessageId=53198 +Language=English +%1 +. +MessageId=53199 +Language=English +%1 +. +MessageId=53200 +Language=English +%1 +. +MessageId=53201 +Language=English +%1 +. +MessageId=53202 +Language=English +%1 +. +MessageId=53203 +Language=English +%1 +. +MessageId=53204 +Language=English +%1 +. +MessageId=53205 +Language=English +%1 +. +MessageId=53206 +Language=English +%1 +. +MessageId=53207 +Language=English +%1 +. +MessageId=53208 +Language=English +%1 +. +MessageId=53209 +Language=English +%1 +. +MessageId=53210 +Language=English +%1 +. +MessageId=53211 +Language=English +%1 +. +MessageId=53212 +Language=English +%1 +. +MessageId=53213 +Language=English +%1 +. +MessageId=53214 +Language=English +%1 +. +MessageId=53215 +Language=English +%1 +. +MessageId=53216 +Language=English +%1 +. +MessageId=53217 +Language=English +%1 +. +MessageId=53218 +Language=English +%1 +. +MessageId=53219 +Language=English +%1 +. +MessageId=53220 +Language=English +%1 +. +MessageId=53221 +Language=English +%1 +. +MessageId=53222 +Language=English +%1 +. +MessageId=53223 +Language=English +%1 +. +MessageId=53224 +Language=English +%1 +. +MessageId=53225 +Language=English +%1 +. +MessageId=53226 +Language=English +%1 +. +MessageId=53227 +Language=English +%1 +. +MessageId=53228 +Language=English +%1 +. +MessageId=53229 +Language=English +%1 +. +MessageId=53230 +Language=English +%1 +. +MessageId=53231 +Language=English +%1 +. +MessageId=53232 +Language=English +%1 +. +MessageId=53233 +Language=English +%1 +. +MessageId=53234 +Language=English +%1 +. +MessageId=53235 +Language=English +%1 +. +MessageId=53236 +Language=English +%1 +. +MessageId=53237 +Language=English +%1 +. +MessageId=53238 +Language=English +%1 +. +MessageId=53239 +Language=English +%1 +. +MessageId=53240 +Language=English +%1 +. +MessageId=53241 +Language=English +%1 +. +MessageId=53242 +Language=English +%1 +. +MessageId=53243 +Language=English +%1 +. +MessageId=53244 +Language=English +%1 +. +MessageId=53245 +Language=English +%1 +. +MessageId=53246 +Language=English +%1 +. +MessageId=53247 +Language=English +%1 +. +MessageId=53248 +Language=English +%1 +. +MessageId=53249 +Language=English +%1 +. +MessageId=53250 +Language=English +%1 +. +MessageId=53251 +Language=English +%1 +. +MessageId=53252 +Language=English +%1 +. +MessageId=53253 +Language=English +%1 +. +MessageId=53254 +Language=English +%1 +. +MessageId=53255 +Language=English +%1 +. +MessageId=53256 +Language=English +%1 +. +MessageId=53257 +Language=English +%1 +. +MessageId=53258 +Language=English +%1 +. +MessageId=53259 +Language=English +%1 +. +MessageId=53260 +Language=English +%1 +. +MessageId=53261 +Language=English +%1 +. +MessageId=53262 +Language=English +%1 +. +MessageId=53263 +Language=English +%1 +. +MessageId=53264 +Language=English +%1 +. +MessageId=53265 +Language=English +%1 +. +MessageId=53266 +Language=English +%1 +. +MessageId=53267 +Language=English +%1 +. +MessageId=53268 +Language=English +%1 +. +MessageId=53269 +Language=English +%1 +. +MessageId=53270 +Language=English +%1 +. +MessageId=53271 +Language=English +%1 +. +MessageId=53272 +Language=English +%1 +. +MessageId=53273 +Language=English +%1 +. +MessageId=53274 +Language=English +%1 +. +MessageId=53275 +Language=English +%1 +. +MessageId=53276 +Language=English +%1 +. +MessageId=53277 +Language=English +%1 +. +MessageId=53278 +Language=English +%1 +. +MessageId=53279 +Language=English +%1 +. +MessageId=53280 +Language=English +%1 +. +MessageId=53281 +Language=English +%1 +. +MessageId=53282 +Language=English +%1 +. +MessageId=53283 +Language=English +%1 +. +MessageId=53284 +Language=English +%1 +. +MessageId=53285 +Language=English +%1 +. +MessageId=53286 +Language=English +%1 +. +MessageId=53287 +Language=English +%1 +. +MessageId=53288 +Language=English +%1 +. +MessageId=53289 +Language=English +%1 +. +MessageId=53290 +Language=English +%1 +. +MessageId=53291 +Language=English +%1 +. +MessageId=53292 +Language=English +%1 +. +MessageId=53293 +Language=English +%1 +. +MessageId=53294 +Language=English +%1 +. +MessageId=53295 +Language=English +%1 +. +MessageId=53296 +Language=English +%1 +. +MessageId=53297 +Language=English +%1 +. +MessageId=53298 +Language=English +%1 +. +MessageId=53299 +Language=English +%1 +. +MessageId=53300 +Language=English +%1 +. +MessageId=53301 +Language=English +%1 +. +MessageId=53302 +Language=English +%1 +. +MessageId=53303 +Language=English +%1 +. +MessageId=53304 +Language=English +%1 +. +MessageId=53305 +Language=English +%1 +. +MessageId=53306 +Language=English +%1 +. +MessageId=53307 +Language=English +%1 +. +MessageId=53308 +Language=English +%1 +. +MessageId=53309 +Language=English +%1 +. +MessageId=53310 +Language=English +%1 +. +MessageId=53311 +Language=English +%1 +. +MessageId=53312 +Language=English +%1 +. +MessageId=53313 +Language=English +%1 +. +MessageId=53314 +Language=English +%1 +. +MessageId=53315 +Language=English +%1 +. +MessageId=53316 +Language=English +%1 +. +MessageId=53317 +Language=English +%1 +. +MessageId=53318 +Language=English +%1 +. +MessageId=53319 +Language=English +%1 +. +MessageId=53320 +Language=English +%1 +. +MessageId=53321 +Language=English +%1 +. +MessageId=53322 +Language=English +%1 +. +MessageId=53323 +Language=English +%1 +. +MessageId=53324 +Language=English +%1 +. +MessageId=53325 +Language=English +%1 +. +MessageId=53326 +Language=English +%1 +. +MessageId=53327 +Language=English +%1 +. +MessageId=53328 +Language=English +%1 +. +MessageId=53329 +Language=English +%1 +. +MessageId=53330 +Language=English +%1 +. +MessageId=53331 +Language=English +%1 +. +MessageId=53332 +Language=English +%1 +. +MessageId=53333 +Language=English +%1 +. +MessageId=53334 +Language=English +%1 +. +MessageId=53335 +Language=English +%1 +. +MessageId=53336 +Language=English +%1 +. +MessageId=53337 +Language=English +%1 +. +MessageId=53338 +Language=English +%1 +. +MessageId=53339 +Language=English +%1 +. +MessageId=53340 +Language=English +%1 +. +MessageId=53341 +Language=English +%1 +. +MessageId=53342 +Language=English +%1 +. +MessageId=53343 +Language=English +%1 +. +MessageId=53344 +Language=English +%1 +. +MessageId=53345 +Language=English +%1 +. +MessageId=53346 +Language=English +%1 +. +MessageId=53347 +Language=English +%1 +. +MessageId=53348 +Language=English +%1 +. +MessageId=53349 +Language=English +%1 +. +MessageId=53350 +Language=English +%1 +. +MessageId=53351 +Language=English +%1 +. +MessageId=53352 +Language=English +%1 +. +MessageId=53353 +Language=English +%1 +. +MessageId=53354 +Language=English +%1 +. +MessageId=53355 +Language=English +%1 +. +MessageId=53356 +Language=English +%1 +. +MessageId=53357 +Language=English +%1 +. +MessageId=53358 +Language=English +%1 +. +MessageId=53359 +Language=English +%1 +. +MessageId=53360 +Language=English +%1 +. +MessageId=53361 +Language=English +%1 +. +MessageId=53362 +Language=English +%1 +. +MessageId=53363 +Language=English +%1 +. +MessageId=53364 +Language=English +%1 +. +MessageId=53365 +Language=English +%1 +. +MessageId=53366 +Language=English +%1 +. +MessageId=53367 +Language=English +%1 +. +MessageId=53368 +Language=English +%1 +. +MessageId=53369 +Language=English +%1 +. +MessageId=53370 +Language=English +%1 +. +MessageId=53371 +Language=English +%1 +. +MessageId=53372 +Language=English +%1 +. +MessageId=53373 +Language=English +%1 +. +MessageId=53374 +Language=English +%1 +. +MessageId=53375 +Language=English +%1 +. +MessageId=53376 +Language=English +%1 +. +MessageId=53377 +Language=English +%1 +. +MessageId=53378 +Language=English +%1 +. +MessageId=53379 +Language=English +%1 +. +MessageId=53380 +Language=English +%1 +. +MessageId=53381 +Language=English +%1 +. +MessageId=53382 +Language=English +%1 +. +MessageId=53383 +Language=English +%1 +. +MessageId=53384 +Language=English +%1 +. +MessageId=53385 +Language=English +%1 +. +MessageId=53386 +Language=English +%1 +. +MessageId=53387 +Language=English +%1 +. +MessageId=53388 +Language=English +%1 +. +MessageId=53389 +Language=English +%1 +. +MessageId=53390 +Language=English +%1 +. +MessageId=53391 +Language=English +%1 +. +MessageId=53392 +Language=English +%1 +. +MessageId=53393 +Language=English +%1 +. +MessageId=53394 +Language=English +%1 +. +MessageId=53395 +Language=English +%1 +. +MessageId=53396 +Language=English +%1 +. +MessageId=53397 +Language=English +%1 +. +MessageId=53398 +Language=English +%1 +. +MessageId=53399 +Language=English +%1 +. +MessageId=53400 +Language=English +%1 +. +MessageId=53401 +Language=English +%1 +. +MessageId=53402 +Language=English +%1 +. +MessageId=53403 +Language=English +%1 +. +MessageId=53404 +Language=English +%1 +. +MessageId=53405 +Language=English +%1 +. +MessageId=53406 +Language=English +%1 +. +MessageId=53407 +Language=English +%1 +. +MessageId=53408 +Language=English +%1 +. +MessageId=53409 +Language=English +%1 +. +MessageId=53410 +Language=English +%1 +. +MessageId=53411 +Language=English +%1 +. +MessageId=53412 +Language=English +%1 +. +MessageId=53413 +Language=English +%1 +. +MessageId=53414 +Language=English +%1 +. +MessageId=53415 +Language=English +%1 +. +MessageId=53416 +Language=English +%1 +. +MessageId=53417 +Language=English +%1 +. +MessageId=53418 +Language=English +%1 +. +MessageId=53419 +Language=English +%1 +. +MessageId=53420 +Language=English +%1 +. +MessageId=53421 +Language=English +%1 +. +MessageId=53422 +Language=English +%1 +. +MessageId=53423 +Language=English +%1 +. +MessageId=53424 +Language=English +%1 +. +MessageId=53425 +Language=English +%1 +. +MessageId=53426 +Language=English +%1 +. +MessageId=53427 +Language=English +%1 +. +MessageId=53428 +Language=English +%1 +. +MessageId=53429 +Language=English +%1 +. +MessageId=53430 +Language=English +%1 +. +MessageId=53431 +Language=English +%1 +. +MessageId=53432 +Language=English +%1 +. +MessageId=53433 +Language=English +%1 +. +MessageId=53434 +Language=English +%1 +. +MessageId=53435 +Language=English +%1 +. +MessageId=53436 +Language=English +%1 +. +MessageId=53437 +Language=English +%1 +. +MessageId=53438 +Language=English +%1 +. +MessageId=53439 +Language=English +%1 +. +MessageId=53440 +Language=English +%1 +. +MessageId=53441 +Language=English +%1 +. +MessageId=53442 +Language=English +%1 +. +MessageId=53443 +Language=English +%1 +. +MessageId=53444 +Language=English +%1 +. +MessageId=53445 +Language=English +%1 +. +MessageId=53446 +Language=English +%1 +. +MessageId=53447 +Language=English +%1 +. +MessageId=53448 +Language=English +%1 +. +MessageId=53449 +Language=English +%1 +. +MessageId=53450 +Language=English +%1 +. +MessageId=53451 +Language=English +%1 +. +MessageId=53452 +Language=English +%1 +. +MessageId=53453 +Language=English +%1 +. +MessageId=53454 +Language=English +%1 +. +MessageId=53455 +Language=English +%1 +. +MessageId=53456 +Language=English +%1 +. +MessageId=53457 +Language=English +%1 +. +MessageId=53458 +Language=English +%1 +. +MessageId=53459 +Language=English +%1 +. +MessageId=53460 +Language=English +%1 +. +MessageId=53461 +Language=English +%1 +. +MessageId=53462 +Language=English +%1 +. +MessageId=53463 +Language=English +%1 +. +MessageId=53464 +Language=English +%1 +. +MessageId=53465 +Language=English +%1 +. +MessageId=53466 +Language=English +%1 +. +MessageId=53467 +Language=English +%1 +. +MessageId=53468 +Language=English +%1 +. +MessageId=53469 +Language=English +%1 +. +MessageId=53470 +Language=English +%1 +. +MessageId=53471 +Language=English +%1 +. +MessageId=53472 +Language=English +%1 +. +MessageId=53473 +Language=English +%1 +. +MessageId=53474 +Language=English +%1 +. +MessageId=53475 +Language=English +%1 +. +MessageId=53476 +Language=English +%1 +. +MessageId=53477 +Language=English +%1 +. +MessageId=53478 +Language=English +%1 +. +MessageId=53479 +Language=English +%1 +. +MessageId=53480 +Language=English +%1 +. +MessageId=53481 +Language=English +%1 +. +MessageId=53482 +Language=English +%1 +. +MessageId=53483 +Language=English +%1 +. +MessageId=53484 +Language=English +%1 +. +MessageId=53485 +Language=English +%1 +. +MessageId=53486 +Language=English +%1 +. +MessageId=53487 +Language=English +%1 +. +MessageId=53488 +Language=English +%1 +. +MessageId=53489 +Language=English +%1 +. +MessageId=53490 +Language=English +%1 +. +MessageId=53491 +Language=English +%1 +. +MessageId=53492 +Language=English +%1 +. +MessageId=53493 +Language=English +%1 +. +MessageId=53494 +Language=English +%1 +. +MessageId=53495 +Language=English +%1 +. +MessageId=53496 +Language=English +%1 +. +MessageId=53497 +Language=English +%1 +. +MessageId=53498 +Language=English +%1 +. +MessageId=53499 +Language=English +%1 +. +MessageId=53500 +Language=English +%1 +. +MessageId=53501 +Language=English +%1 +. +MessageId=53502 +Language=English +%1 +. +MessageId=53503 +Language=English +%1 +. +MessageId=53504 +Language=English +%1 +. +MessageId=53505 +Language=English +%1 +. +MessageId=53506 +Language=English +%1 +. +MessageId=53507 +Language=English +%1 +. +MessageId=53508 +Language=English +%1 +. +MessageId=53509 +Language=English +%1 +. +MessageId=53510 +Language=English +%1 +. +MessageId=53511 +Language=English +%1 +. +MessageId=53512 +Language=English +%1 +. +MessageId=53513 +Language=English +%1 +. +MessageId=53514 +Language=English +%1 +. +MessageId=53515 +Language=English +%1 +. +MessageId=53516 +Language=English +%1 +. +MessageId=53517 +Language=English +%1 +. +MessageId=53518 +Language=English +%1 +. +MessageId=53519 +Language=English +%1 +. +MessageId=53520 +Language=English +%1 +. +MessageId=53521 +Language=English +%1 +. +MessageId=53522 +Language=English +%1 +. +MessageId=53523 +Language=English +%1 +. +MessageId=53524 +Language=English +%1 +. +MessageId=53525 +Language=English +%1 +. +MessageId=53526 +Language=English +%1 +. +MessageId=53527 +Language=English +%1 +. +MessageId=53528 +Language=English +%1 +. +MessageId=53529 +Language=English +%1 +. +MessageId=53530 +Language=English +%1 +. +MessageId=53531 +Language=English +%1 +. +MessageId=53532 +Language=English +%1 +. +MessageId=53533 +Language=English +%1 +. +MessageId=53534 +Language=English +%1 +. +MessageId=53535 +Language=English +%1 +. +MessageId=53536 +Language=English +%1 +. +MessageId=53537 +Language=English +%1 +. +MessageId=53538 +Language=English +%1 +. +MessageId=53539 +Language=English +%1 +. +MessageId=53540 +Language=English +%1 +. +MessageId=53541 +Language=English +%1 +. +MessageId=53542 +Language=English +%1 +. +MessageId=53543 +Language=English +%1 +. +MessageId=53544 +Language=English +%1 +. +MessageId=53545 +Language=English +%1 +. +MessageId=53546 +Language=English +%1 +. +MessageId=53547 +Language=English +%1 +. +MessageId=53548 +Language=English +%1 +. +MessageId=53549 +Language=English +%1 +. +MessageId=53550 +Language=English +%1 +. +MessageId=53551 +Language=English +%1 +. +MessageId=53552 +Language=English +%1 +. +MessageId=53553 +Language=English +%1 +. +MessageId=53554 +Language=English +%1 +. +MessageId=53555 +Language=English +%1 +. +MessageId=53556 +Language=English +%1 +. +MessageId=53557 +Language=English +%1 +. +MessageId=53558 +Language=English +%1 +. +MessageId=53559 +Language=English +%1 +. +MessageId=53560 +Language=English +%1 +. +MessageId=53561 +Language=English +%1 +. +MessageId=53562 +Language=English +%1 +. +MessageId=53563 +Language=English +%1 +. +MessageId=53564 +Language=English +%1 +. +MessageId=53565 +Language=English +%1 +. +MessageId=53566 +Language=English +%1 +. +MessageId=53567 +Language=English +%1 +. +MessageId=53568 +Language=English +%1 +. +MessageId=53569 +Language=English +%1 +. +MessageId=53570 +Language=English +%1 +. +MessageId=53571 +Language=English +%1 +. +MessageId=53572 +Language=English +%1 +. +MessageId=53573 +Language=English +%1 +. +MessageId=53574 +Language=English +%1 +. +MessageId=53575 +Language=English +%1 +. +MessageId=53576 +Language=English +%1 +. +MessageId=53577 +Language=English +%1 +. +MessageId=53578 +Language=English +%1 +. +MessageId=53579 +Language=English +%1 +. +MessageId=53580 +Language=English +%1 +. +MessageId=53581 +Language=English +%1 +. +MessageId=53582 +Language=English +%1 +. +MessageId=53583 +Language=English +%1 +. +MessageId=53584 +Language=English +%1 +. +MessageId=53585 +Language=English +%1 +. +MessageId=53586 +Language=English +%1 +. +MessageId=53587 +Language=English +%1 +. +MessageId=53588 +Language=English +%1 +. +MessageId=53589 +Language=English +%1 +. +MessageId=53590 +Language=English +%1 +. +MessageId=53591 +Language=English +%1 +. +MessageId=53592 +Language=English +%1 +. +MessageId=53593 +Language=English +%1 +. +MessageId=53594 +Language=English +%1 +. +MessageId=53595 +Language=English +%1 +. +MessageId=53596 +Language=English +%1 +. +MessageId=53597 +Language=English +%1 +. +MessageId=53598 +Language=English +%1 +. +MessageId=53599 +Language=English +%1 +. +MessageId=53600 +Language=English +%1 +. +MessageId=53601 +Language=English +%1 +. +MessageId=53602 +Language=English +%1 +. +MessageId=53603 +Language=English +%1 +. +MessageId=53604 +Language=English +%1 +. +MessageId=53605 +Language=English +%1 +. +MessageId=53606 +Language=English +%1 +. +MessageId=53607 +Language=English +%1 +. +MessageId=53608 +Language=English +%1 +. +MessageId=53609 +Language=English +%1 +. +MessageId=53610 +Language=English +%1 +. +MessageId=53611 +Language=English +%1 +. +MessageId=53612 +Language=English +%1 +. +MessageId=53613 +Language=English +%1 +. +MessageId=53614 +Language=English +%1 +. +MessageId=53615 +Language=English +%1 +. +MessageId=53616 +Language=English +%1 +. +MessageId=53617 +Language=English +%1 +. +MessageId=53618 +Language=English +%1 +. +MessageId=53619 +Language=English +%1 +. +MessageId=53620 +Language=English +%1 +. +MessageId=53621 +Language=English +%1 +. +MessageId=53622 +Language=English +%1 +. +MessageId=53623 +Language=English +%1 +. +MessageId=53624 +Language=English +%1 +. +MessageId=53625 +Language=English +%1 +. +MessageId=53626 +Language=English +%1 +. +MessageId=53627 +Language=English +%1 +. +MessageId=53628 +Language=English +%1 +. +MessageId=53629 +Language=English +%1 +. +MessageId=53630 +Language=English +%1 +. +MessageId=53631 +Language=English +%1 +. +MessageId=53632 +Language=English +%1 +. +MessageId=53633 +Language=English +%1 +. +MessageId=53634 +Language=English +%1 +. +MessageId=53635 +Language=English +%1 +. +MessageId=53636 +Language=English +%1 +. +MessageId=53637 +Language=English +%1 +. +MessageId=53638 +Language=English +%1 +. +MessageId=53639 +Language=English +%1 +. +MessageId=53640 +Language=English +%1 +. +MessageId=53641 +Language=English +%1 +. +MessageId=53642 +Language=English +%1 +. +MessageId=53643 +Language=English +%1 +. +MessageId=53644 +Language=English +%1 +. +MessageId=53645 +Language=English +%1 +. +MessageId=53646 +Language=English +%1 +. +MessageId=53647 +Language=English +%1 +. +MessageId=53648 +Language=English +%1 +. +MessageId=53649 +Language=English +%1 +. +MessageId=53650 +Language=English +%1 +. +MessageId=53651 +Language=English +%1 +. +MessageId=53652 +Language=English +%1 +. +MessageId=53653 +Language=English +%1 +. +MessageId=53654 +Language=English +%1 +. +MessageId=53655 +Language=English +%1 +. +MessageId=53656 +Language=English +%1 +. +MessageId=53657 +Language=English +%1 +. +MessageId=53658 +Language=English +%1 +. +MessageId=53659 +Language=English +%1 +. +MessageId=53660 +Language=English +%1 +. +MessageId=53661 +Language=English +%1 +. +MessageId=53662 +Language=English +%1 +. +MessageId=53663 +Language=English +%1 +. +MessageId=53664 +Language=English +%1 +. +MessageId=53665 +Language=English +%1 +. +MessageId=53666 +Language=English +%1 +. +MessageId=53667 +Language=English +%1 +. +MessageId=53668 +Language=English +%1 +. +MessageId=53669 +Language=English +%1 +. +MessageId=53670 +Language=English +%1 +. +MessageId=53671 +Language=English +%1 +. +MessageId=53672 +Language=English +%1 +. +MessageId=53673 +Language=English +%1 +. +MessageId=53674 +Language=English +%1 +. +MessageId=53675 +Language=English +%1 +. +MessageId=53676 +Language=English +%1 +. +MessageId=53677 +Language=English +%1 +. +MessageId=53678 +Language=English +%1 +. +MessageId=53679 +Language=English +%1 +. +MessageId=53680 +Language=English +%1 +. +MessageId=53681 +Language=English +%1 +. +MessageId=53682 +Language=English +%1 +. +MessageId=53683 +Language=English +%1 +. +MessageId=53684 +Language=English +%1 +. +MessageId=53685 +Language=English +%1 +. +MessageId=53686 +Language=English +%1 +. +MessageId=53687 +Language=English +%1 +. +MessageId=53688 +Language=English +%1 +. +MessageId=53689 +Language=English +%1 +. +MessageId=53690 +Language=English +%1 +. +MessageId=53691 +Language=English +%1 +. +MessageId=53692 +Language=English +%1 +. +MessageId=53693 +Language=English +%1 +. +MessageId=53694 +Language=English +%1 +. +MessageId=53695 +Language=English +%1 +. +MessageId=53696 +Language=English +%1 +. +MessageId=53697 +Language=English +%1 +. +MessageId=53698 +Language=English +%1 +. +MessageId=53699 +Language=English +%1 +. +MessageId=53700 +Language=English +%1 +. +MessageId=53701 +Language=English +%1 +. +MessageId=53702 +Language=English +%1 +. +MessageId=53703 +Language=English +%1 +. +MessageId=53704 +Language=English +%1 +. +MessageId=53705 +Language=English +%1 +. +MessageId=53706 +Language=English +%1 +. +MessageId=53707 +Language=English +%1 +. +MessageId=53708 +Language=English +%1 +. +MessageId=53709 +Language=English +%1 +. +MessageId=53710 +Language=English +%1 +. +MessageId=53711 +Language=English +%1 +. +MessageId=53712 +Language=English +%1 +. +MessageId=53713 +Language=English +%1 +. +MessageId=53714 +Language=English +%1 +. +MessageId=53715 +Language=English +%1 +. +MessageId=53716 +Language=English +%1 +. +MessageId=53717 +Language=English +%1 +. +MessageId=53718 +Language=English +%1 +. +MessageId=53719 +Language=English +%1 +. +MessageId=53720 +Language=English +%1 +. +MessageId=53721 +Language=English +%1 +. +MessageId=53722 +Language=English +%1 +. +MessageId=53723 +Language=English +%1 +. +MessageId=53724 +Language=English +%1 +. +MessageId=53725 +Language=English +%1 +. +MessageId=53726 +Language=English +%1 +. +MessageId=53727 +Language=English +%1 +. +MessageId=53728 +Language=English +%1 +. +MessageId=53729 +Language=English +%1 +. +MessageId=53730 +Language=English +%1 +. +MessageId=53731 +Language=English +%1 +. +MessageId=53732 +Language=English +%1 +. +MessageId=53733 +Language=English +%1 +. +MessageId=53734 +Language=English +%1 +. +MessageId=53735 +Language=English +%1 +. +MessageId=53736 +Language=English +%1 +. +MessageId=53737 +Language=English +%1 +. +MessageId=53738 +Language=English +%1 +. +MessageId=53739 +Language=English +%1 +. +MessageId=53740 +Language=English +%1 +. +MessageId=53741 +Language=English +%1 +. +MessageId=53742 +Language=English +%1 +. +MessageId=53743 +Language=English +%1 +. +MessageId=53744 +Language=English +%1 +. +MessageId=53745 +Language=English +%1 +. +MessageId=53746 +Language=English +%1 +. +MessageId=53747 +Language=English +%1 +. +MessageId=53748 +Language=English +%1 +. +MessageId=53749 +Language=English +%1 +. +MessageId=53750 +Language=English +%1 +. +MessageId=53751 +Language=English +%1 +. +MessageId=53752 +Language=English +%1 +. +MessageId=53753 +Language=English +%1 +. +MessageId=53754 +Language=English +%1 +. +MessageId=53755 +Language=English +%1 +. +MessageId=53756 +Language=English +%1 +. +MessageId=53757 +Language=English +%1 +. +MessageId=53758 +Language=English +%1 +. +MessageId=53759 +Language=English +%1 +. +MessageId=53760 +Language=English +%1 +. +MessageId=53761 +Language=English +%1 +. +MessageId=53762 +Language=English +%1 +. +MessageId=53763 +Language=English +%1 +. +MessageId=53764 +Language=English +%1 +. +MessageId=53765 +Language=English +%1 +. +MessageId=53766 +Language=English +%1 +. +MessageId=53767 +Language=English +%1 +. +MessageId=53768 +Language=English +%1 +. +MessageId=53769 +Language=English +%1 +. +MessageId=53770 +Language=English +%1 +. +MessageId=53771 +Language=English +%1 +. +MessageId=53772 +Language=English +%1 +. +MessageId=53773 +Language=English +%1 +. +MessageId=53774 +Language=English +%1 +. +MessageId=53775 +Language=English +%1 +. +MessageId=53776 +Language=English +%1 +. +MessageId=53777 +Language=English +%1 +. +MessageId=53778 +Language=English +%1 +. +MessageId=53779 +Language=English +%1 +. +MessageId=53780 +Language=English +%1 +. +MessageId=53781 +Language=English +%1 +. +MessageId=53782 +Language=English +%1 +. +MessageId=53783 +Language=English +%1 +. +MessageId=53784 +Language=English +%1 +. +MessageId=53785 +Language=English +%1 +. +MessageId=53786 +Language=English +%1 +. +MessageId=53787 +Language=English +%1 +. +MessageId=53788 +Language=English +%1 +. +MessageId=53789 +Language=English +%1 +. +MessageId=53790 +Language=English +%1 +. +MessageId=53791 +Language=English +%1 +. +MessageId=53792 +Language=English +%1 +. +MessageId=53793 +Language=English +%1 +. +MessageId=53794 +Language=English +%1 +. +MessageId=53795 +Language=English +%1 +. +MessageId=53796 +Language=English +%1 +. +MessageId=53797 +Language=English +%1 +. +MessageId=53798 +Language=English +%1 +. +MessageId=53799 +Language=English +%1 +. +MessageId=53800 +Language=English +%1 +. +MessageId=53801 +Language=English +%1 +. +MessageId=53802 +Language=English +%1 +. +MessageId=53803 +Language=English +%1 +. +MessageId=53804 +Language=English +%1 +. +MessageId=53805 +Language=English +%1 +. +MessageId=53806 +Language=English +%1 +. +MessageId=53807 +Language=English +%1 +. +MessageId=53808 +Language=English +%1 +. +MessageId=53809 +Language=English +%1 +. +MessageId=53810 +Language=English +%1 +. +MessageId=53811 +Language=English +%1 +. +MessageId=53812 +Language=English +%1 +. +MessageId=53813 +Language=English +%1 +. +MessageId=53814 +Language=English +%1 +. +MessageId=53815 +Language=English +%1 +. +MessageId=53816 +Language=English +%1 +. +MessageId=53817 +Language=English +%1 +. +MessageId=53818 +Language=English +%1 +. +MessageId=53819 +Language=English +%1 +. +MessageId=53820 +Language=English +%1 +. +MessageId=53821 +Language=English +%1 +. +MessageId=53822 +Language=English +%1 +. +MessageId=53823 +Language=English +%1 +. +MessageId=53824 +Language=English +%1 +. +MessageId=53825 +Language=English +%1 +. +MessageId=53826 +Language=English +%1 +. +MessageId=53827 +Language=English +%1 +. +MessageId=53828 +Language=English +%1 +. +MessageId=53829 +Language=English +%1 +. +MessageId=53830 +Language=English +%1 +. +MessageId=53831 +Language=English +%1 +. +MessageId=53832 +Language=English +%1 +. +MessageId=53833 +Language=English +%1 +. +MessageId=53834 +Language=English +%1 +. +MessageId=53835 +Language=English +%1 +. +MessageId=53836 +Language=English +%1 +. +MessageId=53837 +Language=English +%1 +. +MessageId=53838 +Language=English +%1 +. +MessageId=53839 +Language=English +%1 +. +MessageId=53840 +Language=English +%1 +. +MessageId=53841 +Language=English +%1 +. +MessageId=53842 +Language=English +%1 +. +MessageId=53843 +Language=English +%1 +. +MessageId=53844 +Language=English +%1 +. +MessageId=53845 +Language=English +%1 +. +MessageId=53846 +Language=English +%1 +. +MessageId=53847 +Language=English +%1 +. +MessageId=53848 +Language=English +%1 +. +MessageId=53849 +Language=English +%1 +. +MessageId=53850 +Language=English +%1 +. +MessageId=53851 +Language=English +%1 +. +MessageId=53852 +Language=English +%1 +. +MessageId=53853 +Language=English +%1 +. +MessageId=53854 +Language=English +%1 +. +MessageId=53855 +Language=English +%1 +. +MessageId=53856 +Language=English +%1 +. +MessageId=53857 +Language=English +%1 +. +MessageId=53858 +Language=English +%1 +. +MessageId=53859 +Language=English +%1 +. +MessageId=53860 +Language=English +%1 +. +MessageId=53861 +Language=English +%1 +. +MessageId=53862 +Language=English +%1 +. +MessageId=53863 +Language=English +%1 +. +MessageId=53864 +Language=English +%1 +. +MessageId=53865 +Language=English +%1 +. +MessageId=53866 +Language=English +%1 +. +MessageId=53867 +Language=English +%1 +. +MessageId=53868 +Language=English +%1 +. +MessageId=53869 +Language=English +%1 +. +MessageId=53870 +Language=English +%1 +. +MessageId=53871 +Language=English +%1 +. +MessageId=53872 +Language=English +%1 +. +MessageId=53873 +Language=English +%1 +. +MessageId=53874 +Language=English +%1 +. +MessageId=53875 +Language=English +%1 +. +MessageId=53876 +Language=English +%1 +. +MessageId=53877 +Language=English +%1 +. +MessageId=53878 +Language=English +%1 +. +MessageId=53879 +Language=English +%1 +. +MessageId=53880 +Language=English +%1 +. +MessageId=53881 +Language=English +%1 +. +MessageId=53882 +Language=English +%1 +. +MessageId=53883 +Language=English +%1 +. +MessageId=53884 +Language=English +%1 +. +MessageId=53885 +Language=English +%1 +. +MessageId=53886 +Language=English +%1 +. +MessageId=53887 +Language=English +%1 +. +MessageId=53888 +Language=English +%1 +. +MessageId=53889 +Language=English +%1 +. +MessageId=53890 +Language=English +%1 +. +MessageId=53891 +Language=English +%1 +. +MessageId=53892 +Language=English +%1 +. +MessageId=53893 +Language=English +%1 +. +MessageId=53894 +Language=English +%1 +. +MessageId=53895 +Language=English +%1 +. +MessageId=53896 +Language=English +%1 +. +MessageId=53897 +Language=English +%1 +. +MessageId=53898 +Language=English +%1 +. +MessageId=53899 +Language=English +%1 +. +MessageId=53900 +Language=English +%1 +. +MessageId=53901 +Language=English +%1 +. +MessageId=53902 +Language=English +%1 +. +MessageId=53903 +Language=English +%1 +. +MessageId=53904 +Language=English +%1 +. +MessageId=53905 +Language=English +%1 +. +MessageId=53906 +Language=English +%1 +. +MessageId=53907 +Language=English +%1 +. +MessageId=53908 +Language=English +%1 +. +MessageId=53909 +Language=English +%1 +. +MessageId=53910 +Language=English +%1 +. +MessageId=53911 +Language=English +%1 +. +MessageId=53912 +Language=English +%1 +. +MessageId=53913 +Language=English +%1 +. +MessageId=53914 +Language=English +%1 +. +MessageId=53915 +Language=English +%1 +. +MessageId=53916 +Language=English +%1 +. +MessageId=53917 +Language=English +%1 +. +MessageId=53918 +Language=English +%1 +. +MessageId=53919 +Language=English +%1 +. +MessageId=53920 +Language=English +%1 +. +MessageId=53921 +Language=English +%1 +. +MessageId=53922 +Language=English +%1 +. +MessageId=53923 +Language=English +%1 +. +MessageId=53924 +Language=English +%1 +. +MessageId=53925 +Language=English +%1 +. +MessageId=53926 +Language=English +%1 +. +MessageId=53927 +Language=English +%1 +. +MessageId=53928 +Language=English +%1 +. +MessageId=53929 +Language=English +%1 +. +MessageId=53930 +Language=English +%1 +. +MessageId=53931 +Language=English +%1 +. +MessageId=53932 +Language=English +%1 +. +MessageId=53933 +Language=English +%1 +. +MessageId=53934 +Language=English +%1 +. +MessageId=53935 +Language=English +%1 +. +MessageId=53936 +Language=English +%1 +. +MessageId=53937 +Language=English +%1 +. +MessageId=53938 +Language=English +%1 +. +MessageId=53939 +Language=English +%1 +. +MessageId=53940 +Language=English +%1 +. +MessageId=53941 +Language=English +%1 +. +MessageId=53942 +Language=English +%1 +. +MessageId=53943 +Language=English +%1 +. +MessageId=53944 +Language=English +%1 +. +MessageId=53945 +Language=English +%1 +. +MessageId=53946 +Language=English +%1 +. +MessageId=53947 +Language=English +%1 +. +MessageId=53948 +Language=English +%1 +. +MessageId=53949 +Language=English +%1 +. +MessageId=53950 +Language=English +%1 +. +MessageId=53951 +Language=English +%1 +. +MessageId=53952 +Language=English +%1 +. +MessageId=53953 +Language=English +%1 +. +MessageId=53954 +Language=English +%1 +. +MessageId=53955 +Language=English +%1 +. +MessageId=53956 +Language=English +%1 +. +MessageId=53957 +Language=English +%1 +. +MessageId=53958 +Language=English +%1 +. +MessageId=53959 +Language=English +%1 +. +MessageId=53960 +Language=English +%1 +. +MessageId=53961 +Language=English +%1 +. +MessageId=53962 +Language=English +%1 +. +MessageId=53963 +Language=English +%1 +. +MessageId=53964 +Language=English +%1 +. +MessageId=53965 +Language=English +%1 +. +MessageId=53966 +Language=English +%1 +. +MessageId=53967 +Language=English +%1 +. +MessageId=53968 +Language=English +%1 +. +MessageId=53969 +Language=English +%1 +. +MessageId=53970 +Language=English +%1 +. +MessageId=53971 +Language=English +%1 +. +MessageId=53972 +Language=English +%1 +. +MessageId=53973 +Language=English +%1 +. +MessageId=53974 +Language=English +%1 +. +MessageId=53975 +Language=English +%1 +. +MessageId=53976 +Language=English +%1 +. +MessageId=53977 +Language=English +%1 +. +MessageId=53978 +Language=English +%1 +. +MessageId=53979 +Language=English +%1 +. +MessageId=53980 +Language=English +%1 +. +MessageId=53981 +Language=English +%1 +. +MessageId=53982 +Language=English +%1 +. +MessageId=53983 +Language=English +%1 +. +MessageId=53984 +Language=English +%1 +. +MessageId=53985 +Language=English +%1 +. +MessageId=53986 +Language=English +%1 +. +MessageId=53987 +Language=English +%1 +. +MessageId=53988 +Language=English +%1 +. +MessageId=53989 +Language=English +%1 +. +MessageId=53990 +Language=English +%1 +. +MessageId=53991 +Language=English +%1 +. +MessageId=53992 +Language=English +%1 +. +MessageId=53993 +Language=English +%1 +. +MessageId=53994 +Language=English +%1 +. +MessageId=53995 +Language=English +%1 +. +MessageId=53996 +Language=English +%1 +. +MessageId=53997 +Language=English +%1 +. +MessageId=53998 +Language=English +%1 +. +MessageId=53999 +Language=English +%1 +. +MessageId=54000 +Language=English +%1 +. +MessageId=54001 +Language=English +%1 +. +MessageId=54002 +Language=English +%1 +. +MessageId=54003 +Language=English +%1 +. +MessageId=54004 +Language=English +%1 +. +MessageId=54005 +Language=English +%1 +. +MessageId=54006 +Language=English +%1 +. +MessageId=54007 +Language=English +%1 +. +MessageId=54008 +Language=English +%1 +. +MessageId=54009 +Language=English +%1 +. +MessageId=54010 +Language=English +%1 +. +MessageId=54011 +Language=English +%1 +. +MessageId=54012 +Language=English +%1 +. +MessageId=54013 +Language=English +%1 +. +MessageId=54014 +Language=English +%1 +. +MessageId=54015 +Language=English +%1 +. +MessageId=54016 +Language=English +%1 +. +MessageId=54017 +Language=English +%1 +. +MessageId=54018 +Language=English +%1 +. +MessageId=54019 +Language=English +%1 +. +MessageId=54020 +Language=English +%1 +. +MessageId=54021 +Language=English +%1 +. +MessageId=54022 +Language=English +%1 +. +MessageId=54023 +Language=English +%1 +. +MessageId=54024 +Language=English +%1 +. +MessageId=54025 +Language=English +%1 +. +MessageId=54026 +Language=English +%1 +. +MessageId=54027 +Language=English +%1 +. +MessageId=54028 +Language=English +%1 +. +MessageId=54029 +Language=English +%1 +. +MessageId=54030 +Language=English +%1 +. +MessageId=54031 +Language=English +%1 +. +MessageId=54032 +Language=English +%1 +. +MessageId=54033 +Language=English +%1 +. +MessageId=54034 +Language=English +%1 +. +MessageId=54035 +Language=English +%1 +. +MessageId=54036 +Language=English +%1 +. +MessageId=54037 +Language=English +%1 +. +MessageId=54038 +Language=English +%1 +. +MessageId=54039 +Language=English +%1 +. +MessageId=54040 +Language=English +%1 +. +MessageId=54041 +Language=English +%1 +. +MessageId=54042 +Language=English +%1 +. +MessageId=54043 +Language=English +%1 +. +MessageId=54044 +Language=English +%1 +. +MessageId=54045 +Language=English +%1 +. +MessageId=54046 +Language=English +%1 +. +MessageId=54047 +Language=English +%1 +. +MessageId=54048 +Language=English +%1 +. +MessageId=54049 +Language=English +%1 +. +MessageId=54050 +Language=English +%1 +. +MessageId=54051 +Language=English +%1 +. +MessageId=54052 +Language=English +%1 +. +MessageId=54053 +Language=English +%1 +. +MessageId=54054 +Language=English +%1 +. +MessageId=54055 +Language=English +%1 +. +MessageId=54056 +Language=English +%1 +. +MessageId=54057 +Language=English +%1 +. +MessageId=54058 +Language=English +%1 +. +MessageId=54059 +Language=English +%1 +. +MessageId=54060 +Language=English +%1 +. +MessageId=54061 +Language=English +%1 +. +MessageId=54062 +Language=English +%1 +. +MessageId=54063 +Language=English +%1 +. +MessageId=54064 +Language=English +%1 +. +MessageId=54065 +Language=English +%1 +. +MessageId=54066 +Language=English +%1 +. +MessageId=54067 +Language=English +%1 +. +MessageId=54068 +Language=English +%1 +. +MessageId=54069 +Language=English +%1 +. +MessageId=54070 +Language=English +%1 +. +MessageId=54071 +Language=English +%1 +. +MessageId=54072 +Language=English +%1 +. +MessageId=54073 +Language=English +%1 +. +MessageId=54074 +Language=English +%1 +. +MessageId=54075 +Language=English +%1 +. +MessageId=54076 +Language=English +%1 +. +MessageId=54077 +Language=English +%1 +. +MessageId=54078 +Language=English +%1 +. +MessageId=54079 +Language=English +%1 +. +MessageId=54080 +Language=English +%1 +. +MessageId=54081 +Language=English +%1 +. +MessageId=54082 +Language=English +%1 +. +MessageId=54083 +Language=English +%1 +. +MessageId=54084 +Language=English +%1 +. +MessageId=54085 +Language=English +%1 +. +MessageId=54086 +Language=English +%1 +. +MessageId=54087 +Language=English +%1 +. +MessageId=54088 +Language=English +%1 +. +MessageId=54089 +Language=English +%1 +. +MessageId=54090 +Language=English +%1 +. +MessageId=54091 +Language=English +%1 +. +MessageId=54092 +Language=English +%1 +. +MessageId=54093 +Language=English +%1 +. +MessageId=54094 +Language=English +%1 +. +MessageId=54095 +Language=English +%1 +. +MessageId=54096 +Language=English +%1 +. +MessageId=54097 +Language=English +%1 +. +MessageId=54098 +Language=English +%1 +. +MessageId=54099 +Language=English +%1 +. +MessageId=54100 +Language=English +%1 +. +MessageId=54101 +Language=English +%1 +. +MessageId=54102 +Language=English +%1 +. +MessageId=54103 +Language=English +%1 +. +MessageId=54104 +Language=English +%1 +. +MessageId=54105 +Language=English +%1 +. +MessageId=54106 +Language=English +%1 +. +MessageId=54107 +Language=English +%1 +. +MessageId=54108 +Language=English +%1 +. +MessageId=54109 +Language=English +%1 +. +MessageId=54110 +Language=English +%1 +. +MessageId=54111 +Language=English +%1 +. +MessageId=54112 +Language=English +%1 +. +MessageId=54113 +Language=English +%1 +. +MessageId=54114 +Language=English +%1 +. +MessageId=54115 +Language=English +%1 +. +MessageId=54116 +Language=English +%1 +. +MessageId=54117 +Language=English +%1 +. +MessageId=54118 +Language=English +%1 +. +MessageId=54119 +Language=English +%1 +. +MessageId=54120 +Language=English +%1 +. +MessageId=54121 +Language=English +%1 +. +MessageId=54122 +Language=English +%1 +. +MessageId=54123 +Language=English +%1 +. +MessageId=54124 +Language=English +%1 +. +MessageId=54125 +Language=English +%1 +. +MessageId=54126 +Language=English +%1 +. +MessageId=54127 +Language=English +%1 +. +MessageId=54128 +Language=English +%1 +. +MessageId=54129 +Language=English +%1 +. +MessageId=54130 +Language=English +%1 +. +MessageId=54131 +Language=English +%1 +. +MessageId=54132 +Language=English +%1 +. +MessageId=54133 +Language=English +%1 +. +MessageId=54134 +Language=English +%1 +. +MessageId=54135 +Language=English +%1 +. +MessageId=54136 +Language=English +%1 +. +MessageId=54137 +Language=English +%1 +. +MessageId=54138 +Language=English +%1 +. +MessageId=54139 +Language=English +%1 +. +MessageId=54140 +Language=English +%1 +. +MessageId=54141 +Language=English +%1 +. +MessageId=54142 +Language=English +%1 +. +MessageId=54143 +Language=English +%1 +. +MessageId=54144 +Language=English +%1 +. +MessageId=54145 +Language=English +%1 +. +MessageId=54146 +Language=English +%1 +. +MessageId=54147 +Language=English +%1 +. +MessageId=54148 +Language=English +%1 +. +MessageId=54149 +Language=English +%1 +. +MessageId=54150 +Language=English +%1 +. +MessageId=54151 +Language=English +%1 +. +MessageId=54152 +Language=English +%1 +. +MessageId=54153 +Language=English +%1 +. +MessageId=54154 +Language=English +%1 +. +MessageId=54155 +Language=English +%1 +. +MessageId=54156 +Language=English +%1 +. +MessageId=54157 +Language=English +%1 +. +MessageId=54158 +Language=English +%1 +. +MessageId=54159 +Language=English +%1 +. +MessageId=54160 +Language=English +%1 +. +MessageId=54161 +Language=English +%1 +. +MessageId=54162 +Language=English +%1 +. +MessageId=54163 +Language=English +%1 +. +MessageId=54164 +Language=English +%1 +. +MessageId=54165 +Language=English +%1 +. +MessageId=54166 +Language=English +%1 +. +MessageId=54167 +Language=English +%1 +. +MessageId=54168 +Language=English +%1 +. +MessageId=54169 +Language=English +%1 +. +MessageId=54170 +Language=English +%1 +. +MessageId=54171 +Language=English +%1 +. +MessageId=54172 +Language=English +%1 +. +MessageId=54173 +Language=English +%1 +. +MessageId=54174 +Language=English +%1 +. +MessageId=54175 +Language=English +%1 +. +MessageId=54176 +Language=English +%1 +. +MessageId=54177 +Language=English +%1 +. +MessageId=54178 +Language=English +%1 +. +MessageId=54179 +Language=English +%1 +. +MessageId=54180 +Language=English +%1 +. +MessageId=54181 +Language=English +%1 +. +MessageId=54182 +Language=English +%1 +. +MessageId=54183 +Language=English +%1 +. +MessageId=54184 +Language=English +%1 +. +MessageId=54185 +Language=English +%1 +. +MessageId=54186 +Language=English +%1 +. +MessageId=54187 +Language=English +%1 +. +MessageId=54188 +Language=English +%1 +. +MessageId=54189 +Language=English +%1 +. +MessageId=54190 +Language=English +%1 +. +MessageId=54191 +Language=English +%1 +. +MessageId=54192 +Language=English +%1 +. +MessageId=54193 +Language=English +%1 +. +MessageId=54194 +Language=English +%1 +. +MessageId=54195 +Language=English +%1 +. +MessageId=54196 +Language=English +%1 +. +MessageId=54197 +Language=English +%1 +. +MessageId=54198 +Language=English +%1 +. +MessageId=54199 +Language=English +%1 +. +MessageId=54200 +Language=English +%1 +. +MessageId=54201 +Language=English +%1 +. +MessageId=54202 +Language=English +%1 +. +MessageId=54203 +Language=English +%1 +. +MessageId=54204 +Language=English +%1 +. +MessageId=54205 +Language=English +%1 +. +MessageId=54206 +Language=English +%1 +. +MessageId=54207 +Language=English +%1 +. +MessageId=54208 +Language=English +%1 +. +MessageId=54209 +Language=English +%1 +. +MessageId=54210 +Language=English +%1 +. +MessageId=54211 +Language=English +%1 +. +MessageId=54212 +Language=English +%1 +. +MessageId=54213 +Language=English +%1 +. +MessageId=54214 +Language=English +%1 +. +MessageId=54215 +Language=English +%1 +. +MessageId=54216 +Language=English +%1 +. +MessageId=54217 +Language=English +%1 +. +MessageId=54218 +Language=English +%1 +. +MessageId=54219 +Language=English +%1 +. +MessageId=54220 +Language=English +%1 +. +MessageId=54221 +Language=English +%1 +. +MessageId=54222 +Language=English +%1 +. +MessageId=54223 +Language=English +%1 +. +MessageId=54224 +Language=English +%1 +. +MessageId=54225 +Language=English +%1 +. +MessageId=54226 +Language=English +%1 +. +MessageId=54227 +Language=English +%1 +. +MessageId=54228 +Language=English +%1 +. +MessageId=54229 +Language=English +%1 +. +MessageId=54230 +Language=English +%1 +. +MessageId=54231 +Language=English +%1 +. +MessageId=54232 +Language=English +%1 +. +MessageId=54233 +Language=English +%1 +. +MessageId=54234 +Language=English +%1 +. +MessageId=54235 +Language=English +%1 +. +MessageId=54236 +Language=English +%1 +. +MessageId=54237 +Language=English +%1 +. +MessageId=54238 +Language=English +%1 +. +MessageId=54239 +Language=English +%1 +. +MessageId=54240 +Language=English +%1 +. +MessageId=54241 +Language=English +%1 +. +MessageId=54242 +Language=English +%1 +. +MessageId=54243 +Language=English +%1 +. +MessageId=54244 +Language=English +%1 +. +MessageId=54245 +Language=English +%1 +. +MessageId=54246 +Language=English +%1 +. +MessageId=54247 +Language=English +%1 +. +MessageId=54248 +Language=English +%1 +. +MessageId=54249 +Language=English +%1 +. +MessageId=54250 +Language=English +%1 +. +MessageId=54251 +Language=English +%1 +. +MessageId=54252 +Language=English +%1 +. +MessageId=54253 +Language=English +%1 +. +MessageId=54254 +Language=English +%1 +. +MessageId=54255 +Language=English +%1 +. +MessageId=54256 +Language=English +%1 +. +MessageId=54257 +Language=English +%1 +. +MessageId=54258 +Language=English +%1 +. +MessageId=54259 +Language=English +%1 +. +MessageId=54260 +Language=English +%1 +. +MessageId=54261 +Language=English +%1 +. +MessageId=54262 +Language=English +%1 +. +MessageId=54263 +Language=English +%1 +. +MessageId=54264 +Language=English +%1 +. +MessageId=54265 +Language=English +%1 +. +MessageId=54266 +Language=English +%1 +. +MessageId=54267 +Language=English +%1 +. +MessageId=54268 +Language=English +%1 +. +MessageId=54269 +Language=English +%1 +. +MessageId=54270 +Language=English +%1 +. +MessageId=54271 +Language=English +%1 +. +MessageId=54272 +Language=English +%1 +. +MessageId=54273 +Language=English +%1 +. +MessageId=54274 +Language=English +%1 +. +MessageId=54275 +Language=English +%1 +. +MessageId=54276 +Language=English +%1 +. +MessageId=54277 +Language=English +%1 +. +MessageId=54278 +Language=English +%1 +. +MessageId=54279 +Language=English +%1 +. +MessageId=54280 +Language=English +%1 +. +MessageId=54281 +Language=English +%1 +. +MessageId=54282 +Language=English +%1 +. +MessageId=54283 +Language=English +%1 +. +MessageId=54284 +Language=English +%1 +. +MessageId=54285 +Language=English +%1 +. +MessageId=54286 +Language=English +%1 +. +MessageId=54287 +Language=English +%1 +. +MessageId=54288 +Language=English +%1 +. +MessageId=54289 +Language=English +%1 +. +MessageId=54290 +Language=English +%1 +. +MessageId=54291 +Language=English +%1 +. +MessageId=54292 +Language=English +%1 +. +MessageId=54293 +Language=English +%1 +. +MessageId=54294 +Language=English +%1 +. +MessageId=54295 +Language=English +%1 +. +MessageId=54296 +Language=English +%1 +. +MessageId=54297 +Language=English +%1 +. +MessageId=54298 +Language=English +%1 +. +MessageId=54299 +Language=English +%1 +. +MessageId=54300 +Language=English +%1 +. +MessageId=54301 +Language=English +%1 +. +MessageId=54302 +Language=English +%1 +. +MessageId=54303 +Language=English +%1 +. +MessageId=54304 +Language=English +%1 +. +MessageId=54305 +Language=English +%1 +. +MessageId=54306 +Language=English +%1 +. +MessageId=54307 +Language=English +%1 +. +MessageId=54308 +Language=English +%1 +. +MessageId=54309 +Language=English +%1 +. +MessageId=54310 +Language=English +%1 +. +MessageId=54311 +Language=English +%1 +. +MessageId=54312 +Language=English +%1 +. +MessageId=54313 +Language=English +%1 +. +MessageId=54314 +Language=English +%1 +. +MessageId=54315 +Language=English +%1 +. +MessageId=54316 +Language=English +%1 +. +MessageId=54317 +Language=English +%1 +. +MessageId=54318 +Language=English +%1 +. +MessageId=54319 +Language=English +%1 +. +MessageId=54320 +Language=English +%1 +. +MessageId=54321 +Language=English +%1 +. +MessageId=54322 +Language=English +%1 +. +MessageId=54323 +Language=English +%1 +. +MessageId=54324 +Language=English +%1 +. +MessageId=54325 +Language=English +%1 +. +MessageId=54326 +Language=English +%1 +. +MessageId=54327 +Language=English +%1 +. +MessageId=54328 +Language=English +%1 +. +MessageId=54329 +Language=English +%1 +. +MessageId=54330 +Language=English +%1 +. +MessageId=54331 +Language=English +%1 +. +MessageId=54332 +Language=English +%1 +. +MessageId=54333 +Language=English +%1 +. +MessageId=54334 +Language=English +%1 +. +MessageId=54335 +Language=English +%1 +. +MessageId=54336 +Language=English +%1 +. +MessageId=54337 +Language=English +%1 +. +MessageId=54338 +Language=English +%1 +. +MessageId=54339 +Language=English +%1 +. +MessageId=54340 +Language=English +%1 +. +MessageId=54341 +Language=English +%1 +. +MessageId=54342 +Language=English +%1 +. +MessageId=54343 +Language=English +%1 +. +MessageId=54344 +Language=English +%1 +. +MessageId=54345 +Language=English +%1 +. +MessageId=54346 +Language=English +%1 +. +MessageId=54347 +Language=English +%1 +. +MessageId=54348 +Language=English +%1 +. +MessageId=54349 +Language=English +%1 +. +MessageId=54350 +Language=English +%1 +. +MessageId=54351 +Language=English +%1 +. +MessageId=54352 +Language=English +%1 +. +MessageId=54353 +Language=English +%1 +. +MessageId=54354 +Language=English +%1 +. +MessageId=54355 +Language=English +%1 +. +MessageId=54356 +Language=English +%1 +. +MessageId=54357 +Language=English +%1 +. +MessageId=54358 +Language=English +%1 +. +MessageId=54359 +Language=English +%1 +. +MessageId=54360 +Language=English +%1 +. +MessageId=54361 +Language=English +%1 +. +MessageId=54362 +Language=English +%1 +. +MessageId=54363 +Language=English +%1 +. +MessageId=54364 +Language=English +%1 +. +MessageId=54365 +Language=English +%1 +. +MessageId=54366 +Language=English +%1 +. +MessageId=54367 +Language=English +%1 +. +MessageId=54368 +Language=English +%1 +. +MessageId=54369 +Language=English +%1 +. +MessageId=54370 +Language=English +%1 +. +MessageId=54371 +Language=English +%1 +. +MessageId=54372 +Language=English +%1 +. +MessageId=54373 +Language=English +%1 +. +MessageId=54374 +Language=English +%1 +. +MessageId=54375 +Language=English +%1 +. +MessageId=54376 +Language=English +%1 +. +MessageId=54377 +Language=English +%1 +. +MessageId=54378 +Language=English +%1 +. +MessageId=54379 +Language=English +%1 +. +MessageId=54380 +Language=English +%1 +. +MessageId=54381 +Language=English +%1 +. +MessageId=54382 +Language=English +%1 +. +MessageId=54383 +Language=English +%1 +. +MessageId=54384 +Language=English +%1 +. +MessageId=54385 +Language=English +%1 +. +MessageId=54386 +Language=English +%1 +. +MessageId=54387 +Language=English +%1 +. +MessageId=54388 +Language=English +%1 +. +MessageId=54389 +Language=English +%1 +. +MessageId=54390 +Language=English +%1 +. +MessageId=54391 +Language=English +%1 +. +MessageId=54392 +Language=English +%1 +. +MessageId=54393 +Language=English +%1 +. +MessageId=54394 +Language=English +%1 +. +MessageId=54395 +Language=English +%1 +. +MessageId=54396 +Language=English +%1 +. +MessageId=54397 +Language=English +%1 +. +MessageId=54398 +Language=English +%1 +. +MessageId=54399 +Language=English +%1 +. +MessageId=54400 +Language=English +%1 +. +MessageId=54401 +Language=English +%1 +. +MessageId=54402 +Language=English +%1 +. +MessageId=54403 +Language=English +%1 +. +MessageId=54404 +Language=English +%1 +. +MessageId=54405 +Language=English +%1 +. +MessageId=54406 +Language=English +%1 +. +MessageId=54407 +Language=English +%1 +. +MessageId=54408 +Language=English +%1 +. +MessageId=54409 +Language=English +%1 +. +MessageId=54410 +Language=English +%1 +. +MessageId=54411 +Language=English +%1 +. +MessageId=54412 +Language=English +%1 +. +MessageId=54413 +Language=English +%1 +. +MessageId=54414 +Language=English +%1 +. +MessageId=54415 +Language=English +%1 +. +MessageId=54416 +Language=English +%1 +. +MessageId=54417 +Language=English +%1 +. +MessageId=54418 +Language=English +%1 +. +MessageId=54419 +Language=English +%1 +. +MessageId=54420 +Language=English +%1 +. +MessageId=54421 +Language=English +%1 +. +MessageId=54422 +Language=English +%1 +. +MessageId=54423 +Language=English +%1 +. +MessageId=54424 +Language=English +%1 +. +MessageId=54425 +Language=English +%1 +. +MessageId=54426 +Language=English +%1 +. +MessageId=54427 +Language=English +%1 +. +MessageId=54428 +Language=English +%1 +. +MessageId=54429 +Language=English +%1 +. +MessageId=54430 +Language=English +%1 +. +MessageId=54431 +Language=English +%1 +. +MessageId=54432 +Language=English +%1 +. +MessageId=54433 +Language=English +%1 +. +MessageId=54434 +Language=English +%1 +. +MessageId=54435 +Language=English +%1 +. +MessageId=54436 +Language=English +%1 +. +MessageId=54437 +Language=English +%1 +. +MessageId=54438 +Language=English +%1 +. +MessageId=54439 +Language=English +%1 +. +MessageId=54440 +Language=English +%1 +. +MessageId=54441 +Language=English +%1 +. +MessageId=54442 +Language=English +%1 +. +MessageId=54443 +Language=English +%1 +. +MessageId=54444 +Language=English +%1 +. +MessageId=54445 +Language=English +%1 +. +MessageId=54446 +Language=English +%1 +. +MessageId=54447 +Language=English +%1 +. +MessageId=54448 +Language=English +%1 +. +MessageId=54449 +Language=English +%1 +. +MessageId=54450 +Language=English +%1 +. +MessageId=54451 +Language=English +%1 +. +MessageId=54452 +Language=English +%1 +. +MessageId=54453 +Language=English +%1 +. +MessageId=54454 +Language=English +%1 +. +MessageId=54455 +Language=English +%1 +. +MessageId=54456 +Language=English +%1 +. +MessageId=54457 +Language=English +%1 +. +MessageId=54458 +Language=English +%1 +. +MessageId=54459 +Language=English +%1 +. +MessageId=54460 +Language=English +%1 +. +MessageId=54461 +Language=English +%1 +. +MessageId=54462 +Language=English +%1 +. +MessageId=54463 +Language=English +%1 +. +MessageId=54464 +Language=English +%1 +. +MessageId=54465 +Language=English +%1 +. +MessageId=54466 +Language=English +%1 +. +MessageId=54467 +Language=English +%1 +. +MessageId=54468 +Language=English +%1 +. +MessageId=54469 +Language=English +%1 +. +MessageId=54470 +Language=English +%1 +. +MessageId=54471 +Language=English +%1 +. +MessageId=54472 +Language=English +%1 +. +MessageId=54473 +Language=English +%1 +. +MessageId=54474 +Language=English +%1 +. +MessageId=54475 +Language=English +%1 +. +MessageId=54476 +Language=English +%1 +. +MessageId=54477 +Language=English +%1 +. +MessageId=54478 +Language=English +%1 +. +MessageId=54479 +Language=English +%1 +. +MessageId=54480 +Language=English +%1 +. +MessageId=54481 +Language=English +%1 +. +MessageId=54482 +Language=English +%1 +. +MessageId=54483 +Language=English +%1 +. +MessageId=54484 +Language=English +%1 +. +MessageId=54485 +Language=English +%1 +. +MessageId=54486 +Language=English +%1 +. +MessageId=54487 +Language=English +%1 +. +MessageId=54488 +Language=English +%1 +. +MessageId=54489 +Language=English +%1 +. +MessageId=54490 +Language=English +%1 +. +MessageId=54491 +Language=English +%1 +. +MessageId=54492 +Language=English +%1 +. +MessageId=54493 +Language=English +%1 +. +MessageId=54494 +Language=English +%1 +. +MessageId=54495 +Language=English +%1 +. +MessageId=54496 +Language=English +%1 +. +MessageId=54497 +Language=English +%1 +. +MessageId=54498 +Language=English +%1 +. +MessageId=54499 +Language=English +%1 +. +MessageId=54500 +Language=English +%1 +. +MessageId=54501 +Language=English +%1 +. +MessageId=54502 +Language=English +%1 +. +MessageId=54503 +Language=English +%1 +. +MessageId=54504 +Language=English +%1 +. +MessageId=54505 +Language=English +%1 +. +MessageId=54506 +Language=English +%1 +. +MessageId=54507 +Language=English +%1 +. +MessageId=54508 +Language=English +%1 +. +MessageId=54509 +Language=English +%1 +. +MessageId=54510 +Language=English +%1 +. +MessageId=54511 +Language=English +%1 +. +MessageId=54512 +Language=English +%1 +. +MessageId=54513 +Language=English +%1 +. +MessageId=54514 +Language=English +%1 +. +MessageId=54515 +Language=English +%1 +. +MessageId=54516 +Language=English +%1 +. +MessageId=54517 +Language=English +%1 +. +MessageId=54518 +Language=English +%1 +. +MessageId=54519 +Language=English +%1 +. +MessageId=54520 +Language=English +%1 +. +MessageId=54521 +Language=English +%1 +. +MessageId=54522 +Language=English +%1 +. +MessageId=54523 +Language=English +%1 +. +MessageId=54524 +Language=English +%1 +. +MessageId=54525 +Language=English +%1 +. +MessageId=54526 +Language=English +%1 +. +MessageId=54527 +Language=English +%1 +. +MessageId=54528 +Language=English +%1 +. +MessageId=54529 +Language=English +%1 +. +MessageId=54530 +Language=English +%1 +. +MessageId=54531 +Language=English +%1 +. +MessageId=54532 +Language=English +%1 +. +MessageId=54533 +Language=English +%1 +. +MessageId=54534 +Language=English +%1 +. +MessageId=54535 +Language=English +%1 +. +MessageId=54536 +Language=English +%1 +. +MessageId=54537 +Language=English +%1 +. +MessageId=54538 +Language=English +%1 +. +MessageId=54539 +Language=English +%1 +. +MessageId=54540 +Language=English +%1 +. +MessageId=54541 +Language=English +%1 +. +MessageId=54542 +Language=English +%1 +. +MessageId=54543 +Language=English +%1 +. +MessageId=54544 +Language=English +%1 +. +MessageId=54545 +Language=English +%1 +. +MessageId=54546 +Language=English +%1 +. +MessageId=54547 +Language=English +%1 +. +MessageId=54548 +Language=English +%1 +. +MessageId=54549 +Language=English +%1 +. +MessageId=54550 +Language=English +%1 +. +MessageId=54551 +Language=English +%1 +. +MessageId=54552 +Language=English +%1 +. +MessageId=54553 +Language=English +%1 +. +MessageId=54554 +Language=English +%1 +. +MessageId=54555 +Language=English +%1 +. +MessageId=54556 +Language=English +%1 +. +MessageId=54557 +Language=English +%1 +. +MessageId=54558 +Language=English +%1 +. +MessageId=54559 +Language=English +%1 +. +MessageId=54560 +Language=English +%1 +. +MessageId=54561 +Language=English +%1 +. +MessageId=54562 +Language=English +%1 +. +MessageId=54563 +Language=English +%1 +. +MessageId=54564 +Language=English +%1 +. +MessageId=54565 +Language=English +%1 +. +MessageId=54566 +Language=English +%1 +. +MessageId=54567 +Language=English +%1 +. +MessageId=54568 +Language=English +%1 +. +MessageId=54569 +Language=English +%1 +. +MessageId=54570 +Language=English +%1 +. +MessageId=54571 +Language=English +%1 +. +MessageId=54572 +Language=English +%1 +. +MessageId=54573 +Language=English +%1 +. +MessageId=54574 +Language=English +%1 +. +MessageId=54575 +Language=English +%1 +. +MessageId=54576 +Language=English +%1 +. +MessageId=54577 +Language=English +%1 +. +MessageId=54578 +Language=English +%1 +. +MessageId=54579 +Language=English +%1 +. +MessageId=54580 +Language=English +%1 +. +MessageId=54581 +Language=English +%1 +. +MessageId=54582 +Language=English +%1 +. +MessageId=54583 +Language=English +%1 +. +MessageId=54584 +Language=English +%1 +. +MessageId=54585 +Language=English +%1 +. +MessageId=54586 +Language=English +%1 +. +MessageId=54587 +Language=English +%1 +. +MessageId=54588 +Language=English +%1 +. +MessageId=54589 +Language=English +%1 +. +MessageId=54590 +Language=English +%1 +. +MessageId=54591 +Language=English +%1 +. +MessageId=54592 +Language=English +%1 +. +MessageId=54593 +Language=English +%1 +. +MessageId=54594 +Language=English +%1 +. +MessageId=54595 +Language=English +%1 +. +MessageId=54596 +Language=English +%1 +. +MessageId=54597 +Language=English +%1 +. +MessageId=54598 +Language=English +%1 +. +MessageId=54599 +Language=English +%1 +. +MessageId=54600 +Language=English +%1 +. +MessageId=54601 +Language=English +%1 +. +MessageId=54602 +Language=English +%1 +. +MessageId=54603 +Language=English +%1 +. +MessageId=54604 +Language=English +%1 +. +MessageId=54605 +Language=English +%1 +. +MessageId=54606 +Language=English +%1 +. +MessageId=54607 +Language=English +%1 +. +MessageId=54608 +Language=English +%1 +. +MessageId=54609 +Language=English +%1 +. +MessageId=54610 +Language=English +%1 +. +MessageId=54611 +Language=English +%1 +. +MessageId=54612 +Language=English +%1 +. +MessageId=54613 +Language=English +%1 +. +MessageId=54614 +Language=English +%1 +. +MessageId=54615 +Language=English +%1 +. +MessageId=54616 +Language=English +%1 +. +MessageId=54617 +Language=English +%1 +. +MessageId=54618 +Language=English +%1 +. +MessageId=54619 +Language=English +%1 +. +MessageId=54620 +Language=English +%1 +. +MessageId=54621 +Language=English +%1 +. +MessageId=54622 +Language=English +%1 +. +MessageId=54623 +Language=English +%1 +. +MessageId=54624 +Language=English +%1 +. +MessageId=54625 +Language=English +%1 +. +MessageId=54626 +Language=English +%1 +. +MessageId=54627 +Language=English +%1 +. +MessageId=54628 +Language=English +%1 +. +MessageId=54629 +Language=English +%1 +. +MessageId=54630 +Language=English +%1 +. +MessageId=54631 +Language=English +%1 +. +MessageId=54632 +Language=English +%1 +. +MessageId=54633 +Language=English +%1 +. +MessageId=54634 +Language=English +%1 +. +MessageId=54635 +Language=English +%1 +. +MessageId=54636 +Language=English +%1 +. +MessageId=54637 +Language=English +%1 +. +MessageId=54638 +Language=English +%1 +. +MessageId=54639 +Language=English +%1 +. +MessageId=54640 +Language=English +%1 +. +MessageId=54641 +Language=English +%1 +. +MessageId=54642 +Language=English +%1 +. +MessageId=54643 +Language=English +%1 +. +MessageId=54644 +Language=English +%1 +. +MessageId=54645 +Language=English +%1 +. +MessageId=54646 +Language=English +%1 +. +MessageId=54647 +Language=English +%1 +. +MessageId=54648 +Language=English +%1 +. +MessageId=54649 +Language=English +%1 +. +MessageId=54650 +Language=English +%1 +. +MessageId=54651 +Language=English +%1 +. +MessageId=54652 +Language=English +%1 +. +MessageId=54653 +Language=English +%1 +. +MessageId=54654 +Language=English +%1 +. +MessageId=54655 +Language=English +%1 +. +MessageId=54656 +Language=English +%1 +. +MessageId=54657 +Language=English +%1 +. +MessageId=54658 +Language=English +%1 +. +MessageId=54659 +Language=English +%1 +. +MessageId=54660 +Language=English +%1 +. +MessageId=54661 +Language=English +%1 +. +MessageId=54662 +Language=English +%1 +. +MessageId=54663 +Language=English +%1 +. +MessageId=54664 +Language=English +%1 +. +MessageId=54665 +Language=English +%1 +. +MessageId=54666 +Language=English +%1 +. +MessageId=54667 +Language=English +%1 +. +MessageId=54668 +Language=English +%1 +. +MessageId=54669 +Language=English +%1 +. +MessageId=54670 +Language=English +%1 +. +MessageId=54671 +Language=English +%1 +. +MessageId=54672 +Language=English +%1 +. +MessageId=54673 +Language=English +%1 +. +MessageId=54674 +Language=English +%1 +. +MessageId=54675 +Language=English +%1 +. +MessageId=54676 +Language=English +%1 +. +MessageId=54677 +Language=English +%1 +. +MessageId=54678 +Language=English +%1 +. +MessageId=54679 +Language=English +%1 +. +MessageId=54680 +Language=English +%1 +. +MessageId=54681 +Language=English +%1 +. +MessageId=54682 +Language=English +%1 +. +MessageId=54683 +Language=English +%1 +. +MessageId=54684 +Language=English +%1 +. +MessageId=54685 +Language=English +%1 +. +MessageId=54686 +Language=English +%1 +. +MessageId=54687 +Language=English +%1 +. +MessageId=54688 +Language=English +%1 +. +MessageId=54689 +Language=English +%1 +. +MessageId=54690 +Language=English +%1 +. +MessageId=54691 +Language=English +%1 +. +MessageId=54692 +Language=English +%1 +. +MessageId=54693 +Language=English +%1 +. +MessageId=54694 +Language=English +%1 +. +MessageId=54695 +Language=English +%1 +. +MessageId=54696 +Language=English +%1 +. +MessageId=54697 +Language=English +%1 +. +MessageId=54698 +Language=English +%1 +. +MessageId=54699 +Language=English +%1 +. +MessageId=54700 +Language=English +%1 +. +MessageId=54701 +Language=English +%1 +. +MessageId=54702 +Language=English +%1 +. +MessageId=54703 +Language=English +%1 +. +MessageId=54704 +Language=English +%1 +. +MessageId=54705 +Language=English +%1 +. +MessageId=54706 +Language=English +%1 +. +MessageId=54707 +Language=English +%1 +. +MessageId=54708 +Language=English +%1 +. +MessageId=54709 +Language=English +%1 +. +MessageId=54710 +Language=English +%1 +. +MessageId=54711 +Language=English +%1 +. +MessageId=54712 +Language=English +%1 +. +MessageId=54713 +Language=English +%1 +. +MessageId=54714 +Language=English +%1 +. +MessageId=54715 +Language=English +%1 +. +MessageId=54716 +Language=English +%1 +. +MessageId=54717 +Language=English +%1 +. +MessageId=54718 +Language=English +%1 +. +MessageId=54719 +Language=English +%1 +. +MessageId=54720 +Language=English +%1 +. +MessageId=54721 +Language=English +%1 +. +MessageId=54722 +Language=English +%1 +. +MessageId=54723 +Language=English +%1 +. +MessageId=54724 +Language=English +%1 +. +MessageId=54725 +Language=English +%1 +. +MessageId=54726 +Language=English +%1 +. +MessageId=54727 +Language=English +%1 +. +MessageId=54728 +Language=English +%1 +. +MessageId=54729 +Language=English +%1 +. +MessageId=54730 +Language=English +%1 +. +MessageId=54731 +Language=English +%1 +. +MessageId=54732 +Language=English +%1 +. +MessageId=54733 +Language=English +%1 +. +MessageId=54734 +Language=English +%1 +. +MessageId=54735 +Language=English +%1 +. +MessageId=54736 +Language=English +%1 +. +MessageId=54737 +Language=English +%1 +. +MessageId=54738 +Language=English +%1 +. +MessageId=54739 +Language=English +%1 +. +MessageId=54740 +Language=English +%1 +. +MessageId=54741 +Language=English +%1 +. +MessageId=54742 +Language=English +%1 +. +MessageId=54743 +Language=English +%1 +. +MessageId=54744 +Language=English +%1 +. +MessageId=54745 +Language=English +%1 +. +MessageId=54746 +Language=English +%1 +. +MessageId=54747 +Language=English +%1 +. +MessageId=54748 +Language=English +%1 +. +MessageId=54749 +Language=English +%1 +. +MessageId=54750 +Language=English +%1 +. +MessageId=54751 +Language=English +%1 +. +MessageId=54752 +Language=English +%1 +. +MessageId=54753 +Language=English +%1 +. +MessageId=54754 +Language=English +%1 +. +MessageId=54755 +Language=English +%1 +. +MessageId=54756 +Language=English +%1 +. +MessageId=54757 +Language=English +%1 +. +MessageId=54758 +Language=English +%1 +. +MessageId=54759 +Language=English +%1 +. +MessageId=54760 +Language=English +%1 +. +MessageId=54761 +Language=English +%1 +. +MessageId=54762 +Language=English +%1 +. +MessageId=54763 +Language=English +%1 +. +MessageId=54764 +Language=English +%1 +. +MessageId=54765 +Language=English +%1 +. +MessageId=54766 +Language=English +%1 +. +MessageId=54767 +Language=English +%1 +. +MessageId=54768 +Language=English +%1 +. +MessageId=54769 +Language=English +%1 +. +MessageId=54770 +Language=English +%1 +. +MessageId=54771 +Language=English +%1 +. +MessageId=54772 +Language=English +%1 +. +MessageId=54773 +Language=English +%1 +. +MessageId=54774 +Language=English +%1 +. +MessageId=54775 +Language=English +%1 +. +MessageId=54776 +Language=English +%1 +. +MessageId=54777 +Language=English +%1 +. +MessageId=54778 +Language=English +%1 +. +MessageId=54779 +Language=English +%1 +. +MessageId=54780 +Language=English +%1 +. +MessageId=54781 +Language=English +%1 +. +MessageId=54782 +Language=English +%1 +. +MessageId=54783 +Language=English +%1 +. +MessageId=54784 +Language=English +%1 +. +MessageId=54785 +Language=English +%1 +. +MessageId=54786 +Language=English +%1 +. +MessageId=54787 +Language=English +%1 +. +MessageId=54788 +Language=English +%1 +. +MessageId=54789 +Language=English +%1 +. +MessageId=54790 +Language=English +%1 +. +MessageId=54791 +Language=English +%1 +. +MessageId=54792 +Language=English +%1 +. +MessageId=54793 +Language=English +%1 +. +MessageId=54794 +Language=English +%1 +. +MessageId=54795 +Language=English +%1 +. +MessageId=54796 +Language=English +%1 +. +MessageId=54797 +Language=English +%1 +. +MessageId=54798 +Language=English +%1 +. +MessageId=54799 +Language=English +%1 +. +MessageId=54800 +Language=English +%1 +. +MessageId=54801 +Language=English +%1 +. +MessageId=54802 +Language=English +%1 +. +MessageId=54803 +Language=English +%1 +. +MessageId=54804 +Language=English +%1 +. +MessageId=54805 +Language=English +%1 +. +MessageId=54806 +Language=English +%1 +. +MessageId=54807 +Language=English +%1 +. +MessageId=54808 +Language=English +%1 +. +MessageId=54809 +Language=English +%1 +. +MessageId=54810 +Language=English +%1 +. +MessageId=54811 +Language=English +%1 +. +MessageId=54812 +Language=English +%1 +. +MessageId=54813 +Language=English +%1 +. +MessageId=54814 +Language=English +%1 +. +MessageId=54815 +Language=English +%1 +. +MessageId=54816 +Language=English +%1 +. +MessageId=54817 +Language=English +%1 +. +MessageId=54818 +Language=English +%1 +. +MessageId=54819 +Language=English +%1 +. +MessageId=54820 +Language=English +%1 +. +MessageId=54821 +Language=English +%1 +. +MessageId=54822 +Language=English +%1 +. +MessageId=54823 +Language=English +%1 +. +MessageId=54824 +Language=English +%1 +. +MessageId=54825 +Language=English +%1 +. +MessageId=54826 +Language=English +%1 +. +MessageId=54827 +Language=English +%1 +. +MessageId=54828 +Language=English +%1 +. +MessageId=54829 +Language=English +%1 +. +MessageId=54830 +Language=English +%1 +. +MessageId=54831 +Language=English +%1 +. +MessageId=54832 +Language=English +%1 +. +MessageId=54833 +Language=English +%1 +. +MessageId=54834 +Language=English +%1 +. +MessageId=54835 +Language=English +%1 +. +MessageId=54836 +Language=English +%1 +. +MessageId=54837 +Language=English +%1 +. +MessageId=54838 +Language=English +%1 +. +MessageId=54839 +Language=English +%1 +. +MessageId=54840 +Language=English +%1 +. +MessageId=54841 +Language=English +%1 +. +MessageId=54842 +Language=English +%1 +. +MessageId=54843 +Language=English +%1 +. +MessageId=54844 +Language=English +%1 +. +MessageId=54845 +Language=English +%1 +. +MessageId=54846 +Language=English +%1 +. +MessageId=54847 +Language=English +%1 +. +MessageId=54848 +Language=English +%1 +. +MessageId=54849 +Language=English +%1 +. +MessageId=54850 +Language=English +%1 +. +MessageId=54851 +Language=English +%1 +. +MessageId=54852 +Language=English +%1 +. +MessageId=54853 +Language=English +%1 +. +MessageId=54854 +Language=English +%1 +. +MessageId=54855 +Language=English +%1 +. +MessageId=54856 +Language=English +%1 +. +MessageId=54857 +Language=English +%1 +. +MessageId=54858 +Language=English +%1 +. +MessageId=54859 +Language=English +%1 +. +MessageId=54860 +Language=English +%1 +. +MessageId=54861 +Language=English +%1 +. +MessageId=54862 +Language=English +%1 +. +MessageId=54863 +Language=English +%1 +. +MessageId=54864 +Language=English +%1 +. +MessageId=54865 +Language=English +%1 +. +MessageId=54866 +Language=English +%1 +. +MessageId=54867 +Language=English +%1 +. +MessageId=54868 +Language=English +%1 +. +MessageId=54869 +Language=English +%1 +. +MessageId=54870 +Language=English +%1 +. +MessageId=54871 +Language=English +%1 +. +MessageId=54872 +Language=English +%1 +. +MessageId=54873 +Language=English +%1 +. +MessageId=54874 +Language=English +%1 +. +MessageId=54875 +Language=English +%1 +. +MessageId=54876 +Language=English +%1 +. +MessageId=54877 +Language=English +%1 +. +MessageId=54878 +Language=English +%1 +. +MessageId=54879 +Language=English +%1 +. +MessageId=54880 +Language=English +%1 +. +MessageId=54881 +Language=English +%1 +. +MessageId=54882 +Language=English +%1 +. +MessageId=54883 +Language=English +%1 +. +MessageId=54884 +Language=English +%1 +. +MessageId=54885 +Language=English +%1 +. +MessageId=54886 +Language=English +%1 +. +MessageId=54887 +Language=English +%1 +. +MessageId=54888 +Language=English +%1 +. +MessageId=54889 +Language=English +%1 +. +MessageId=54890 +Language=English +%1 +. +MessageId=54891 +Language=English +%1 +. +MessageId=54892 +Language=English +%1 +. +MessageId=54893 +Language=English +%1 +. +MessageId=54894 +Language=English +%1 +. +MessageId=54895 +Language=English +%1 +. +MessageId=54896 +Language=English +%1 +. +MessageId=54897 +Language=English +%1 +. +MessageId=54898 +Language=English +%1 +. +MessageId=54899 +Language=English +%1 +. +MessageId=54900 +Language=English +%1 +. +MessageId=54901 +Language=English +%1 +. +MessageId=54902 +Language=English +%1 +. +MessageId=54903 +Language=English +%1 +. +MessageId=54904 +Language=English +%1 +. +MessageId=54905 +Language=English +%1 +. +MessageId=54906 +Language=English +%1 +. +MessageId=54907 +Language=English +%1 +. +MessageId=54908 +Language=English +%1 +. +MessageId=54909 +Language=English +%1 +. +MessageId=54910 +Language=English +%1 +. +MessageId=54911 +Language=English +%1 +. +MessageId=54912 +Language=English +%1 +. +MessageId=54913 +Language=English +%1 +. +MessageId=54914 +Language=English +%1 +. +MessageId=54915 +Language=English +%1 +. +MessageId=54916 +Language=English +%1 +. +MessageId=54917 +Language=English +%1 +. +MessageId=54918 +Language=English +%1 +. +MessageId=54919 +Language=English +%1 +. +MessageId=54920 +Language=English +%1 +. +MessageId=54921 +Language=English +%1 +. +MessageId=54922 +Language=English +%1 +. +MessageId=54923 +Language=English +%1 +. +MessageId=54924 +Language=English +%1 +. +MessageId=54925 +Language=English +%1 +. +MessageId=54926 +Language=English +%1 +. +MessageId=54927 +Language=English +%1 +. +MessageId=54928 +Language=English +%1 +. +MessageId=54929 +Language=English +%1 +. +MessageId=54930 +Language=English +%1 +. +MessageId=54931 +Language=English +%1 +. +MessageId=54932 +Language=English +%1 +. +MessageId=54933 +Language=English +%1 +. +MessageId=54934 +Language=English +%1 +. +MessageId=54935 +Language=English +%1 +. +MessageId=54936 +Language=English +%1 +. +MessageId=54937 +Language=English +%1 +. +MessageId=54938 +Language=English +%1 +. +MessageId=54939 +Language=English +%1 +. +MessageId=54940 +Language=English +%1 +. +MessageId=54941 +Language=English +%1 +. +MessageId=54942 +Language=English +%1 +. +MessageId=54943 +Language=English +%1 +. +MessageId=54944 +Language=English +%1 +. +MessageId=54945 +Language=English +%1 +. +MessageId=54946 +Language=English +%1 +. +MessageId=54947 +Language=English +%1 +. +MessageId=54948 +Language=English +%1 +. +MessageId=54949 +Language=English +%1 +. +MessageId=54950 +Language=English +%1 +. +MessageId=54951 +Language=English +%1 +. +MessageId=54952 +Language=English +%1 +. +MessageId=54953 +Language=English +%1 +. +MessageId=54954 +Language=English +%1 +. +MessageId=54955 +Language=English +%1 +. +MessageId=54956 +Language=English +%1 +. +MessageId=54957 +Language=English +%1 +. +MessageId=54958 +Language=English +%1 +. +MessageId=54959 +Language=English +%1 +. +MessageId=54960 +Language=English +%1 +. +MessageId=54961 +Language=English +%1 +. +MessageId=54962 +Language=English +%1 +. +MessageId=54963 +Language=English +%1 +. +MessageId=54964 +Language=English +%1 +. +MessageId=54965 +Language=English +%1 +. +MessageId=54966 +Language=English +%1 +. +MessageId=54967 +Language=English +%1 +. +MessageId=54968 +Language=English +%1 +. +MessageId=54969 +Language=English +%1 +. +MessageId=54970 +Language=English +%1 +. +MessageId=54971 +Language=English +%1 +. +MessageId=54972 +Language=English +%1 +. +MessageId=54973 +Language=English +%1 +. +MessageId=54974 +Language=English +%1 +. +MessageId=54975 +Language=English +%1 +. +MessageId=54976 +Language=English +%1 +. +MessageId=54977 +Language=English +%1 +. +MessageId=54978 +Language=English +%1 +. +MessageId=54979 +Language=English +%1 +. +MessageId=54980 +Language=English +%1 +. +MessageId=54981 +Language=English +%1 +. +MessageId=54982 +Language=English +%1 +. +MessageId=54983 +Language=English +%1 +. +MessageId=54984 +Language=English +%1 +. +MessageId=54985 +Language=English +%1 +. +MessageId=54986 +Language=English +%1 +. +MessageId=54987 +Language=English +%1 +. +MessageId=54988 +Language=English +%1 +. +MessageId=54989 +Language=English +%1 +. +MessageId=54990 +Language=English +%1 +. +MessageId=54991 +Language=English +%1 +. +MessageId=54992 +Language=English +%1 +. +MessageId=54993 +Language=English +%1 +. +MessageId=54994 +Language=English +%1 +. +MessageId=54995 +Language=English +%1 +. +MessageId=54996 +Language=English +%1 +. +MessageId=54997 +Language=English +%1 +. +MessageId=54998 +Language=English +%1 +. +MessageId=54999 +Language=English +%1 +. +MessageId=55000 +Language=English +%1 +. +MessageId=55001 +Language=English +%1 +. +MessageId=55002 +Language=English +%1 +. +MessageId=55003 +Language=English +%1 +. +MessageId=55004 +Language=English +%1 +. +MessageId=55005 +Language=English +%1 +. +MessageId=55006 +Language=English +%1 +. +MessageId=55007 +Language=English +%1 +. +MessageId=55008 +Language=English +%1 +. +MessageId=55009 +Language=English +%1 +. +MessageId=55010 +Language=English +%1 +. +MessageId=55011 +Language=English +%1 +. +MessageId=55012 +Language=English +%1 +. +MessageId=55013 +Language=English +%1 +. +MessageId=55014 +Language=English +%1 +. +MessageId=55015 +Language=English +%1 +. +MessageId=55016 +Language=English +%1 +. +MessageId=55017 +Language=English +%1 +. +MessageId=55018 +Language=English +%1 +. +MessageId=55019 +Language=English +%1 +. +MessageId=55020 +Language=English +%1 +. +MessageId=55021 +Language=English +%1 +. +MessageId=55022 +Language=English +%1 +. +MessageId=55023 +Language=English +%1 +. +MessageId=55024 +Language=English +%1 +. +MessageId=55025 +Language=English +%1 +. +MessageId=55026 +Language=English +%1 +. +MessageId=55027 +Language=English +%1 +. +MessageId=55028 +Language=English +%1 +. +MessageId=55029 +Language=English +%1 +. +MessageId=55030 +Language=English +%1 +. +MessageId=55031 +Language=English +%1 +. +MessageId=55032 +Language=English +%1 +. +MessageId=55033 +Language=English +%1 +. +MessageId=55034 +Language=English +%1 +. +MessageId=55035 +Language=English +%1 +. +MessageId=55036 +Language=English +%1 +. +MessageId=55037 +Language=English +%1 +. +MessageId=55038 +Language=English +%1 +. +MessageId=55039 +Language=English +%1 +. +MessageId=55040 +Language=English +%1 +. +MessageId=55041 +Language=English +%1 +. +MessageId=55042 +Language=English +%1 +. +MessageId=55043 +Language=English +%1 +. +MessageId=55044 +Language=English +%1 +. +MessageId=55045 +Language=English +%1 +. +MessageId=55046 +Language=English +%1 +. +MessageId=55047 +Language=English +%1 +. +MessageId=55048 +Language=English +%1 +. +MessageId=55049 +Language=English +%1 +. +MessageId=55050 +Language=English +%1 +. +MessageId=55051 +Language=English +%1 +. +MessageId=55052 +Language=English +%1 +. +MessageId=55053 +Language=English +%1 +. +MessageId=55054 +Language=English +%1 +. +MessageId=55055 +Language=English +%1 +. +MessageId=55056 +Language=English +%1 +. +MessageId=55057 +Language=English +%1 +. +MessageId=55058 +Language=English +%1 +. +MessageId=55059 +Language=English +%1 +. +MessageId=55060 +Language=English +%1 +. +MessageId=55061 +Language=English +%1 +. +MessageId=55062 +Language=English +%1 +. +MessageId=55063 +Language=English +%1 +. +MessageId=55064 +Language=English +%1 +. +MessageId=55065 +Language=English +%1 +. +MessageId=55066 +Language=English +%1 +. +MessageId=55067 +Language=English +%1 +. +MessageId=55068 +Language=English +%1 +. +MessageId=55069 +Language=English +%1 +. +MessageId=55070 +Language=English +%1 +. +MessageId=55071 +Language=English +%1 +. +MessageId=55072 +Language=English +%1 +. +MessageId=55073 +Language=English +%1 +. +MessageId=55074 +Language=English +%1 +. +MessageId=55075 +Language=English +%1 +. +MessageId=55076 +Language=English +%1 +. +MessageId=55077 +Language=English +%1 +. +MessageId=55078 +Language=English +%1 +. +MessageId=55079 +Language=English +%1 +. +MessageId=55080 +Language=English +%1 +. +MessageId=55081 +Language=English +%1 +. +MessageId=55082 +Language=English +%1 +. +MessageId=55083 +Language=English +%1 +. +MessageId=55084 +Language=English +%1 +. +MessageId=55085 +Language=English +%1 +. +MessageId=55086 +Language=English +%1 +. +MessageId=55087 +Language=English +%1 +. +MessageId=55088 +Language=English +%1 +. +MessageId=55089 +Language=English +%1 +. +MessageId=55090 +Language=English +%1 +. +MessageId=55091 +Language=English +%1 +. +MessageId=55092 +Language=English +%1 +. +MessageId=55093 +Language=English +%1 +. +MessageId=55094 +Language=English +%1 +. +MessageId=55095 +Language=English +%1 +. +MessageId=55096 +Language=English +%1 +. +MessageId=55097 +Language=English +%1 +. +MessageId=55098 +Language=English +%1 +. +MessageId=55099 +Language=English +%1 +. +MessageId=55100 +Language=English +%1 +. +MessageId=55101 +Language=English +%1 +. +MessageId=55102 +Language=English +%1 +. +MessageId=55103 +Language=English +%1 +. +MessageId=55104 +Language=English +%1 +. +MessageId=55105 +Language=English +%1 +. +MessageId=55106 +Language=English +%1 +. +MessageId=55107 +Language=English +%1 +. +MessageId=55108 +Language=English +%1 +. +MessageId=55109 +Language=English +%1 +. +MessageId=55110 +Language=English +%1 +. +MessageId=55111 +Language=English +%1 +. +MessageId=55112 +Language=English +%1 +. +MessageId=55113 +Language=English +%1 +. +MessageId=55114 +Language=English +%1 +. +MessageId=55115 +Language=English +%1 +. +MessageId=55116 +Language=English +%1 +. +MessageId=55117 +Language=English +%1 +. +MessageId=55118 +Language=English +%1 +. +MessageId=55119 +Language=English +%1 +. +MessageId=55120 +Language=English +%1 +. +MessageId=55121 +Language=English +%1 +. +MessageId=55122 +Language=English +%1 +. +MessageId=55123 +Language=English +%1 +. +MessageId=55124 +Language=English +%1 +. +MessageId=55125 +Language=English +%1 +. +MessageId=55126 +Language=English +%1 +. +MessageId=55127 +Language=English +%1 +. +MessageId=55128 +Language=English +%1 +. +MessageId=55129 +Language=English +%1 +. +MessageId=55130 +Language=English +%1 +. +MessageId=55131 +Language=English +%1 +. +MessageId=55132 +Language=English +%1 +. +MessageId=55133 +Language=English +%1 +. +MessageId=55134 +Language=English +%1 +. +MessageId=55135 +Language=English +%1 +. +MessageId=55136 +Language=English +%1 +. +MessageId=55137 +Language=English +%1 +. +MessageId=55138 +Language=English +%1 +. +MessageId=55139 +Language=English +%1 +. +MessageId=55140 +Language=English +%1 +. +MessageId=55141 +Language=English +%1 +. +MessageId=55142 +Language=English +%1 +. +MessageId=55143 +Language=English +%1 +. +MessageId=55144 +Language=English +%1 +. +MessageId=55145 +Language=English +%1 +. +MessageId=55146 +Language=English +%1 +. +MessageId=55147 +Language=English +%1 +. +MessageId=55148 +Language=English +%1 +. +MessageId=55149 +Language=English +%1 +. +MessageId=55150 +Language=English +%1 +. +MessageId=55151 +Language=English +%1 +. +MessageId=55152 +Language=English +%1 +. +MessageId=55153 +Language=English +%1 +. +MessageId=55154 +Language=English +%1 +. +MessageId=55155 +Language=English +%1 +. +MessageId=55156 +Language=English +%1 +. +MessageId=55157 +Language=English +%1 +. +MessageId=55158 +Language=English +%1 +. +MessageId=55159 +Language=English +%1 +. +MessageId=55160 +Language=English +%1 +. +MessageId=55161 +Language=English +%1 +. +MessageId=55162 +Language=English +%1 +. +MessageId=55163 +Language=English +%1 +. +MessageId=55164 +Language=English +%1 +. +MessageId=55165 +Language=English +%1 +. +MessageId=55166 +Language=English +%1 +. +MessageId=55167 +Language=English +%1 +. +MessageId=55168 +Language=English +%1 +. +MessageId=55169 +Language=English +%1 +. +MessageId=55170 +Language=English +%1 +. +MessageId=55171 +Language=English +%1 +. +MessageId=55172 +Language=English +%1 +. +MessageId=55173 +Language=English +%1 +. +MessageId=55174 +Language=English +%1 +. +MessageId=55175 +Language=English +%1 +. +MessageId=55176 +Language=English +%1 +. +MessageId=55177 +Language=English +%1 +. +MessageId=55178 +Language=English +%1 +. +MessageId=55179 +Language=English +%1 +. +MessageId=55180 +Language=English +%1 +. +MessageId=55181 +Language=English +%1 +. +MessageId=55182 +Language=English +%1 +. +MessageId=55183 +Language=English +%1 +. +MessageId=55184 +Language=English +%1 +. +MessageId=55185 +Language=English +%1 +. +MessageId=55186 +Language=English +%1 +. +MessageId=55187 +Language=English +%1 +. +MessageId=55188 +Language=English +%1 +. +MessageId=55189 +Language=English +%1 +. +MessageId=55190 +Language=English +%1 +. +MessageId=55191 +Language=English +%1 +. +MessageId=55192 +Language=English +%1 +. +MessageId=55193 +Language=English +%1 +. +MessageId=55194 +Language=English +%1 +. +MessageId=55195 +Language=English +%1 +. +MessageId=55196 +Language=English +%1 +. +MessageId=55197 +Language=English +%1 +. +MessageId=55198 +Language=English +%1 +. +MessageId=55199 +Language=English +%1 +. +MessageId=55200 +Language=English +%1 +. +MessageId=55201 +Language=English +%1 +. +MessageId=55202 +Language=English +%1 +. +MessageId=55203 +Language=English +%1 +. +MessageId=55204 +Language=English +%1 +. +MessageId=55205 +Language=English +%1 +. +MessageId=55206 +Language=English +%1 +. +MessageId=55207 +Language=English +%1 +. +MessageId=55208 +Language=English +%1 +. +MessageId=55209 +Language=English +%1 +. +MessageId=55210 +Language=English +%1 +. +MessageId=55211 +Language=English +%1 +. +MessageId=55212 +Language=English +%1 +. +MessageId=55213 +Language=English +%1 +. +MessageId=55214 +Language=English +%1 +. +MessageId=55215 +Language=English +%1 +. +MessageId=55216 +Language=English +%1 +. +MessageId=55217 +Language=English +%1 +. +MessageId=55218 +Language=English +%1 +. +MessageId=55219 +Language=English +%1 +. +MessageId=55220 +Language=English +%1 +. +MessageId=55221 +Language=English +%1 +. +MessageId=55222 +Language=English +%1 +. +MessageId=55223 +Language=English +%1 +. +MessageId=55224 +Language=English +%1 +. +MessageId=55225 +Language=English +%1 +. +MessageId=55226 +Language=English +%1 +. +MessageId=55227 +Language=English +%1 +. +MessageId=55228 +Language=English +%1 +. +MessageId=55229 +Language=English +%1 +. +MessageId=55230 +Language=English +%1 +. +MessageId=55231 +Language=English +%1 +. +MessageId=55232 +Language=English +%1 +. +MessageId=55233 +Language=English +%1 +. +MessageId=55234 +Language=English +%1 +. +MessageId=55235 +Language=English +%1 +. +MessageId=55236 +Language=English +%1 +. +MessageId=55237 +Language=English +%1 +. +MessageId=55238 +Language=English +%1 +. +MessageId=55239 +Language=English +%1 +. +MessageId=55240 +Language=English +%1 +. +MessageId=55241 +Language=English +%1 +. +MessageId=55242 +Language=English +%1 +. +MessageId=55243 +Language=English +%1 +. +MessageId=55244 +Language=English +%1 +. +MessageId=55245 +Language=English +%1 +. +MessageId=55246 +Language=English +%1 +. +MessageId=55247 +Language=English +%1 +. +MessageId=55248 +Language=English +%1 +. +MessageId=55249 +Language=English +%1 +. +MessageId=55250 +Language=English +%1 +. +MessageId=55251 +Language=English +%1 +. +MessageId=55252 +Language=English +%1 +. +MessageId=55253 +Language=English +%1 +. +MessageId=55254 +Language=English +%1 +. +MessageId=55255 +Language=English +%1 +. +MessageId=55256 +Language=English +%1 +. +MessageId=55257 +Language=English +%1 +. +MessageId=55258 +Language=English +%1 +. +MessageId=55259 +Language=English +%1 +. +MessageId=55260 +Language=English +%1 +. +MessageId=55261 +Language=English +%1 +. +MessageId=55262 +Language=English +%1 +. +MessageId=55263 +Language=English +%1 +. +MessageId=55264 +Language=English +%1 +. +MessageId=55265 +Language=English +%1 +. +MessageId=55266 +Language=English +%1 +. +MessageId=55267 +Language=English +%1 +. +MessageId=55268 +Language=English +%1 +. +MessageId=55269 +Language=English +%1 +. +MessageId=55270 +Language=English +%1 +. +MessageId=55271 +Language=English +%1 +. +MessageId=55272 +Language=English +%1 +. +MessageId=55273 +Language=English +%1 +. +MessageId=55274 +Language=English +%1 +. +MessageId=55275 +Language=English +%1 +. +MessageId=55276 +Language=English +%1 +. +MessageId=55277 +Language=English +%1 +. +MessageId=55278 +Language=English +%1 +. +MessageId=55279 +Language=English +%1 +. +MessageId=55280 +Language=English +%1 +. +MessageId=55281 +Language=English +%1 +. +MessageId=55282 +Language=English +%1 +. +MessageId=55283 +Language=English +%1 +. +MessageId=55284 +Language=English +%1 +. +MessageId=55285 +Language=English +%1 +. +MessageId=55286 +Language=English +%1 +. +MessageId=55287 +Language=English +%1 +. +MessageId=55288 +Language=English +%1 +. +MessageId=55289 +Language=English +%1 +. +MessageId=55290 +Language=English +%1 +. +MessageId=55291 +Language=English +%1 +. +MessageId=55292 +Language=English +%1 +. +MessageId=55293 +Language=English +%1 +. +MessageId=55294 +Language=English +%1 +. +MessageId=55295 +Language=English +%1 +. +MessageId=55296 +Language=English +%1 +. +MessageId=55297 +Language=English +%1 +. +MessageId=55298 +Language=English +%1 +. +MessageId=55299 +Language=English +%1 +. +MessageId=55300 +Language=English +%1 +. +MessageId=55301 +Language=English +%1 +. +MessageId=55302 +Language=English +%1 +. +MessageId=55303 +Language=English +%1 +. +MessageId=55304 +Language=English +%1 +. +MessageId=55305 +Language=English +%1 +. +MessageId=55306 +Language=English +%1 +. +MessageId=55307 +Language=English +%1 +. +MessageId=55308 +Language=English +%1 +. +MessageId=55309 +Language=English +%1 +. +MessageId=55310 +Language=English +%1 +. +MessageId=55311 +Language=English +%1 +. +MessageId=55312 +Language=English +%1 +. +MessageId=55313 +Language=English +%1 +. +MessageId=55314 +Language=English +%1 +. +MessageId=55315 +Language=English +%1 +. +MessageId=55316 +Language=English +%1 +. +MessageId=55317 +Language=English +%1 +. +MessageId=55318 +Language=English +%1 +. +MessageId=55319 +Language=English +%1 +. +MessageId=55320 +Language=English +%1 +. +MessageId=55321 +Language=English +%1 +. +MessageId=55322 +Language=English +%1 +. +MessageId=55323 +Language=English +%1 +. +MessageId=55324 +Language=English +%1 +. +MessageId=55325 +Language=English +%1 +. +MessageId=55326 +Language=English +%1 +. +MessageId=55327 +Language=English +%1 +. +MessageId=55328 +Language=English +%1 +. +MessageId=55329 +Language=English +%1 +. +MessageId=55330 +Language=English +%1 +. +MessageId=55331 +Language=English +%1 +. +MessageId=55332 +Language=English +%1 +. +MessageId=55333 +Language=English +%1 +. +MessageId=55334 +Language=English +%1 +. +MessageId=55335 +Language=English +%1 +. +MessageId=55336 +Language=English +%1 +. +MessageId=55337 +Language=English +%1 +. +MessageId=55338 +Language=English +%1 +. +MessageId=55339 +Language=English +%1 +. +MessageId=55340 +Language=English +%1 +. +MessageId=55341 +Language=English +%1 +. +MessageId=55342 +Language=English +%1 +. +MessageId=55343 +Language=English +%1 +. +MessageId=55344 +Language=English +%1 +. +MessageId=55345 +Language=English +%1 +. +MessageId=55346 +Language=English +%1 +. +MessageId=55347 +Language=English +%1 +. +MessageId=55348 +Language=English +%1 +. +MessageId=55349 +Language=English +%1 +. +MessageId=55350 +Language=English +%1 +. +MessageId=55351 +Language=English +%1 +. +MessageId=55352 +Language=English +%1 +. +MessageId=55353 +Language=English +%1 +. +MessageId=55354 +Language=English +%1 +. +MessageId=55355 +Language=English +%1 +. +MessageId=55356 +Language=English +%1 +. +MessageId=55357 +Language=English +%1 +. +MessageId=55358 +Language=English +%1 +. +MessageId=55359 +Language=English +%1 +. +MessageId=55360 +Language=English +%1 +. +MessageId=55361 +Language=English +%1 +. +MessageId=55362 +Language=English +%1 +. +MessageId=55363 +Language=English +%1 +. +MessageId=55364 +Language=English +%1 +. +MessageId=55365 +Language=English +%1 +. +MessageId=55366 +Language=English +%1 +. +MessageId=55367 +Language=English +%1 +. +MessageId=55368 +Language=English +%1 +. +MessageId=55369 +Language=English +%1 +. +MessageId=55370 +Language=English +%1 +. +MessageId=55371 +Language=English +%1 +. +MessageId=55372 +Language=English +%1 +. +MessageId=55373 +Language=English +%1 +. +MessageId=55374 +Language=English +%1 +. +MessageId=55375 +Language=English +%1 +. +MessageId=55376 +Language=English +%1 +. +MessageId=55377 +Language=English +%1 +. +MessageId=55378 +Language=English +%1 +. +MessageId=55379 +Language=English +%1 +. +MessageId=55380 +Language=English +%1 +. +MessageId=55381 +Language=English +%1 +. +MessageId=55382 +Language=English +%1 +. +MessageId=55383 +Language=English +%1 +. +MessageId=55384 +Language=English +%1 +. +MessageId=55385 +Language=English +%1 +. +MessageId=55386 +Language=English +%1 +. +MessageId=55387 +Language=English +%1 +. +MessageId=55388 +Language=English +%1 +. +MessageId=55389 +Language=English +%1 +. +MessageId=55390 +Language=English +%1 +. +MessageId=55391 +Language=English +%1 +. +MessageId=55392 +Language=English +%1 +. +MessageId=55393 +Language=English +%1 +. +MessageId=55394 +Language=English +%1 +. +MessageId=55395 +Language=English +%1 +. +MessageId=55396 +Language=English +%1 +. +MessageId=55397 +Language=English +%1 +. +MessageId=55398 +Language=English +%1 +. +MessageId=55399 +Language=English +%1 +. +MessageId=55400 +Language=English +%1 +. +MessageId=55401 +Language=English +%1 +. +MessageId=55402 +Language=English +%1 +. +MessageId=55403 +Language=English +%1 +. +MessageId=55404 +Language=English +%1 +. +MessageId=55405 +Language=English +%1 +. +MessageId=55406 +Language=English +%1 +. +MessageId=55407 +Language=English +%1 +. +MessageId=55408 +Language=English +%1 +. +MessageId=55409 +Language=English +%1 +. +MessageId=55410 +Language=English +%1 +. +MessageId=55411 +Language=English +%1 +. +MessageId=55412 +Language=English +%1 +. +MessageId=55413 +Language=English +%1 +. +MessageId=55414 +Language=English +%1 +. +MessageId=55415 +Language=English +%1 +. +MessageId=55416 +Language=English +%1 +. +MessageId=55417 +Language=English +%1 +. +MessageId=55418 +Language=English +%1 +. +MessageId=55419 +Language=English +%1 +. +MessageId=55420 +Language=English +%1 +. +MessageId=55421 +Language=English +%1 +. +MessageId=55422 +Language=English +%1 +. +MessageId=55423 +Language=English +%1 +. +MessageId=55424 +Language=English +%1 +. +MessageId=55425 +Language=English +%1 +. +MessageId=55426 +Language=English +%1 +. +MessageId=55427 +Language=English +%1 +. +MessageId=55428 +Language=English +%1 +. +MessageId=55429 +Language=English +%1 +. +MessageId=55430 +Language=English +%1 +. +MessageId=55431 +Language=English +%1 +. +MessageId=55432 +Language=English +%1 +. +MessageId=55433 +Language=English +%1 +. +MessageId=55434 +Language=English +%1 +. +MessageId=55435 +Language=English +%1 +. +MessageId=55436 +Language=English +%1 +. +MessageId=55437 +Language=English +%1 +. +MessageId=55438 +Language=English +%1 +. +MessageId=55439 +Language=English +%1 +. +MessageId=55440 +Language=English +%1 +. +MessageId=55441 +Language=English +%1 +. +MessageId=55442 +Language=English +%1 +. +MessageId=55443 +Language=English +%1 +. +MessageId=55444 +Language=English +%1 +. +MessageId=55445 +Language=English +%1 +. +MessageId=55446 +Language=English +%1 +. +MessageId=55447 +Language=English +%1 +. +MessageId=55448 +Language=English +%1 +. +MessageId=55449 +Language=English +%1 +. +MessageId=55450 +Language=English +%1 +. +MessageId=55451 +Language=English +%1 +. +MessageId=55452 +Language=English +%1 +. +MessageId=55453 +Language=English +%1 +. +MessageId=55454 +Language=English +%1 +. +MessageId=55455 +Language=English +%1 +. +MessageId=55456 +Language=English +%1 +. +MessageId=55457 +Language=English +%1 +. +MessageId=55458 +Language=English +%1 +. +MessageId=55459 +Language=English +%1 +. +MessageId=55460 +Language=English +%1 +. +MessageId=55461 +Language=English +%1 +. +MessageId=55462 +Language=English +%1 +. +MessageId=55463 +Language=English +%1 +. +MessageId=55464 +Language=English +%1 +. +MessageId=55465 +Language=English +%1 +. +MessageId=55466 +Language=English +%1 +. +MessageId=55467 +Language=English +%1 +. +MessageId=55468 +Language=English +%1 +. +MessageId=55469 +Language=English +%1 +. +MessageId=55470 +Language=English +%1 +. +MessageId=55471 +Language=English +%1 +. +MessageId=55472 +Language=English +%1 +. +MessageId=55473 +Language=English +%1 +. +MessageId=55474 +Language=English +%1 +. +MessageId=55475 +Language=English +%1 +. +MessageId=55476 +Language=English +%1 +. +MessageId=55477 +Language=English +%1 +. +MessageId=55478 +Language=English +%1 +. +MessageId=55479 +Language=English +%1 +. +MessageId=55480 +Language=English +%1 +. +MessageId=55481 +Language=English +%1 +. +MessageId=55482 +Language=English +%1 +. +MessageId=55483 +Language=English +%1 +. +MessageId=55484 +Language=English +%1 +. +MessageId=55485 +Language=English +%1 +. +MessageId=55486 +Language=English +%1 +. +MessageId=55487 +Language=English +%1 +. +MessageId=55488 +Language=English +%1 +. +MessageId=55489 +Language=English +%1 +. +MessageId=55490 +Language=English +%1 +. +MessageId=55491 +Language=English +%1 +. +MessageId=55492 +Language=English +%1 +. +MessageId=55493 +Language=English +%1 +. +MessageId=55494 +Language=English +%1 +. +MessageId=55495 +Language=English +%1 +. +MessageId=55496 +Language=English +%1 +. +MessageId=55497 +Language=English +%1 +. +MessageId=55498 +Language=English +%1 +. +MessageId=55499 +Language=English +%1 +. +MessageId=55500 +Language=English +%1 +. +MessageId=55501 +Language=English +%1 +. +MessageId=55502 +Language=English +%1 +. +MessageId=55503 +Language=English +%1 +. +MessageId=55504 +Language=English +%1 +. +MessageId=55505 +Language=English +%1 +. +MessageId=55506 +Language=English +%1 +. +MessageId=55507 +Language=English +%1 +. +MessageId=55508 +Language=English +%1 +. +MessageId=55509 +Language=English +%1 +. +MessageId=55510 +Language=English +%1 +. +MessageId=55511 +Language=English +%1 +. +MessageId=55512 +Language=English +%1 +. +MessageId=55513 +Language=English +%1 +. +MessageId=55514 +Language=English +%1 +. +MessageId=55515 +Language=English +%1 +. +MessageId=55516 +Language=English +%1 +. +MessageId=55517 +Language=English +%1 +. +MessageId=55518 +Language=English +%1 +. +MessageId=55519 +Language=English +%1 +. +MessageId=55520 +Language=English +%1 +. +MessageId=55521 +Language=English +%1 +. +MessageId=55522 +Language=English +%1 +. +MessageId=55523 +Language=English +%1 +. +MessageId=55524 +Language=English +%1 +. +MessageId=55525 +Language=English +%1 +. +MessageId=55526 +Language=English +%1 +. +MessageId=55527 +Language=English +%1 +. +MessageId=55528 +Language=English +%1 +. +MessageId=55529 +Language=English +%1 +. +MessageId=55530 +Language=English +%1 +. +MessageId=55531 +Language=English +%1 +. +MessageId=55532 +Language=English +%1 +. +MessageId=55533 +Language=English +%1 +. +MessageId=55534 +Language=English +%1 +. +MessageId=55535 +Language=English +%1 +. +MessageId=55536 +Language=English +%1 +. +MessageId=55537 +Language=English +%1 +. +MessageId=55538 +Language=English +%1 +. +MessageId=55539 +Language=English +%1 +. +MessageId=55540 +Language=English +%1 +. +MessageId=55541 +Language=English +%1 +. +MessageId=55542 +Language=English +%1 +. +MessageId=55543 +Language=English +%1 +. +MessageId=55544 +Language=English +%1 +. +MessageId=55545 +Language=English +%1 +. +MessageId=55546 +Language=English +%1 +. +MessageId=55547 +Language=English +%1 +. +MessageId=55548 +Language=English +%1 +. +MessageId=55549 +Language=English +%1 +. +MessageId=55550 +Language=English +%1 +. +MessageId=55551 +Language=English +%1 +. +MessageId=55552 +Language=English +%1 +. +MessageId=55553 +Language=English +%1 +. +MessageId=55554 +Language=English +%1 +. +MessageId=55555 +Language=English +%1 +. +MessageId=55556 +Language=English +%1 +. +MessageId=55557 +Language=English +%1 +. +MessageId=55558 +Language=English +%1 +. +MessageId=55559 +Language=English +%1 +. +MessageId=55560 +Language=English +%1 +. +MessageId=55561 +Language=English +%1 +. +MessageId=55562 +Language=English +%1 +. +MessageId=55563 +Language=English +%1 +. +MessageId=55564 +Language=English +%1 +. +MessageId=55565 +Language=English +%1 +. +MessageId=55566 +Language=English +%1 +. +MessageId=55567 +Language=English +%1 +. +MessageId=55568 +Language=English +%1 +. +MessageId=55569 +Language=English +%1 +. +MessageId=55570 +Language=English +%1 +. +MessageId=55571 +Language=English +%1 +. +MessageId=55572 +Language=English +%1 +. +MessageId=55573 +Language=English +%1 +. +MessageId=55574 +Language=English +%1 +. +MessageId=55575 +Language=English +%1 +. +MessageId=55576 +Language=English +%1 +. +MessageId=55577 +Language=English +%1 +. +MessageId=55578 +Language=English +%1 +. +MessageId=55579 +Language=English +%1 +. +MessageId=55580 +Language=English +%1 +. +MessageId=55581 +Language=English +%1 +. +MessageId=55582 +Language=English +%1 +. +MessageId=55583 +Language=English +%1 +. +MessageId=55584 +Language=English +%1 +. +MessageId=55585 +Language=English +%1 +. +MessageId=55586 +Language=English +%1 +. +MessageId=55587 +Language=English +%1 +. +MessageId=55588 +Language=English +%1 +. +MessageId=55589 +Language=English +%1 +. +MessageId=55590 +Language=English +%1 +. +MessageId=55591 +Language=English +%1 +. +MessageId=55592 +Language=English +%1 +. +MessageId=55593 +Language=English +%1 +. +MessageId=55594 +Language=English +%1 +. +MessageId=55595 +Language=English +%1 +. +MessageId=55596 +Language=English +%1 +. +MessageId=55597 +Language=English +%1 +. +MessageId=55598 +Language=English +%1 +. +MessageId=55599 +Language=English +%1 +. +MessageId=55600 +Language=English +%1 +. +MessageId=55601 +Language=English +%1 +. +MessageId=55602 +Language=English +%1 +. +MessageId=55603 +Language=English +%1 +. +MessageId=55604 +Language=English +%1 +. +MessageId=55605 +Language=English +%1 +. +MessageId=55606 +Language=English +%1 +. +MessageId=55607 +Language=English +%1 +. +MessageId=55608 +Language=English +%1 +. +MessageId=55609 +Language=English +%1 +. +MessageId=55610 +Language=English +%1 +. +MessageId=55611 +Language=English +%1 +. +MessageId=55612 +Language=English +%1 +. +MessageId=55613 +Language=English +%1 +. +MessageId=55614 +Language=English +%1 +. +MessageId=55615 +Language=English +%1 +. +MessageId=55616 +Language=English +%1 +. +MessageId=55617 +Language=English +%1 +. +MessageId=55618 +Language=English +%1 +. +MessageId=55619 +Language=English +%1 +. +MessageId=55620 +Language=English +%1 +. +MessageId=55621 +Language=English +%1 +. +MessageId=55622 +Language=English +%1 +. +MessageId=55623 +Language=English +%1 +. +MessageId=55624 +Language=English +%1 +. +MessageId=55625 +Language=English +%1 +. +MessageId=55626 +Language=English +%1 +. +MessageId=55627 +Language=English +%1 +. +MessageId=55628 +Language=English +%1 +. +MessageId=55629 +Language=English +%1 +. +MessageId=55630 +Language=English +%1 +. +MessageId=55631 +Language=English +%1 +. +MessageId=55632 +Language=English +%1 +. +MessageId=55633 +Language=English +%1 +. +MessageId=55634 +Language=English +%1 +. +MessageId=55635 +Language=English +%1 +. +MessageId=55636 +Language=English +%1 +. +MessageId=55637 +Language=English +%1 +. +MessageId=55638 +Language=English +%1 +. +MessageId=55639 +Language=English +%1 +. +MessageId=55640 +Language=English +%1 +. +MessageId=55641 +Language=English +%1 +. +MessageId=55642 +Language=English +%1 +. +MessageId=55643 +Language=English +%1 +. +MessageId=55644 +Language=English +%1 +. +MessageId=55645 +Language=English +%1 +. +MessageId=55646 +Language=English +%1 +. +MessageId=55647 +Language=English +%1 +. +MessageId=55648 +Language=English +%1 +. +MessageId=55649 +Language=English +%1 +. +MessageId=55650 +Language=English +%1 +. +MessageId=55651 +Language=English +%1 +. +MessageId=55652 +Language=English +%1 +. +MessageId=55653 +Language=English +%1 +. +MessageId=55654 +Language=English +%1 +. +MessageId=55655 +Language=English +%1 +. +MessageId=55656 +Language=English +%1 +. +MessageId=55657 +Language=English +%1 +. +MessageId=55658 +Language=English +%1 +. +MessageId=55659 +Language=English +%1 +. +MessageId=55660 +Language=English +%1 +. +MessageId=55661 +Language=English +%1 +. +MessageId=55662 +Language=English +%1 +. +MessageId=55663 +Language=English +%1 +. +MessageId=55664 +Language=English +%1 +. +MessageId=55665 +Language=English +%1 +. +MessageId=55666 +Language=English +%1 +. +MessageId=55667 +Language=English +%1 +. +MessageId=55668 +Language=English +%1 +. +MessageId=55669 +Language=English +%1 +. +MessageId=55670 +Language=English +%1 +. +MessageId=55671 +Language=English +%1 +. +MessageId=55672 +Language=English +%1 +. +MessageId=55673 +Language=English +%1 +. +MessageId=55674 +Language=English +%1 +. +MessageId=55675 +Language=English +%1 +. +MessageId=55676 +Language=English +%1 +. +MessageId=55677 +Language=English +%1 +. +MessageId=55678 +Language=English +%1 +. +MessageId=55679 +Language=English +%1 +. +MessageId=55680 +Language=English +%1 +. +MessageId=55681 +Language=English +%1 +. +MessageId=55682 +Language=English +%1 +. +MessageId=55683 +Language=English +%1 +. +MessageId=55684 +Language=English +%1 +. +MessageId=55685 +Language=English +%1 +. +MessageId=55686 +Language=English +%1 +. +MessageId=55687 +Language=English +%1 +. +MessageId=55688 +Language=English +%1 +. +MessageId=55689 +Language=English +%1 +. +MessageId=55690 +Language=English +%1 +. +MessageId=55691 +Language=English +%1 +. +MessageId=55692 +Language=English +%1 +. +MessageId=55693 +Language=English +%1 +. +MessageId=55694 +Language=English +%1 +. +MessageId=55695 +Language=English +%1 +. +MessageId=55696 +Language=English +%1 +. +MessageId=55697 +Language=English +%1 +. +MessageId=55698 +Language=English +%1 +. +MessageId=55699 +Language=English +%1 +. +MessageId=55700 +Language=English +%1 +. +MessageId=55701 +Language=English +%1 +. +MessageId=55702 +Language=English +%1 +. +MessageId=55703 +Language=English +%1 +. +MessageId=55704 +Language=English +%1 +. +MessageId=55705 +Language=English +%1 +. +MessageId=55706 +Language=English +%1 +. +MessageId=55707 +Language=English +%1 +. +MessageId=55708 +Language=English +%1 +. +MessageId=55709 +Language=English +%1 +. +MessageId=55710 +Language=English +%1 +. +MessageId=55711 +Language=English +%1 +. +MessageId=55712 +Language=English +%1 +. +MessageId=55713 +Language=English +%1 +. +MessageId=55714 +Language=English +%1 +. +MessageId=55715 +Language=English +%1 +. +MessageId=55716 +Language=English +%1 +. +MessageId=55717 +Language=English +%1 +. +MessageId=55718 +Language=English +%1 +. +MessageId=55719 +Language=English +%1 +. +MessageId=55720 +Language=English +%1 +. +MessageId=55721 +Language=English +%1 +. +MessageId=55722 +Language=English +%1 +. +MessageId=55723 +Language=English +%1 +. +MessageId=55724 +Language=English +%1 +. +MessageId=55725 +Language=English +%1 +. +MessageId=55726 +Language=English +%1 +. +MessageId=55727 +Language=English +%1 +. +MessageId=55728 +Language=English +%1 +. +MessageId=55729 +Language=English +%1 +. +MessageId=55730 +Language=English +%1 +. +MessageId=55731 +Language=English +%1 +. +MessageId=55732 +Language=English +%1 +. +MessageId=55733 +Language=English +%1 +. +MessageId=55734 +Language=English +%1 +. +MessageId=55735 +Language=English +%1 +. +MessageId=55736 +Language=English +%1 +. +MessageId=55737 +Language=English +%1 +. +MessageId=55738 +Language=English +%1 +. +MessageId=55739 +Language=English +%1 +. +MessageId=55740 +Language=English +%1 +. +MessageId=55741 +Language=English +%1 +. +MessageId=55742 +Language=English +%1 +. +MessageId=55743 +Language=English +%1 +. +MessageId=55744 +Language=English +%1 +. +MessageId=55745 +Language=English +%1 +. +MessageId=55746 +Language=English +%1 +. +MessageId=55747 +Language=English +%1 +. +MessageId=55748 +Language=English +%1 +. +MessageId=55749 +Language=English +%1 +. +MessageId=55750 +Language=English +%1 +. +MessageId=55751 +Language=English +%1 +. +MessageId=55752 +Language=English +%1 +. +MessageId=55753 +Language=English +%1 +. +MessageId=55754 +Language=English +%1 +. +MessageId=55755 +Language=English +%1 +. +MessageId=55756 +Language=English +%1 +. +MessageId=55757 +Language=English +%1 +. +MessageId=55758 +Language=English +%1 +. +MessageId=55759 +Language=English +%1 +. +MessageId=55760 +Language=English +%1 +. +MessageId=55761 +Language=English +%1 +. +MessageId=55762 +Language=English +%1 +. +MessageId=55763 +Language=English +%1 +. +MessageId=55764 +Language=English +%1 +. +MessageId=55765 +Language=English +%1 +. +MessageId=55766 +Language=English +%1 +. +MessageId=55767 +Language=English +%1 +. +MessageId=55768 +Language=English +%1 +. +MessageId=55769 +Language=English +%1 +. +MessageId=55770 +Language=English +%1 +. +MessageId=55771 +Language=English +%1 +. +MessageId=55772 +Language=English +%1 +. +MessageId=55773 +Language=English +%1 +. +MessageId=55774 +Language=English +%1 +. +MessageId=55775 +Language=English +%1 +. +MessageId=55776 +Language=English +%1 +. +MessageId=55777 +Language=English +%1 +. +MessageId=55778 +Language=English +%1 +. +MessageId=55779 +Language=English +%1 +. +MessageId=55780 +Language=English +%1 +. +MessageId=55781 +Language=English +%1 +. +MessageId=55782 +Language=English +%1 +. +MessageId=55783 +Language=English +%1 +. +MessageId=55784 +Language=English +%1 +. +MessageId=55785 +Language=English +%1 +. +MessageId=55786 +Language=English +%1 +. +MessageId=55787 +Language=English +%1 +. +MessageId=55788 +Language=English +%1 +. +MessageId=55789 +Language=English +%1 +. +MessageId=55790 +Language=English +%1 +. +MessageId=55791 +Language=English +%1 +. +MessageId=55792 +Language=English +%1 +. +MessageId=55793 +Language=English +%1 +. +MessageId=55794 +Language=English +%1 +. +MessageId=55795 +Language=English +%1 +. +MessageId=55796 +Language=English +%1 +. +MessageId=55797 +Language=English +%1 +. +MessageId=55798 +Language=English +%1 +. +MessageId=55799 +Language=English +%1 +. +MessageId=55800 +Language=English +%1 +. +MessageId=55801 +Language=English +%1 +. +MessageId=55802 +Language=English +%1 +. +MessageId=55803 +Language=English +%1 +. +MessageId=55804 +Language=English +%1 +. +MessageId=55805 +Language=English +%1 +. +MessageId=55806 +Language=English +%1 +. +MessageId=55807 +Language=English +%1 +. +MessageId=55808 +Language=English +%1 +. +MessageId=55809 +Language=English +%1 +. +MessageId=55810 +Language=English +%1 +. +MessageId=55811 +Language=English +%1 +. +MessageId=55812 +Language=English +%1 +. +MessageId=55813 +Language=English +%1 +. +MessageId=55814 +Language=English +%1 +. +MessageId=55815 +Language=English +%1 +. +MessageId=55816 +Language=English +%1 +. +MessageId=55817 +Language=English +%1 +. +MessageId=55818 +Language=English +%1 +. +MessageId=55819 +Language=English +%1 +. +MessageId=55820 +Language=English +%1 +. +MessageId=55821 +Language=English +%1 +. +MessageId=55822 +Language=English +%1 +. +MessageId=55823 +Language=English +%1 +. +MessageId=55824 +Language=English +%1 +. +MessageId=55825 +Language=English +%1 +. +MessageId=55826 +Language=English +%1 +. +MessageId=55827 +Language=English +%1 +. +MessageId=55828 +Language=English +%1 +. +MessageId=55829 +Language=English +%1 +. +MessageId=55830 +Language=English +%1 +. +MessageId=55831 +Language=English +%1 +. +MessageId=55832 +Language=English +%1 +. +MessageId=55833 +Language=English +%1 +. +MessageId=55834 +Language=English +%1 +. +MessageId=55835 +Language=English +%1 +. +MessageId=55836 +Language=English +%1 +. +MessageId=55837 +Language=English +%1 +. +MessageId=55838 +Language=English +%1 +. +MessageId=55839 +Language=English +%1 +. +MessageId=55840 +Language=English +%1 +. +MessageId=55841 +Language=English +%1 +. +MessageId=55842 +Language=English +%1 +. +MessageId=55843 +Language=English +%1 +. +MessageId=55844 +Language=English +%1 +. +MessageId=55845 +Language=English +%1 +. +MessageId=55846 +Language=English +%1 +. +MessageId=55847 +Language=English +%1 +. +MessageId=55848 +Language=English +%1 +. +MessageId=55849 +Language=English +%1 +. +MessageId=55850 +Language=English +%1 +. +MessageId=55851 +Language=English +%1 +. +MessageId=55852 +Language=English +%1 +. +MessageId=55853 +Language=English +%1 +. +MessageId=55854 +Language=English +%1 +. +MessageId=55855 +Language=English +%1 +. +MessageId=55856 +Language=English +%1 +. +MessageId=55857 +Language=English +%1 +. +MessageId=55858 +Language=English +%1 +. +MessageId=55859 +Language=English +%1 +. +MessageId=55860 +Language=English +%1 +. +MessageId=55861 +Language=English +%1 +. +MessageId=55862 +Language=English +%1 +. +MessageId=55863 +Language=English +%1 +. +MessageId=55864 +Language=English +%1 +. +MessageId=55865 +Language=English +%1 +. +MessageId=55866 +Language=English +%1 +. +MessageId=55867 +Language=English +%1 +. +MessageId=55868 +Language=English +%1 +. +MessageId=55869 +Language=English +%1 +. +MessageId=55870 +Language=English +%1 +. +MessageId=55871 +Language=English +%1 +. +MessageId=55872 +Language=English +%1 +. +MessageId=55873 +Language=English +%1 +. +MessageId=55874 +Language=English +%1 +. +MessageId=55875 +Language=English +%1 +. +MessageId=55876 +Language=English +%1 +. +MessageId=55877 +Language=English +%1 +. +MessageId=55878 +Language=English +%1 +. +MessageId=55879 +Language=English +%1 +. +MessageId=55880 +Language=English +%1 +. +MessageId=55881 +Language=English +%1 +. +MessageId=55882 +Language=English +%1 +. +MessageId=55883 +Language=English +%1 +. +MessageId=55884 +Language=English +%1 +. +MessageId=55885 +Language=English +%1 +. +MessageId=55886 +Language=English +%1 +. +MessageId=55887 +Language=English +%1 +. +MessageId=55888 +Language=English +%1 +. +MessageId=55889 +Language=English +%1 +. +MessageId=55890 +Language=English +%1 +. +MessageId=55891 +Language=English +%1 +. +MessageId=55892 +Language=English +%1 +. +MessageId=55893 +Language=English +%1 +. +MessageId=55894 +Language=English +%1 +. +MessageId=55895 +Language=English +%1 +. +MessageId=55896 +Language=English +%1 +. +MessageId=55897 +Language=English +%1 +. +MessageId=55898 +Language=English +%1 +. +MessageId=55899 +Language=English +%1 +. +MessageId=55900 +Language=English +%1 +. +MessageId=55901 +Language=English +%1 +. +MessageId=55902 +Language=English +%1 +. +MessageId=55903 +Language=English +%1 +. +MessageId=55904 +Language=English +%1 +. +MessageId=55905 +Language=English +%1 +. +MessageId=55906 +Language=English +%1 +. +MessageId=55907 +Language=English +%1 +. +MessageId=55908 +Language=English +%1 +. +MessageId=55909 +Language=English +%1 +. +MessageId=55910 +Language=English +%1 +. +MessageId=55911 +Language=English +%1 +. +MessageId=55912 +Language=English +%1 +. +MessageId=55913 +Language=English +%1 +. +MessageId=55914 +Language=English +%1 +. +MessageId=55915 +Language=English +%1 +. +MessageId=55916 +Language=English +%1 +. +MessageId=55917 +Language=English +%1 +. +MessageId=55918 +Language=English +%1 +. +MessageId=55919 +Language=English +%1 +. +MessageId=55920 +Language=English +%1 +. +MessageId=55921 +Language=English +%1 +. +MessageId=55922 +Language=English +%1 +. +MessageId=55923 +Language=English +%1 +. +MessageId=55924 +Language=English +%1 +. +MessageId=55925 +Language=English +%1 +. +MessageId=55926 +Language=English +%1 +. +MessageId=55927 +Language=English +%1 +. +MessageId=55928 +Language=English +%1 +. +MessageId=55929 +Language=English +%1 +. +MessageId=55930 +Language=English +%1 +. +MessageId=55931 +Language=English +%1 +. +MessageId=55932 +Language=English +%1 +. +MessageId=55933 +Language=English +%1 +. +MessageId=55934 +Language=English +%1 +. +MessageId=55935 +Language=English +%1 +. +MessageId=55936 +Language=English +%1 +. +MessageId=55937 +Language=English +%1 +. +MessageId=55938 +Language=English +%1 +. +MessageId=55939 +Language=English +%1 +. +MessageId=55940 +Language=English +%1 +. +MessageId=55941 +Language=English +%1 +. +MessageId=55942 +Language=English +%1 +. +MessageId=55943 +Language=English +%1 +. +MessageId=55944 +Language=English +%1 +. +MessageId=55945 +Language=English +%1 +. +MessageId=55946 +Language=English +%1 +. +MessageId=55947 +Language=English +%1 +. +MessageId=55948 +Language=English +%1 +. +MessageId=55949 +Language=English +%1 +. +MessageId=55950 +Language=English +%1 +. +MessageId=55951 +Language=English +%1 +. +MessageId=55952 +Language=English +%1 +. +MessageId=55953 +Language=English +%1 +. +MessageId=55954 +Language=English +%1 +. +MessageId=55955 +Language=English +%1 +. +MessageId=55956 +Language=English +%1 +. +MessageId=55957 +Language=English +%1 +. +MessageId=55958 +Language=English +%1 +. +MessageId=55959 +Language=English +%1 +. +MessageId=55960 +Language=English +%1 +. +MessageId=55961 +Language=English +%1 +. +MessageId=55962 +Language=English +%1 +. +MessageId=55963 +Language=English +%1 +. +MessageId=55964 +Language=English +%1 +. +MessageId=55965 +Language=English +%1 +. +MessageId=55966 +Language=English +%1 +. +MessageId=55967 +Language=English +%1 +. +MessageId=55968 +Language=English +%1 +. +MessageId=55969 +Language=English +%1 +. +MessageId=55970 +Language=English +%1 +. +MessageId=55971 +Language=English +%1 +. +MessageId=55972 +Language=English +%1 +. +MessageId=55973 +Language=English +%1 +. +MessageId=55974 +Language=English +%1 +. +MessageId=55975 +Language=English +%1 +. +MessageId=55976 +Language=English +%1 +. +MessageId=55977 +Language=English +%1 +. +MessageId=55978 +Language=English +%1 +. +MessageId=55979 +Language=English +%1 +. +MessageId=55980 +Language=English +%1 +. +MessageId=55981 +Language=English +%1 +. +MessageId=55982 +Language=English +%1 +. +MessageId=55983 +Language=English +%1 +. +MessageId=55984 +Language=English +%1 +. +MessageId=55985 +Language=English +%1 +. +MessageId=55986 +Language=English +%1 +. +MessageId=55987 +Language=English +%1 +. +MessageId=55988 +Language=English +%1 +. +MessageId=55989 +Language=English +%1 +. +MessageId=55990 +Language=English +%1 +. +MessageId=55991 +Language=English +%1 +. +MessageId=55992 +Language=English +%1 +. +MessageId=55993 +Language=English +%1 +. +MessageId=55994 +Language=English +%1 +. +MessageId=55995 +Language=English +%1 +. +MessageId=55996 +Language=English +%1 +. +MessageId=55997 +Language=English +%1 +. +MessageId=55998 +Language=English +%1 +. +MessageId=55999 +Language=English +%1 +. +MessageId=56000 +Language=English +%1 +. +MessageId=56001 +Language=English +%1 +. +MessageId=56002 +Language=English +%1 +. +MessageId=56003 +Language=English +%1 +. +MessageId=56004 +Language=English +%1 +. +MessageId=56005 +Language=English +%1 +. +MessageId=56006 +Language=English +%1 +. +MessageId=56007 +Language=English +%1 +. +MessageId=56008 +Language=English +%1 +. +MessageId=56009 +Language=English +%1 +. +MessageId=56010 +Language=English +%1 +. +MessageId=56011 +Language=English +%1 +. +MessageId=56012 +Language=English +%1 +. +MessageId=56013 +Language=English +%1 +. +MessageId=56014 +Language=English +%1 +. +MessageId=56015 +Language=English +%1 +. +MessageId=56016 +Language=English +%1 +. +MessageId=56017 +Language=English +%1 +. +MessageId=56018 +Language=English +%1 +. +MessageId=56019 +Language=English +%1 +. +MessageId=56020 +Language=English +%1 +. +MessageId=56021 +Language=English +%1 +. +MessageId=56022 +Language=English +%1 +. +MessageId=56023 +Language=English +%1 +. +MessageId=56024 +Language=English +%1 +. +MessageId=56025 +Language=English +%1 +. +MessageId=56026 +Language=English +%1 +. +MessageId=56027 +Language=English +%1 +. +MessageId=56028 +Language=English +%1 +. +MessageId=56029 +Language=English +%1 +. +MessageId=56030 +Language=English +%1 +. +MessageId=56031 +Language=English +%1 +. +MessageId=56032 +Language=English +%1 +. +MessageId=56033 +Language=English +%1 +. +MessageId=56034 +Language=English +%1 +. +MessageId=56035 +Language=English +%1 +. +MessageId=56036 +Language=English +%1 +. +MessageId=56037 +Language=English +%1 +. +MessageId=56038 +Language=English +%1 +. +MessageId=56039 +Language=English +%1 +. +MessageId=56040 +Language=English +%1 +. +MessageId=56041 +Language=English +%1 +. +MessageId=56042 +Language=English +%1 +. +MessageId=56043 +Language=English +%1 +. +MessageId=56044 +Language=English +%1 +. +MessageId=56045 +Language=English +%1 +. +MessageId=56046 +Language=English +%1 +. +MessageId=56047 +Language=English +%1 +. +MessageId=56048 +Language=English +%1 +. +MessageId=56049 +Language=English +%1 +. +MessageId=56050 +Language=English +%1 +. +MessageId=56051 +Language=English +%1 +. +MessageId=56052 +Language=English +%1 +. +MessageId=56053 +Language=English +%1 +. +MessageId=56054 +Language=English +%1 +. +MessageId=56055 +Language=English +%1 +. +MessageId=56056 +Language=English +%1 +. +MessageId=56057 +Language=English +%1 +. +MessageId=56058 +Language=English +%1 +. +MessageId=56059 +Language=English +%1 +. +MessageId=56060 +Language=English +%1 +. +MessageId=56061 +Language=English +%1 +. +MessageId=56062 +Language=English +%1 +. +MessageId=56063 +Language=English +%1 +. +MessageId=56064 +Language=English +%1 +. +MessageId=56065 +Language=English +%1 +. +MessageId=56066 +Language=English +%1 +. +MessageId=56067 +Language=English +%1 +. +MessageId=56068 +Language=English +%1 +. +MessageId=56069 +Language=English +%1 +. +MessageId=56070 +Language=English +%1 +. +MessageId=56071 +Language=English +%1 +. +MessageId=56072 +Language=English +%1 +. +MessageId=56073 +Language=English +%1 +. +MessageId=56074 +Language=English +%1 +. +MessageId=56075 +Language=English +%1 +. +MessageId=56076 +Language=English +%1 +. +MessageId=56077 +Language=English +%1 +. +MessageId=56078 +Language=English +%1 +. +MessageId=56079 +Language=English +%1 +. +MessageId=56080 +Language=English +%1 +. +MessageId=56081 +Language=English +%1 +. +MessageId=56082 +Language=English +%1 +. +MessageId=56083 +Language=English +%1 +. +MessageId=56084 +Language=English +%1 +. +MessageId=56085 +Language=English +%1 +. +MessageId=56086 +Language=English +%1 +. +MessageId=56087 +Language=English +%1 +. +MessageId=56088 +Language=English +%1 +. +MessageId=56089 +Language=English +%1 +. +MessageId=56090 +Language=English +%1 +. +MessageId=56091 +Language=English +%1 +. +MessageId=56092 +Language=English +%1 +. +MessageId=56093 +Language=English +%1 +. +MessageId=56094 +Language=English +%1 +. +MessageId=56095 +Language=English +%1 +. +MessageId=56096 +Language=English +%1 +. +MessageId=56097 +Language=English +%1 +. +MessageId=56098 +Language=English +%1 +. +MessageId=56099 +Language=English +%1 +. +MessageId=56100 +Language=English +%1 +. +MessageId=56101 +Language=English +%1 +. +MessageId=56102 +Language=English +%1 +. +MessageId=56103 +Language=English +%1 +. +MessageId=56104 +Language=English +%1 +. +MessageId=56105 +Language=English +%1 +. +MessageId=56106 +Language=English +%1 +. +MessageId=56107 +Language=English +%1 +. +MessageId=56108 +Language=English +%1 +. +MessageId=56109 +Language=English +%1 +. +MessageId=56110 +Language=English +%1 +. +MessageId=56111 +Language=English +%1 +. +MessageId=56112 +Language=English +%1 +. +MessageId=56113 +Language=English +%1 +. +MessageId=56114 +Language=English +%1 +. +MessageId=56115 +Language=English +%1 +. +MessageId=56116 +Language=English +%1 +. +MessageId=56117 +Language=English +%1 +. +MessageId=56118 +Language=English +%1 +. +MessageId=56119 +Language=English +%1 +. +MessageId=56120 +Language=English +%1 +. +MessageId=56121 +Language=English +%1 +. +MessageId=56122 +Language=English +%1 +. +MessageId=56123 +Language=English +%1 +. +MessageId=56124 +Language=English +%1 +. +MessageId=56125 +Language=English +%1 +. +MessageId=56126 +Language=English +%1 +. +MessageId=56127 +Language=English +%1 +. +MessageId=56128 +Language=English +%1 +. +MessageId=56129 +Language=English +%1 +. +MessageId=56130 +Language=English +%1 +. +MessageId=56131 +Language=English +%1 +. +MessageId=56132 +Language=English +%1 +. +MessageId=56133 +Language=English +%1 +. +MessageId=56134 +Language=English +%1 +. +MessageId=56135 +Language=English +%1 +. +MessageId=56136 +Language=English +%1 +. +MessageId=56137 +Language=English +%1 +. +MessageId=56138 +Language=English +%1 +. +MessageId=56139 +Language=English +%1 +. +MessageId=56140 +Language=English +%1 +. +MessageId=56141 +Language=English +%1 +. +MessageId=56142 +Language=English +%1 +. +MessageId=56143 +Language=English +%1 +. +MessageId=56144 +Language=English +%1 +. +MessageId=56145 +Language=English +%1 +. +MessageId=56146 +Language=English +%1 +. +MessageId=56147 +Language=English +%1 +. +MessageId=56148 +Language=English +%1 +. +MessageId=56149 +Language=English +%1 +. +MessageId=56150 +Language=English +%1 +. +MessageId=56151 +Language=English +%1 +. +MessageId=56152 +Language=English +%1 +. +MessageId=56153 +Language=English +%1 +. +MessageId=56154 +Language=English +%1 +. +MessageId=56155 +Language=English +%1 +. +MessageId=56156 +Language=English +%1 +. +MessageId=56157 +Language=English +%1 +. +MessageId=56158 +Language=English +%1 +. +MessageId=56159 +Language=English +%1 +. +MessageId=56160 +Language=English +%1 +. +MessageId=56161 +Language=English +%1 +. +MessageId=56162 +Language=English +%1 +. +MessageId=56163 +Language=English +%1 +. +MessageId=56164 +Language=English +%1 +. +MessageId=56165 +Language=English +%1 +. +MessageId=56166 +Language=English +%1 +. +MessageId=56167 +Language=English +%1 +. +MessageId=56168 +Language=English +%1 +. +MessageId=56169 +Language=English +%1 +. +MessageId=56170 +Language=English +%1 +. +MessageId=56171 +Language=English +%1 +. +MessageId=56172 +Language=English +%1 +. +MessageId=56173 +Language=English +%1 +. +MessageId=56174 +Language=English +%1 +. +MessageId=56175 +Language=English +%1 +. +MessageId=56176 +Language=English +%1 +. +MessageId=56177 +Language=English +%1 +. +MessageId=56178 +Language=English +%1 +. +MessageId=56179 +Language=English +%1 +. +MessageId=56180 +Language=English +%1 +. +MessageId=56181 +Language=English +%1 +. +MessageId=56182 +Language=English +%1 +. +MessageId=56183 +Language=English +%1 +. +MessageId=56184 +Language=English +%1 +. +MessageId=56185 +Language=English +%1 +. +MessageId=56186 +Language=English +%1 +. +MessageId=56187 +Language=English +%1 +. +MessageId=56188 +Language=English +%1 +. +MessageId=56189 +Language=English +%1 +. +MessageId=56190 +Language=English +%1 +. +MessageId=56191 +Language=English +%1 +. +MessageId=56192 +Language=English +%1 +. +MessageId=56193 +Language=English +%1 +. +MessageId=56194 +Language=English +%1 +. +MessageId=56195 +Language=English +%1 +. +MessageId=56196 +Language=English +%1 +. +MessageId=56197 +Language=English +%1 +. +MessageId=56198 +Language=English +%1 +. +MessageId=56199 +Language=English +%1 +. +MessageId=56200 +Language=English +%1 +. +MessageId=56201 +Language=English +%1 +. +MessageId=56202 +Language=English +%1 +. +MessageId=56203 +Language=English +%1 +. +MessageId=56204 +Language=English +%1 +. +MessageId=56205 +Language=English +%1 +. +MessageId=56206 +Language=English +%1 +. +MessageId=56207 +Language=English +%1 +. +MessageId=56208 +Language=English +%1 +. +MessageId=56209 +Language=English +%1 +. +MessageId=56210 +Language=English +%1 +. +MessageId=56211 +Language=English +%1 +. +MessageId=56212 +Language=English +%1 +. +MessageId=56213 +Language=English +%1 +. +MessageId=56214 +Language=English +%1 +. +MessageId=56215 +Language=English +%1 +. +MessageId=56216 +Language=English +%1 +. +MessageId=56217 +Language=English +%1 +. +MessageId=56218 +Language=English +%1 +. +MessageId=56219 +Language=English +%1 +. +MessageId=56220 +Language=English +%1 +. +MessageId=56221 +Language=English +%1 +. +MessageId=56222 +Language=English +%1 +. +MessageId=56223 +Language=English +%1 +. +MessageId=56224 +Language=English +%1 +. +MessageId=56225 +Language=English +%1 +. +MessageId=56226 +Language=English +%1 +. +MessageId=56227 +Language=English +%1 +. +MessageId=56228 +Language=English +%1 +. +MessageId=56229 +Language=English +%1 +. +MessageId=56230 +Language=English +%1 +. +MessageId=56231 +Language=English +%1 +. +MessageId=56232 +Language=English +%1 +. +MessageId=56233 +Language=English +%1 +. +MessageId=56234 +Language=English +%1 +. +MessageId=56235 +Language=English +%1 +. +MessageId=56236 +Language=English +%1 +. +MessageId=56237 +Language=English +%1 +. +MessageId=56238 +Language=English +%1 +. +MessageId=56239 +Language=English +%1 +. +MessageId=56240 +Language=English +%1 +. +MessageId=56241 +Language=English +%1 +. +MessageId=56242 +Language=English +%1 +. +MessageId=56243 +Language=English +%1 +. +MessageId=56244 +Language=English +%1 +. +MessageId=56245 +Language=English +%1 +. +MessageId=56246 +Language=English +%1 +. +MessageId=56247 +Language=English +%1 +. +MessageId=56248 +Language=English +%1 +. +MessageId=56249 +Language=English +%1 +. +MessageId=56250 +Language=English +%1 +. +MessageId=56251 +Language=English +%1 +. +MessageId=56252 +Language=English +%1 +. +MessageId=56253 +Language=English +%1 +. +MessageId=56254 +Language=English +%1 +. +MessageId=56255 +Language=English +%1 +. +MessageId=56256 +Language=English +%1 +. +MessageId=56257 +Language=English +%1 +. +MessageId=56258 +Language=English +%1 +. +MessageId=56259 +Language=English +%1 +. +MessageId=56260 +Language=English +%1 +. +MessageId=56261 +Language=English +%1 +. +MessageId=56262 +Language=English +%1 +. +MessageId=56263 +Language=English +%1 +. +MessageId=56264 +Language=English +%1 +. +MessageId=56265 +Language=English +%1 +. +MessageId=56266 +Language=English +%1 +. +MessageId=56267 +Language=English +%1 +. +MessageId=56268 +Language=English +%1 +. +MessageId=56269 +Language=English +%1 +. +MessageId=56270 +Language=English +%1 +. +MessageId=56271 +Language=English +%1 +. +MessageId=56272 +Language=English +%1 +. +MessageId=56273 +Language=English +%1 +. +MessageId=56274 +Language=English +%1 +. +MessageId=56275 +Language=English +%1 +. +MessageId=56276 +Language=English +%1 +. +MessageId=56277 +Language=English +%1 +. +MessageId=56278 +Language=English +%1 +. +MessageId=56279 +Language=English +%1 +. +MessageId=56280 +Language=English +%1 +. +MessageId=56281 +Language=English +%1 +. +MessageId=56282 +Language=English +%1 +. +MessageId=56283 +Language=English +%1 +. +MessageId=56284 +Language=English +%1 +. +MessageId=56285 +Language=English +%1 +. +MessageId=56286 +Language=English +%1 +. +MessageId=56287 +Language=English +%1 +. +MessageId=56288 +Language=English +%1 +. +MessageId=56289 +Language=English +%1 +. +MessageId=56290 +Language=English +%1 +. +MessageId=56291 +Language=English +%1 +. +MessageId=56292 +Language=English +%1 +. +MessageId=56293 +Language=English +%1 +. +MessageId=56294 +Language=English +%1 +. +MessageId=56295 +Language=English +%1 +. +MessageId=56296 +Language=English +%1 +. +MessageId=56297 +Language=English +%1 +. +MessageId=56298 +Language=English +%1 +. +MessageId=56299 +Language=English +%1 +. +MessageId=56300 +Language=English +%1 +. +MessageId=56301 +Language=English +%1 +. +MessageId=56302 +Language=English +%1 +. +MessageId=56303 +Language=English +%1 +. +MessageId=56304 +Language=English +%1 +. +MessageId=56305 +Language=English +%1 +. +MessageId=56306 +Language=English +%1 +. +MessageId=56307 +Language=English +%1 +. +MessageId=56308 +Language=English +%1 +. +MessageId=56309 +Language=English +%1 +. +MessageId=56310 +Language=English +%1 +. +MessageId=56311 +Language=English +%1 +. +MessageId=56312 +Language=English +%1 +. +MessageId=56313 +Language=English +%1 +. +MessageId=56314 +Language=English +%1 +. +MessageId=56315 +Language=English +%1 +. +MessageId=56316 +Language=English +%1 +. +MessageId=56317 +Language=English +%1 +. +MessageId=56318 +Language=English +%1 +. +MessageId=56319 +Language=English +%1 +. +MessageId=56320 +Language=English +%1 +. +MessageId=56321 +Language=English +%1 +. +MessageId=56322 +Language=English +%1 +. +MessageId=56323 +Language=English +%1 +. +MessageId=56324 +Language=English +%1 +. +MessageId=56325 +Language=English +%1 +. +MessageId=56326 +Language=English +%1 +. +MessageId=56327 +Language=English +%1 +. +MessageId=56328 +Language=English +%1 +. +MessageId=56329 +Language=English +%1 +. +MessageId=56330 +Language=English +%1 +. +MessageId=56331 +Language=English +%1 +. +MessageId=56332 +Language=English +%1 +. +MessageId=56333 +Language=English +%1 +. +MessageId=56334 +Language=English +%1 +. +MessageId=56335 +Language=English +%1 +. +MessageId=56336 +Language=English +%1 +. +MessageId=56337 +Language=English +%1 +. +MessageId=56338 +Language=English +%1 +. +MessageId=56339 +Language=English +%1 +. +MessageId=56340 +Language=English +%1 +. +MessageId=56341 +Language=English +%1 +. +MessageId=56342 +Language=English +%1 +. +MessageId=56343 +Language=English +%1 +. +MessageId=56344 +Language=English +%1 +. +MessageId=56345 +Language=English +%1 +. +MessageId=56346 +Language=English +%1 +. +MessageId=56347 +Language=English +%1 +. +MessageId=56348 +Language=English +%1 +. +MessageId=56349 +Language=English +%1 +. +MessageId=56350 +Language=English +%1 +. +MessageId=56351 +Language=English +%1 +. +MessageId=56352 +Language=English +%1 +. +MessageId=56353 +Language=English +%1 +. +MessageId=56354 +Language=English +%1 +. +MessageId=56355 +Language=English +%1 +. +MessageId=56356 +Language=English +%1 +. +MessageId=56357 +Language=English +%1 +. +MessageId=56358 +Language=English +%1 +. +MessageId=56359 +Language=English +%1 +. +MessageId=56360 +Language=English +%1 +. +MessageId=56361 +Language=English +%1 +. +MessageId=56362 +Language=English +%1 +. +MessageId=56363 +Language=English +%1 +. +MessageId=56364 +Language=English +%1 +. +MessageId=56365 +Language=English +%1 +. +MessageId=56366 +Language=English +%1 +. +MessageId=56367 +Language=English +%1 +. +MessageId=56368 +Language=English +%1 +. +MessageId=56369 +Language=English +%1 +. +MessageId=56370 +Language=English +%1 +. +MessageId=56371 +Language=English +%1 +. +MessageId=56372 +Language=English +%1 +. +MessageId=56373 +Language=English +%1 +. +MessageId=56374 +Language=English +%1 +. +MessageId=56375 +Language=English +%1 +. +MessageId=56376 +Language=English +%1 +. +MessageId=56377 +Language=English +%1 +. +MessageId=56378 +Language=English +%1 +. +MessageId=56379 +Language=English +%1 +. +MessageId=56380 +Language=English +%1 +. +MessageId=56381 +Language=English +%1 +. +MessageId=56382 +Language=English +%1 +. +MessageId=56383 +Language=English +%1 +. +MessageId=56384 +Language=English +%1 +. +MessageId=56385 +Language=English +%1 +. +MessageId=56386 +Language=English +%1 +. +MessageId=56387 +Language=English +%1 +. +MessageId=56388 +Language=English +%1 +. +MessageId=56389 +Language=English +%1 +. +MessageId=56390 +Language=English +%1 +. +MessageId=56391 +Language=English +%1 +. +MessageId=56392 +Language=English +%1 +. +MessageId=56393 +Language=English +%1 +. +MessageId=56394 +Language=English +%1 +. +MessageId=56395 +Language=English +%1 +. +MessageId=56396 +Language=English +%1 +. +MessageId=56397 +Language=English +%1 +. +MessageId=56398 +Language=English +%1 +. +MessageId=56399 +Language=English +%1 +. +MessageId=56400 +Language=English +%1 +. +MessageId=56401 +Language=English +%1 +. +MessageId=56402 +Language=English +%1 +. +MessageId=56403 +Language=English +%1 +. +MessageId=56404 +Language=English +%1 +. +MessageId=56405 +Language=English +%1 +. +MessageId=56406 +Language=English +%1 +. +MessageId=56407 +Language=English +%1 +. +MessageId=56408 +Language=English +%1 +. +MessageId=56409 +Language=English +%1 +. +MessageId=56410 +Language=English +%1 +. +MessageId=56411 +Language=English +%1 +. +MessageId=56412 +Language=English +%1 +. +MessageId=56413 +Language=English +%1 +. +MessageId=56414 +Language=English +%1 +. +MessageId=56415 +Language=English +%1 +. +MessageId=56416 +Language=English +%1 +. +MessageId=56417 +Language=English +%1 +. +MessageId=56418 +Language=English +%1 +. +MessageId=56419 +Language=English +%1 +. +MessageId=56420 +Language=English +%1 +. +MessageId=56421 +Language=English +%1 +. +MessageId=56422 +Language=English +%1 +. +MessageId=56423 +Language=English +%1 +. +MessageId=56424 +Language=English +%1 +. +MessageId=56425 +Language=English +%1 +. +MessageId=56426 +Language=English +%1 +. +MessageId=56427 +Language=English +%1 +. +MessageId=56428 +Language=English +%1 +. +MessageId=56429 +Language=English +%1 +. +MessageId=56430 +Language=English +%1 +. +MessageId=56431 +Language=English +%1 +. +MessageId=56432 +Language=English +%1 +. +MessageId=56433 +Language=English +%1 +. +MessageId=56434 +Language=English +%1 +. +MessageId=56435 +Language=English +%1 +. +MessageId=56436 +Language=English +%1 +. +MessageId=56437 +Language=English +%1 +. +MessageId=56438 +Language=English +%1 +. +MessageId=56439 +Language=English +%1 +. +MessageId=56440 +Language=English +%1 +. +MessageId=56441 +Language=English +%1 +. +MessageId=56442 +Language=English +%1 +. +MessageId=56443 +Language=English +%1 +. +MessageId=56444 +Language=English +%1 +. +MessageId=56445 +Language=English +%1 +. +MessageId=56446 +Language=English +%1 +. +MessageId=56447 +Language=English +%1 +. +MessageId=56448 +Language=English +%1 +. +MessageId=56449 +Language=English +%1 +. +MessageId=56450 +Language=English +%1 +. +MessageId=56451 +Language=English +%1 +. +MessageId=56452 +Language=English +%1 +. +MessageId=56453 +Language=English +%1 +. +MessageId=56454 +Language=English +%1 +. +MessageId=56455 +Language=English +%1 +. +MessageId=56456 +Language=English +%1 +. +MessageId=56457 +Language=English +%1 +. +MessageId=56458 +Language=English +%1 +. +MessageId=56459 +Language=English +%1 +. +MessageId=56460 +Language=English +%1 +. +MessageId=56461 +Language=English +%1 +. +MessageId=56462 +Language=English +%1 +. +MessageId=56463 +Language=English +%1 +. +MessageId=56464 +Language=English +%1 +. +MessageId=56465 +Language=English +%1 +. +MessageId=56466 +Language=English +%1 +. +MessageId=56467 +Language=English +%1 +. +MessageId=56468 +Language=English +%1 +. +MessageId=56469 +Language=English +%1 +. +MessageId=56470 +Language=English +%1 +. +MessageId=56471 +Language=English +%1 +. +MessageId=56472 +Language=English +%1 +. +MessageId=56473 +Language=English +%1 +. +MessageId=56474 +Language=English +%1 +. +MessageId=56475 +Language=English +%1 +. +MessageId=56476 +Language=English +%1 +. +MessageId=56477 +Language=English +%1 +. +MessageId=56478 +Language=English +%1 +. +MessageId=56479 +Language=English +%1 +. +MessageId=56480 +Language=English +%1 +. +MessageId=56481 +Language=English +%1 +. +MessageId=56482 +Language=English +%1 +. +MessageId=56483 +Language=English +%1 +. +MessageId=56484 +Language=English +%1 +. +MessageId=56485 +Language=English +%1 +. +MessageId=56486 +Language=English +%1 +. +MessageId=56487 +Language=English +%1 +. +MessageId=56488 +Language=English +%1 +. +MessageId=56489 +Language=English +%1 +. +MessageId=56490 +Language=English +%1 +. +MessageId=56491 +Language=English +%1 +. +MessageId=56492 +Language=English +%1 +. +MessageId=56493 +Language=English +%1 +. +MessageId=56494 +Language=English +%1 +. +MessageId=56495 +Language=English +%1 +. +MessageId=56496 +Language=English +%1 +. +MessageId=56497 +Language=English +%1 +. +MessageId=56498 +Language=English +%1 +. +MessageId=56499 +Language=English +%1 +. +MessageId=56500 +Language=English +%1 +. +MessageId=56501 +Language=English +%1 +. +MessageId=56502 +Language=English +%1 +. +MessageId=56503 +Language=English +%1 +. +MessageId=56504 +Language=English +%1 +. +MessageId=56505 +Language=English +%1 +. +MessageId=56506 +Language=English +%1 +. +MessageId=56507 +Language=English +%1 +. +MessageId=56508 +Language=English +%1 +. +MessageId=56509 +Language=English +%1 +. +MessageId=56510 +Language=English +%1 +. +MessageId=56511 +Language=English +%1 +. +MessageId=56512 +Language=English +%1 +. +MessageId=56513 +Language=English +%1 +. +MessageId=56514 +Language=English +%1 +. +MessageId=56515 +Language=English +%1 +. +MessageId=56516 +Language=English +%1 +. +MessageId=56517 +Language=English +%1 +. +MessageId=56518 +Language=English +%1 +. +MessageId=56519 +Language=English +%1 +. +MessageId=56520 +Language=English +%1 +. +MessageId=56521 +Language=English +%1 +. +MessageId=56522 +Language=English +%1 +. +MessageId=56523 +Language=English +%1 +. +MessageId=56524 +Language=English +%1 +. +MessageId=56525 +Language=English +%1 +. +MessageId=56526 +Language=English +%1 +. +MessageId=56527 +Language=English +%1 +. +MessageId=56528 +Language=English +%1 +. +MessageId=56529 +Language=English +%1 +. +MessageId=56530 +Language=English +%1 +. +MessageId=56531 +Language=English +%1 +. +MessageId=56532 +Language=English +%1 +. +MessageId=56533 +Language=English +%1 +. +MessageId=56534 +Language=English +%1 +. +MessageId=56535 +Language=English +%1 +. +MessageId=56536 +Language=English +%1 +. +MessageId=56537 +Language=English +%1 +. +MessageId=56538 +Language=English +%1 +. +MessageId=56539 +Language=English +%1 +. +MessageId=56540 +Language=English +%1 +. +MessageId=56541 +Language=English +%1 +. +MessageId=56542 +Language=English +%1 +. +MessageId=56543 +Language=English +%1 +. +MessageId=56544 +Language=English +%1 +. +MessageId=56545 +Language=English +%1 +. +MessageId=56546 +Language=English +%1 +. +MessageId=56547 +Language=English +%1 +. +MessageId=56548 +Language=English +%1 +. +MessageId=56549 +Language=English +%1 +. +MessageId=56550 +Language=English +%1 +. +MessageId=56551 +Language=English +%1 +. +MessageId=56552 +Language=English +%1 +. +MessageId=56553 +Language=English +%1 +. +MessageId=56554 +Language=English +%1 +. +MessageId=56555 +Language=English +%1 +. +MessageId=56556 +Language=English +%1 +. +MessageId=56557 +Language=English +%1 +. +MessageId=56558 +Language=English +%1 +. +MessageId=56559 +Language=English +%1 +. +MessageId=56560 +Language=English +%1 +. +MessageId=56561 +Language=English +%1 +. +MessageId=56562 +Language=English +%1 +. +MessageId=56563 +Language=English +%1 +. +MessageId=56564 +Language=English +%1 +. +MessageId=56565 +Language=English +%1 +. +MessageId=56566 +Language=English +%1 +. +MessageId=56567 +Language=English +%1 +. +MessageId=56568 +Language=English +%1 +. +MessageId=56569 +Language=English +%1 +. +MessageId=56570 +Language=English +%1 +. +MessageId=56571 +Language=English +%1 +. +MessageId=56572 +Language=English +%1 +. +MessageId=56573 +Language=English +%1 +. +MessageId=56574 +Language=English +%1 +. +MessageId=56575 +Language=English +%1 +. +MessageId=56576 +Language=English +%1 +. +MessageId=56577 +Language=English +%1 +. +MessageId=56578 +Language=English +%1 +. +MessageId=56579 +Language=English +%1 +. +MessageId=56580 +Language=English +%1 +. +MessageId=56581 +Language=English +%1 +. +MessageId=56582 +Language=English +%1 +. +MessageId=56583 +Language=English +%1 +. +MessageId=56584 +Language=English +%1 +. +MessageId=56585 +Language=English +%1 +. +MessageId=56586 +Language=English +%1 +. +MessageId=56587 +Language=English +%1 +. +MessageId=56588 +Language=English +%1 +. +MessageId=56589 +Language=English +%1 +. +MessageId=56590 +Language=English +%1 +. +MessageId=56591 +Language=English +%1 +. +MessageId=56592 +Language=English +%1 +. +MessageId=56593 +Language=English +%1 +. +MessageId=56594 +Language=English +%1 +. +MessageId=56595 +Language=English +%1 +. +MessageId=56596 +Language=English +%1 +. +MessageId=56597 +Language=English +%1 +. +MessageId=56598 +Language=English +%1 +. +MessageId=56599 +Language=English +%1 +. +MessageId=56600 +Language=English +%1 +. +MessageId=56601 +Language=English +%1 +. +MessageId=56602 +Language=English +%1 +. +MessageId=56603 +Language=English +%1 +. +MessageId=56604 +Language=English +%1 +. +MessageId=56605 +Language=English +%1 +. +MessageId=56606 +Language=English +%1 +. +MessageId=56607 +Language=English +%1 +. +MessageId=56608 +Language=English +%1 +. +MessageId=56609 +Language=English +%1 +. +MessageId=56610 +Language=English +%1 +. +MessageId=56611 +Language=English +%1 +. +MessageId=56612 +Language=English +%1 +. +MessageId=56613 +Language=English +%1 +. +MessageId=56614 +Language=English +%1 +. +MessageId=56615 +Language=English +%1 +. +MessageId=56616 +Language=English +%1 +. +MessageId=56617 +Language=English +%1 +. +MessageId=56618 +Language=English +%1 +. +MessageId=56619 +Language=English +%1 +. +MessageId=56620 +Language=English +%1 +. +MessageId=56621 +Language=English +%1 +. +MessageId=56622 +Language=English +%1 +. +MessageId=56623 +Language=English +%1 +. +MessageId=56624 +Language=English +%1 +. +MessageId=56625 +Language=English +%1 +. +MessageId=56626 +Language=English +%1 +. +MessageId=56627 +Language=English +%1 +. +MessageId=56628 +Language=English +%1 +. +MessageId=56629 +Language=English +%1 +. +MessageId=56630 +Language=English +%1 +. +MessageId=56631 +Language=English +%1 +. +MessageId=56632 +Language=English +%1 +. +MessageId=56633 +Language=English +%1 +. +MessageId=56634 +Language=English +%1 +. +MessageId=56635 +Language=English +%1 +. +MessageId=56636 +Language=English +%1 +. +MessageId=56637 +Language=English +%1 +. +MessageId=56638 +Language=English +%1 +. +MessageId=56639 +Language=English +%1 +. +MessageId=56640 +Language=English +%1 +. +MessageId=56641 +Language=English +%1 +. +MessageId=56642 +Language=English +%1 +. +MessageId=56643 +Language=English +%1 +. +MessageId=56644 +Language=English +%1 +. +MessageId=56645 +Language=English +%1 +. +MessageId=56646 +Language=English +%1 +. +MessageId=56647 +Language=English +%1 +. +MessageId=56648 +Language=English +%1 +. +MessageId=56649 +Language=English +%1 +. +MessageId=56650 +Language=English +%1 +. +MessageId=56651 +Language=English +%1 +. +MessageId=56652 +Language=English +%1 +. +MessageId=56653 +Language=English +%1 +. +MessageId=56654 +Language=English +%1 +. +MessageId=56655 +Language=English +%1 +. +MessageId=56656 +Language=English +%1 +. +MessageId=56657 +Language=English +%1 +. +MessageId=56658 +Language=English +%1 +. +MessageId=56659 +Language=English +%1 +. +MessageId=56660 +Language=English +%1 +. +MessageId=56661 +Language=English +%1 +. +MessageId=56662 +Language=English +%1 +. +MessageId=56663 +Language=English +%1 +. +MessageId=56664 +Language=English +%1 +. +MessageId=56665 +Language=English +%1 +. +MessageId=56666 +Language=English +%1 +. +MessageId=56667 +Language=English +%1 +. +MessageId=56668 +Language=English +%1 +. +MessageId=56669 +Language=English +%1 +. +MessageId=56670 +Language=English +%1 +. +MessageId=56671 +Language=English +%1 +. +MessageId=56672 +Language=English +%1 +. +MessageId=56673 +Language=English +%1 +. +MessageId=56674 +Language=English +%1 +. +MessageId=56675 +Language=English +%1 +. +MessageId=56676 +Language=English +%1 +. +MessageId=56677 +Language=English +%1 +. +MessageId=56678 +Language=English +%1 +. +MessageId=56679 +Language=English +%1 +. +MessageId=56680 +Language=English +%1 +. +MessageId=56681 +Language=English +%1 +. +MessageId=56682 +Language=English +%1 +. +MessageId=56683 +Language=English +%1 +. +MessageId=56684 +Language=English +%1 +. +MessageId=56685 +Language=English +%1 +. +MessageId=56686 +Language=English +%1 +. +MessageId=56687 +Language=English +%1 +. +MessageId=56688 +Language=English +%1 +. +MessageId=56689 +Language=English +%1 +. +MessageId=56690 +Language=English +%1 +. +MessageId=56691 +Language=English +%1 +. +MessageId=56692 +Language=English +%1 +. +MessageId=56693 +Language=English +%1 +. +MessageId=56694 +Language=English +%1 +. +MessageId=56695 +Language=English +%1 +. +MessageId=56696 +Language=English +%1 +. +MessageId=56697 +Language=English +%1 +. +MessageId=56698 +Language=English +%1 +. +MessageId=56699 +Language=English +%1 +. +MessageId=56700 +Language=English +%1 +. +MessageId=56701 +Language=English +%1 +. +MessageId=56702 +Language=English +%1 +. +MessageId=56703 +Language=English +%1 +. +MessageId=56704 +Language=English +%1 +. +MessageId=56705 +Language=English +%1 +. +MessageId=56706 +Language=English +%1 +. +MessageId=56707 +Language=English +%1 +. +MessageId=56708 +Language=English +%1 +. +MessageId=56709 +Language=English +%1 +. +MessageId=56710 +Language=English +%1 +. +MessageId=56711 +Language=English +%1 +. +MessageId=56712 +Language=English +%1 +. +MessageId=56713 +Language=English +%1 +. +MessageId=56714 +Language=English +%1 +. +MessageId=56715 +Language=English +%1 +. +MessageId=56716 +Language=English +%1 +. +MessageId=56717 +Language=English +%1 +. +MessageId=56718 +Language=English +%1 +. +MessageId=56719 +Language=English +%1 +. +MessageId=56720 +Language=English +%1 +. +MessageId=56721 +Language=English +%1 +. +MessageId=56722 +Language=English +%1 +. +MessageId=56723 +Language=English +%1 +. +MessageId=56724 +Language=English +%1 +. +MessageId=56725 +Language=English +%1 +. +MessageId=56726 +Language=English +%1 +. +MessageId=56727 +Language=English +%1 +. +MessageId=56728 +Language=English +%1 +. +MessageId=56729 +Language=English +%1 +. +MessageId=56730 +Language=English +%1 +. +MessageId=56731 +Language=English +%1 +. +MessageId=56732 +Language=English +%1 +. +MessageId=56733 +Language=English +%1 +. +MessageId=56734 +Language=English +%1 +. +MessageId=56735 +Language=English +%1 +. +MessageId=56736 +Language=English +%1 +. +MessageId=56737 +Language=English +%1 +. +MessageId=56738 +Language=English +%1 +. +MessageId=56739 +Language=English +%1 +. +MessageId=56740 +Language=English +%1 +. +MessageId=56741 +Language=English +%1 +. +MessageId=56742 +Language=English +%1 +. +MessageId=56743 +Language=English +%1 +. +MessageId=56744 +Language=English +%1 +. +MessageId=56745 +Language=English +%1 +. +MessageId=56746 +Language=English +%1 +. +MessageId=56747 +Language=English +%1 +. +MessageId=56748 +Language=English +%1 +. +MessageId=56749 +Language=English +%1 +. +MessageId=56750 +Language=English +%1 +. +MessageId=56751 +Language=English +%1 +. +MessageId=56752 +Language=English +%1 +. +MessageId=56753 +Language=English +%1 +. +MessageId=56754 +Language=English +%1 +. +MessageId=56755 +Language=English +%1 +. +MessageId=56756 +Language=English +%1 +. +MessageId=56757 +Language=English +%1 +. +MessageId=56758 +Language=English +%1 +. +MessageId=56759 +Language=English +%1 +. +MessageId=56760 +Language=English +%1 +. +MessageId=56761 +Language=English +%1 +. +MessageId=56762 +Language=English +%1 +. +MessageId=56763 +Language=English +%1 +. +MessageId=56764 +Language=English +%1 +. +MessageId=56765 +Language=English +%1 +. +MessageId=56766 +Language=English +%1 +. +MessageId=56767 +Language=English +%1 +. +MessageId=56768 +Language=English +%1 +. +MessageId=56769 +Language=English +%1 +. +MessageId=56770 +Language=English +%1 +. +MessageId=56771 +Language=English +%1 +. +MessageId=56772 +Language=English +%1 +. +MessageId=56773 +Language=English +%1 +. +MessageId=56774 +Language=English +%1 +. +MessageId=56775 +Language=English +%1 +. +MessageId=56776 +Language=English +%1 +. +MessageId=56777 +Language=English +%1 +. +MessageId=56778 +Language=English +%1 +. +MessageId=56779 +Language=English +%1 +. +MessageId=56780 +Language=English +%1 +. +MessageId=56781 +Language=English +%1 +. +MessageId=56782 +Language=English +%1 +. +MessageId=56783 +Language=English +%1 +. +MessageId=56784 +Language=English +%1 +. +MessageId=56785 +Language=English +%1 +. +MessageId=56786 +Language=English +%1 +. +MessageId=56787 +Language=English +%1 +. +MessageId=56788 +Language=English +%1 +. +MessageId=56789 +Language=English +%1 +. +MessageId=56790 +Language=English +%1 +. +MessageId=56791 +Language=English +%1 +. +MessageId=56792 +Language=English +%1 +. +MessageId=56793 +Language=English +%1 +. +MessageId=56794 +Language=English +%1 +. +MessageId=56795 +Language=English +%1 +. +MessageId=56796 +Language=English +%1 +. +MessageId=56797 +Language=English +%1 +. +MessageId=56798 +Language=English +%1 +. +MessageId=56799 +Language=English +%1 +. +MessageId=56800 +Language=English +%1 +. +MessageId=56801 +Language=English +%1 +. +MessageId=56802 +Language=English +%1 +. +MessageId=56803 +Language=English +%1 +. +MessageId=56804 +Language=English +%1 +. +MessageId=56805 +Language=English +%1 +. +MessageId=56806 +Language=English +%1 +. +MessageId=56807 +Language=English +%1 +. +MessageId=56808 +Language=English +%1 +. +MessageId=56809 +Language=English +%1 +. +MessageId=56810 +Language=English +%1 +. +MessageId=56811 +Language=English +%1 +. +MessageId=56812 +Language=English +%1 +. +MessageId=56813 +Language=English +%1 +. +MessageId=56814 +Language=English +%1 +. +MessageId=56815 +Language=English +%1 +. +MessageId=56816 +Language=English +%1 +. +MessageId=56817 +Language=English +%1 +. +MessageId=56818 +Language=English +%1 +. +MessageId=56819 +Language=English +%1 +. +MessageId=56820 +Language=English +%1 +. +MessageId=56821 +Language=English +%1 +. +MessageId=56822 +Language=English +%1 +. +MessageId=56823 +Language=English +%1 +. +MessageId=56824 +Language=English +%1 +. +MessageId=56825 +Language=English +%1 +. +MessageId=56826 +Language=English +%1 +. +MessageId=56827 +Language=English +%1 +. +MessageId=56828 +Language=English +%1 +. +MessageId=56829 +Language=English +%1 +. +MessageId=56830 +Language=English +%1 +. +MessageId=56831 +Language=English +%1 +. +MessageId=56832 +Language=English +%1 +. +MessageId=56833 +Language=English +%1 +. +MessageId=56834 +Language=English +%1 +. +MessageId=56835 +Language=English +%1 +. +MessageId=56836 +Language=English +%1 +. +MessageId=56837 +Language=English +%1 +. +MessageId=56838 +Language=English +%1 +. +MessageId=56839 +Language=English +%1 +. +MessageId=56840 +Language=English +%1 +. +MessageId=56841 +Language=English +%1 +. +MessageId=56842 +Language=English +%1 +. +MessageId=56843 +Language=English +%1 +. +MessageId=56844 +Language=English +%1 +. +MessageId=56845 +Language=English +%1 +. +MessageId=56846 +Language=English +%1 +. +MessageId=56847 +Language=English +%1 +. +MessageId=56848 +Language=English +%1 +. +MessageId=56849 +Language=English +%1 +. +MessageId=56850 +Language=English +%1 +. +MessageId=56851 +Language=English +%1 +. +MessageId=56852 +Language=English +%1 +. +MessageId=56853 +Language=English +%1 +. +MessageId=56854 +Language=English +%1 +. +MessageId=56855 +Language=English +%1 +. +MessageId=56856 +Language=English +%1 +. +MessageId=56857 +Language=English +%1 +. +MessageId=56858 +Language=English +%1 +. +MessageId=56859 +Language=English +%1 +. +MessageId=56860 +Language=English +%1 +. +MessageId=56861 +Language=English +%1 +. +MessageId=56862 +Language=English +%1 +. +MessageId=56863 +Language=English +%1 +. +MessageId=56864 +Language=English +%1 +. +MessageId=56865 +Language=English +%1 +. +MessageId=56866 +Language=English +%1 +. +MessageId=56867 +Language=English +%1 +. +MessageId=56868 +Language=English +%1 +. +MessageId=56869 +Language=English +%1 +. +MessageId=56870 +Language=English +%1 +. +MessageId=56871 +Language=English +%1 +. +MessageId=56872 +Language=English +%1 +. +MessageId=56873 +Language=English +%1 +. +MessageId=56874 +Language=English +%1 +. +MessageId=56875 +Language=English +%1 +. +MessageId=56876 +Language=English +%1 +. +MessageId=56877 +Language=English +%1 +. +MessageId=56878 +Language=English +%1 +. +MessageId=56879 +Language=English +%1 +. +MessageId=56880 +Language=English +%1 +. +MessageId=56881 +Language=English +%1 +. +MessageId=56882 +Language=English +%1 +. +MessageId=56883 +Language=English +%1 +. +MessageId=56884 +Language=English +%1 +. +MessageId=56885 +Language=English +%1 +. +MessageId=56886 +Language=English +%1 +. +MessageId=56887 +Language=English +%1 +. +MessageId=56888 +Language=English +%1 +. +MessageId=56889 +Language=English +%1 +. +MessageId=56890 +Language=English +%1 +. +MessageId=56891 +Language=English +%1 +. +MessageId=56892 +Language=English +%1 +. +MessageId=56893 +Language=English +%1 +. +MessageId=56894 +Language=English +%1 +. +MessageId=56895 +Language=English +%1 +. +MessageId=56896 +Language=English +%1 +. +MessageId=56897 +Language=English +%1 +. +MessageId=56898 +Language=English +%1 +. +MessageId=56899 +Language=English +%1 +. +MessageId=56900 +Language=English +%1 +. +MessageId=56901 +Language=English +%1 +. +MessageId=56902 +Language=English +%1 +. +MessageId=56903 +Language=English +%1 +. +MessageId=56904 +Language=English +%1 +. +MessageId=56905 +Language=English +%1 +. +MessageId=56906 +Language=English +%1 +. +MessageId=56907 +Language=English +%1 +. +MessageId=56908 +Language=English +%1 +. +MessageId=56909 +Language=English +%1 +. +MessageId=56910 +Language=English +%1 +. +MessageId=56911 +Language=English +%1 +. +MessageId=56912 +Language=English +%1 +. +MessageId=56913 +Language=English +%1 +. +MessageId=56914 +Language=English +%1 +. +MessageId=56915 +Language=English +%1 +. +MessageId=56916 +Language=English +%1 +. +MessageId=56917 +Language=English +%1 +. +MessageId=56918 +Language=English +%1 +. +MessageId=56919 +Language=English +%1 +. +MessageId=56920 +Language=English +%1 +. +MessageId=56921 +Language=English +%1 +. +MessageId=56922 +Language=English +%1 +. +MessageId=56923 +Language=English +%1 +. +MessageId=56924 +Language=English +%1 +. +MessageId=56925 +Language=English +%1 +. +MessageId=56926 +Language=English +%1 +. +MessageId=56927 +Language=English +%1 +. +MessageId=56928 +Language=English +%1 +. +MessageId=56929 +Language=English +%1 +. +MessageId=56930 +Language=English +%1 +. +MessageId=56931 +Language=English +%1 +. +MessageId=56932 +Language=English +%1 +. +MessageId=56933 +Language=English +%1 +. +MessageId=56934 +Language=English +%1 +. +MessageId=56935 +Language=English +%1 +. +MessageId=56936 +Language=English +%1 +. +MessageId=56937 +Language=English +%1 +. +MessageId=56938 +Language=English +%1 +. +MessageId=56939 +Language=English +%1 +. +MessageId=56940 +Language=English +%1 +. +MessageId=56941 +Language=English +%1 +. +MessageId=56942 +Language=English +%1 +. +MessageId=56943 +Language=English +%1 +. +MessageId=56944 +Language=English +%1 +. +MessageId=56945 +Language=English +%1 +. +MessageId=56946 +Language=English +%1 +. +MessageId=56947 +Language=English +%1 +. +MessageId=56948 +Language=English +%1 +. +MessageId=56949 +Language=English +%1 +. +MessageId=56950 +Language=English +%1 +. +MessageId=56951 +Language=English +%1 +. +MessageId=56952 +Language=English +%1 +. +MessageId=56953 +Language=English +%1 +. +MessageId=56954 +Language=English +%1 +. +MessageId=56955 +Language=English +%1 +. +MessageId=56956 +Language=English +%1 +. +MessageId=56957 +Language=English +%1 +. +MessageId=56958 +Language=English +%1 +. +MessageId=56959 +Language=English +%1 +. +MessageId=56960 +Language=English +%1 +. +MessageId=56961 +Language=English +%1 +. +MessageId=56962 +Language=English +%1 +. +MessageId=56963 +Language=English +%1 +. +MessageId=56964 +Language=English +%1 +. +MessageId=56965 +Language=English +%1 +. +MessageId=56966 +Language=English +%1 +. +MessageId=56967 +Language=English +%1 +. +MessageId=56968 +Language=English +%1 +. +MessageId=56969 +Language=English +%1 +. +MessageId=56970 +Language=English +%1 +. +MessageId=56971 +Language=English +%1 +. +MessageId=56972 +Language=English +%1 +. +MessageId=56973 +Language=English +%1 +. +MessageId=56974 +Language=English +%1 +. +MessageId=56975 +Language=English +%1 +. +MessageId=56976 +Language=English +%1 +. +MessageId=56977 +Language=English +%1 +. +MessageId=56978 +Language=English +%1 +. +MessageId=56979 +Language=English +%1 +. +MessageId=56980 +Language=English +%1 +. +MessageId=56981 +Language=English +%1 +. +MessageId=56982 +Language=English +%1 +. +MessageId=56983 +Language=English +%1 +. +MessageId=56984 +Language=English +%1 +. +MessageId=56985 +Language=English +%1 +. +MessageId=56986 +Language=English +%1 +. +MessageId=56987 +Language=English +%1 +. +MessageId=56988 +Language=English +%1 +. +MessageId=56989 +Language=English +%1 +. +MessageId=56990 +Language=English +%1 +. +MessageId=56991 +Language=English +%1 +. +MessageId=56992 +Language=English +%1 +. +MessageId=56993 +Language=English +%1 +. +MessageId=56994 +Language=English +%1 +. +MessageId=56995 +Language=English +%1 +. +MessageId=56996 +Language=English +%1 +. +MessageId=56997 +Language=English +%1 +. +MessageId=56998 +Language=English +%1 +. +MessageId=56999 +Language=English +%1 +. +MessageId=57000 +Language=English +%1 +. +MessageId=57001 +Language=English +%1 +. +MessageId=57002 +Language=English +%1 +. +MessageId=57003 +Language=English +%1 +. +MessageId=57004 +Language=English +%1 +. +MessageId=57005 +Language=English +%1 +. +MessageId=57006 +Language=English +%1 +. +MessageId=57007 +Language=English +%1 +. +MessageId=57008 +Language=English +%1 +. +MessageId=57009 +Language=English +%1 +. +MessageId=57010 +Language=English +%1 +. +MessageId=57011 +Language=English +%1 +. +MessageId=57012 +Language=English +%1 +. +MessageId=57013 +Language=English +%1 +. +MessageId=57014 +Language=English +%1 +. +MessageId=57015 +Language=English +%1 +. +MessageId=57016 +Language=English +%1 +. +MessageId=57017 +Language=English +%1 +. +MessageId=57018 +Language=English +%1 +. +MessageId=57019 +Language=English +%1 +. +MessageId=57020 +Language=English +%1 +. +MessageId=57021 +Language=English +%1 +. +MessageId=57022 +Language=English +%1 +. +MessageId=57023 +Language=English +%1 +. +MessageId=57024 +Language=English +%1 +. +MessageId=57025 +Language=English +%1 +. +MessageId=57026 +Language=English +%1 +. +MessageId=57027 +Language=English +%1 +. +MessageId=57028 +Language=English +%1 +. +MessageId=57029 +Language=English +%1 +. +MessageId=57030 +Language=English +%1 +. +MessageId=57031 +Language=English +%1 +. +MessageId=57032 +Language=English +%1 +. +MessageId=57033 +Language=English +%1 +. +MessageId=57034 +Language=English +%1 +. +MessageId=57035 +Language=English +%1 +. +MessageId=57036 +Language=English +%1 +. +MessageId=57037 +Language=English +%1 +. +MessageId=57038 +Language=English +%1 +. +MessageId=57039 +Language=English +%1 +. +MessageId=57040 +Language=English +%1 +. +MessageId=57041 +Language=English +%1 +. +MessageId=57042 +Language=English +%1 +. +MessageId=57043 +Language=English +%1 +. +MessageId=57044 +Language=English +%1 +. +MessageId=57045 +Language=English +%1 +. +MessageId=57046 +Language=English +%1 +. +MessageId=57047 +Language=English +%1 +. +MessageId=57048 +Language=English +%1 +. +MessageId=57049 +Language=English +%1 +. +MessageId=57050 +Language=English +%1 +. +MessageId=57051 +Language=English +%1 +. +MessageId=57052 +Language=English +%1 +. +MessageId=57053 +Language=English +%1 +. +MessageId=57054 +Language=English +%1 +. +MessageId=57055 +Language=English +%1 +. +MessageId=57056 +Language=English +%1 +. +MessageId=57057 +Language=English +%1 +. +MessageId=57058 +Language=English +%1 +. +MessageId=57059 +Language=English +%1 +. +MessageId=57060 +Language=English +%1 +. +MessageId=57061 +Language=English +%1 +. +MessageId=57062 +Language=English +%1 +. +MessageId=57063 +Language=English +%1 +. +MessageId=57064 +Language=English +%1 +. +MessageId=57065 +Language=English +%1 +. +MessageId=57066 +Language=English +%1 +. +MessageId=57067 +Language=English +%1 +. +MessageId=57068 +Language=English +%1 +. +MessageId=57069 +Language=English +%1 +. +MessageId=57070 +Language=English +%1 +. +MessageId=57071 +Language=English +%1 +. +MessageId=57072 +Language=English +%1 +. +MessageId=57073 +Language=English +%1 +. +MessageId=57074 +Language=English +%1 +. +MessageId=57075 +Language=English +%1 +. +MessageId=57076 +Language=English +%1 +. +MessageId=57077 +Language=English +%1 +. +MessageId=57078 +Language=English +%1 +. +MessageId=57079 +Language=English +%1 +. +MessageId=57080 +Language=English +%1 +. +MessageId=57081 +Language=English +%1 +. +MessageId=57082 +Language=English +%1 +. +MessageId=57083 +Language=English +%1 +. +MessageId=57084 +Language=English +%1 +. +MessageId=57085 +Language=English +%1 +. +MessageId=57086 +Language=English +%1 +. +MessageId=57087 +Language=English +%1 +. +MessageId=57088 +Language=English +%1 +. +MessageId=57089 +Language=English +%1 +. +MessageId=57090 +Language=English +%1 +. +MessageId=57091 +Language=English +%1 +. +MessageId=57092 +Language=English +%1 +. +MessageId=57093 +Language=English +%1 +. +MessageId=57094 +Language=English +%1 +. +MessageId=57095 +Language=English +%1 +. +MessageId=57096 +Language=English +%1 +. +MessageId=57097 +Language=English +%1 +. +MessageId=57098 +Language=English +%1 +. +MessageId=57099 +Language=English +%1 +. +MessageId=57100 +Language=English +%1 +. +MessageId=57101 +Language=English +%1 +. +MessageId=57102 +Language=English +%1 +. +MessageId=57103 +Language=English +%1 +. +MessageId=57104 +Language=English +%1 +. +MessageId=57105 +Language=English +%1 +. +MessageId=57106 +Language=English +%1 +. +MessageId=57107 +Language=English +%1 +. +MessageId=57108 +Language=English +%1 +. +MessageId=57109 +Language=English +%1 +. +MessageId=57110 +Language=English +%1 +. +MessageId=57111 +Language=English +%1 +. +MessageId=57112 +Language=English +%1 +. +MessageId=57113 +Language=English +%1 +. +MessageId=57114 +Language=English +%1 +. +MessageId=57115 +Language=English +%1 +. +MessageId=57116 +Language=English +%1 +. +MessageId=57117 +Language=English +%1 +. +MessageId=57118 +Language=English +%1 +. +MessageId=57119 +Language=English +%1 +. +MessageId=57120 +Language=English +%1 +. +MessageId=57121 +Language=English +%1 +. +MessageId=57122 +Language=English +%1 +. +MessageId=57123 +Language=English +%1 +. +MessageId=57124 +Language=English +%1 +. +MessageId=57125 +Language=English +%1 +. +MessageId=57126 +Language=English +%1 +. +MessageId=57127 +Language=English +%1 +. +MessageId=57128 +Language=English +%1 +. +MessageId=57129 +Language=English +%1 +. +MessageId=57130 +Language=English +%1 +. +MessageId=57131 +Language=English +%1 +. +MessageId=57132 +Language=English +%1 +. +MessageId=57133 +Language=English +%1 +. +MessageId=57134 +Language=English +%1 +. +MessageId=57135 +Language=English +%1 +. +MessageId=57136 +Language=English +%1 +. +MessageId=57137 +Language=English +%1 +. +MessageId=57138 +Language=English +%1 +. +MessageId=57139 +Language=English +%1 +. +MessageId=57140 +Language=English +%1 +. +MessageId=57141 +Language=English +%1 +. +MessageId=57142 +Language=English +%1 +. +MessageId=57143 +Language=English +%1 +. +MessageId=57144 +Language=English +%1 +. +MessageId=57145 +Language=English +%1 +. +MessageId=57146 +Language=English +%1 +. +MessageId=57147 +Language=English +%1 +. +MessageId=57148 +Language=English +%1 +. +MessageId=57149 +Language=English +%1 +. +MessageId=57150 +Language=English +%1 +. +MessageId=57151 +Language=English +%1 +. +MessageId=57152 +Language=English +%1 +. +MessageId=57153 +Language=English +%1 +. +MessageId=57154 +Language=English +%1 +. +MessageId=57155 +Language=English +%1 +. +MessageId=57156 +Language=English +%1 +. +MessageId=57157 +Language=English +%1 +. +MessageId=57158 +Language=English +%1 +. +MessageId=57159 +Language=English +%1 +. +MessageId=57160 +Language=English +%1 +. +MessageId=57161 +Language=English +%1 +. +MessageId=57162 +Language=English +%1 +. +MessageId=57163 +Language=English +%1 +. +MessageId=57164 +Language=English +%1 +. +MessageId=57165 +Language=English +%1 +. +MessageId=57166 +Language=English +%1 +. +MessageId=57167 +Language=English +%1 +. +MessageId=57168 +Language=English +%1 +. +MessageId=57169 +Language=English +%1 +. +MessageId=57170 +Language=English +%1 +. +MessageId=57171 +Language=English +%1 +. +MessageId=57172 +Language=English +%1 +. +MessageId=57173 +Language=English +%1 +. +MessageId=57174 +Language=English +%1 +. +MessageId=57175 +Language=English +%1 +. +MessageId=57176 +Language=English +%1 +. +MessageId=57177 +Language=English +%1 +. +MessageId=57178 +Language=English +%1 +. +MessageId=57179 +Language=English +%1 +. +MessageId=57180 +Language=English +%1 +. +MessageId=57181 +Language=English +%1 +. +MessageId=57182 +Language=English +%1 +. +MessageId=57183 +Language=English +%1 +. +MessageId=57184 +Language=English +%1 +. +MessageId=57185 +Language=English +%1 +. +MessageId=57186 +Language=English +%1 +. +MessageId=57187 +Language=English +%1 +. +MessageId=57188 +Language=English +%1 +. +MessageId=57189 +Language=English +%1 +. +MessageId=57190 +Language=English +%1 +. +MessageId=57191 +Language=English +%1 +. +MessageId=57192 +Language=English +%1 +. +MessageId=57193 +Language=English +%1 +. +MessageId=57194 +Language=English +%1 +. +MessageId=57195 +Language=English +%1 +. +MessageId=57196 +Language=English +%1 +. +MessageId=57197 +Language=English +%1 +. +MessageId=57198 +Language=English +%1 +. +MessageId=57199 +Language=English +%1 +. +MessageId=57200 +Language=English +%1 +. +MessageId=57201 +Language=English +%1 +. +MessageId=57202 +Language=English +%1 +. +MessageId=57203 +Language=English +%1 +. +MessageId=57204 +Language=English +%1 +. +MessageId=57205 +Language=English +%1 +. +MessageId=57206 +Language=English +%1 +. +MessageId=57207 +Language=English +%1 +. +MessageId=57208 +Language=English +%1 +. +MessageId=57209 +Language=English +%1 +. +MessageId=57210 +Language=English +%1 +. +MessageId=57211 +Language=English +%1 +. +MessageId=57212 +Language=English +%1 +. +MessageId=57213 +Language=English +%1 +. +MessageId=57214 +Language=English +%1 +. +MessageId=57215 +Language=English +%1 +. +MessageId=57216 +Language=English +%1 +. +MessageId=57217 +Language=English +%1 +. +MessageId=57218 +Language=English +%1 +. +MessageId=57219 +Language=English +%1 +. +MessageId=57220 +Language=English +%1 +. +MessageId=57221 +Language=English +%1 +. +MessageId=57222 +Language=English +%1 +. +MessageId=57223 +Language=English +%1 +. +MessageId=57224 +Language=English +%1 +. +MessageId=57225 +Language=English +%1 +. +MessageId=57226 +Language=English +%1 +. +MessageId=57227 +Language=English +%1 +. +MessageId=57228 +Language=English +%1 +. +MessageId=57229 +Language=English +%1 +. +MessageId=57230 +Language=English +%1 +. +MessageId=57231 +Language=English +%1 +. +MessageId=57232 +Language=English +%1 +. +MessageId=57233 +Language=English +%1 +. +MessageId=57234 +Language=English +%1 +. +MessageId=57235 +Language=English +%1 +. +MessageId=57236 +Language=English +%1 +. +MessageId=57237 +Language=English +%1 +. +MessageId=57238 +Language=English +%1 +. +MessageId=57239 +Language=English +%1 +. +MessageId=57240 +Language=English +%1 +. +MessageId=57241 +Language=English +%1 +. +MessageId=57242 +Language=English +%1 +. +MessageId=57243 +Language=English +%1 +. +MessageId=57244 +Language=English +%1 +. +MessageId=57245 +Language=English +%1 +. +MessageId=57246 +Language=English +%1 +. +MessageId=57247 +Language=English +%1 +. +MessageId=57248 +Language=English +%1 +. +MessageId=57249 +Language=English +%1 +. +MessageId=57250 +Language=English +%1 +. +MessageId=57251 +Language=English +%1 +. +MessageId=57252 +Language=English +%1 +. +MessageId=57253 +Language=English +%1 +. +MessageId=57254 +Language=English +%1 +. +MessageId=57255 +Language=English +%1 +. +MessageId=57256 +Language=English +%1 +. +MessageId=57257 +Language=English +%1 +. +MessageId=57258 +Language=English +%1 +. +MessageId=57259 +Language=English +%1 +. +MessageId=57260 +Language=English +%1 +. +MessageId=57261 +Language=English +%1 +. +MessageId=57262 +Language=English +%1 +. +MessageId=57263 +Language=English +%1 +. +MessageId=57264 +Language=English +%1 +. +MessageId=57265 +Language=English +%1 +. +MessageId=57266 +Language=English +%1 +. +MessageId=57267 +Language=English +%1 +. +MessageId=57268 +Language=English +%1 +. +MessageId=57269 +Language=English +%1 +. +MessageId=57270 +Language=English +%1 +. +MessageId=57271 +Language=English +%1 +. +MessageId=57272 +Language=English +%1 +. +MessageId=57273 +Language=English +%1 +. +MessageId=57274 +Language=English +%1 +. +MessageId=57275 +Language=English +%1 +. +MessageId=57276 +Language=English +%1 +. +MessageId=57277 +Language=English +%1 +. +MessageId=57278 +Language=English +%1 +. +MessageId=57279 +Language=English +%1 +. +MessageId=57280 +Language=English +%1 +. +MessageId=57281 +Language=English +%1 +. +MessageId=57282 +Language=English +%1 +. +MessageId=57283 +Language=English +%1 +. +MessageId=57284 +Language=English +%1 +. +MessageId=57285 +Language=English +%1 +. +MessageId=57286 +Language=English +%1 +. +MessageId=57287 +Language=English +%1 +. +MessageId=57288 +Language=English +%1 +. +MessageId=57289 +Language=English +%1 +. +MessageId=57290 +Language=English +%1 +. +MessageId=57291 +Language=English +%1 +. +MessageId=57292 +Language=English +%1 +. +MessageId=57293 +Language=English +%1 +. +MessageId=57294 +Language=English +%1 +. +MessageId=57295 +Language=English +%1 +. +MessageId=57296 +Language=English +%1 +. +MessageId=57297 +Language=English +%1 +. +MessageId=57298 +Language=English +%1 +. +MessageId=57299 +Language=English +%1 +. +MessageId=57300 +Language=English +%1 +. +MessageId=57301 +Language=English +%1 +. +MessageId=57302 +Language=English +%1 +. +MessageId=57303 +Language=English +%1 +. +MessageId=57304 +Language=English +%1 +. +MessageId=57305 +Language=English +%1 +. +MessageId=57306 +Language=English +%1 +. +MessageId=57307 +Language=English +%1 +. +MessageId=57308 +Language=English +%1 +. +MessageId=57309 +Language=English +%1 +. +MessageId=57310 +Language=English +%1 +. +MessageId=57311 +Language=English +%1 +. +MessageId=57312 +Language=English +%1 +. +MessageId=57313 +Language=English +%1 +. +MessageId=57314 +Language=English +%1 +. +MessageId=57315 +Language=English +%1 +. +MessageId=57316 +Language=English +%1 +. +MessageId=57317 +Language=English +%1 +. +MessageId=57318 +Language=English +%1 +. +MessageId=57319 +Language=English +%1 +. +MessageId=57320 +Language=English +%1 +. +MessageId=57321 +Language=English +%1 +. +MessageId=57322 +Language=English +%1 +. +MessageId=57323 +Language=English +%1 +. +MessageId=57324 +Language=English +%1 +. +MessageId=57325 +Language=English +%1 +. +MessageId=57326 +Language=English +%1 +. +MessageId=57327 +Language=English +%1 +. +MessageId=57328 +Language=English +%1 +. +MessageId=57329 +Language=English +%1 +. +MessageId=57330 +Language=English +%1 +. +MessageId=57331 +Language=English +%1 +. +MessageId=57332 +Language=English +%1 +. +MessageId=57333 +Language=English +%1 +. +MessageId=57334 +Language=English +%1 +. +MessageId=57335 +Language=English +%1 +. +MessageId=57336 +Language=English +%1 +. +MessageId=57337 +Language=English +%1 +. +MessageId=57338 +Language=English +%1 +. +MessageId=57339 +Language=English +%1 +. +MessageId=57340 +Language=English +%1 +. +MessageId=57341 +Language=English +%1 +. +MessageId=57342 +Language=English +%1 +. +MessageId=57343 +Language=English +%1 +. +MessageId=57344 +Language=English +%1 +. +MessageId=57345 +Language=English +%1 +. +MessageId=57346 +Language=English +%1 +. +MessageId=57347 +Language=English +%1 +. +MessageId=57348 +Language=English +%1 +. +MessageId=57349 +Language=English +%1 +. +MessageId=57350 +Language=English +%1 +. +MessageId=57351 +Language=English +%1 +. +MessageId=57352 +Language=English +%1 +. +MessageId=57353 +Language=English +%1 +. +MessageId=57354 +Language=English +%1 +. +MessageId=57355 +Language=English +%1 +. +MessageId=57356 +Language=English +%1 +. +MessageId=57357 +Language=English +%1 +. +MessageId=57358 +Language=English +%1 +. +MessageId=57359 +Language=English +%1 +. +MessageId=57360 +Language=English +%1 +. +MessageId=57361 +Language=English +%1 +. +MessageId=57362 +Language=English +%1 +. +MessageId=57363 +Language=English +%1 +. +MessageId=57364 +Language=English +%1 +. +MessageId=57365 +Language=English +%1 +. +MessageId=57366 +Language=English +%1 +. +MessageId=57367 +Language=English +%1 +. +MessageId=57368 +Language=English +%1 +. +MessageId=57369 +Language=English +%1 +. +MessageId=57370 +Language=English +%1 +. +MessageId=57371 +Language=English +%1 +. +MessageId=57372 +Language=English +%1 +. +MessageId=57373 +Language=English +%1 +. +MessageId=57374 +Language=English +%1 +. +MessageId=57375 +Language=English +%1 +. +MessageId=57376 +Language=English +%1 +. +MessageId=57377 +Language=English +%1 +. +MessageId=57378 +Language=English +%1 +. +MessageId=57379 +Language=English +%1 +. +MessageId=57380 +Language=English +%1 +. +MessageId=57381 +Language=English +%1 +. +MessageId=57382 +Language=English +%1 +. +MessageId=57383 +Language=English +%1 +. +MessageId=57384 +Language=English +%1 +. +MessageId=57385 +Language=English +%1 +. +MessageId=57386 +Language=English +%1 +. +MessageId=57387 +Language=English +%1 +. +MessageId=57388 +Language=English +%1 +. +MessageId=57389 +Language=English +%1 +. +MessageId=57390 +Language=English +%1 +. +MessageId=57391 +Language=English +%1 +. +MessageId=57392 +Language=English +%1 +. +MessageId=57393 +Language=English +%1 +. +MessageId=57394 +Language=English +%1 +. +MessageId=57395 +Language=English +%1 +. +MessageId=57396 +Language=English +%1 +. +MessageId=57397 +Language=English +%1 +. +MessageId=57398 +Language=English +%1 +. +MessageId=57399 +Language=English +%1 +. +MessageId=57400 +Language=English +%1 +. +MessageId=57401 +Language=English +%1 +. +MessageId=57402 +Language=English +%1 +. +MessageId=57403 +Language=English +%1 +. +MessageId=57404 +Language=English +%1 +. +MessageId=57405 +Language=English +%1 +. +MessageId=57406 +Language=English +%1 +. +MessageId=57407 +Language=English +%1 +. +MessageId=57408 +Language=English +%1 +. +MessageId=57409 +Language=English +%1 +. +MessageId=57410 +Language=English +%1 +. +MessageId=57411 +Language=English +%1 +. +MessageId=57412 +Language=English +%1 +. +MessageId=57413 +Language=English +%1 +. +MessageId=57414 +Language=English +%1 +. +MessageId=57415 +Language=English +%1 +. +MessageId=57416 +Language=English +%1 +. +MessageId=57417 +Language=English +%1 +. +MessageId=57418 +Language=English +%1 +. +MessageId=57419 +Language=English +%1 +. +MessageId=57420 +Language=English +%1 +. +MessageId=57421 +Language=English +%1 +. +MessageId=57422 +Language=English +%1 +. +MessageId=57423 +Language=English +%1 +. +MessageId=57424 +Language=English +%1 +. +MessageId=57425 +Language=English +%1 +. +MessageId=57426 +Language=English +%1 +. +MessageId=57427 +Language=English +%1 +. +MessageId=57428 +Language=English +%1 +. +MessageId=57429 +Language=English +%1 +. +MessageId=57430 +Language=English +%1 +. +MessageId=57431 +Language=English +%1 +. +MessageId=57432 +Language=English +%1 +. +MessageId=57433 +Language=English +%1 +. +MessageId=57434 +Language=English +%1 +. +MessageId=57435 +Language=English +%1 +. +MessageId=57436 +Language=English +%1 +. +MessageId=57437 +Language=English +%1 +. +MessageId=57438 +Language=English +%1 +. +MessageId=57439 +Language=English +%1 +. +MessageId=57440 +Language=English +%1 +. +MessageId=57441 +Language=English +%1 +. +MessageId=57442 +Language=English +%1 +. +MessageId=57443 +Language=English +%1 +. +MessageId=57444 +Language=English +%1 +. +MessageId=57445 +Language=English +%1 +. +MessageId=57446 +Language=English +%1 +. +MessageId=57447 +Language=English +%1 +. +MessageId=57448 +Language=English +%1 +. +MessageId=57449 +Language=English +%1 +. +MessageId=57450 +Language=English +%1 +. +MessageId=57451 +Language=English +%1 +. +MessageId=57452 +Language=English +%1 +. +MessageId=57453 +Language=English +%1 +. +MessageId=57454 +Language=English +%1 +. +MessageId=57455 +Language=English +%1 +. +MessageId=57456 +Language=English +%1 +. +MessageId=57457 +Language=English +%1 +. +MessageId=57458 +Language=English +%1 +. +MessageId=57459 +Language=English +%1 +. +MessageId=57460 +Language=English +%1 +. +MessageId=57461 +Language=English +%1 +. +MessageId=57462 +Language=English +%1 +. +MessageId=57463 +Language=English +%1 +. +MessageId=57464 +Language=English +%1 +. +MessageId=57465 +Language=English +%1 +. +MessageId=57466 +Language=English +%1 +. +MessageId=57467 +Language=English +%1 +. +MessageId=57468 +Language=English +%1 +. +MessageId=57469 +Language=English +%1 +. +MessageId=57470 +Language=English +%1 +. +MessageId=57471 +Language=English +%1 +. +MessageId=57472 +Language=English +%1 +. +MessageId=57473 +Language=English +%1 +. +MessageId=57474 +Language=English +%1 +. +MessageId=57475 +Language=English +%1 +. +MessageId=57476 +Language=English +%1 +. +MessageId=57477 +Language=English +%1 +. +MessageId=57478 +Language=English +%1 +. +MessageId=57479 +Language=English +%1 +. +MessageId=57480 +Language=English +%1 +. +MessageId=57481 +Language=English +%1 +. +MessageId=57482 +Language=English +%1 +. +MessageId=57483 +Language=English +%1 +. +MessageId=57484 +Language=English +%1 +. +MessageId=57485 +Language=English +%1 +. +MessageId=57486 +Language=English +%1 +. +MessageId=57487 +Language=English +%1 +. +MessageId=57488 +Language=English +%1 +. +MessageId=57489 +Language=English +%1 +. +MessageId=57490 +Language=English +%1 +. +MessageId=57491 +Language=English +%1 +. +MessageId=57492 +Language=English +%1 +. +MessageId=57493 +Language=English +%1 +. +MessageId=57494 +Language=English +%1 +. +MessageId=57495 +Language=English +%1 +. +MessageId=57496 +Language=English +%1 +. +MessageId=57497 +Language=English +%1 +. +MessageId=57498 +Language=English +%1 +. +MessageId=57499 +Language=English +%1 +. +MessageId=57500 +Language=English +%1 +. +MessageId=57501 +Language=English +%1 +. +MessageId=57502 +Language=English +%1 +. +MessageId=57503 +Language=English +%1 +. +MessageId=57504 +Language=English +%1 +. +MessageId=57505 +Language=English +%1 +. +MessageId=57506 +Language=English +%1 +. +MessageId=57507 +Language=English +%1 +. +MessageId=57508 +Language=English +%1 +. +MessageId=57509 +Language=English +%1 +. +MessageId=57510 +Language=English +%1 +. +MessageId=57511 +Language=English +%1 +. +MessageId=57512 +Language=English +%1 +. +MessageId=57513 +Language=English +%1 +. +MessageId=57514 +Language=English +%1 +. +MessageId=57515 +Language=English +%1 +. +MessageId=57516 +Language=English +%1 +. +MessageId=57517 +Language=English +%1 +. +MessageId=57518 +Language=English +%1 +. +MessageId=57519 +Language=English +%1 +. +MessageId=57520 +Language=English +%1 +. +MessageId=57521 +Language=English +%1 +. +MessageId=57522 +Language=English +%1 +. +MessageId=57523 +Language=English +%1 +. +MessageId=57524 +Language=English +%1 +. +MessageId=57525 +Language=English +%1 +. +MessageId=57526 +Language=English +%1 +. +MessageId=57527 +Language=English +%1 +. +MessageId=57528 +Language=English +%1 +. +MessageId=57529 +Language=English +%1 +. +MessageId=57530 +Language=English +%1 +. +MessageId=57531 +Language=English +%1 +. +MessageId=57532 +Language=English +%1 +. +MessageId=57533 +Language=English +%1 +. +MessageId=57534 +Language=English +%1 +. +MessageId=57535 +Language=English +%1 +. +MessageId=57536 +Language=English +%1 +. +MessageId=57537 +Language=English +%1 +. +MessageId=57538 +Language=English +%1 +. +MessageId=57539 +Language=English +%1 +. +MessageId=57540 +Language=English +%1 +. +MessageId=57541 +Language=English +%1 +. +MessageId=57542 +Language=English +%1 +. +MessageId=57543 +Language=English +%1 +. +MessageId=57544 +Language=English +%1 +. +MessageId=57545 +Language=English +%1 +. +MessageId=57546 +Language=English +%1 +. +MessageId=57547 +Language=English +%1 +. +MessageId=57548 +Language=English +%1 +. +MessageId=57549 +Language=English +%1 +. +MessageId=57550 +Language=English +%1 +. +MessageId=57551 +Language=English +%1 +. +MessageId=57552 +Language=English +%1 +. +MessageId=57553 +Language=English +%1 +. +MessageId=57554 +Language=English +%1 +. +MessageId=57555 +Language=English +%1 +. +MessageId=57556 +Language=English +%1 +. +MessageId=57557 +Language=English +%1 +. +MessageId=57558 +Language=English +%1 +. +MessageId=57559 +Language=English +%1 +. +MessageId=57560 +Language=English +%1 +. +MessageId=57561 +Language=English +%1 +. +MessageId=57562 +Language=English +%1 +. +MessageId=57563 +Language=English +%1 +. +MessageId=57564 +Language=English +%1 +. +MessageId=57565 +Language=English +%1 +. +MessageId=57566 +Language=English +%1 +. +MessageId=57567 +Language=English +%1 +. +MessageId=57568 +Language=English +%1 +. +MessageId=57569 +Language=English +%1 +. +MessageId=57570 +Language=English +%1 +. +MessageId=57571 +Language=English +%1 +. +MessageId=57572 +Language=English +%1 +. +MessageId=57573 +Language=English +%1 +. +MessageId=57574 +Language=English +%1 +. +MessageId=57575 +Language=English +%1 +. +MessageId=57576 +Language=English +%1 +. +MessageId=57577 +Language=English +%1 +. +MessageId=57578 +Language=English +%1 +. +MessageId=57579 +Language=English +%1 +. +MessageId=57580 +Language=English +%1 +. +MessageId=57581 +Language=English +%1 +. +MessageId=57582 +Language=English +%1 +. +MessageId=57583 +Language=English +%1 +. +MessageId=57584 +Language=English +%1 +. +MessageId=57585 +Language=English +%1 +. +MessageId=57586 +Language=English +%1 +. +MessageId=57587 +Language=English +%1 +. +MessageId=57588 +Language=English +%1 +. +MessageId=57589 +Language=English +%1 +. +MessageId=57590 +Language=English +%1 +. +MessageId=57591 +Language=English +%1 +. +MessageId=57592 +Language=English +%1 +. +MessageId=57593 +Language=English +%1 +. +MessageId=57594 +Language=English +%1 +. +MessageId=57595 +Language=English +%1 +. +MessageId=57596 +Language=English +%1 +. +MessageId=57597 +Language=English +%1 +. +MessageId=57598 +Language=English +%1 +. +MessageId=57599 +Language=English +%1 +. +MessageId=57600 +Language=English +%1 +. +MessageId=57601 +Language=English +%1 +. +MessageId=57602 +Language=English +%1 +. +MessageId=57603 +Language=English +%1 +. +MessageId=57604 +Language=English +%1 +. +MessageId=57605 +Language=English +%1 +. +MessageId=57606 +Language=English +%1 +. +MessageId=57607 +Language=English +%1 +. +MessageId=57608 +Language=English +%1 +. +MessageId=57609 +Language=English +%1 +. +MessageId=57610 +Language=English +%1 +. +MessageId=57611 +Language=English +%1 +. +MessageId=57612 +Language=English +%1 +. +MessageId=57613 +Language=English +%1 +. +MessageId=57614 +Language=English +%1 +. +MessageId=57615 +Language=English +%1 +. +MessageId=57616 +Language=English +%1 +. +MessageId=57617 +Language=English +%1 +. +MessageId=57618 +Language=English +%1 +. +MessageId=57619 +Language=English +%1 +. +MessageId=57620 +Language=English +%1 +. +MessageId=57621 +Language=English +%1 +. +MessageId=57622 +Language=English +%1 +. +MessageId=57623 +Language=English +%1 +. +MessageId=57624 +Language=English +%1 +. +MessageId=57625 +Language=English +%1 +. +MessageId=57626 +Language=English +%1 +. +MessageId=57627 +Language=English +%1 +. +MessageId=57628 +Language=English +%1 +. +MessageId=57629 +Language=English +%1 +. +MessageId=57630 +Language=English +%1 +. +MessageId=57631 +Language=English +%1 +. +MessageId=57632 +Language=English +%1 +. +MessageId=57633 +Language=English +%1 +. +MessageId=57634 +Language=English +%1 +. +MessageId=57635 +Language=English +%1 +. +MessageId=57636 +Language=English +%1 +. +MessageId=57637 +Language=English +%1 +. +MessageId=57638 +Language=English +%1 +. +MessageId=57639 +Language=English +%1 +. +MessageId=57640 +Language=English +%1 +. +MessageId=57641 +Language=English +%1 +. +MessageId=57642 +Language=English +%1 +. +MessageId=57643 +Language=English +%1 +. +MessageId=57644 +Language=English +%1 +. +MessageId=57645 +Language=English +%1 +. +MessageId=57646 +Language=English +%1 +. +MessageId=57647 +Language=English +%1 +. +MessageId=57648 +Language=English +%1 +. +MessageId=57649 +Language=English +%1 +. +MessageId=57650 +Language=English +%1 +. +MessageId=57651 +Language=English +%1 +. +MessageId=57652 +Language=English +%1 +. +MessageId=57653 +Language=English +%1 +. +MessageId=57654 +Language=English +%1 +. +MessageId=57655 +Language=English +%1 +. +MessageId=57656 +Language=English +%1 +. +MessageId=57657 +Language=English +%1 +. +MessageId=57658 +Language=English +%1 +. +MessageId=57659 +Language=English +%1 +. +MessageId=57660 +Language=English +%1 +. +MessageId=57661 +Language=English +%1 +. +MessageId=57662 +Language=English +%1 +. +MessageId=57663 +Language=English +%1 +. +MessageId=57664 +Language=English +%1 +. +MessageId=57665 +Language=English +%1 +. +MessageId=57666 +Language=English +%1 +. +MessageId=57667 +Language=English +%1 +. +MessageId=57668 +Language=English +%1 +. +MessageId=57669 +Language=English +%1 +. +MessageId=57670 +Language=English +%1 +. +MessageId=57671 +Language=English +%1 +. +MessageId=57672 +Language=English +%1 +. +MessageId=57673 +Language=English +%1 +. +MessageId=57674 +Language=English +%1 +. +MessageId=57675 +Language=English +%1 +. +MessageId=57676 +Language=English +%1 +. +MessageId=57677 +Language=English +%1 +. +MessageId=57678 +Language=English +%1 +. +MessageId=57679 +Language=English +%1 +. +MessageId=57680 +Language=English +%1 +. +MessageId=57681 +Language=English +%1 +. +MessageId=57682 +Language=English +%1 +. +MessageId=57683 +Language=English +%1 +. +MessageId=57684 +Language=English +%1 +. +MessageId=57685 +Language=English +%1 +. +MessageId=57686 +Language=English +%1 +. +MessageId=57687 +Language=English +%1 +. +MessageId=57688 +Language=English +%1 +. +MessageId=57689 +Language=English +%1 +. +MessageId=57690 +Language=English +%1 +. +MessageId=57691 +Language=English +%1 +. +MessageId=57692 +Language=English +%1 +. +MessageId=57693 +Language=English +%1 +. +MessageId=57694 +Language=English +%1 +. +MessageId=57695 +Language=English +%1 +. +MessageId=57696 +Language=English +%1 +. +MessageId=57697 +Language=English +%1 +. +MessageId=57698 +Language=English +%1 +. +MessageId=57699 +Language=English +%1 +. +MessageId=57700 +Language=English +%1 +. +MessageId=57701 +Language=English +%1 +. +MessageId=57702 +Language=English +%1 +. +MessageId=57703 +Language=English +%1 +. +MessageId=57704 +Language=English +%1 +. +MessageId=57705 +Language=English +%1 +. +MessageId=57706 +Language=English +%1 +. +MessageId=57707 +Language=English +%1 +. +MessageId=57708 +Language=English +%1 +. +MessageId=57709 +Language=English +%1 +. +MessageId=57710 +Language=English +%1 +. +MessageId=57711 +Language=English +%1 +. +MessageId=57712 +Language=English +%1 +. +MessageId=57713 +Language=English +%1 +. +MessageId=57714 +Language=English +%1 +. +MessageId=57715 +Language=English +%1 +. +MessageId=57716 +Language=English +%1 +. +MessageId=57717 +Language=English +%1 +. +MessageId=57718 +Language=English +%1 +. +MessageId=57719 +Language=English +%1 +. +MessageId=57720 +Language=English +%1 +. +MessageId=57721 +Language=English +%1 +. +MessageId=57722 +Language=English +%1 +. +MessageId=57723 +Language=English +%1 +. +MessageId=57724 +Language=English +%1 +. +MessageId=57725 +Language=English +%1 +. +MessageId=57726 +Language=English +%1 +. +MessageId=57727 +Language=English +%1 +. +MessageId=57728 +Language=English +%1 +. +MessageId=57729 +Language=English +%1 +. +MessageId=57730 +Language=English +%1 +. +MessageId=57731 +Language=English +%1 +. +MessageId=57732 +Language=English +%1 +. +MessageId=57733 +Language=English +%1 +. +MessageId=57734 +Language=English +%1 +. +MessageId=57735 +Language=English +%1 +. +MessageId=57736 +Language=English +%1 +. +MessageId=57737 +Language=English +%1 +. +MessageId=57738 +Language=English +%1 +. +MessageId=57739 +Language=English +%1 +. +MessageId=57740 +Language=English +%1 +. +MessageId=57741 +Language=English +%1 +. +MessageId=57742 +Language=English +%1 +. +MessageId=57743 +Language=English +%1 +. +MessageId=57744 +Language=English +%1 +. +MessageId=57745 +Language=English +%1 +. +MessageId=57746 +Language=English +%1 +. +MessageId=57747 +Language=English +%1 +. +MessageId=57748 +Language=English +%1 +. +MessageId=57749 +Language=English +%1 +. +MessageId=57750 +Language=English +%1 +. +MessageId=57751 +Language=English +%1 +. +MessageId=57752 +Language=English +%1 +. +MessageId=57753 +Language=English +%1 +. +MessageId=57754 +Language=English +%1 +. +MessageId=57755 +Language=English +%1 +. +MessageId=57756 +Language=English +%1 +. +MessageId=57757 +Language=English +%1 +. +MessageId=57758 +Language=English +%1 +. +MessageId=57759 +Language=English +%1 +. +MessageId=57760 +Language=English +%1 +. +MessageId=57761 +Language=English +%1 +. +MessageId=57762 +Language=English +%1 +. +MessageId=57763 +Language=English +%1 +. +MessageId=57764 +Language=English +%1 +. +MessageId=57765 +Language=English +%1 +. +MessageId=57766 +Language=English +%1 +. +MessageId=57767 +Language=English +%1 +. +MessageId=57768 +Language=English +%1 +. +MessageId=57769 +Language=English +%1 +. +MessageId=57770 +Language=English +%1 +. +MessageId=57771 +Language=English +%1 +. +MessageId=57772 +Language=English +%1 +. +MessageId=57773 +Language=English +%1 +. +MessageId=57774 +Language=English +%1 +. +MessageId=57775 +Language=English +%1 +. +MessageId=57776 +Language=English +%1 +. +MessageId=57777 +Language=English +%1 +. +MessageId=57778 +Language=English +%1 +. +MessageId=57779 +Language=English +%1 +. +MessageId=57780 +Language=English +%1 +. +MessageId=57781 +Language=English +%1 +. +MessageId=57782 +Language=English +%1 +. +MessageId=57783 +Language=English +%1 +. +MessageId=57784 +Language=English +%1 +. +MessageId=57785 +Language=English +%1 +. +MessageId=57786 +Language=English +%1 +. +MessageId=57787 +Language=English +%1 +. +MessageId=57788 +Language=English +%1 +. +MessageId=57789 +Language=English +%1 +. +MessageId=57790 +Language=English +%1 +. +MessageId=57791 +Language=English +%1 +. +MessageId=57792 +Language=English +%1 +. +MessageId=57793 +Language=English +%1 +. +MessageId=57794 +Language=English +%1 +. +MessageId=57795 +Language=English +%1 +. +MessageId=57796 +Language=English +%1 +. +MessageId=57797 +Language=English +%1 +. +MessageId=57798 +Language=English +%1 +. +MessageId=57799 +Language=English +%1 +. +MessageId=57800 +Language=English +%1 +. +MessageId=57801 +Language=English +%1 +. +MessageId=57802 +Language=English +%1 +. +MessageId=57803 +Language=English +%1 +. +MessageId=57804 +Language=English +%1 +. +MessageId=57805 +Language=English +%1 +. +MessageId=57806 +Language=English +%1 +. +MessageId=57807 +Language=English +%1 +. +MessageId=57808 +Language=English +%1 +. +MessageId=57809 +Language=English +%1 +. +MessageId=57810 +Language=English +%1 +. +MessageId=57811 +Language=English +%1 +. +MessageId=57812 +Language=English +%1 +. +MessageId=57813 +Language=English +%1 +. +MessageId=57814 +Language=English +%1 +. +MessageId=57815 +Language=English +%1 +. +MessageId=57816 +Language=English +%1 +. +MessageId=57817 +Language=English +%1 +. +MessageId=57818 +Language=English +%1 +. +MessageId=57819 +Language=English +%1 +. +MessageId=57820 +Language=English +%1 +. +MessageId=57821 +Language=English +%1 +. +MessageId=57822 +Language=English +%1 +. +MessageId=57823 +Language=English +%1 +. +MessageId=57824 +Language=English +%1 +. +MessageId=57825 +Language=English +%1 +. +MessageId=57826 +Language=English +%1 +. +MessageId=57827 +Language=English +%1 +. +MessageId=57828 +Language=English +%1 +. +MessageId=57829 +Language=English +%1 +. +MessageId=57830 +Language=English +%1 +. +MessageId=57831 +Language=English +%1 +. +MessageId=57832 +Language=English +%1 +. +MessageId=57833 +Language=English +%1 +. +MessageId=57834 +Language=English +%1 +. +MessageId=57835 +Language=English +%1 +. +MessageId=57836 +Language=English +%1 +. +MessageId=57837 +Language=English +%1 +. +MessageId=57838 +Language=English +%1 +. +MessageId=57839 +Language=English +%1 +. +MessageId=57840 +Language=English +%1 +. +MessageId=57841 +Language=English +%1 +. +MessageId=57842 +Language=English +%1 +. +MessageId=57843 +Language=English +%1 +. +MessageId=57844 +Language=English +%1 +. +MessageId=57845 +Language=English +%1 +. +MessageId=57846 +Language=English +%1 +. +MessageId=57847 +Language=English +%1 +. +MessageId=57848 +Language=English +%1 +. +MessageId=57849 +Language=English +%1 +. +MessageId=57850 +Language=English +%1 +. +MessageId=57851 +Language=English +%1 +. +MessageId=57852 +Language=English +%1 +. +MessageId=57853 +Language=English +%1 +. +MessageId=57854 +Language=English +%1 +. +MessageId=57855 +Language=English +%1 +. +MessageId=57856 +Language=English +%1 +. +MessageId=57857 +Language=English +%1 +. +MessageId=57858 +Language=English +%1 +. +MessageId=57859 +Language=English +%1 +. +MessageId=57860 +Language=English +%1 +. +MessageId=57861 +Language=English +%1 +. +MessageId=57862 +Language=English +%1 +. +MessageId=57863 +Language=English +%1 +. +MessageId=57864 +Language=English +%1 +. +MessageId=57865 +Language=English +%1 +. +MessageId=57866 +Language=English +%1 +. +MessageId=57867 +Language=English +%1 +. +MessageId=57868 +Language=English +%1 +. +MessageId=57869 +Language=English +%1 +. +MessageId=57870 +Language=English +%1 +. +MessageId=57871 +Language=English +%1 +. +MessageId=57872 +Language=English +%1 +. +MessageId=57873 +Language=English +%1 +. +MessageId=57874 +Language=English +%1 +. +MessageId=57875 +Language=English +%1 +. +MessageId=57876 +Language=English +%1 +. +MessageId=57877 +Language=English +%1 +. +MessageId=57878 +Language=English +%1 +. +MessageId=57879 +Language=English +%1 +. +MessageId=57880 +Language=English +%1 +. +MessageId=57881 +Language=English +%1 +. +MessageId=57882 +Language=English +%1 +. +MessageId=57883 +Language=English +%1 +. +MessageId=57884 +Language=English +%1 +. +MessageId=57885 +Language=English +%1 +. +MessageId=57886 +Language=English +%1 +. +MessageId=57887 +Language=English +%1 +. +MessageId=57888 +Language=English +%1 +. +MessageId=57889 +Language=English +%1 +. +MessageId=57890 +Language=English +%1 +. +MessageId=57891 +Language=English +%1 +. +MessageId=57892 +Language=English +%1 +. +MessageId=57893 +Language=English +%1 +. +MessageId=57894 +Language=English +%1 +. +MessageId=57895 +Language=English +%1 +. +MessageId=57896 +Language=English +%1 +. +MessageId=57897 +Language=English +%1 +. +MessageId=57898 +Language=English +%1 +. +MessageId=57899 +Language=English +%1 +. +MessageId=57900 +Language=English +%1 +. +MessageId=57901 +Language=English +%1 +. +MessageId=57902 +Language=English +%1 +. +MessageId=57903 +Language=English +%1 +. +MessageId=57904 +Language=English +%1 +. +MessageId=57905 +Language=English +%1 +. +MessageId=57906 +Language=English +%1 +. +MessageId=57907 +Language=English +%1 +. +MessageId=57908 +Language=English +%1 +. +MessageId=57909 +Language=English +%1 +. +MessageId=57910 +Language=English +%1 +. +MessageId=57911 +Language=English +%1 +. +MessageId=57912 +Language=English +%1 +. +MessageId=57913 +Language=English +%1 +. +MessageId=57914 +Language=English +%1 +. +MessageId=57915 +Language=English +%1 +. +MessageId=57916 +Language=English +%1 +. +MessageId=57917 +Language=English +%1 +. +MessageId=57918 +Language=English +%1 +. +MessageId=57919 +Language=English +%1 +. +MessageId=57920 +Language=English +%1 +. +MessageId=57921 +Language=English +%1 +. +MessageId=57922 +Language=English +%1 +. +MessageId=57923 +Language=English +%1 +. +MessageId=57924 +Language=English +%1 +. +MessageId=57925 +Language=English +%1 +. +MessageId=57926 +Language=English +%1 +. +MessageId=57927 +Language=English +%1 +. +MessageId=57928 +Language=English +%1 +. +MessageId=57929 +Language=English +%1 +. +MessageId=57930 +Language=English +%1 +. +MessageId=57931 +Language=English +%1 +. +MessageId=57932 +Language=English +%1 +. +MessageId=57933 +Language=English +%1 +. +MessageId=57934 +Language=English +%1 +. +MessageId=57935 +Language=English +%1 +. +MessageId=57936 +Language=English +%1 +. +MessageId=57937 +Language=English +%1 +. +MessageId=57938 +Language=English +%1 +. +MessageId=57939 +Language=English +%1 +. +MessageId=57940 +Language=English +%1 +. +MessageId=57941 +Language=English +%1 +. +MessageId=57942 +Language=English +%1 +. +MessageId=57943 +Language=English +%1 +. +MessageId=57944 +Language=English +%1 +. +MessageId=57945 +Language=English +%1 +. +MessageId=57946 +Language=English +%1 +. +MessageId=57947 +Language=English +%1 +. +MessageId=57948 +Language=English +%1 +. +MessageId=57949 +Language=English +%1 +. +MessageId=57950 +Language=English +%1 +. +MessageId=57951 +Language=English +%1 +. +MessageId=57952 +Language=English +%1 +. +MessageId=57953 +Language=English +%1 +. +MessageId=57954 +Language=English +%1 +. +MessageId=57955 +Language=English +%1 +. +MessageId=57956 +Language=English +%1 +. +MessageId=57957 +Language=English +%1 +. +MessageId=57958 +Language=English +%1 +. +MessageId=57959 +Language=English +%1 +. +MessageId=57960 +Language=English +%1 +. +MessageId=57961 +Language=English +%1 +. +MessageId=57962 +Language=English +%1 +. +MessageId=57963 +Language=English +%1 +. +MessageId=57964 +Language=English +%1 +. +MessageId=57965 +Language=English +%1 +. +MessageId=57966 +Language=English +%1 +. +MessageId=57967 +Language=English +%1 +. +MessageId=57968 +Language=English +%1 +. +MessageId=57969 +Language=English +%1 +. +MessageId=57970 +Language=English +%1 +. +MessageId=57971 +Language=English +%1 +. +MessageId=57972 +Language=English +%1 +. +MessageId=57973 +Language=English +%1 +. +MessageId=57974 +Language=English +%1 +. +MessageId=57975 +Language=English +%1 +. +MessageId=57976 +Language=English +%1 +. +MessageId=57977 +Language=English +%1 +. +MessageId=57978 +Language=English +%1 +. +MessageId=57979 +Language=English +%1 +. +MessageId=57980 +Language=English +%1 +. +MessageId=57981 +Language=English +%1 +. +MessageId=57982 +Language=English +%1 +. +MessageId=57983 +Language=English +%1 +. +MessageId=57984 +Language=English +%1 +. +MessageId=57985 +Language=English +%1 +. +MessageId=57986 +Language=English +%1 +. +MessageId=57987 +Language=English +%1 +. +MessageId=57988 +Language=English +%1 +. +MessageId=57989 +Language=English +%1 +. +MessageId=57990 +Language=English +%1 +. +MessageId=57991 +Language=English +%1 +. +MessageId=57992 +Language=English +%1 +. +MessageId=57993 +Language=English +%1 +. +MessageId=57994 +Language=English +%1 +. +MessageId=57995 +Language=English +%1 +. +MessageId=57996 +Language=English +%1 +. +MessageId=57997 +Language=English +%1 +. +MessageId=57998 +Language=English +%1 +. +MessageId=57999 +Language=English +%1 +. +MessageId=58000 +Language=English +%1 +. +MessageId=58001 +Language=English +%1 +. +MessageId=58002 +Language=English +%1 +. +MessageId=58003 +Language=English +%1 +. +MessageId=58004 +Language=English +%1 +. +MessageId=58005 +Language=English +%1 +. +MessageId=58006 +Language=English +%1 +. +MessageId=58007 +Language=English +%1 +. +MessageId=58008 +Language=English +%1 +. +MessageId=58009 +Language=English +%1 +. +MessageId=58010 +Language=English +%1 +. +MessageId=58011 +Language=English +%1 +. +MessageId=58012 +Language=English +%1 +. +MessageId=58013 +Language=English +%1 +. +MessageId=58014 +Language=English +%1 +. +MessageId=58015 +Language=English +%1 +. +MessageId=58016 +Language=English +%1 +. +MessageId=58017 +Language=English +%1 +. +MessageId=58018 +Language=English +%1 +. +MessageId=58019 +Language=English +%1 +. +MessageId=58020 +Language=English +%1 +. +MessageId=58021 +Language=English +%1 +. +MessageId=58022 +Language=English +%1 +. +MessageId=58023 +Language=English +%1 +. +MessageId=58024 +Language=English +%1 +. +MessageId=58025 +Language=English +%1 +. +MessageId=58026 +Language=English +%1 +. +MessageId=58027 +Language=English +%1 +. +MessageId=58028 +Language=English +%1 +. +MessageId=58029 +Language=English +%1 +. +MessageId=58030 +Language=English +%1 +. +MessageId=58031 +Language=English +%1 +. +MessageId=58032 +Language=English +%1 +. +MessageId=58033 +Language=English +%1 +. +MessageId=58034 +Language=English +%1 +. +MessageId=58035 +Language=English +%1 +. +MessageId=58036 +Language=English +%1 +. +MessageId=58037 +Language=English +%1 +. +MessageId=58038 +Language=English +%1 +. +MessageId=58039 +Language=English +%1 +. +MessageId=58040 +Language=English +%1 +. +MessageId=58041 +Language=English +%1 +. +MessageId=58042 +Language=English +%1 +. +MessageId=58043 +Language=English +%1 +. +MessageId=58044 +Language=English +%1 +. +MessageId=58045 +Language=English +%1 +. +MessageId=58046 +Language=English +%1 +. +MessageId=58047 +Language=English +%1 +. +MessageId=58048 +Language=English +%1 +. +MessageId=58049 +Language=English +%1 +. +MessageId=58050 +Language=English +%1 +. +MessageId=58051 +Language=English +%1 +. +MessageId=58052 +Language=English +%1 +. +MessageId=58053 +Language=English +%1 +. +MessageId=58054 +Language=English +%1 +. +MessageId=58055 +Language=English +%1 +. +MessageId=58056 +Language=English +%1 +. +MessageId=58057 +Language=English +%1 +. +MessageId=58058 +Language=English +%1 +. +MessageId=58059 +Language=English +%1 +. +MessageId=58060 +Language=English +%1 +. +MessageId=58061 +Language=English +%1 +. +MessageId=58062 +Language=English +%1 +. +MessageId=58063 +Language=English +%1 +. +MessageId=58064 +Language=English +%1 +. +MessageId=58065 +Language=English +%1 +. +MessageId=58066 +Language=English +%1 +. +MessageId=58067 +Language=English +%1 +. +MessageId=58068 +Language=English +%1 +. +MessageId=58069 +Language=English +%1 +. +MessageId=58070 +Language=English +%1 +. +MessageId=58071 +Language=English +%1 +. +MessageId=58072 +Language=English +%1 +. +MessageId=58073 +Language=English +%1 +. +MessageId=58074 +Language=English +%1 +. +MessageId=58075 +Language=English +%1 +. +MessageId=58076 +Language=English +%1 +. +MessageId=58077 +Language=English +%1 +. +MessageId=58078 +Language=English +%1 +. +MessageId=58079 +Language=English +%1 +. +MessageId=58080 +Language=English +%1 +. +MessageId=58081 +Language=English +%1 +. +MessageId=58082 +Language=English +%1 +. +MessageId=58083 +Language=English +%1 +. +MessageId=58084 +Language=English +%1 +. +MessageId=58085 +Language=English +%1 +. +MessageId=58086 +Language=English +%1 +. +MessageId=58087 +Language=English +%1 +. +MessageId=58088 +Language=English +%1 +. +MessageId=58089 +Language=English +%1 +. +MessageId=58090 +Language=English +%1 +. +MessageId=58091 +Language=English +%1 +. +MessageId=58092 +Language=English +%1 +. +MessageId=58093 +Language=English +%1 +. +MessageId=58094 +Language=English +%1 +. +MessageId=58095 +Language=English +%1 +. +MessageId=58096 +Language=English +%1 +. +MessageId=58097 +Language=English +%1 +. +MessageId=58098 +Language=English +%1 +. +MessageId=58099 +Language=English +%1 +. +MessageId=58100 +Language=English +%1 +. +MessageId=58101 +Language=English +%1 +. +MessageId=58102 +Language=English +%1 +. +MessageId=58103 +Language=English +%1 +. +MessageId=58104 +Language=English +%1 +. +MessageId=58105 +Language=English +%1 +. +MessageId=58106 +Language=English +%1 +. +MessageId=58107 +Language=English +%1 +. +MessageId=58108 +Language=English +%1 +. +MessageId=58109 +Language=English +%1 +. +MessageId=58110 +Language=English +%1 +. +MessageId=58111 +Language=English +%1 +. +MessageId=58112 +Language=English +%1 +. +MessageId=58113 +Language=English +%1 +. +MessageId=58114 +Language=English +%1 +. +MessageId=58115 +Language=English +%1 +. +MessageId=58116 +Language=English +%1 +. +MessageId=58117 +Language=English +%1 +. +MessageId=58118 +Language=English +%1 +. +MessageId=58119 +Language=English +%1 +. +MessageId=58120 +Language=English +%1 +. +MessageId=58121 +Language=English +%1 +. +MessageId=58122 +Language=English +%1 +. +MessageId=58123 +Language=English +%1 +. +MessageId=58124 +Language=English +%1 +. +MessageId=58125 +Language=English +%1 +. +MessageId=58126 +Language=English +%1 +. +MessageId=58127 +Language=English +%1 +. +MessageId=58128 +Language=English +%1 +. +MessageId=58129 +Language=English +%1 +. +MessageId=58130 +Language=English +%1 +. +MessageId=58131 +Language=English +%1 +. +MessageId=58132 +Language=English +%1 +. +MessageId=58133 +Language=English +%1 +. +MessageId=58134 +Language=English +%1 +. +MessageId=58135 +Language=English +%1 +. +MessageId=58136 +Language=English +%1 +. +MessageId=58137 +Language=English +%1 +. +MessageId=58138 +Language=English +%1 +. +MessageId=58139 +Language=English +%1 +. +MessageId=58140 +Language=English +%1 +. +MessageId=58141 +Language=English +%1 +. +MessageId=58142 +Language=English +%1 +. +MessageId=58143 +Language=English +%1 +. +MessageId=58144 +Language=English +%1 +. +MessageId=58145 +Language=English +%1 +. +MessageId=58146 +Language=English +%1 +. +MessageId=58147 +Language=English +%1 +. +MessageId=58148 +Language=English +%1 +. +MessageId=58149 +Language=English +%1 +. +MessageId=58150 +Language=English +%1 +. +MessageId=58151 +Language=English +%1 +. +MessageId=58152 +Language=English +%1 +. +MessageId=58153 +Language=English +%1 +. +MessageId=58154 +Language=English +%1 +. +MessageId=58155 +Language=English +%1 +. +MessageId=58156 +Language=English +%1 +. +MessageId=58157 +Language=English +%1 +. +MessageId=58158 +Language=English +%1 +. +MessageId=58159 +Language=English +%1 +. +MessageId=58160 +Language=English +%1 +. +MessageId=58161 +Language=English +%1 +. +MessageId=58162 +Language=English +%1 +. +MessageId=58163 +Language=English +%1 +. +MessageId=58164 +Language=English +%1 +. +MessageId=58165 +Language=English +%1 +. +MessageId=58166 +Language=English +%1 +. +MessageId=58167 +Language=English +%1 +. +MessageId=58168 +Language=English +%1 +. +MessageId=58169 +Language=English +%1 +. +MessageId=58170 +Language=English +%1 +. +MessageId=58171 +Language=English +%1 +. +MessageId=58172 +Language=English +%1 +. +MessageId=58173 +Language=English +%1 +. +MessageId=58174 +Language=English +%1 +. +MessageId=58175 +Language=English +%1 +. +MessageId=58176 +Language=English +%1 +. +MessageId=58177 +Language=English +%1 +. +MessageId=58178 +Language=English +%1 +. +MessageId=58179 +Language=English +%1 +. +MessageId=58180 +Language=English +%1 +. +MessageId=58181 +Language=English +%1 +. +MessageId=58182 +Language=English +%1 +. +MessageId=58183 +Language=English +%1 +. +MessageId=58184 +Language=English +%1 +. +MessageId=58185 +Language=English +%1 +. +MessageId=58186 +Language=English +%1 +. +MessageId=58187 +Language=English +%1 +. +MessageId=58188 +Language=English +%1 +. +MessageId=58189 +Language=English +%1 +. +MessageId=58190 +Language=English +%1 +. +MessageId=58191 +Language=English +%1 +. +MessageId=58192 +Language=English +%1 +. +MessageId=58193 +Language=English +%1 +. +MessageId=58194 +Language=English +%1 +. +MessageId=58195 +Language=English +%1 +. +MessageId=58196 +Language=English +%1 +. +MessageId=58197 +Language=English +%1 +. +MessageId=58198 +Language=English +%1 +. +MessageId=58199 +Language=English +%1 +. +MessageId=58200 +Language=English +%1 +. +MessageId=58201 +Language=English +%1 +. +MessageId=58202 +Language=English +%1 +. +MessageId=58203 +Language=English +%1 +. +MessageId=58204 +Language=English +%1 +. +MessageId=58205 +Language=English +%1 +. +MessageId=58206 +Language=English +%1 +. +MessageId=58207 +Language=English +%1 +. +MessageId=58208 +Language=English +%1 +. +MessageId=58209 +Language=English +%1 +. +MessageId=58210 +Language=English +%1 +. +MessageId=58211 +Language=English +%1 +. +MessageId=58212 +Language=English +%1 +. +MessageId=58213 +Language=English +%1 +. +MessageId=58214 +Language=English +%1 +. +MessageId=58215 +Language=English +%1 +. +MessageId=58216 +Language=English +%1 +. +MessageId=58217 +Language=English +%1 +. +MessageId=58218 +Language=English +%1 +. +MessageId=58219 +Language=English +%1 +. +MessageId=58220 +Language=English +%1 +. +MessageId=58221 +Language=English +%1 +. +MessageId=58222 +Language=English +%1 +. +MessageId=58223 +Language=English +%1 +. +MessageId=58224 +Language=English +%1 +. +MessageId=58225 +Language=English +%1 +. +MessageId=58226 +Language=English +%1 +. +MessageId=58227 +Language=English +%1 +. +MessageId=58228 +Language=English +%1 +. +MessageId=58229 +Language=English +%1 +. +MessageId=58230 +Language=English +%1 +. +MessageId=58231 +Language=English +%1 +. +MessageId=58232 +Language=English +%1 +. +MessageId=58233 +Language=English +%1 +. +MessageId=58234 +Language=English +%1 +. +MessageId=58235 +Language=English +%1 +. +MessageId=58236 +Language=English +%1 +. +MessageId=58237 +Language=English +%1 +. +MessageId=58238 +Language=English +%1 +. +MessageId=58239 +Language=English +%1 +. +MessageId=58240 +Language=English +%1 +. +MessageId=58241 +Language=English +%1 +. +MessageId=58242 +Language=English +%1 +. +MessageId=58243 +Language=English +%1 +. +MessageId=58244 +Language=English +%1 +. +MessageId=58245 +Language=English +%1 +. +MessageId=58246 +Language=English +%1 +. +MessageId=58247 +Language=English +%1 +. +MessageId=58248 +Language=English +%1 +. +MessageId=58249 +Language=English +%1 +. +MessageId=58250 +Language=English +%1 +. +MessageId=58251 +Language=English +%1 +. +MessageId=58252 +Language=English +%1 +. +MessageId=58253 +Language=English +%1 +. +MessageId=58254 +Language=English +%1 +. +MessageId=58255 +Language=English +%1 +. +MessageId=58256 +Language=English +%1 +. +MessageId=58257 +Language=English +%1 +. +MessageId=58258 +Language=English +%1 +. +MessageId=58259 +Language=English +%1 +. +MessageId=58260 +Language=English +%1 +. +MessageId=58261 +Language=English +%1 +. +MessageId=58262 +Language=English +%1 +. +MessageId=58263 +Language=English +%1 +. +MessageId=58264 +Language=English +%1 +. +MessageId=58265 +Language=English +%1 +. +MessageId=58266 +Language=English +%1 +. +MessageId=58267 +Language=English +%1 +. +MessageId=58268 +Language=English +%1 +. +MessageId=58269 +Language=English +%1 +. +MessageId=58270 +Language=English +%1 +. +MessageId=58271 +Language=English +%1 +. +MessageId=58272 +Language=English +%1 +. +MessageId=58273 +Language=English +%1 +. +MessageId=58274 +Language=English +%1 +. +MessageId=58275 +Language=English +%1 +. +MessageId=58276 +Language=English +%1 +. +MessageId=58277 +Language=English +%1 +. +MessageId=58278 +Language=English +%1 +. +MessageId=58279 +Language=English +%1 +. +MessageId=58280 +Language=English +%1 +. +MessageId=58281 +Language=English +%1 +. +MessageId=58282 +Language=English +%1 +. +MessageId=58283 +Language=English +%1 +. +MessageId=58284 +Language=English +%1 +. +MessageId=58285 +Language=English +%1 +. +MessageId=58286 +Language=English +%1 +. +MessageId=58287 +Language=English +%1 +. +MessageId=58288 +Language=English +%1 +. +MessageId=58289 +Language=English +%1 +. +MessageId=58290 +Language=English +%1 +. +MessageId=58291 +Language=English +%1 +. +MessageId=58292 +Language=English +%1 +. +MessageId=58293 +Language=English +%1 +. +MessageId=58294 +Language=English +%1 +. +MessageId=58295 +Language=English +%1 +. +MessageId=58296 +Language=English +%1 +. +MessageId=58297 +Language=English +%1 +. +MessageId=58298 +Language=English +%1 +. +MessageId=58299 +Language=English +%1 +. +MessageId=58300 +Language=English +%1 +. +MessageId=58301 +Language=English +%1 +. +MessageId=58302 +Language=English +%1 +. +MessageId=58303 +Language=English +%1 +. +MessageId=58304 +Language=English +%1 +. +MessageId=58305 +Language=English +%1 +. +MessageId=58306 +Language=English +%1 +. +MessageId=58307 +Language=English +%1 +. +MessageId=58308 +Language=English +%1 +. +MessageId=58309 +Language=English +%1 +. +MessageId=58310 +Language=English +%1 +. +MessageId=58311 +Language=English +%1 +. +MessageId=58312 +Language=English +%1 +. +MessageId=58313 +Language=English +%1 +. +MessageId=58314 +Language=English +%1 +. +MessageId=58315 +Language=English +%1 +. +MessageId=58316 +Language=English +%1 +. +MessageId=58317 +Language=English +%1 +. +MessageId=58318 +Language=English +%1 +. +MessageId=58319 +Language=English +%1 +. +MessageId=58320 +Language=English +%1 +. +MessageId=58321 +Language=English +%1 +. +MessageId=58322 +Language=English +%1 +. +MessageId=58323 +Language=English +%1 +. +MessageId=58324 +Language=English +%1 +. +MessageId=58325 +Language=English +%1 +. +MessageId=58326 +Language=English +%1 +. +MessageId=58327 +Language=English +%1 +. +MessageId=58328 +Language=English +%1 +. +MessageId=58329 +Language=English +%1 +. +MessageId=58330 +Language=English +%1 +. +MessageId=58331 +Language=English +%1 +. +MessageId=58332 +Language=English +%1 +. +MessageId=58333 +Language=English +%1 +. +MessageId=58334 +Language=English +%1 +. +MessageId=58335 +Language=English +%1 +. +MessageId=58336 +Language=English +%1 +. +MessageId=58337 +Language=English +%1 +. +MessageId=58338 +Language=English +%1 +. +MessageId=58339 +Language=English +%1 +. +MessageId=58340 +Language=English +%1 +. +MessageId=58341 +Language=English +%1 +. +MessageId=58342 +Language=English +%1 +. +MessageId=58343 +Language=English +%1 +. +MessageId=58344 +Language=English +%1 +. +MessageId=58345 +Language=English +%1 +. +MessageId=58346 +Language=English +%1 +. +MessageId=58347 +Language=English +%1 +. +MessageId=58348 +Language=English +%1 +. +MessageId=58349 +Language=English +%1 +. +MessageId=58350 +Language=English +%1 +. +MessageId=58351 +Language=English +%1 +. +MessageId=58352 +Language=English +%1 +. +MessageId=58353 +Language=English +%1 +. +MessageId=58354 +Language=English +%1 +. +MessageId=58355 +Language=English +%1 +. +MessageId=58356 +Language=English +%1 +. +MessageId=58357 +Language=English +%1 +. +MessageId=58358 +Language=English +%1 +. +MessageId=58359 +Language=English +%1 +. +MessageId=58360 +Language=English +%1 +. +MessageId=58361 +Language=English +%1 +. +MessageId=58362 +Language=English +%1 +. +MessageId=58363 +Language=English +%1 +. +MessageId=58364 +Language=English +%1 +. +MessageId=58365 +Language=English +%1 +. +MessageId=58366 +Language=English +%1 +. +MessageId=58367 +Language=English +%1 +. +MessageId=58368 +Language=English +%1 +. +MessageId=58369 +Language=English +%1 +. +MessageId=58370 +Language=English +%1 +. +MessageId=58371 +Language=English +%1 +. +MessageId=58372 +Language=English +%1 +. +MessageId=58373 +Language=English +%1 +. +MessageId=58374 +Language=English +%1 +. +MessageId=58375 +Language=English +%1 +. +MessageId=58376 +Language=English +%1 +. +MessageId=58377 +Language=English +%1 +. +MessageId=58378 +Language=English +%1 +. +MessageId=58379 +Language=English +%1 +. +MessageId=58380 +Language=English +%1 +. +MessageId=58381 +Language=English +%1 +. +MessageId=58382 +Language=English +%1 +. +MessageId=58383 +Language=English +%1 +. +MessageId=58384 +Language=English +%1 +. +MessageId=58385 +Language=English +%1 +. +MessageId=58386 +Language=English +%1 +. +MessageId=58387 +Language=English +%1 +. +MessageId=58388 +Language=English +%1 +. +MessageId=58389 +Language=English +%1 +. +MessageId=58390 +Language=English +%1 +. +MessageId=58391 +Language=English +%1 +. +MessageId=58392 +Language=English +%1 +. +MessageId=58393 +Language=English +%1 +. +MessageId=58394 +Language=English +%1 +. +MessageId=58395 +Language=English +%1 +. +MessageId=58396 +Language=English +%1 +. +MessageId=58397 +Language=English +%1 +. +MessageId=58398 +Language=English +%1 +. +MessageId=58399 +Language=English +%1 +. +MessageId=58400 +Language=English +%1 +. +MessageId=58401 +Language=English +%1 +. +MessageId=58402 +Language=English +%1 +. +MessageId=58403 +Language=English +%1 +. +MessageId=58404 +Language=English +%1 +. +MessageId=58405 +Language=English +%1 +. +MessageId=58406 +Language=English +%1 +. +MessageId=58407 +Language=English +%1 +. +MessageId=58408 +Language=English +%1 +. +MessageId=58409 +Language=English +%1 +. +MessageId=58410 +Language=English +%1 +. +MessageId=58411 +Language=English +%1 +. +MessageId=58412 +Language=English +%1 +. +MessageId=58413 +Language=English +%1 +. +MessageId=58414 +Language=English +%1 +. +MessageId=58415 +Language=English +%1 +. +MessageId=58416 +Language=English +%1 +. +MessageId=58417 +Language=English +%1 +. +MessageId=58418 +Language=English +%1 +. +MessageId=58419 +Language=English +%1 +. +MessageId=58420 +Language=English +%1 +. +MessageId=58421 +Language=English +%1 +. +MessageId=58422 +Language=English +%1 +. +MessageId=58423 +Language=English +%1 +. +MessageId=58424 +Language=English +%1 +. +MessageId=58425 +Language=English +%1 +. +MessageId=58426 +Language=English +%1 +. +MessageId=58427 +Language=English +%1 +. +MessageId=58428 +Language=English +%1 +. +MessageId=58429 +Language=English +%1 +. +MessageId=58430 +Language=English +%1 +. +MessageId=58431 +Language=English +%1 +. +MessageId=58432 +Language=English +%1 +. +MessageId=58433 +Language=English +%1 +. +MessageId=58434 +Language=English +%1 +. +MessageId=58435 +Language=English +%1 +. +MessageId=58436 +Language=English +%1 +. +MessageId=58437 +Language=English +%1 +. +MessageId=58438 +Language=English +%1 +. +MessageId=58439 +Language=English +%1 +. +MessageId=58440 +Language=English +%1 +. +MessageId=58441 +Language=English +%1 +. +MessageId=58442 +Language=English +%1 +. +MessageId=58443 +Language=English +%1 +. +MessageId=58444 +Language=English +%1 +. +MessageId=58445 +Language=English +%1 +. +MessageId=58446 +Language=English +%1 +. +MessageId=58447 +Language=English +%1 +. +MessageId=58448 +Language=English +%1 +. +MessageId=58449 +Language=English +%1 +. +MessageId=58450 +Language=English +%1 +. +MessageId=58451 +Language=English +%1 +. +MessageId=58452 +Language=English +%1 +. +MessageId=58453 +Language=English +%1 +. +MessageId=58454 +Language=English +%1 +. +MessageId=58455 +Language=English +%1 +. +MessageId=58456 +Language=English +%1 +. +MessageId=58457 +Language=English +%1 +. +MessageId=58458 +Language=English +%1 +. +MessageId=58459 +Language=English +%1 +. +MessageId=58460 +Language=English +%1 +. +MessageId=58461 +Language=English +%1 +. +MessageId=58462 +Language=English +%1 +. +MessageId=58463 +Language=English +%1 +. +MessageId=58464 +Language=English +%1 +. +MessageId=58465 +Language=English +%1 +. +MessageId=58466 +Language=English +%1 +. +MessageId=58467 +Language=English +%1 +. +MessageId=58468 +Language=English +%1 +. +MessageId=58469 +Language=English +%1 +. +MessageId=58470 +Language=English +%1 +. +MessageId=58471 +Language=English +%1 +. +MessageId=58472 +Language=English +%1 +. +MessageId=58473 +Language=English +%1 +. +MessageId=58474 +Language=English +%1 +. +MessageId=58475 +Language=English +%1 +. +MessageId=58476 +Language=English +%1 +. +MessageId=58477 +Language=English +%1 +. +MessageId=58478 +Language=English +%1 +. +MessageId=58479 +Language=English +%1 +. +MessageId=58480 +Language=English +%1 +. +MessageId=58481 +Language=English +%1 +. +MessageId=58482 +Language=English +%1 +. +MessageId=58483 +Language=English +%1 +. +MessageId=58484 +Language=English +%1 +. +MessageId=58485 +Language=English +%1 +. +MessageId=58486 +Language=English +%1 +. +MessageId=58487 +Language=English +%1 +. +MessageId=58488 +Language=English +%1 +. +MessageId=58489 +Language=English +%1 +. +MessageId=58490 +Language=English +%1 +. +MessageId=58491 +Language=English +%1 +. +MessageId=58492 +Language=English +%1 +. +MessageId=58493 +Language=English +%1 +. +MessageId=58494 +Language=English +%1 +. +MessageId=58495 +Language=English +%1 +. +MessageId=58496 +Language=English +%1 +. +MessageId=58497 +Language=English +%1 +. +MessageId=58498 +Language=English +%1 +. +MessageId=58499 +Language=English +%1 +. +MessageId=58500 +Language=English +%1 +. +MessageId=58501 +Language=English +%1 +. +MessageId=58502 +Language=English +%1 +. +MessageId=58503 +Language=English +%1 +. +MessageId=58504 +Language=English +%1 +. +MessageId=58505 +Language=English +%1 +. +MessageId=58506 +Language=English +%1 +. +MessageId=58507 +Language=English +%1 +. +MessageId=58508 +Language=English +%1 +. +MessageId=58509 +Language=English +%1 +. +MessageId=58510 +Language=English +%1 +. +MessageId=58511 +Language=English +%1 +. +MessageId=58512 +Language=English +%1 +. +MessageId=58513 +Language=English +%1 +. +MessageId=58514 +Language=English +%1 +. +MessageId=58515 +Language=English +%1 +. +MessageId=58516 +Language=English +%1 +. +MessageId=58517 +Language=English +%1 +. +MessageId=58518 +Language=English +%1 +. +MessageId=58519 +Language=English +%1 +. +MessageId=58520 +Language=English +%1 +. +MessageId=58521 +Language=English +%1 +. +MessageId=58522 +Language=English +%1 +. +MessageId=58523 +Language=English +%1 +. +MessageId=58524 +Language=English +%1 +. +MessageId=58525 +Language=English +%1 +. +MessageId=58526 +Language=English +%1 +. +MessageId=58527 +Language=English +%1 +. +MessageId=58528 +Language=English +%1 +. +MessageId=58529 +Language=English +%1 +. +MessageId=58530 +Language=English +%1 +. +MessageId=58531 +Language=English +%1 +. +MessageId=58532 +Language=English +%1 +. +MessageId=58533 +Language=English +%1 +. +MessageId=58534 +Language=English +%1 +. +MessageId=58535 +Language=English +%1 +. +MessageId=58536 +Language=English +%1 +. +MessageId=58537 +Language=English +%1 +. +MessageId=58538 +Language=English +%1 +. +MessageId=58539 +Language=English +%1 +. +MessageId=58540 +Language=English +%1 +. +MessageId=58541 +Language=English +%1 +. +MessageId=58542 +Language=English +%1 +. +MessageId=58543 +Language=English +%1 +. +MessageId=58544 +Language=English +%1 +. +MessageId=58545 +Language=English +%1 +. +MessageId=58546 +Language=English +%1 +. +MessageId=58547 +Language=English +%1 +. +MessageId=58548 +Language=English +%1 +. +MessageId=58549 +Language=English +%1 +. +MessageId=58550 +Language=English +%1 +. +MessageId=58551 +Language=English +%1 +. +MessageId=58552 +Language=English +%1 +. +MessageId=58553 +Language=English +%1 +. +MessageId=58554 +Language=English +%1 +. +MessageId=58555 +Language=English +%1 +. +MessageId=58556 +Language=English +%1 +. +MessageId=58557 +Language=English +%1 +. +MessageId=58558 +Language=English +%1 +. +MessageId=58559 +Language=English +%1 +. +MessageId=58560 +Language=English +%1 +. +MessageId=58561 +Language=English +%1 +. +MessageId=58562 +Language=English +%1 +. +MessageId=58563 +Language=English +%1 +. +MessageId=58564 +Language=English +%1 +. +MessageId=58565 +Language=English +%1 +. +MessageId=58566 +Language=English +%1 +. +MessageId=58567 +Language=English +%1 +. +MessageId=58568 +Language=English +%1 +. +MessageId=58569 +Language=English +%1 +. +MessageId=58570 +Language=English +%1 +. +MessageId=58571 +Language=English +%1 +. +MessageId=58572 +Language=English +%1 +. +MessageId=58573 +Language=English +%1 +. +MessageId=58574 +Language=English +%1 +. +MessageId=58575 +Language=English +%1 +. +MessageId=58576 +Language=English +%1 +. +MessageId=58577 +Language=English +%1 +. +MessageId=58578 +Language=English +%1 +. +MessageId=58579 +Language=English +%1 +. +MessageId=58580 +Language=English +%1 +. +MessageId=58581 +Language=English +%1 +. +MessageId=58582 +Language=English +%1 +. +MessageId=58583 +Language=English +%1 +. +MessageId=58584 +Language=English +%1 +. +MessageId=58585 +Language=English +%1 +. +MessageId=58586 +Language=English +%1 +. +MessageId=58587 +Language=English +%1 +. +MessageId=58588 +Language=English +%1 +. +MessageId=58589 +Language=English +%1 +. +MessageId=58590 +Language=English +%1 +. +MessageId=58591 +Language=English +%1 +. +MessageId=58592 +Language=English +%1 +. +MessageId=58593 +Language=English +%1 +. +MessageId=58594 +Language=English +%1 +. +MessageId=58595 +Language=English +%1 +. +MessageId=58596 +Language=English +%1 +. +MessageId=58597 +Language=English +%1 +. +MessageId=58598 +Language=English +%1 +. +MessageId=58599 +Language=English +%1 +. +MessageId=58600 +Language=English +%1 +. +MessageId=58601 +Language=English +%1 +. +MessageId=58602 +Language=English +%1 +. +MessageId=58603 +Language=English +%1 +. +MessageId=58604 +Language=English +%1 +. +MessageId=58605 +Language=English +%1 +. +MessageId=58606 +Language=English +%1 +. +MessageId=58607 +Language=English +%1 +. +MessageId=58608 +Language=English +%1 +. +MessageId=58609 +Language=English +%1 +. +MessageId=58610 +Language=English +%1 +. +MessageId=58611 +Language=English +%1 +. +MessageId=58612 +Language=English +%1 +. +MessageId=58613 +Language=English +%1 +. +MessageId=58614 +Language=English +%1 +. +MessageId=58615 +Language=English +%1 +. +MessageId=58616 +Language=English +%1 +. +MessageId=58617 +Language=English +%1 +. +MessageId=58618 +Language=English +%1 +. +MessageId=58619 +Language=English +%1 +. +MessageId=58620 +Language=English +%1 +. +MessageId=58621 +Language=English +%1 +. +MessageId=58622 +Language=English +%1 +. +MessageId=58623 +Language=English +%1 +. +MessageId=58624 +Language=English +%1 +. +MessageId=58625 +Language=English +%1 +. +MessageId=58626 +Language=English +%1 +. +MessageId=58627 +Language=English +%1 +. +MessageId=58628 +Language=English +%1 +. +MessageId=58629 +Language=English +%1 +. +MessageId=58630 +Language=English +%1 +. +MessageId=58631 +Language=English +%1 +. +MessageId=58632 +Language=English +%1 +. +MessageId=58633 +Language=English +%1 +. +MessageId=58634 +Language=English +%1 +. +MessageId=58635 +Language=English +%1 +. +MessageId=58636 +Language=English +%1 +. +MessageId=58637 +Language=English +%1 +. +MessageId=58638 +Language=English +%1 +. +MessageId=58639 +Language=English +%1 +. +MessageId=58640 +Language=English +%1 +. +MessageId=58641 +Language=English +%1 +. +MessageId=58642 +Language=English +%1 +. +MessageId=58643 +Language=English +%1 +. +MessageId=58644 +Language=English +%1 +. +MessageId=58645 +Language=English +%1 +. +MessageId=58646 +Language=English +%1 +. +MessageId=58647 +Language=English +%1 +. +MessageId=58648 +Language=English +%1 +. +MessageId=58649 +Language=English +%1 +. +MessageId=58650 +Language=English +%1 +. +MessageId=58651 +Language=English +%1 +. +MessageId=58652 +Language=English +%1 +. +MessageId=58653 +Language=English +%1 +. +MessageId=58654 +Language=English +%1 +. +MessageId=58655 +Language=English +%1 +. +MessageId=58656 +Language=English +%1 +. +MessageId=58657 +Language=English +%1 +. +MessageId=58658 +Language=English +%1 +. +MessageId=58659 +Language=English +%1 +. +MessageId=58660 +Language=English +%1 +. +MessageId=58661 +Language=English +%1 +. +MessageId=58662 +Language=English +%1 +. +MessageId=58663 +Language=English +%1 +. +MessageId=58664 +Language=English +%1 +. +MessageId=58665 +Language=English +%1 +. +MessageId=58666 +Language=English +%1 +. +MessageId=58667 +Language=English +%1 +. +MessageId=58668 +Language=English +%1 +. +MessageId=58669 +Language=English +%1 +. +MessageId=58670 +Language=English +%1 +. +MessageId=58671 +Language=English +%1 +. +MessageId=58672 +Language=English +%1 +. +MessageId=58673 +Language=English +%1 +. +MessageId=58674 +Language=English +%1 +. +MessageId=58675 +Language=English +%1 +. +MessageId=58676 +Language=English +%1 +. +MessageId=58677 +Language=English +%1 +. +MessageId=58678 +Language=English +%1 +. +MessageId=58679 +Language=English +%1 +. +MessageId=58680 +Language=English +%1 +. +MessageId=58681 +Language=English +%1 +. +MessageId=58682 +Language=English +%1 +. +MessageId=58683 +Language=English +%1 +. +MessageId=58684 +Language=English +%1 +. +MessageId=58685 +Language=English +%1 +. +MessageId=58686 +Language=English +%1 +. +MessageId=58687 +Language=English +%1 +. +MessageId=58688 +Language=English +%1 +. +MessageId=58689 +Language=English +%1 +. +MessageId=58690 +Language=English +%1 +. +MessageId=58691 +Language=English +%1 +. +MessageId=58692 +Language=English +%1 +. +MessageId=58693 +Language=English +%1 +. +MessageId=58694 +Language=English +%1 +. +MessageId=58695 +Language=English +%1 +. +MessageId=58696 +Language=English +%1 +. +MessageId=58697 +Language=English +%1 +. +MessageId=58698 +Language=English +%1 +. +MessageId=58699 +Language=English +%1 +. +MessageId=58700 +Language=English +%1 +. +MessageId=58701 +Language=English +%1 +. +MessageId=58702 +Language=English +%1 +. +MessageId=58703 +Language=English +%1 +. +MessageId=58704 +Language=English +%1 +. +MessageId=58705 +Language=English +%1 +. +MessageId=58706 +Language=English +%1 +. +MessageId=58707 +Language=English +%1 +. +MessageId=58708 +Language=English +%1 +. +MessageId=58709 +Language=English +%1 +. +MessageId=58710 +Language=English +%1 +. +MessageId=58711 +Language=English +%1 +. +MessageId=58712 +Language=English +%1 +. +MessageId=58713 +Language=English +%1 +. +MessageId=58714 +Language=English +%1 +. +MessageId=58715 +Language=English +%1 +. +MessageId=58716 +Language=English +%1 +. +MessageId=58717 +Language=English +%1 +. +MessageId=58718 +Language=English +%1 +. +MessageId=58719 +Language=English +%1 +. +MessageId=58720 +Language=English +%1 +. +MessageId=58721 +Language=English +%1 +. +MessageId=58722 +Language=English +%1 +. +MessageId=58723 +Language=English +%1 +. +MessageId=58724 +Language=English +%1 +. +MessageId=58725 +Language=English +%1 +. +MessageId=58726 +Language=English +%1 +. +MessageId=58727 +Language=English +%1 +. +MessageId=58728 +Language=English +%1 +. +MessageId=58729 +Language=English +%1 +. +MessageId=58730 +Language=English +%1 +. +MessageId=58731 +Language=English +%1 +. +MessageId=58732 +Language=English +%1 +. +MessageId=58733 +Language=English +%1 +. +MessageId=58734 +Language=English +%1 +. +MessageId=58735 +Language=English +%1 +. +MessageId=58736 +Language=English +%1 +. +MessageId=58737 +Language=English +%1 +. +MessageId=58738 +Language=English +%1 +. +MessageId=58739 +Language=English +%1 +. +MessageId=58740 +Language=English +%1 +. +MessageId=58741 +Language=English +%1 +. +MessageId=58742 +Language=English +%1 +. +MessageId=58743 +Language=English +%1 +. +MessageId=58744 +Language=English +%1 +. +MessageId=58745 +Language=English +%1 +. +MessageId=58746 +Language=English +%1 +. +MessageId=58747 +Language=English +%1 +. +MessageId=58748 +Language=English +%1 +. +MessageId=58749 +Language=English +%1 +. +MessageId=58750 +Language=English +%1 +. +MessageId=58751 +Language=English +%1 +. +MessageId=58752 +Language=English +%1 +. +MessageId=58753 +Language=English +%1 +. +MessageId=58754 +Language=English +%1 +. +MessageId=58755 +Language=English +%1 +. +MessageId=58756 +Language=English +%1 +. +MessageId=58757 +Language=English +%1 +. +MessageId=58758 +Language=English +%1 +. +MessageId=58759 +Language=English +%1 +. +MessageId=58760 +Language=English +%1 +. +MessageId=58761 +Language=English +%1 +. +MessageId=58762 +Language=English +%1 +. +MessageId=58763 +Language=English +%1 +. +MessageId=58764 +Language=English +%1 +. +MessageId=58765 +Language=English +%1 +. +MessageId=58766 +Language=English +%1 +. +MessageId=58767 +Language=English +%1 +. +MessageId=58768 +Language=English +%1 +. +MessageId=58769 +Language=English +%1 +. +MessageId=58770 +Language=English +%1 +. +MessageId=58771 +Language=English +%1 +. +MessageId=58772 +Language=English +%1 +. +MessageId=58773 +Language=English +%1 +. +MessageId=58774 +Language=English +%1 +. +MessageId=58775 +Language=English +%1 +. +MessageId=58776 +Language=English +%1 +. +MessageId=58777 +Language=English +%1 +. +MessageId=58778 +Language=English +%1 +. +MessageId=58779 +Language=English +%1 +. +MessageId=58780 +Language=English +%1 +. +MessageId=58781 +Language=English +%1 +. +MessageId=58782 +Language=English +%1 +. +MessageId=58783 +Language=English +%1 +. +MessageId=58784 +Language=English +%1 +. +MessageId=58785 +Language=English +%1 +. +MessageId=58786 +Language=English +%1 +. +MessageId=58787 +Language=English +%1 +. +MessageId=58788 +Language=English +%1 +. +MessageId=58789 +Language=English +%1 +. +MessageId=58790 +Language=English +%1 +. +MessageId=58791 +Language=English +%1 +. +MessageId=58792 +Language=English +%1 +. +MessageId=58793 +Language=English +%1 +. +MessageId=58794 +Language=English +%1 +. +MessageId=58795 +Language=English +%1 +. +MessageId=58796 +Language=English +%1 +. +MessageId=58797 +Language=English +%1 +. +MessageId=58798 +Language=English +%1 +. +MessageId=58799 +Language=English +%1 +. +MessageId=58800 +Language=English +%1 +. +MessageId=58801 +Language=English +%1 +. +MessageId=58802 +Language=English +%1 +. +MessageId=58803 +Language=English +%1 +. +MessageId=58804 +Language=English +%1 +. +MessageId=58805 +Language=English +%1 +. +MessageId=58806 +Language=English +%1 +. +MessageId=58807 +Language=English +%1 +. +MessageId=58808 +Language=English +%1 +. +MessageId=58809 +Language=English +%1 +. +MessageId=58810 +Language=English +%1 +. +MessageId=58811 +Language=English +%1 +. +MessageId=58812 +Language=English +%1 +. +MessageId=58813 +Language=English +%1 +. +MessageId=58814 +Language=English +%1 +. +MessageId=58815 +Language=English +%1 +. +MessageId=58816 +Language=English +%1 +. +MessageId=58817 +Language=English +%1 +. +MessageId=58818 +Language=English +%1 +. +MessageId=58819 +Language=English +%1 +. +MessageId=58820 +Language=English +%1 +. +MessageId=58821 +Language=English +%1 +. +MessageId=58822 +Language=English +%1 +. +MessageId=58823 +Language=English +%1 +. +MessageId=58824 +Language=English +%1 +. +MessageId=58825 +Language=English +%1 +. +MessageId=58826 +Language=English +%1 +. +MessageId=58827 +Language=English +%1 +. +MessageId=58828 +Language=English +%1 +. +MessageId=58829 +Language=English +%1 +. +MessageId=58830 +Language=English +%1 +. +MessageId=58831 +Language=English +%1 +. +MessageId=58832 +Language=English +%1 +. +MessageId=58833 +Language=English +%1 +. +MessageId=58834 +Language=English +%1 +. +MessageId=58835 +Language=English +%1 +. +MessageId=58836 +Language=English +%1 +. +MessageId=58837 +Language=English +%1 +. +MessageId=58838 +Language=English +%1 +. +MessageId=58839 +Language=English +%1 +. +MessageId=58840 +Language=English +%1 +. +MessageId=58841 +Language=English +%1 +. +MessageId=58842 +Language=English +%1 +. +MessageId=58843 +Language=English +%1 +. +MessageId=58844 +Language=English +%1 +. +MessageId=58845 +Language=English +%1 +. +MessageId=58846 +Language=English +%1 +. +MessageId=58847 +Language=English +%1 +. +MessageId=58848 +Language=English +%1 +. +MessageId=58849 +Language=English +%1 +. +MessageId=58850 +Language=English +%1 +. +MessageId=58851 +Language=English +%1 +. +MessageId=58852 +Language=English +%1 +. +MessageId=58853 +Language=English +%1 +. +MessageId=58854 +Language=English +%1 +. +MessageId=58855 +Language=English +%1 +. +MessageId=58856 +Language=English +%1 +. +MessageId=58857 +Language=English +%1 +. +MessageId=58858 +Language=English +%1 +. +MessageId=58859 +Language=English +%1 +. +MessageId=58860 +Language=English +%1 +. +MessageId=58861 +Language=English +%1 +. +MessageId=58862 +Language=English +%1 +. +MessageId=58863 +Language=English +%1 +. +MessageId=58864 +Language=English +%1 +. +MessageId=58865 +Language=English +%1 +. +MessageId=58866 +Language=English +%1 +. +MessageId=58867 +Language=English +%1 +. +MessageId=58868 +Language=English +%1 +. +MessageId=58869 +Language=English +%1 +. +MessageId=58870 +Language=English +%1 +. +MessageId=58871 +Language=English +%1 +. +MessageId=58872 +Language=English +%1 +. +MessageId=58873 +Language=English +%1 +. +MessageId=58874 +Language=English +%1 +. +MessageId=58875 +Language=English +%1 +. +MessageId=58876 +Language=English +%1 +. +MessageId=58877 +Language=English +%1 +. +MessageId=58878 +Language=English +%1 +. +MessageId=58879 +Language=English +%1 +. +MessageId=58880 +Language=English +%1 +. +MessageId=58881 +Language=English +%1 +. +MessageId=58882 +Language=English +%1 +. +MessageId=58883 +Language=English +%1 +. +MessageId=58884 +Language=English +%1 +. +MessageId=58885 +Language=English +%1 +. +MessageId=58886 +Language=English +%1 +. +MessageId=58887 +Language=English +%1 +. +MessageId=58888 +Language=English +%1 +. +MessageId=58889 +Language=English +%1 +. +MessageId=58890 +Language=English +%1 +. +MessageId=58891 +Language=English +%1 +. +MessageId=58892 +Language=English +%1 +. +MessageId=58893 +Language=English +%1 +. +MessageId=58894 +Language=English +%1 +. +MessageId=58895 +Language=English +%1 +. +MessageId=58896 +Language=English +%1 +. +MessageId=58897 +Language=English +%1 +. +MessageId=58898 +Language=English +%1 +. +MessageId=58899 +Language=English +%1 +. +MessageId=58900 +Language=English +%1 +. +MessageId=58901 +Language=English +%1 +. +MessageId=58902 +Language=English +%1 +. +MessageId=58903 +Language=English +%1 +. +MessageId=58904 +Language=English +%1 +. +MessageId=58905 +Language=English +%1 +. +MessageId=58906 +Language=English +%1 +. +MessageId=58907 +Language=English +%1 +. +MessageId=58908 +Language=English +%1 +. +MessageId=58909 +Language=English +%1 +. +MessageId=58910 +Language=English +%1 +. +MessageId=58911 +Language=English +%1 +. +MessageId=58912 +Language=English +%1 +. +MessageId=58913 +Language=English +%1 +. +MessageId=58914 +Language=English +%1 +. +MessageId=58915 +Language=English +%1 +. +MessageId=58916 +Language=English +%1 +. +MessageId=58917 +Language=English +%1 +. +MessageId=58918 +Language=English +%1 +. +MessageId=58919 +Language=English +%1 +. +MessageId=58920 +Language=English +%1 +. +MessageId=58921 +Language=English +%1 +. +MessageId=58922 +Language=English +%1 +. +MessageId=58923 +Language=English +%1 +. +MessageId=58924 +Language=English +%1 +. +MessageId=58925 +Language=English +%1 +. +MessageId=58926 +Language=English +%1 +. +MessageId=58927 +Language=English +%1 +. +MessageId=58928 +Language=English +%1 +. +MessageId=58929 +Language=English +%1 +. +MessageId=58930 +Language=English +%1 +. +MessageId=58931 +Language=English +%1 +. +MessageId=58932 +Language=English +%1 +. +MessageId=58933 +Language=English +%1 +. +MessageId=58934 +Language=English +%1 +. +MessageId=58935 +Language=English +%1 +. +MessageId=58936 +Language=English +%1 +. +MessageId=58937 +Language=English +%1 +. +MessageId=58938 +Language=English +%1 +. +MessageId=58939 +Language=English +%1 +. +MessageId=58940 +Language=English +%1 +. +MessageId=58941 +Language=English +%1 +. +MessageId=58942 +Language=English +%1 +. +MessageId=58943 +Language=English +%1 +. +MessageId=58944 +Language=English +%1 +. +MessageId=58945 +Language=English +%1 +. +MessageId=58946 +Language=English +%1 +. +MessageId=58947 +Language=English +%1 +. +MessageId=58948 +Language=English +%1 +. +MessageId=58949 +Language=English +%1 +. +MessageId=58950 +Language=English +%1 +. +MessageId=58951 +Language=English +%1 +. +MessageId=58952 +Language=English +%1 +. +MessageId=58953 +Language=English +%1 +. +MessageId=58954 +Language=English +%1 +. +MessageId=58955 +Language=English +%1 +. +MessageId=58956 +Language=English +%1 +. +MessageId=58957 +Language=English +%1 +. +MessageId=58958 +Language=English +%1 +. +MessageId=58959 +Language=English +%1 +. +MessageId=58960 +Language=English +%1 +. +MessageId=58961 +Language=English +%1 +. +MessageId=58962 +Language=English +%1 +. +MessageId=58963 +Language=English +%1 +. +MessageId=58964 +Language=English +%1 +. +MessageId=58965 +Language=English +%1 +. +MessageId=58966 +Language=English +%1 +. +MessageId=58967 +Language=English +%1 +. +MessageId=58968 +Language=English +%1 +. +MessageId=58969 +Language=English +%1 +. +MessageId=58970 +Language=English +%1 +. +MessageId=58971 +Language=English +%1 +. +MessageId=58972 +Language=English +%1 +. +MessageId=58973 +Language=English +%1 +. +MessageId=58974 +Language=English +%1 +. +MessageId=58975 +Language=English +%1 +. +MessageId=58976 +Language=English +%1 +. +MessageId=58977 +Language=English +%1 +. +MessageId=58978 +Language=English +%1 +. +MessageId=58979 +Language=English +%1 +. +MessageId=58980 +Language=English +%1 +. +MessageId=58981 +Language=English +%1 +. +MessageId=58982 +Language=English +%1 +. +MessageId=58983 +Language=English +%1 +. +MessageId=58984 +Language=English +%1 +. +MessageId=58985 +Language=English +%1 +. +MessageId=58986 +Language=English +%1 +. +MessageId=58987 +Language=English +%1 +. +MessageId=58988 +Language=English +%1 +. +MessageId=58989 +Language=English +%1 +. +MessageId=58990 +Language=English +%1 +. +MessageId=58991 +Language=English +%1 +. +MessageId=58992 +Language=English +%1 +. +MessageId=58993 +Language=English +%1 +. +MessageId=58994 +Language=English +%1 +. +MessageId=58995 +Language=English +%1 +. +MessageId=58996 +Language=English +%1 +. +MessageId=58997 +Language=English +%1 +. +MessageId=58998 +Language=English +%1 +. +MessageId=58999 +Language=English +%1 +. +MessageId=59000 +Language=English +%1 +. +MessageId=59001 +Language=English +%1 +. +MessageId=59002 +Language=English +%1 +. +MessageId=59003 +Language=English +%1 +. +MessageId=59004 +Language=English +%1 +. +MessageId=59005 +Language=English +%1 +. +MessageId=59006 +Language=English +%1 +. +MessageId=59007 +Language=English +%1 +. +MessageId=59008 +Language=English +%1 +. +MessageId=59009 +Language=English +%1 +. +MessageId=59010 +Language=English +%1 +. +MessageId=59011 +Language=English +%1 +. +MessageId=59012 +Language=English +%1 +. +MessageId=59013 +Language=English +%1 +. +MessageId=59014 +Language=English +%1 +. +MessageId=59015 +Language=English +%1 +. +MessageId=59016 +Language=English +%1 +. +MessageId=59017 +Language=English +%1 +. +MessageId=59018 +Language=English +%1 +. +MessageId=59019 +Language=English +%1 +. +MessageId=59020 +Language=English +%1 +. +MessageId=59021 +Language=English +%1 +. +MessageId=59022 +Language=English +%1 +. +MessageId=59023 +Language=English +%1 +. +MessageId=59024 +Language=English +%1 +. +MessageId=59025 +Language=English +%1 +. +MessageId=59026 +Language=English +%1 +. +MessageId=59027 +Language=English +%1 +. +MessageId=59028 +Language=English +%1 +. +MessageId=59029 +Language=English +%1 +. +MessageId=59030 +Language=English +%1 +. +MessageId=59031 +Language=English +%1 +. +MessageId=59032 +Language=English +%1 +. +MessageId=59033 +Language=English +%1 +. +MessageId=59034 +Language=English +%1 +. +MessageId=59035 +Language=English +%1 +. +MessageId=59036 +Language=English +%1 +. +MessageId=59037 +Language=English +%1 +. +MessageId=59038 +Language=English +%1 +. +MessageId=59039 +Language=English +%1 +. +MessageId=59040 +Language=English +%1 +. +MessageId=59041 +Language=English +%1 +. +MessageId=59042 +Language=English +%1 +. +MessageId=59043 +Language=English +%1 +. +MessageId=59044 +Language=English +%1 +. +MessageId=59045 +Language=English +%1 +. +MessageId=59046 +Language=English +%1 +. +MessageId=59047 +Language=English +%1 +. +MessageId=59048 +Language=English +%1 +. +MessageId=59049 +Language=English +%1 +. +MessageId=59050 +Language=English +%1 +. +MessageId=59051 +Language=English +%1 +. +MessageId=59052 +Language=English +%1 +. +MessageId=59053 +Language=English +%1 +. +MessageId=59054 +Language=English +%1 +. +MessageId=59055 +Language=English +%1 +. +MessageId=59056 +Language=English +%1 +. +MessageId=59057 +Language=English +%1 +. +MessageId=59058 +Language=English +%1 +. +MessageId=59059 +Language=English +%1 +. +MessageId=59060 +Language=English +%1 +. +MessageId=59061 +Language=English +%1 +. +MessageId=59062 +Language=English +%1 +. +MessageId=59063 +Language=English +%1 +. +MessageId=59064 +Language=English +%1 +. +MessageId=59065 +Language=English +%1 +. +MessageId=59066 +Language=English +%1 +. +MessageId=59067 +Language=English +%1 +. +MessageId=59068 +Language=English +%1 +. +MessageId=59069 +Language=English +%1 +. +MessageId=59070 +Language=English +%1 +. +MessageId=59071 +Language=English +%1 +. +MessageId=59072 +Language=English +%1 +. +MessageId=59073 +Language=English +%1 +. +MessageId=59074 +Language=English +%1 +. +MessageId=59075 +Language=English +%1 +. +MessageId=59076 +Language=English +%1 +. +MessageId=59077 +Language=English +%1 +. +MessageId=59078 +Language=English +%1 +. +MessageId=59079 +Language=English +%1 +. +MessageId=59080 +Language=English +%1 +. +MessageId=59081 +Language=English +%1 +. +MessageId=59082 +Language=English +%1 +. +MessageId=59083 +Language=English +%1 +. +MessageId=59084 +Language=English +%1 +. +MessageId=59085 +Language=English +%1 +. +MessageId=59086 +Language=English +%1 +. +MessageId=59087 +Language=English +%1 +. +MessageId=59088 +Language=English +%1 +. +MessageId=59089 +Language=English +%1 +. +MessageId=59090 +Language=English +%1 +. +MessageId=59091 +Language=English +%1 +. +MessageId=59092 +Language=English +%1 +. +MessageId=59093 +Language=English +%1 +. +MessageId=59094 +Language=English +%1 +. +MessageId=59095 +Language=English +%1 +. +MessageId=59096 +Language=English +%1 +. +MessageId=59097 +Language=English +%1 +. +MessageId=59098 +Language=English +%1 +. +MessageId=59099 +Language=English +%1 +. +MessageId=59100 +Language=English +%1 +. +MessageId=59101 +Language=English +%1 +. +MessageId=59102 +Language=English +%1 +. +MessageId=59103 +Language=English +%1 +. +MessageId=59104 +Language=English +%1 +. +MessageId=59105 +Language=English +%1 +. +MessageId=59106 +Language=English +%1 +. +MessageId=59107 +Language=English +%1 +. +MessageId=59108 +Language=English +%1 +. +MessageId=59109 +Language=English +%1 +. +MessageId=59110 +Language=English +%1 +. +MessageId=59111 +Language=English +%1 +. +MessageId=59112 +Language=English +%1 +. +MessageId=59113 +Language=English +%1 +. +MessageId=59114 +Language=English +%1 +. +MessageId=59115 +Language=English +%1 +. +MessageId=59116 +Language=English +%1 +. +MessageId=59117 +Language=English +%1 +. +MessageId=59118 +Language=English +%1 +. +MessageId=59119 +Language=English +%1 +. +MessageId=59120 +Language=English +%1 +. +MessageId=59121 +Language=English +%1 +. +MessageId=59122 +Language=English +%1 +. +MessageId=59123 +Language=English +%1 +. +MessageId=59124 +Language=English +%1 +. +MessageId=59125 +Language=English +%1 +. +MessageId=59126 +Language=English +%1 +. +MessageId=59127 +Language=English +%1 +. +MessageId=59128 +Language=English +%1 +. +MessageId=59129 +Language=English +%1 +. +MessageId=59130 +Language=English +%1 +. +MessageId=59131 +Language=English +%1 +. +MessageId=59132 +Language=English +%1 +. +MessageId=59133 +Language=English +%1 +. +MessageId=59134 +Language=English +%1 +. +MessageId=59135 +Language=English +%1 +. +MessageId=59136 +Language=English +%1 +. +MessageId=59137 +Language=English +%1 +. +MessageId=59138 +Language=English +%1 +. +MessageId=59139 +Language=English +%1 +. +MessageId=59140 +Language=English +%1 +. +MessageId=59141 +Language=English +%1 +. +MessageId=59142 +Language=English +%1 +. +MessageId=59143 +Language=English +%1 +. +MessageId=59144 +Language=English +%1 +. +MessageId=59145 +Language=English +%1 +. +MessageId=59146 +Language=English +%1 +. +MessageId=59147 +Language=English +%1 +. +MessageId=59148 +Language=English +%1 +. +MessageId=59149 +Language=English +%1 +. +MessageId=59150 +Language=English +%1 +. +MessageId=59151 +Language=English +%1 +. +MessageId=59152 +Language=English +%1 +. +MessageId=59153 +Language=English +%1 +. +MessageId=59154 +Language=English +%1 +. +MessageId=59155 +Language=English +%1 +. +MessageId=59156 +Language=English +%1 +. +MessageId=59157 +Language=English +%1 +. +MessageId=59158 +Language=English +%1 +. +MessageId=59159 +Language=English +%1 +. +MessageId=59160 +Language=English +%1 +. +MessageId=59161 +Language=English +%1 +. +MessageId=59162 +Language=English +%1 +. +MessageId=59163 +Language=English +%1 +. +MessageId=59164 +Language=English +%1 +. +MessageId=59165 +Language=English +%1 +. +MessageId=59166 +Language=English +%1 +. +MessageId=59167 +Language=English +%1 +. +MessageId=59168 +Language=English +%1 +. +MessageId=59169 +Language=English +%1 +. +MessageId=59170 +Language=English +%1 +. +MessageId=59171 +Language=English +%1 +. +MessageId=59172 +Language=English +%1 +. +MessageId=59173 +Language=English +%1 +. +MessageId=59174 +Language=English +%1 +. +MessageId=59175 +Language=English +%1 +. +MessageId=59176 +Language=English +%1 +. +MessageId=59177 +Language=English +%1 +. +MessageId=59178 +Language=English +%1 +. +MessageId=59179 +Language=English +%1 +. +MessageId=59180 +Language=English +%1 +. +MessageId=59181 +Language=English +%1 +. +MessageId=59182 +Language=English +%1 +. +MessageId=59183 +Language=English +%1 +. +MessageId=59184 +Language=English +%1 +. +MessageId=59185 +Language=English +%1 +. +MessageId=59186 +Language=English +%1 +. +MessageId=59187 +Language=English +%1 +. +MessageId=59188 +Language=English +%1 +. +MessageId=59189 +Language=English +%1 +. +MessageId=59190 +Language=English +%1 +. +MessageId=59191 +Language=English +%1 +. +MessageId=59192 +Language=English +%1 +. +MessageId=59193 +Language=English +%1 +. +MessageId=59194 +Language=English +%1 +. +MessageId=59195 +Language=English +%1 +. +MessageId=59196 +Language=English +%1 +. +MessageId=59197 +Language=English +%1 +. +MessageId=59198 +Language=English +%1 +. +MessageId=59199 +Language=English +%1 +. +MessageId=59200 +Language=English +%1 +. +MessageId=59201 +Language=English +%1 +. +MessageId=59202 +Language=English +%1 +. +MessageId=59203 +Language=English +%1 +. +MessageId=59204 +Language=English +%1 +. +MessageId=59205 +Language=English +%1 +. +MessageId=59206 +Language=English +%1 +. +MessageId=59207 +Language=English +%1 +. +MessageId=59208 +Language=English +%1 +. +MessageId=59209 +Language=English +%1 +. +MessageId=59210 +Language=English +%1 +. +MessageId=59211 +Language=English +%1 +. +MessageId=59212 +Language=English +%1 +. +MessageId=59213 +Language=English +%1 +. +MessageId=59214 +Language=English +%1 +. +MessageId=59215 +Language=English +%1 +. +MessageId=59216 +Language=English +%1 +. +MessageId=59217 +Language=English +%1 +. +MessageId=59218 +Language=English +%1 +. +MessageId=59219 +Language=English +%1 +. +MessageId=59220 +Language=English +%1 +. +MessageId=59221 +Language=English +%1 +. +MessageId=59222 +Language=English +%1 +. +MessageId=59223 +Language=English +%1 +. +MessageId=59224 +Language=English +%1 +. +MessageId=59225 +Language=English +%1 +. +MessageId=59226 +Language=English +%1 +. +MessageId=59227 +Language=English +%1 +. +MessageId=59228 +Language=English +%1 +. +MessageId=59229 +Language=English +%1 +. +MessageId=59230 +Language=English +%1 +. +MessageId=59231 +Language=English +%1 +. +MessageId=59232 +Language=English +%1 +. +MessageId=59233 +Language=English +%1 +. +MessageId=59234 +Language=English +%1 +. +MessageId=59235 +Language=English +%1 +. +MessageId=59236 +Language=English +%1 +. +MessageId=59237 +Language=English +%1 +. +MessageId=59238 +Language=English +%1 +. +MessageId=59239 +Language=English +%1 +. +MessageId=59240 +Language=English +%1 +. +MessageId=59241 +Language=English +%1 +. +MessageId=59242 +Language=English +%1 +. +MessageId=59243 +Language=English +%1 +. +MessageId=59244 +Language=English +%1 +. +MessageId=59245 +Language=English +%1 +. +MessageId=59246 +Language=English +%1 +. +MessageId=59247 +Language=English +%1 +. +MessageId=59248 +Language=English +%1 +. +MessageId=59249 +Language=English +%1 +. +MessageId=59250 +Language=English +%1 +. +MessageId=59251 +Language=English +%1 +. +MessageId=59252 +Language=English +%1 +. +MessageId=59253 +Language=English +%1 +. +MessageId=59254 +Language=English +%1 +. +MessageId=59255 +Language=English +%1 +. +MessageId=59256 +Language=English +%1 +. +MessageId=59257 +Language=English +%1 +. +MessageId=59258 +Language=English +%1 +. +MessageId=59259 +Language=English +%1 +. +MessageId=59260 +Language=English +%1 +. +MessageId=59261 +Language=English +%1 +. +MessageId=59262 +Language=English +%1 +. +MessageId=59263 +Language=English +%1 +. +MessageId=59264 +Language=English +%1 +. +MessageId=59265 +Language=English +%1 +. +MessageId=59266 +Language=English +%1 +. +MessageId=59267 +Language=English +%1 +. +MessageId=59268 +Language=English +%1 +. +MessageId=59269 +Language=English +%1 +. +MessageId=59270 +Language=English +%1 +. +MessageId=59271 +Language=English +%1 +. +MessageId=59272 +Language=English +%1 +. +MessageId=59273 +Language=English +%1 +. +MessageId=59274 +Language=English +%1 +. +MessageId=59275 +Language=English +%1 +. +MessageId=59276 +Language=English +%1 +. +MessageId=59277 +Language=English +%1 +. +MessageId=59278 +Language=English +%1 +. +MessageId=59279 +Language=English +%1 +. +MessageId=59280 +Language=English +%1 +. +MessageId=59281 +Language=English +%1 +. +MessageId=59282 +Language=English +%1 +. +MessageId=59283 +Language=English +%1 +. +MessageId=59284 +Language=English +%1 +. +MessageId=59285 +Language=English +%1 +. +MessageId=59286 +Language=English +%1 +. +MessageId=59287 +Language=English +%1 +. +MessageId=59288 +Language=English +%1 +. +MessageId=59289 +Language=English +%1 +. +MessageId=59290 +Language=English +%1 +. +MessageId=59291 +Language=English +%1 +. +MessageId=59292 +Language=English +%1 +. +MessageId=59293 +Language=English +%1 +. +MessageId=59294 +Language=English +%1 +. +MessageId=59295 +Language=English +%1 +. +MessageId=59296 +Language=English +%1 +. +MessageId=59297 +Language=English +%1 +. +MessageId=59298 +Language=English +%1 +. +MessageId=59299 +Language=English +%1 +. +MessageId=59300 +Language=English +%1 +. +MessageId=59301 +Language=English +%1 +. +MessageId=59302 +Language=English +%1 +. +MessageId=59303 +Language=English +%1 +. +MessageId=59304 +Language=English +%1 +. +MessageId=59305 +Language=English +%1 +. +MessageId=59306 +Language=English +%1 +. +MessageId=59307 +Language=English +%1 +. +MessageId=59308 +Language=English +%1 +. +MessageId=59309 +Language=English +%1 +. +MessageId=59310 +Language=English +%1 +. +MessageId=59311 +Language=English +%1 +. +MessageId=59312 +Language=English +%1 +. +MessageId=59313 +Language=English +%1 +. +MessageId=59314 +Language=English +%1 +. +MessageId=59315 +Language=English +%1 +. +MessageId=59316 +Language=English +%1 +. +MessageId=59317 +Language=English +%1 +. +MessageId=59318 +Language=English +%1 +. +MessageId=59319 +Language=English +%1 +. +MessageId=59320 +Language=English +%1 +. +MessageId=59321 +Language=English +%1 +. +MessageId=59322 +Language=English +%1 +. +MessageId=59323 +Language=English +%1 +. +MessageId=59324 +Language=English +%1 +. +MessageId=59325 +Language=English +%1 +. +MessageId=59326 +Language=English +%1 +. +MessageId=59327 +Language=English +%1 +. +MessageId=59328 +Language=English +%1 +. +MessageId=59329 +Language=English +%1 +. +MessageId=59330 +Language=English +%1 +. +MessageId=59331 +Language=English +%1 +. +MessageId=59332 +Language=English +%1 +. +MessageId=59333 +Language=English +%1 +. +MessageId=59334 +Language=English +%1 +. +MessageId=59335 +Language=English +%1 +. +MessageId=59336 +Language=English +%1 +. +MessageId=59337 +Language=English +%1 +. +MessageId=59338 +Language=English +%1 +. +MessageId=59339 +Language=English +%1 +. +MessageId=59340 +Language=English +%1 +. +MessageId=59341 +Language=English +%1 +. +MessageId=59342 +Language=English +%1 +. +MessageId=59343 +Language=English +%1 +. +MessageId=59344 +Language=English +%1 +. +MessageId=59345 +Language=English +%1 +. +MessageId=59346 +Language=English +%1 +. +MessageId=59347 +Language=English +%1 +. +MessageId=59348 +Language=English +%1 +. +MessageId=59349 +Language=English +%1 +. +MessageId=59350 +Language=English +%1 +. +MessageId=59351 +Language=English +%1 +. +MessageId=59352 +Language=English +%1 +. +MessageId=59353 +Language=English +%1 +. +MessageId=59354 +Language=English +%1 +. +MessageId=59355 +Language=English +%1 +. +MessageId=59356 +Language=English +%1 +. +MessageId=59357 +Language=English +%1 +. +MessageId=59358 +Language=English +%1 +. +MessageId=59359 +Language=English +%1 +. +MessageId=59360 +Language=English +%1 +. +MessageId=59361 +Language=English +%1 +. +MessageId=59362 +Language=English +%1 +. +MessageId=59363 +Language=English +%1 +. +MessageId=59364 +Language=English +%1 +. +MessageId=59365 +Language=English +%1 +. +MessageId=59366 +Language=English +%1 +. +MessageId=59367 +Language=English +%1 +. +MessageId=59368 +Language=English +%1 +. +MessageId=59369 +Language=English +%1 +. +MessageId=59370 +Language=English +%1 +. +MessageId=59371 +Language=English +%1 +. +MessageId=59372 +Language=English +%1 +. +MessageId=59373 +Language=English +%1 +. +MessageId=59374 +Language=English +%1 +. +MessageId=59375 +Language=English +%1 +. +MessageId=59376 +Language=English +%1 +. +MessageId=59377 +Language=English +%1 +. +MessageId=59378 +Language=English +%1 +. +MessageId=59379 +Language=English +%1 +. +MessageId=59380 +Language=English +%1 +. +MessageId=59381 +Language=English +%1 +. +MessageId=59382 +Language=English +%1 +. +MessageId=59383 +Language=English +%1 +. +MessageId=59384 +Language=English +%1 +. +MessageId=59385 +Language=English +%1 +. +MessageId=59386 +Language=English +%1 +. +MessageId=59387 +Language=English +%1 +. +MessageId=59388 +Language=English +%1 +. +MessageId=59389 +Language=English +%1 +. +MessageId=59390 +Language=English +%1 +. +MessageId=59391 +Language=English +%1 +. +MessageId=59392 +Language=English +%1 +. +MessageId=59393 +Language=English +%1 +. +MessageId=59394 +Language=English +%1 +. +MessageId=59395 +Language=English +%1 +. +MessageId=59396 +Language=English +%1 +. +MessageId=59397 +Language=English +%1 +. +MessageId=59398 +Language=English +%1 +. +MessageId=59399 +Language=English +%1 +. +MessageId=59400 +Language=English +%1 +. +MessageId=59401 +Language=English +%1 +. +MessageId=59402 +Language=English +%1 +. +MessageId=59403 +Language=English +%1 +. +MessageId=59404 +Language=English +%1 +. +MessageId=59405 +Language=English +%1 +. +MessageId=59406 +Language=English +%1 +. +MessageId=59407 +Language=English +%1 +. +MessageId=59408 +Language=English +%1 +. +MessageId=59409 +Language=English +%1 +. +MessageId=59410 +Language=English +%1 +. +MessageId=59411 +Language=English +%1 +. +MessageId=59412 +Language=English +%1 +. +MessageId=59413 +Language=English +%1 +. +MessageId=59414 +Language=English +%1 +. +MessageId=59415 +Language=English +%1 +. +MessageId=59416 +Language=English +%1 +. +MessageId=59417 +Language=English +%1 +. +MessageId=59418 +Language=English +%1 +. +MessageId=59419 +Language=English +%1 +. +MessageId=59420 +Language=English +%1 +. +MessageId=59421 +Language=English +%1 +. +MessageId=59422 +Language=English +%1 +. +MessageId=59423 +Language=English +%1 +. +MessageId=59424 +Language=English +%1 +. +MessageId=59425 +Language=English +%1 +. +MessageId=59426 +Language=English +%1 +. +MessageId=59427 +Language=English +%1 +. +MessageId=59428 +Language=English +%1 +. +MessageId=59429 +Language=English +%1 +. +MessageId=59430 +Language=English +%1 +. +MessageId=59431 +Language=English +%1 +. +MessageId=59432 +Language=English +%1 +. +MessageId=59433 +Language=English +%1 +. +MessageId=59434 +Language=English +%1 +. +MessageId=59435 +Language=English +%1 +. +MessageId=59436 +Language=English +%1 +. +MessageId=59437 +Language=English +%1 +. +MessageId=59438 +Language=English +%1 +. +MessageId=59439 +Language=English +%1 +. +MessageId=59440 +Language=English +%1 +. +MessageId=59441 +Language=English +%1 +. +MessageId=59442 +Language=English +%1 +. +MessageId=59443 +Language=English +%1 +. +MessageId=59444 +Language=English +%1 +. +MessageId=59445 +Language=English +%1 +. +MessageId=59446 +Language=English +%1 +. +MessageId=59447 +Language=English +%1 +. +MessageId=59448 +Language=English +%1 +. +MessageId=59449 +Language=English +%1 +. +MessageId=59450 +Language=English +%1 +. +MessageId=59451 +Language=English +%1 +. +MessageId=59452 +Language=English +%1 +. +MessageId=59453 +Language=English +%1 +. +MessageId=59454 +Language=English +%1 +. +MessageId=59455 +Language=English +%1 +. +MessageId=59456 +Language=English +%1 +. +MessageId=59457 +Language=English +%1 +. +MessageId=59458 +Language=English +%1 +. +MessageId=59459 +Language=English +%1 +. +MessageId=59460 +Language=English +%1 +. +MessageId=59461 +Language=English +%1 +. +MessageId=59462 +Language=English +%1 +. +MessageId=59463 +Language=English +%1 +. +MessageId=59464 +Language=English +%1 +. +MessageId=59465 +Language=English +%1 +. +MessageId=59466 +Language=English +%1 +. +MessageId=59467 +Language=English +%1 +. +MessageId=59468 +Language=English +%1 +. +MessageId=59469 +Language=English +%1 +. +MessageId=59470 +Language=English +%1 +. +MessageId=59471 +Language=English +%1 +. +MessageId=59472 +Language=English +%1 +. +MessageId=59473 +Language=English +%1 +. +MessageId=59474 +Language=English +%1 +. +MessageId=59475 +Language=English +%1 +. +MessageId=59476 +Language=English +%1 +. +MessageId=59477 +Language=English +%1 +. +MessageId=59478 +Language=English +%1 +. +MessageId=59479 +Language=English +%1 +. +MessageId=59480 +Language=English +%1 +. +MessageId=59481 +Language=English +%1 +. +MessageId=59482 +Language=English +%1 +. +MessageId=59483 +Language=English +%1 +. +MessageId=59484 +Language=English +%1 +. +MessageId=59485 +Language=English +%1 +. +MessageId=59486 +Language=English +%1 +. +MessageId=59487 +Language=English +%1 +. +MessageId=59488 +Language=English +%1 +. +MessageId=59489 +Language=English +%1 +. +MessageId=59490 +Language=English +%1 +. +MessageId=59491 +Language=English +%1 +. +MessageId=59492 +Language=English +%1 +. +MessageId=59493 +Language=English +%1 +. +MessageId=59494 +Language=English +%1 +. +MessageId=59495 +Language=English +%1 +. +MessageId=59496 +Language=English +%1 +. +MessageId=59497 +Language=English +%1 +. +MessageId=59498 +Language=English +%1 +. +MessageId=59499 +Language=English +%1 +. +MessageId=59500 +Language=English +%1 +. +MessageId=59501 +Language=English +%1 +. +MessageId=59502 +Language=English +%1 +. +MessageId=59503 +Language=English +%1 +. +MessageId=59504 +Language=English +%1 +. +MessageId=59505 +Language=English +%1 +. +MessageId=59506 +Language=English +%1 +. +MessageId=59507 +Language=English +%1 +. +MessageId=59508 +Language=English +%1 +. +MessageId=59509 +Language=English +%1 +. +MessageId=59510 +Language=English +%1 +. +MessageId=59511 +Language=English +%1 +. +MessageId=59512 +Language=English +%1 +. +MessageId=59513 +Language=English +%1 +. +MessageId=59514 +Language=English +%1 +. +MessageId=59515 +Language=English +%1 +. +MessageId=59516 +Language=English +%1 +. +MessageId=59517 +Language=English +%1 +. +MessageId=59518 +Language=English +%1 +. +MessageId=59519 +Language=English +%1 +. +MessageId=59520 +Language=English +%1 +. +MessageId=59521 +Language=English +%1 +. +MessageId=59522 +Language=English +%1 +. +MessageId=59523 +Language=English +%1 +. +MessageId=59524 +Language=English +%1 +. +MessageId=59525 +Language=English +%1 +. +MessageId=59526 +Language=English +%1 +. +MessageId=59527 +Language=English +%1 +. +MessageId=59528 +Language=English +%1 +. +MessageId=59529 +Language=English +%1 +. +MessageId=59530 +Language=English +%1 +. +MessageId=59531 +Language=English +%1 +. +MessageId=59532 +Language=English +%1 +. +MessageId=59533 +Language=English +%1 +. +MessageId=59534 +Language=English +%1 +. +MessageId=59535 +Language=English +%1 +. +MessageId=59536 +Language=English +%1 +. +MessageId=59537 +Language=English +%1 +. +MessageId=59538 +Language=English +%1 +. +MessageId=59539 +Language=English +%1 +. +MessageId=59540 +Language=English +%1 +. +MessageId=59541 +Language=English +%1 +. +MessageId=59542 +Language=English +%1 +. +MessageId=59543 +Language=English +%1 +. +MessageId=59544 +Language=English +%1 +. +MessageId=59545 +Language=English +%1 +. +MessageId=59546 +Language=English +%1 +. +MessageId=59547 +Language=English +%1 +. +MessageId=59548 +Language=English +%1 +. +MessageId=59549 +Language=English +%1 +. +MessageId=59550 +Language=English +%1 +. +MessageId=59551 +Language=English +%1 +. +MessageId=59552 +Language=English +%1 +. +MessageId=59553 +Language=English +%1 +. +MessageId=59554 +Language=English +%1 +. +MessageId=59555 +Language=English +%1 +. +MessageId=59556 +Language=English +%1 +. +MessageId=59557 +Language=English +%1 +. +MessageId=59558 +Language=English +%1 +. +MessageId=59559 +Language=English +%1 +. +MessageId=59560 +Language=English +%1 +. +MessageId=59561 +Language=English +%1 +. +MessageId=59562 +Language=English +%1 +. +MessageId=59563 +Language=English +%1 +. +MessageId=59564 +Language=English +%1 +. +MessageId=59565 +Language=English +%1 +. +MessageId=59566 +Language=English +%1 +. +MessageId=59567 +Language=English +%1 +. +MessageId=59568 +Language=English +%1 +. +MessageId=59569 +Language=English +%1 +. +MessageId=59570 +Language=English +%1 +. +MessageId=59571 +Language=English +%1 +. +MessageId=59572 +Language=English +%1 +. +MessageId=59573 +Language=English +%1 +. +MessageId=59574 +Language=English +%1 +. +MessageId=59575 +Language=English +%1 +. +MessageId=59576 +Language=English +%1 +. +MessageId=59577 +Language=English +%1 +. +MessageId=59578 +Language=English +%1 +. +MessageId=59579 +Language=English +%1 +. +MessageId=59580 +Language=English +%1 +. +MessageId=59581 +Language=English +%1 +. +MessageId=59582 +Language=English +%1 +. +MessageId=59583 +Language=English +%1 +. +MessageId=59584 +Language=English +%1 +. +MessageId=59585 +Language=English +%1 +. +MessageId=59586 +Language=English +%1 +. +MessageId=59587 +Language=English +%1 +. +MessageId=59588 +Language=English +%1 +. +MessageId=59589 +Language=English +%1 +. +MessageId=59590 +Language=English +%1 +. +MessageId=59591 +Language=English +%1 +. +MessageId=59592 +Language=English +%1 +. +MessageId=59593 +Language=English +%1 +. +MessageId=59594 +Language=English +%1 +. +MessageId=59595 +Language=English +%1 +. +MessageId=59596 +Language=English +%1 +. +MessageId=59597 +Language=English +%1 +. +MessageId=59598 +Language=English +%1 +. +MessageId=59599 +Language=English +%1 +. +MessageId=59600 +Language=English +%1 +. +MessageId=59601 +Language=English +%1 +. +MessageId=59602 +Language=English +%1 +. +MessageId=59603 +Language=English +%1 +. +MessageId=59604 +Language=English +%1 +. +MessageId=59605 +Language=English +%1 +. +MessageId=59606 +Language=English +%1 +. +MessageId=59607 +Language=English +%1 +. +MessageId=59608 +Language=English +%1 +. +MessageId=59609 +Language=English +%1 +. +MessageId=59610 +Language=English +%1 +. +MessageId=59611 +Language=English +%1 +. +MessageId=59612 +Language=English +%1 +. +MessageId=59613 +Language=English +%1 +. +MessageId=59614 +Language=English +%1 +. +MessageId=59615 +Language=English +%1 +. +MessageId=59616 +Language=English +%1 +. +MessageId=59617 +Language=English +%1 +. +MessageId=59618 +Language=English +%1 +. +MessageId=59619 +Language=English +%1 +. +MessageId=59620 +Language=English +%1 +. +MessageId=59621 +Language=English +%1 +. +MessageId=59622 +Language=English +%1 +. +MessageId=59623 +Language=English +%1 +. +MessageId=59624 +Language=English +%1 +. +MessageId=59625 +Language=English +%1 +. +MessageId=59626 +Language=English +%1 +. +MessageId=59627 +Language=English +%1 +. +MessageId=59628 +Language=English +%1 +. +MessageId=59629 +Language=English +%1 +. +MessageId=59630 +Language=English +%1 +. +MessageId=59631 +Language=English +%1 +. +MessageId=59632 +Language=English +%1 +. +MessageId=59633 +Language=English +%1 +. +MessageId=59634 +Language=English +%1 +. +MessageId=59635 +Language=English +%1 +. +MessageId=59636 +Language=English +%1 +. +MessageId=59637 +Language=English +%1 +. +MessageId=59638 +Language=English +%1 +. +MessageId=59639 +Language=English +%1 +. +MessageId=59640 +Language=English +%1 +. +MessageId=59641 +Language=English +%1 +. +MessageId=59642 +Language=English +%1 +. +MessageId=59643 +Language=English +%1 +. +MessageId=59644 +Language=English +%1 +. +MessageId=59645 +Language=English +%1 +. +MessageId=59646 +Language=English +%1 +. +MessageId=59647 +Language=English +%1 +. +MessageId=59648 +Language=English +%1 +. +MessageId=59649 +Language=English +%1 +. +MessageId=59650 +Language=English +%1 +. +MessageId=59651 +Language=English +%1 +. +MessageId=59652 +Language=English +%1 +. +MessageId=59653 +Language=English +%1 +. +MessageId=59654 +Language=English +%1 +. +MessageId=59655 +Language=English +%1 +. +MessageId=59656 +Language=English +%1 +. +MessageId=59657 +Language=English +%1 +. +MessageId=59658 +Language=English +%1 +. +MessageId=59659 +Language=English +%1 +. +MessageId=59660 +Language=English +%1 +. +MessageId=59661 +Language=English +%1 +. +MessageId=59662 +Language=English +%1 +. +MessageId=59663 +Language=English +%1 +. +MessageId=59664 +Language=English +%1 +. +MessageId=59665 +Language=English +%1 +. +MessageId=59666 +Language=English +%1 +. +MessageId=59667 +Language=English +%1 +. +MessageId=59668 +Language=English +%1 +. +MessageId=59669 +Language=English +%1 +. +MessageId=59670 +Language=English +%1 +. +MessageId=59671 +Language=English +%1 +. +MessageId=59672 +Language=English +%1 +. +MessageId=59673 +Language=English +%1 +. +MessageId=59674 +Language=English +%1 +. +MessageId=59675 +Language=English +%1 +. +MessageId=59676 +Language=English +%1 +. +MessageId=59677 +Language=English +%1 +. +MessageId=59678 +Language=English +%1 +. +MessageId=59679 +Language=English +%1 +. +MessageId=59680 +Language=English +%1 +. +MessageId=59681 +Language=English +%1 +. +MessageId=59682 +Language=English +%1 +. +MessageId=59683 +Language=English +%1 +. +MessageId=59684 +Language=English +%1 +. +MessageId=59685 +Language=English +%1 +. +MessageId=59686 +Language=English +%1 +. +MessageId=59687 +Language=English +%1 +. +MessageId=59688 +Language=English +%1 +. +MessageId=59689 +Language=English +%1 +. +MessageId=59690 +Language=English +%1 +. +MessageId=59691 +Language=English +%1 +. +MessageId=59692 +Language=English +%1 +. +MessageId=59693 +Language=English +%1 +. +MessageId=59694 +Language=English +%1 +. +MessageId=59695 +Language=English +%1 +. +MessageId=59696 +Language=English +%1 +. +MessageId=59697 +Language=English +%1 +. +MessageId=59698 +Language=English +%1 +. +MessageId=59699 +Language=English +%1 +. +MessageId=59700 +Language=English +%1 +. +MessageId=59701 +Language=English +%1 +. +MessageId=59702 +Language=English +%1 +. +MessageId=59703 +Language=English +%1 +. +MessageId=59704 +Language=English +%1 +. +MessageId=59705 +Language=English +%1 +. +MessageId=59706 +Language=English +%1 +. +MessageId=59707 +Language=English +%1 +. +MessageId=59708 +Language=English +%1 +. +MessageId=59709 +Language=English +%1 +. +MessageId=59710 +Language=English +%1 +. +MessageId=59711 +Language=English +%1 +. +MessageId=59712 +Language=English +%1 +. +MessageId=59713 +Language=English +%1 +. +MessageId=59714 +Language=English +%1 +. +MessageId=59715 +Language=English +%1 +. +MessageId=59716 +Language=English +%1 +. +MessageId=59717 +Language=English +%1 +. +MessageId=59718 +Language=English +%1 +. +MessageId=59719 +Language=English +%1 +. +MessageId=59720 +Language=English +%1 +. +MessageId=59721 +Language=English +%1 +. +MessageId=59722 +Language=English +%1 +. +MessageId=59723 +Language=English +%1 +. +MessageId=59724 +Language=English +%1 +. +MessageId=59725 +Language=English +%1 +. +MessageId=59726 +Language=English +%1 +. +MessageId=59727 +Language=English +%1 +. +MessageId=59728 +Language=English +%1 +. +MessageId=59729 +Language=English +%1 +. +MessageId=59730 +Language=English +%1 +. +MessageId=59731 +Language=English +%1 +. +MessageId=59732 +Language=English +%1 +. +MessageId=59733 +Language=English +%1 +. +MessageId=59734 +Language=English +%1 +. +MessageId=59735 +Language=English +%1 +. +MessageId=59736 +Language=English +%1 +. +MessageId=59737 +Language=English +%1 +. +MessageId=59738 +Language=English +%1 +. +MessageId=59739 +Language=English +%1 +. +MessageId=59740 +Language=English +%1 +. +MessageId=59741 +Language=English +%1 +. +MessageId=59742 +Language=English +%1 +. +MessageId=59743 +Language=English +%1 +. +MessageId=59744 +Language=English +%1 +. +MessageId=59745 +Language=English +%1 +. +MessageId=59746 +Language=English +%1 +. +MessageId=59747 +Language=English +%1 +. +MessageId=59748 +Language=English +%1 +. +MessageId=59749 +Language=English +%1 +. +MessageId=59750 +Language=English +%1 +. +MessageId=59751 +Language=English +%1 +. +MessageId=59752 +Language=English +%1 +. +MessageId=59753 +Language=English +%1 +. +MessageId=59754 +Language=English +%1 +. +MessageId=59755 +Language=English +%1 +. +MessageId=59756 +Language=English +%1 +. +MessageId=59757 +Language=English +%1 +. +MessageId=59758 +Language=English +%1 +. +MessageId=59759 +Language=English +%1 +. +MessageId=59760 +Language=English +%1 +. +MessageId=59761 +Language=English +%1 +. +MessageId=59762 +Language=English +%1 +. +MessageId=59763 +Language=English +%1 +. +MessageId=59764 +Language=English +%1 +. +MessageId=59765 +Language=English +%1 +. +MessageId=59766 +Language=English +%1 +. +MessageId=59767 +Language=English +%1 +. +MessageId=59768 +Language=English +%1 +. +MessageId=59769 +Language=English +%1 +. +MessageId=59770 +Language=English +%1 +. +MessageId=59771 +Language=English +%1 +. +MessageId=59772 +Language=English +%1 +. +MessageId=59773 +Language=English +%1 +. +MessageId=59774 +Language=English +%1 +. +MessageId=59775 +Language=English +%1 +. +MessageId=59776 +Language=English +%1 +. +MessageId=59777 +Language=English +%1 +. +MessageId=59778 +Language=English +%1 +. +MessageId=59779 +Language=English +%1 +. +MessageId=59780 +Language=English +%1 +. +MessageId=59781 +Language=English +%1 +. +MessageId=59782 +Language=English +%1 +. +MessageId=59783 +Language=English +%1 +. +MessageId=59784 +Language=English +%1 +. +MessageId=59785 +Language=English +%1 +. +MessageId=59786 +Language=English +%1 +. +MessageId=59787 +Language=English +%1 +. +MessageId=59788 +Language=English +%1 +. +MessageId=59789 +Language=English +%1 +. +MessageId=59790 +Language=English +%1 +. +MessageId=59791 +Language=English +%1 +. +MessageId=59792 +Language=English +%1 +. +MessageId=59793 +Language=English +%1 +. +MessageId=59794 +Language=English +%1 +. +MessageId=59795 +Language=English +%1 +. +MessageId=59796 +Language=English +%1 +. +MessageId=59797 +Language=English +%1 +. +MessageId=59798 +Language=English +%1 +. +MessageId=59799 +Language=English +%1 +. +MessageId=59800 +Language=English +%1 +. +MessageId=59801 +Language=English +%1 +. +MessageId=59802 +Language=English +%1 +. +MessageId=59803 +Language=English +%1 +. +MessageId=59804 +Language=English +%1 +. +MessageId=59805 +Language=English +%1 +. +MessageId=59806 +Language=English +%1 +. +MessageId=59807 +Language=English +%1 +. +MessageId=59808 +Language=English +%1 +. +MessageId=59809 +Language=English +%1 +. +MessageId=59810 +Language=English +%1 +. +MessageId=59811 +Language=English +%1 +. +MessageId=59812 +Language=English +%1 +. +MessageId=59813 +Language=English +%1 +. +MessageId=59814 +Language=English +%1 +. +MessageId=59815 +Language=English +%1 +. +MessageId=59816 +Language=English +%1 +. +MessageId=59817 +Language=English +%1 +. +MessageId=59818 +Language=English +%1 +. +MessageId=59819 +Language=English +%1 +. +MessageId=59820 +Language=English +%1 +. +MessageId=59821 +Language=English +%1 +. +MessageId=59822 +Language=English +%1 +. +MessageId=59823 +Language=English +%1 +. +MessageId=59824 +Language=English +%1 +. +MessageId=59825 +Language=English +%1 +. +MessageId=59826 +Language=English +%1 +. +MessageId=59827 +Language=English +%1 +. +MessageId=59828 +Language=English +%1 +. +MessageId=59829 +Language=English +%1 +. +MessageId=59830 +Language=English +%1 +. +MessageId=59831 +Language=English +%1 +. +MessageId=59832 +Language=English +%1 +. +MessageId=59833 +Language=English +%1 +. +MessageId=59834 +Language=English +%1 +. +MessageId=59835 +Language=English +%1 +. +MessageId=59836 +Language=English +%1 +. +MessageId=59837 +Language=English +%1 +. +MessageId=59838 +Language=English +%1 +. +MessageId=59839 +Language=English +%1 +. +MessageId=59840 +Language=English +%1 +. +MessageId=59841 +Language=English +%1 +. +MessageId=59842 +Language=English +%1 +. +MessageId=59843 +Language=English +%1 +. +MessageId=59844 +Language=English +%1 +. +MessageId=59845 +Language=English +%1 +. +MessageId=59846 +Language=English +%1 +. +MessageId=59847 +Language=English +%1 +. +MessageId=59848 +Language=English +%1 +. +MessageId=59849 +Language=English +%1 +. +MessageId=59850 +Language=English +%1 +. +MessageId=59851 +Language=English +%1 +. +MessageId=59852 +Language=English +%1 +. +MessageId=59853 +Language=English +%1 +. +MessageId=59854 +Language=English +%1 +. +MessageId=59855 +Language=English +%1 +. +MessageId=59856 +Language=English +%1 +. +MessageId=59857 +Language=English +%1 +. +MessageId=59858 +Language=English +%1 +. +MessageId=59859 +Language=English +%1 +. +MessageId=59860 +Language=English +%1 +. +MessageId=59861 +Language=English +%1 +. +MessageId=59862 +Language=English +%1 +. +MessageId=59863 +Language=English +%1 +. +MessageId=59864 +Language=English +%1 +. +MessageId=59865 +Language=English +%1 +. +MessageId=59866 +Language=English +%1 +. +MessageId=59867 +Language=English +%1 +. +MessageId=59868 +Language=English +%1 +. +MessageId=59869 +Language=English +%1 +. +MessageId=59870 +Language=English +%1 +. +MessageId=59871 +Language=English +%1 +. +MessageId=59872 +Language=English +%1 +. +MessageId=59873 +Language=English +%1 +. +MessageId=59874 +Language=English +%1 +. +MessageId=59875 +Language=English +%1 +. +MessageId=59876 +Language=English +%1 +. +MessageId=59877 +Language=English +%1 +. +MessageId=59878 +Language=English +%1 +. +MessageId=59879 +Language=English +%1 +. +MessageId=59880 +Language=English +%1 +. +MessageId=59881 +Language=English +%1 +. +MessageId=59882 +Language=English +%1 +. +MessageId=59883 +Language=English +%1 +. +MessageId=59884 +Language=English +%1 +. +MessageId=59885 +Language=English +%1 +. +MessageId=59886 +Language=English +%1 +. +MessageId=59887 +Language=English +%1 +. +MessageId=59888 +Language=English +%1 +. +MessageId=59889 +Language=English +%1 +. +MessageId=59890 +Language=English +%1 +. +MessageId=59891 +Language=English +%1 +. +MessageId=59892 +Language=English +%1 +. +MessageId=59893 +Language=English +%1 +. +MessageId=59894 +Language=English +%1 +. +MessageId=59895 +Language=English +%1 +. +MessageId=59896 +Language=English +%1 +. +MessageId=59897 +Language=English +%1 +. +MessageId=59898 +Language=English +%1 +. +MessageId=59899 +Language=English +%1 +. +MessageId=59900 +Language=English +%1 +. +MessageId=59901 +Language=English +%1 +. +MessageId=59902 +Language=English +%1 +. +MessageId=59903 +Language=English +%1 +. +MessageId=59904 +Language=English +%1 +. +MessageId=59905 +Language=English +%1 +. +MessageId=59906 +Language=English +%1 +. +MessageId=59907 +Language=English +%1 +. +MessageId=59908 +Language=English +%1 +. +MessageId=59909 +Language=English +%1 +. +MessageId=59910 +Language=English +%1 +. +MessageId=59911 +Language=English +%1 +. +MessageId=59912 +Language=English +%1 +. +MessageId=59913 +Language=English +%1 +. +MessageId=59914 +Language=English +%1 +. +MessageId=59915 +Language=English +%1 +. +MessageId=59916 +Language=English +%1 +. +MessageId=59917 +Language=English +%1 +. +MessageId=59918 +Language=English +%1 +. +MessageId=59919 +Language=English +%1 +. +MessageId=59920 +Language=English +%1 +. +MessageId=59921 +Language=English +%1 +. +MessageId=59922 +Language=English +%1 +. +MessageId=59923 +Language=English +%1 +. +MessageId=59924 +Language=English +%1 +. +MessageId=59925 +Language=English +%1 +. +MessageId=59926 +Language=English +%1 +. +MessageId=59927 +Language=English +%1 +. +MessageId=59928 +Language=English +%1 +. +MessageId=59929 +Language=English +%1 +. +MessageId=59930 +Language=English +%1 +. +MessageId=59931 +Language=English +%1 +. +MessageId=59932 +Language=English +%1 +. +MessageId=59933 +Language=English +%1 +. +MessageId=59934 +Language=English +%1 +. +MessageId=59935 +Language=English +%1 +. +MessageId=59936 +Language=English +%1 +. +MessageId=59937 +Language=English +%1 +. +MessageId=59938 +Language=English +%1 +. +MessageId=59939 +Language=English +%1 +. +MessageId=59940 +Language=English +%1 +. +MessageId=59941 +Language=English +%1 +. +MessageId=59942 +Language=English +%1 +. +MessageId=59943 +Language=English +%1 +. +MessageId=59944 +Language=English +%1 +. +MessageId=59945 +Language=English +%1 +. +MessageId=59946 +Language=English +%1 +. +MessageId=59947 +Language=English +%1 +. +MessageId=59948 +Language=English +%1 +. +MessageId=59949 +Language=English +%1 +. +MessageId=59950 +Language=English +%1 +. +MessageId=59951 +Language=English +%1 +. +MessageId=59952 +Language=English +%1 +. +MessageId=59953 +Language=English +%1 +. +MessageId=59954 +Language=English +%1 +. +MessageId=59955 +Language=English +%1 +. +MessageId=59956 +Language=English +%1 +. +MessageId=59957 +Language=English +%1 +. +MessageId=59958 +Language=English +%1 +. +MessageId=59959 +Language=English +%1 +. +MessageId=59960 +Language=English +%1 +. +MessageId=59961 +Language=English +%1 +. +MessageId=59962 +Language=English +%1 +. +MessageId=59963 +Language=English +%1 +. +MessageId=59964 +Language=English +%1 +. +MessageId=59965 +Language=English +%1 +. +MessageId=59966 +Language=English +%1 +. +MessageId=59967 +Language=English +%1 +. +MessageId=59968 +Language=English +%1 +. +MessageId=59969 +Language=English +%1 +. +MessageId=59970 +Language=English +%1 +. +MessageId=59971 +Language=English +%1 +. +MessageId=59972 +Language=English +%1 +. +MessageId=59973 +Language=English +%1 +. +MessageId=59974 +Language=English +%1 +. +MessageId=59975 +Language=English +%1 +. +MessageId=59976 +Language=English +%1 +. +MessageId=59977 +Language=English +%1 +. +MessageId=59978 +Language=English +%1 +. +MessageId=59979 +Language=English +%1 +. +MessageId=59980 +Language=English +%1 +. +MessageId=59981 +Language=English +%1 +. +MessageId=59982 +Language=English +%1 +. +MessageId=59983 +Language=English +%1 +. +MessageId=59984 +Language=English +%1 +. +MessageId=59985 +Language=English +%1 +. +MessageId=59986 +Language=English +%1 +. +MessageId=59987 +Language=English +%1 +. +MessageId=59988 +Language=English +%1 +. +MessageId=59989 +Language=English +%1 +. +MessageId=59990 +Language=English +%1 +. +MessageId=59991 +Language=English +%1 +. +MessageId=59992 +Language=English +%1 +. +MessageId=59993 +Language=English +%1 +. +MessageId=59994 +Language=English +%1 +. +MessageId=59995 +Language=English +%1 +. +MessageId=59996 +Language=English +%1 +. +MessageId=59997 +Language=English +%1 +. +MessageId=59998 +Language=English +%1 +. +MessageId=59999 +Language=English +%1 +. +MessageId=60000 +Language=English +%1 +. +MessageId=60001 +Language=English +%1 +. +MessageId=60002 +Language=English +%1 +. +MessageId=60003 +Language=English +%1 +. +MessageId=60004 +Language=English +%1 +. +MessageId=60005 +Language=English +%1 +. +MessageId=60006 +Language=English +%1 +. +MessageId=60007 +Language=English +%1 +. +MessageId=60008 +Language=English +%1 +. +MessageId=60009 +Language=English +%1 +. +MessageId=60010 +Language=English +%1 +. +MessageId=60011 +Language=English +%1 +. +MessageId=60012 +Language=English +%1 +. +MessageId=60013 +Language=English +%1 +. +MessageId=60014 +Language=English +%1 +. +MessageId=60015 +Language=English +%1 +. +MessageId=60016 +Language=English +%1 +. +MessageId=60017 +Language=English +%1 +. +MessageId=60018 +Language=English +%1 +. +MessageId=60019 +Language=English +%1 +. +MessageId=60020 +Language=English +%1 +. +MessageId=60021 +Language=English +%1 +. +MessageId=60022 +Language=English +%1 +. +MessageId=60023 +Language=English +%1 +. +MessageId=60024 +Language=English +%1 +. +MessageId=60025 +Language=English +%1 +. +MessageId=60026 +Language=English +%1 +. +MessageId=60027 +Language=English +%1 +. +MessageId=60028 +Language=English +%1 +. +MessageId=60029 +Language=English +%1 +. +MessageId=60030 +Language=English +%1 +. +MessageId=60031 +Language=English +%1 +. +MessageId=60032 +Language=English +%1 +. +MessageId=60033 +Language=English +%1 +. +MessageId=60034 +Language=English +%1 +. +MessageId=60035 +Language=English +%1 +. +MessageId=60036 +Language=English +%1 +. +MessageId=60037 +Language=English +%1 +. +MessageId=60038 +Language=English +%1 +. +MessageId=60039 +Language=English +%1 +. +MessageId=60040 +Language=English +%1 +. +MessageId=60041 +Language=English +%1 +. +MessageId=60042 +Language=English +%1 +. +MessageId=60043 +Language=English +%1 +. +MessageId=60044 +Language=English +%1 +. +MessageId=60045 +Language=English +%1 +. +MessageId=60046 +Language=English +%1 +. +MessageId=60047 +Language=English +%1 +. +MessageId=60048 +Language=English +%1 +. +MessageId=60049 +Language=English +%1 +. +MessageId=60050 +Language=English +%1 +. +MessageId=60051 +Language=English +%1 +. +MessageId=60052 +Language=English +%1 +. +MessageId=60053 +Language=English +%1 +. +MessageId=60054 +Language=English +%1 +. +MessageId=60055 +Language=English +%1 +. +MessageId=60056 +Language=English +%1 +. +MessageId=60057 +Language=English +%1 +. +MessageId=60058 +Language=English +%1 +. +MessageId=60059 +Language=English +%1 +. +MessageId=60060 +Language=English +%1 +. +MessageId=60061 +Language=English +%1 +. +MessageId=60062 +Language=English +%1 +. +MessageId=60063 +Language=English +%1 +. +MessageId=60064 +Language=English +%1 +. +MessageId=60065 +Language=English +%1 +. +MessageId=60066 +Language=English +%1 +. +MessageId=60067 +Language=English +%1 +. +MessageId=60068 +Language=English +%1 +. +MessageId=60069 +Language=English +%1 +. +MessageId=60070 +Language=English +%1 +. +MessageId=60071 +Language=English +%1 +. +MessageId=60072 +Language=English +%1 +. +MessageId=60073 +Language=English +%1 +. +MessageId=60074 +Language=English +%1 +. +MessageId=60075 +Language=English +%1 +. +MessageId=60076 +Language=English +%1 +. +MessageId=60077 +Language=English +%1 +. +MessageId=60078 +Language=English +%1 +. +MessageId=60079 +Language=English +%1 +. +MessageId=60080 +Language=English +%1 +. +MessageId=60081 +Language=English +%1 +. +MessageId=60082 +Language=English +%1 +. +MessageId=60083 +Language=English +%1 +. +MessageId=60084 +Language=English +%1 +. +MessageId=60085 +Language=English +%1 +. +MessageId=60086 +Language=English +%1 +. +MessageId=60087 +Language=English +%1 +. +MessageId=60088 +Language=English +%1 +. +MessageId=60089 +Language=English +%1 +. +MessageId=60090 +Language=English +%1 +. +MessageId=60091 +Language=English +%1 +. +MessageId=60092 +Language=English +%1 +. +MessageId=60093 +Language=English +%1 +. +MessageId=60094 +Language=English +%1 +. +MessageId=60095 +Language=English +%1 +. +MessageId=60096 +Language=English +%1 +. +MessageId=60097 +Language=English +%1 +. +MessageId=60098 +Language=English +%1 +. +MessageId=60099 +Language=English +%1 +. +MessageId=60100 +Language=English +%1 +. +MessageId=60101 +Language=English +%1 +. +MessageId=60102 +Language=English +%1 +. +MessageId=60103 +Language=English +%1 +. +MessageId=60104 +Language=English +%1 +. +MessageId=60105 +Language=English +%1 +. +MessageId=60106 +Language=English +%1 +. +MessageId=60107 +Language=English +%1 +. +MessageId=60108 +Language=English +%1 +. +MessageId=60109 +Language=English +%1 +. +MessageId=60110 +Language=English +%1 +. +MessageId=60111 +Language=English +%1 +. +MessageId=60112 +Language=English +%1 +. +MessageId=60113 +Language=English +%1 +. +MessageId=60114 +Language=English +%1 +. +MessageId=60115 +Language=English +%1 +. +MessageId=60116 +Language=English +%1 +. +MessageId=60117 +Language=English +%1 +. +MessageId=60118 +Language=English +%1 +. +MessageId=60119 +Language=English +%1 +. +MessageId=60120 +Language=English +%1 +. +MessageId=60121 +Language=English +%1 +. +MessageId=60122 +Language=English +%1 +. +MessageId=60123 +Language=English +%1 +. +MessageId=60124 +Language=English +%1 +. +MessageId=60125 +Language=English +%1 +. +MessageId=60126 +Language=English +%1 +. +MessageId=60127 +Language=English +%1 +. +MessageId=60128 +Language=English +%1 +. +MessageId=60129 +Language=English +%1 +. +MessageId=60130 +Language=English +%1 +. +MessageId=60131 +Language=English +%1 +. +MessageId=60132 +Language=English +%1 +. +MessageId=60133 +Language=English +%1 +. +MessageId=60134 +Language=English +%1 +. +MessageId=60135 +Language=English +%1 +. +MessageId=60136 +Language=English +%1 +. +MessageId=60137 +Language=English +%1 +. +MessageId=60138 +Language=English +%1 +. +MessageId=60139 +Language=English +%1 +. +MessageId=60140 +Language=English +%1 +. +MessageId=60141 +Language=English +%1 +. +MessageId=60142 +Language=English +%1 +. +MessageId=60143 +Language=English +%1 +. +MessageId=60144 +Language=English +%1 +. +MessageId=60145 +Language=English +%1 +. +MessageId=60146 +Language=English +%1 +. +MessageId=60147 +Language=English +%1 +. +MessageId=60148 +Language=English +%1 +. +MessageId=60149 +Language=English +%1 +. +MessageId=60150 +Language=English +%1 +. +MessageId=60151 +Language=English +%1 +. +MessageId=60152 +Language=English +%1 +. +MessageId=60153 +Language=English +%1 +. +MessageId=60154 +Language=English +%1 +. +MessageId=60155 +Language=English +%1 +. +MessageId=60156 +Language=English +%1 +. +MessageId=60157 +Language=English +%1 +. +MessageId=60158 +Language=English +%1 +. +MessageId=60159 +Language=English +%1 +. +MessageId=60160 +Language=English +%1 +. +MessageId=60161 +Language=English +%1 +. +MessageId=60162 +Language=English +%1 +. +MessageId=60163 +Language=English +%1 +. +MessageId=60164 +Language=English +%1 +. +MessageId=60165 +Language=English +%1 +. +MessageId=60166 +Language=English +%1 +. +MessageId=60167 +Language=English +%1 +. +MessageId=60168 +Language=English +%1 +. +MessageId=60169 +Language=English +%1 +. +MessageId=60170 +Language=English +%1 +. +MessageId=60171 +Language=English +%1 +. +MessageId=60172 +Language=English +%1 +. +MessageId=60173 +Language=English +%1 +. +MessageId=60174 +Language=English +%1 +. +MessageId=60175 +Language=English +%1 +. +MessageId=60176 +Language=English +%1 +. +MessageId=60177 +Language=English +%1 +. +MessageId=60178 +Language=English +%1 +. +MessageId=60179 +Language=English +%1 +. +MessageId=60180 +Language=English +%1 +. +MessageId=60181 +Language=English +%1 +. +MessageId=60182 +Language=English +%1 +. +MessageId=60183 +Language=English +%1 +. +MessageId=60184 +Language=English +%1 +. +MessageId=60185 +Language=English +%1 +. +MessageId=60186 +Language=English +%1 +. +MessageId=60187 +Language=English +%1 +. +MessageId=60188 +Language=English +%1 +. +MessageId=60189 +Language=English +%1 +. +MessageId=60190 +Language=English +%1 +. +MessageId=60191 +Language=English +%1 +. +MessageId=60192 +Language=English +%1 +. +MessageId=60193 +Language=English +%1 +. +MessageId=60194 +Language=English +%1 +. +MessageId=60195 +Language=English +%1 +. +MessageId=60196 +Language=English +%1 +. +MessageId=60197 +Language=English +%1 +. +MessageId=60198 +Language=English +%1 +. +MessageId=60199 +Language=English +%1 +. +MessageId=60200 +Language=English +%1 +. +MessageId=60201 +Language=English +%1 +. +MessageId=60202 +Language=English +%1 +. +MessageId=60203 +Language=English +%1 +. +MessageId=60204 +Language=English +%1 +. +MessageId=60205 +Language=English +%1 +. +MessageId=60206 +Language=English +%1 +. +MessageId=60207 +Language=English +%1 +. +MessageId=60208 +Language=English +%1 +. +MessageId=60209 +Language=English +%1 +. +MessageId=60210 +Language=English +%1 +. +MessageId=60211 +Language=English +%1 +. +MessageId=60212 +Language=English +%1 +. +MessageId=60213 +Language=English +%1 +. +MessageId=60214 +Language=English +%1 +. +MessageId=60215 +Language=English +%1 +. +MessageId=60216 +Language=English +%1 +. +MessageId=60217 +Language=English +%1 +. +MessageId=60218 +Language=English +%1 +. +MessageId=60219 +Language=English +%1 +. +MessageId=60220 +Language=English +%1 +. +MessageId=60221 +Language=English +%1 +. +MessageId=60222 +Language=English +%1 +. +MessageId=60223 +Language=English +%1 +. +MessageId=60224 +Language=English +%1 +. +MessageId=60225 +Language=English +%1 +. +MessageId=60226 +Language=English +%1 +. +MessageId=60227 +Language=English +%1 +. +MessageId=60228 +Language=English +%1 +. +MessageId=60229 +Language=English +%1 +. +MessageId=60230 +Language=English +%1 +. +MessageId=60231 +Language=English +%1 +. +MessageId=60232 +Language=English +%1 +. +MessageId=60233 +Language=English +%1 +. +MessageId=60234 +Language=English +%1 +. +MessageId=60235 +Language=English +%1 +. +MessageId=60236 +Language=English +%1 +. +MessageId=60237 +Language=English +%1 +. +MessageId=60238 +Language=English +%1 +. +MessageId=60239 +Language=English +%1 +. +MessageId=60240 +Language=English +%1 +. +MessageId=60241 +Language=English +%1 +. +MessageId=60242 +Language=English +%1 +. +MessageId=60243 +Language=English +%1 +. +MessageId=60244 +Language=English +%1 +. +MessageId=60245 +Language=English +%1 +. +MessageId=60246 +Language=English +%1 +. +MessageId=60247 +Language=English +%1 +. +MessageId=60248 +Language=English +%1 +. +MessageId=60249 +Language=English +%1 +. +MessageId=60250 +Language=English +%1 +. +MessageId=60251 +Language=English +%1 +. +MessageId=60252 +Language=English +%1 +. +MessageId=60253 +Language=English +%1 +. +MessageId=60254 +Language=English +%1 +. +MessageId=60255 +Language=English +%1 +. +MessageId=60256 +Language=English +%1 +. +MessageId=60257 +Language=English +%1 +. +MessageId=60258 +Language=English +%1 +. +MessageId=60259 +Language=English +%1 +. +MessageId=60260 +Language=English +%1 +. +MessageId=60261 +Language=English +%1 +. +MessageId=60262 +Language=English +%1 +. +MessageId=60263 +Language=English +%1 +. +MessageId=60264 +Language=English +%1 +. +MessageId=60265 +Language=English +%1 +. +MessageId=60266 +Language=English +%1 +. +MessageId=60267 +Language=English +%1 +. +MessageId=60268 +Language=English +%1 +. +MessageId=60269 +Language=English +%1 +. +MessageId=60270 +Language=English +%1 +. +MessageId=60271 +Language=English +%1 +. +MessageId=60272 +Language=English +%1 +. +MessageId=60273 +Language=English +%1 +. +MessageId=60274 +Language=English +%1 +. +MessageId=60275 +Language=English +%1 +. +MessageId=60276 +Language=English +%1 +. +MessageId=60277 +Language=English +%1 +. +MessageId=60278 +Language=English +%1 +. +MessageId=60279 +Language=English +%1 +. +MessageId=60280 +Language=English +%1 +. +MessageId=60281 +Language=English +%1 +. +MessageId=60282 +Language=English +%1 +. +MessageId=60283 +Language=English +%1 +. +MessageId=60284 +Language=English +%1 +. +MessageId=60285 +Language=English +%1 +. +MessageId=60286 +Language=English +%1 +. +MessageId=60287 +Language=English +%1 +. +MessageId=60288 +Language=English +%1 +. +MessageId=60289 +Language=English +%1 +. +MessageId=60290 +Language=English +%1 +. +MessageId=60291 +Language=English +%1 +. +MessageId=60292 +Language=English +%1 +. +MessageId=60293 +Language=English +%1 +. +MessageId=60294 +Language=English +%1 +. +MessageId=60295 +Language=English +%1 +. +MessageId=60296 +Language=English +%1 +. +MessageId=60297 +Language=English +%1 +. +MessageId=60298 +Language=English +%1 +. +MessageId=60299 +Language=English +%1 +. +MessageId=60300 +Language=English +%1 +. +MessageId=60301 +Language=English +%1 +. +MessageId=60302 +Language=English +%1 +. +MessageId=60303 +Language=English +%1 +. +MessageId=60304 +Language=English +%1 +. +MessageId=60305 +Language=English +%1 +. +MessageId=60306 +Language=English +%1 +. +MessageId=60307 +Language=English +%1 +. +MessageId=60308 +Language=English +%1 +. +MessageId=60309 +Language=English +%1 +. +MessageId=60310 +Language=English +%1 +. +MessageId=60311 +Language=English +%1 +. +MessageId=60312 +Language=English +%1 +. +MessageId=60313 +Language=English +%1 +. +MessageId=60314 +Language=English +%1 +. +MessageId=60315 +Language=English +%1 +. +MessageId=60316 +Language=English +%1 +. +MessageId=60317 +Language=English +%1 +. +MessageId=60318 +Language=English +%1 +. +MessageId=60319 +Language=English +%1 +. +MessageId=60320 +Language=English +%1 +. +MessageId=60321 +Language=English +%1 +. +MessageId=60322 +Language=English +%1 +. +MessageId=60323 +Language=English +%1 +. +MessageId=60324 +Language=English +%1 +. +MessageId=60325 +Language=English +%1 +. +MessageId=60326 +Language=English +%1 +. +MessageId=60327 +Language=English +%1 +. +MessageId=60328 +Language=English +%1 +. +MessageId=60329 +Language=English +%1 +. +MessageId=60330 +Language=English +%1 +. +MessageId=60331 +Language=English +%1 +. +MessageId=60332 +Language=English +%1 +. +MessageId=60333 +Language=English +%1 +. +MessageId=60334 +Language=English +%1 +. +MessageId=60335 +Language=English +%1 +. +MessageId=60336 +Language=English +%1 +. +MessageId=60337 +Language=English +%1 +. +MessageId=60338 +Language=English +%1 +. +MessageId=60339 +Language=English +%1 +. +MessageId=60340 +Language=English +%1 +. +MessageId=60341 +Language=English +%1 +. +MessageId=60342 +Language=English +%1 +. +MessageId=60343 +Language=English +%1 +. +MessageId=60344 +Language=English +%1 +. +MessageId=60345 +Language=English +%1 +. +MessageId=60346 +Language=English +%1 +. +MessageId=60347 +Language=English +%1 +. +MessageId=60348 +Language=English +%1 +. +MessageId=60349 +Language=English +%1 +. +MessageId=60350 +Language=English +%1 +. +MessageId=60351 +Language=English +%1 +. +MessageId=60352 +Language=English +%1 +. +MessageId=60353 +Language=English +%1 +. +MessageId=60354 +Language=English +%1 +. +MessageId=60355 +Language=English +%1 +. +MessageId=60356 +Language=English +%1 +. +MessageId=60357 +Language=English +%1 +. +MessageId=60358 +Language=English +%1 +. +MessageId=60359 +Language=English +%1 +. +MessageId=60360 +Language=English +%1 +. +MessageId=60361 +Language=English +%1 +. +MessageId=60362 +Language=English +%1 +. +MessageId=60363 +Language=English +%1 +. +MessageId=60364 +Language=English +%1 +. +MessageId=60365 +Language=English +%1 +. +MessageId=60366 +Language=English +%1 +. +MessageId=60367 +Language=English +%1 +. +MessageId=60368 +Language=English +%1 +. +MessageId=60369 +Language=English +%1 +. +MessageId=60370 +Language=English +%1 +. +MessageId=60371 +Language=English +%1 +. +MessageId=60372 +Language=English +%1 +. +MessageId=60373 +Language=English +%1 +. +MessageId=60374 +Language=English +%1 +. +MessageId=60375 +Language=English +%1 +. +MessageId=60376 +Language=English +%1 +. +MessageId=60377 +Language=English +%1 +. +MessageId=60378 +Language=English +%1 +. +MessageId=60379 +Language=English +%1 +. +MessageId=60380 +Language=English +%1 +. +MessageId=60381 +Language=English +%1 +. +MessageId=60382 +Language=English +%1 +. +MessageId=60383 +Language=English +%1 +. +MessageId=60384 +Language=English +%1 +. +MessageId=60385 +Language=English +%1 +. +MessageId=60386 +Language=English +%1 +. +MessageId=60387 +Language=English +%1 +. +MessageId=60388 +Language=English +%1 +. +MessageId=60389 +Language=English +%1 +. +MessageId=60390 +Language=English +%1 +. +MessageId=60391 +Language=English +%1 +. +MessageId=60392 +Language=English +%1 +. +MessageId=60393 +Language=English +%1 +. +MessageId=60394 +Language=English +%1 +. +MessageId=60395 +Language=English +%1 +. +MessageId=60396 +Language=English +%1 +. +MessageId=60397 +Language=English +%1 +. +MessageId=60398 +Language=English +%1 +. +MessageId=60399 +Language=English +%1 +. +MessageId=60400 +Language=English +%1 +. +MessageId=60401 +Language=English +%1 +. +MessageId=60402 +Language=English +%1 +. +MessageId=60403 +Language=English +%1 +. +MessageId=60404 +Language=English +%1 +. +MessageId=60405 +Language=English +%1 +. +MessageId=60406 +Language=English +%1 +. +MessageId=60407 +Language=English +%1 +. +MessageId=60408 +Language=English +%1 +. +MessageId=60409 +Language=English +%1 +. +MessageId=60410 +Language=English +%1 +. +MessageId=60411 +Language=English +%1 +. +MessageId=60412 +Language=English +%1 +. +MessageId=60413 +Language=English +%1 +. +MessageId=60414 +Language=English +%1 +. +MessageId=60415 +Language=English +%1 +. +MessageId=60416 +Language=English +%1 +. +MessageId=60417 +Language=English +%1 +. +MessageId=60418 +Language=English +%1 +. +MessageId=60419 +Language=English +%1 +. +MessageId=60420 +Language=English +%1 +. +MessageId=60421 +Language=English +%1 +. +MessageId=60422 +Language=English +%1 +. +MessageId=60423 +Language=English +%1 +. +MessageId=60424 +Language=English +%1 +. +MessageId=60425 +Language=English +%1 +. +MessageId=60426 +Language=English +%1 +. +MessageId=60427 +Language=English +%1 +. +MessageId=60428 +Language=English +%1 +. +MessageId=60429 +Language=English +%1 +. +MessageId=60430 +Language=English +%1 +. +MessageId=60431 +Language=English +%1 +. +MessageId=60432 +Language=English +%1 +. +MessageId=60433 +Language=English +%1 +. +MessageId=60434 +Language=English +%1 +. +MessageId=60435 +Language=English +%1 +. +MessageId=60436 +Language=English +%1 +. +MessageId=60437 +Language=English +%1 +. +MessageId=60438 +Language=English +%1 +. +MessageId=60439 +Language=English +%1 +. +MessageId=60440 +Language=English +%1 +. +MessageId=60441 +Language=English +%1 +. +MessageId=60442 +Language=English +%1 +. +MessageId=60443 +Language=English +%1 +. +MessageId=60444 +Language=English +%1 +. +MessageId=60445 +Language=English +%1 +. +MessageId=60446 +Language=English +%1 +. +MessageId=60447 +Language=English +%1 +. +MessageId=60448 +Language=English +%1 +. +MessageId=60449 +Language=English +%1 +. +MessageId=60450 +Language=English +%1 +. +MessageId=60451 +Language=English +%1 +. +MessageId=60452 +Language=English +%1 +. +MessageId=60453 +Language=English +%1 +. +MessageId=60454 +Language=English +%1 +. +MessageId=60455 +Language=English +%1 +. +MessageId=60456 +Language=English +%1 +. +MessageId=60457 +Language=English +%1 +. +MessageId=60458 +Language=English +%1 +. +MessageId=60459 +Language=English +%1 +. +MessageId=60460 +Language=English +%1 +. +MessageId=60461 +Language=English +%1 +. +MessageId=60462 +Language=English +%1 +. +MessageId=60463 +Language=English +%1 +. +MessageId=60464 +Language=English +%1 +. +MessageId=60465 +Language=English +%1 +. +MessageId=60466 +Language=English +%1 +. +MessageId=60467 +Language=English +%1 +. +MessageId=60468 +Language=English +%1 +. +MessageId=60469 +Language=English +%1 +. +MessageId=60470 +Language=English +%1 +. +MessageId=60471 +Language=English +%1 +. +MessageId=60472 +Language=English +%1 +. +MessageId=60473 +Language=English +%1 +. +MessageId=60474 +Language=English +%1 +. +MessageId=60475 +Language=English +%1 +. +MessageId=60476 +Language=English +%1 +. +MessageId=60477 +Language=English +%1 +. +MessageId=60478 +Language=English +%1 +. +MessageId=60479 +Language=English +%1 +. +MessageId=60480 +Language=English +%1 +. +MessageId=60481 +Language=English +%1 +. +MessageId=60482 +Language=English +%1 +. +MessageId=60483 +Language=English +%1 +. +MessageId=60484 +Language=English +%1 +. +MessageId=60485 +Language=English +%1 +. +MessageId=60486 +Language=English +%1 +. +MessageId=60487 +Language=English +%1 +. +MessageId=60488 +Language=English +%1 +. +MessageId=60489 +Language=English +%1 +. +MessageId=60490 +Language=English +%1 +. +MessageId=60491 +Language=English +%1 +. +MessageId=60492 +Language=English +%1 +. +MessageId=60493 +Language=English +%1 +. +MessageId=60494 +Language=English +%1 +. +MessageId=60495 +Language=English +%1 +. +MessageId=60496 +Language=English +%1 +. +MessageId=60497 +Language=English +%1 +. +MessageId=60498 +Language=English +%1 +. +MessageId=60499 +Language=English +%1 +. +MessageId=60500 +Language=English +%1 +. +MessageId=60501 +Language=English +%1 +. +MessageId=60502 +Language=English +%1 +. +MessageId=60503 +Language=English +%1 +. +MessageId=60504 +Language=English +%1 +. +MessageId=60505 +Language=English +%1 +. +MessageId=60506 +Language=English +%1 +. +MessageId=60507 +Language=English +%1 +. +MessageId=60508 +Language=English +%1 +. +MessageId=60509 +Language=English +%1 +. +MessageId=60510 +Language=English +%1 +. +MessageId=60511 +Language=English +%1 +. +MessageId=60512 +Language=English +%1 +. +MessageId=60513 +Language=English +%1 +. +MessageId=60514 +Language=English +%1 +. +MessageId=60515 +Language=English +%1 +. +MessageId=60516 +Language=English +%1 +. +MessageId=60517 +Language=English +%1 +. +MessageId=60518 +Language=English +%1 +. +MessageId=60519 +Language=English +%1 +. +MessageId=60520 +Language=English +%1 +. +MessageId=60521 +Language=English +%1 +. +MessageId=60522 +Language=English +%1 +. +MessageId=60523 +Language=English +%1 +. +MessageId=60524 +Language=English +%1 +. +MessageId=60525 +Language=English +%1 +. +MessageId=60526 +Language=English +%1 +. +MessageId=60527 +Language=English +%1 +. +MessageId=60528 +Language=English +%1 +. +MessageId=60529 +Language=English +%1 +. +MessageId=60530 +Language=English +%1 +. +MessageId=60531 +Language=English +%1 +. +MessageId=60532 +Language=English +%1 +. +MessageId=60533 +Language=English +%1 +. +MessageId=60534 +Language=English +%1 +. +MessageId=60535 +Language=English +%1 +. +MessageId=60536 +Language=English +%1 +. +MessageId=60537 +Language=English +%1 +. +MessageId=60538 +Language=English +%1 +. +MessageId=60539 +Language=English +%1 +. +MessageId=60540 +Language=English +%1 +. +MessageId=60541 +Language=English +%1 +. +MessageId=60542 +Language=English +%1 +. +MessageId=60543 +Language=English +%1 +. +MessageId=60544 +Language=English +%1 +. +MessageId=60545 +Language=English +%1 +. +MessageId=60546 +Language=English +%1 +. +MessageId=60547 +Language=English +%1 +. +MessageId=60548 +Language=English +%1 +. +MessageId=60549 +Language=English +%1 +. +MessageId=60550 +Language=English +%1 +. +MessageId=60551 +Language=English +%1 +. +MessageId=60552 +Language=English +%1 +. +MessageId=60553 +Language=English +%1 +. +MessageId=60554 +Language=English +%1 +. +MessageId=60555 +Language=English +%1 +. +MessageId=60556 +Language=English +%1 +. +MessageId=60557 +Language=English +%1 +. +MessageId=60558 +Language=English +%1 +. +MessageId=60559 +Language=English +%1 +. +MessageId=60560 +Language=English +%1 +. +MessageId=60561 +Language=English +%1 +. +MessageId=60562 +Language=English +%1 +. +MessageId=60563 +Language=English +%1 +. +MessageId=60564 +Language=English +%1 +. +MessageId=60565 +Language=English +%1 +. +MessageId=60566 +Language=English +%1 +. +MessageId=60567 +Language=English +%1 +. +MessageId=60568 +Language=English +%1 +. +MessageId=60569 +Language=English +%1 +. +MessageId=60570 +Language=English +%1 +. +MessageId=60571 +Language=English +%1 +. +MessageId=60572 +Language=English +%1 +. +MessageId=60573 +Language=English +%1 +. +MessageId=60574 +Language=English +%1 +. +MessageId=60575 +Language=English +%1 +. +MessageId=60576 +Language=English +%1 +. +MessageId=60577 +Language=English +%1 +. +MessageId=60578 +Language=English +%1 +. +MessageId=60579 +Language=English +%1 +. +MessageId=60580 +Language=English +%1 +. +MessageId=60581 +Language=English +%1 +. +MessageId=60582 +Language=English +%1 +. +MessageId=60583 +Language=English +%1 +. +MessageId=60584 +Language=English +%1 +. +MessageId=60585 +Language=English +%1 +. +MessageId=60586 +Language=English +%1 +. +MessageId=60587 +Language=English +%1 +. +MessageId=60588 +Language=English +%1 +. +MessageId=60589 +Language=English +%1 +. +MessageId=60590 +Language=English +%1 +. +MessageId=60591 +Language=English +%1 +. +MessageId=60592 +Language=English +%1 +. +MessageId=60593 +Language=English +%1 +. +MessageId=60594 +Language=English +%1 +. +MessageId=60595 +Language=English +%1 +. +MessageId=60596 +Language=English +%1 +. +MessageId=60597 +Language=English +%1 +. +MessageId=60598 +Language=English +%1 +. +MessageId=60599 +Language=English +%1 +. +MessageId=60600 +Language=English +%1 +. +MessageId=60601 +Language=English +%1 +. +MessageId=60602 +Language=English +%1 +. +MessageId=60603 +Language=English +%1 +. +MessageId=60604 +Language=English +%1 +. +MessageId=60605 +Language=English +%1 +. +MessageId=60606 +Language=English +%1 +. +MessageId=60607 +Language=English +%1 +. +MessageId=60608 +Language=English +%1 +. +MessageId=60609 +Language=English +%1 +. +MessageId=60610 +Language=English +%1 +. +MessageId=60611 +Language=English +%1 +. +MessageId=60612 +Language=English +%1 +. +MessageId=60613 +Language=English +%1 +. +MessageId=60614 +Language=English +%1 +. +MessageId=60615 +Language=English +%1 +. +MessageId=60616 +Language=English +%1 +. +MessageId=60617 +Language=English +%1 +. +MessageId=60618 +Language=English +%1 +. +MessageId=60619 +Language=English +%1 +. +MessageId=60620 +Language=English +%1 +. +MessageId=60621 +Language=English +%1 +. +MessageId=60622 +Language=English +%1 +. +MessageId=60623 +Language=English +%1 +. +MessageId=60624 +Language=English +%1 +. +MessageId=60625 +Language=English +%1 +. +MessageId=60626 +Language=English +%1 +. +MessageId=60627 +Language=English +%1 +. +MessageId=60628 +Language=English +%1 +. +MessageId=60629 +Language=English +%1 +. +MessageId=60630 +Language=English +%1 +. +MessageId=60631 +Language=English +%1 +. +MessageId=60632 +Language=English +%1 +. +MessageId=60633 +Language=English +%1 +. +MessageId=60634 +Language=English +%1 +. +MessageId=60635 +Language=English +%1 +. +MessageId=60636 +Language=English +%1 +. +MessageId=60637 +Language=English +%1 +. +MessageId=60638 +Language=English +%1 +. +MessageId=60639 +Language=English +%1 +. +MessageId=60640 +Language=English +%1 +. +MessageId=60641 +Language=English +%1 +. +MessageId=60642 +Language=English +%1 +. +MessageId=60643 +Language=English +%1 +. +MessageId=60644 +Language=English +%1 +. +MessageId=60645 +Language=English +%1 +. +MessageId=60646 +Language=English +%1 +. +MessageId=60647 +Language=English +%1 +. +MessageId=60648 +Language=English +%1 +. +MessageId=60649 +Language=English +%1 +. +MessageId=60650 +Language=English +%1 +. +MessageId=60651 +Language=English +%1 +. +MessageId=60652 +Language=English +%1 +. +MessageId=60653 +Language=English +%1 +. +MessageId=60654 +Language=English +%1 +. +MessageId=60655 +Language=English +%1 +. +MessageId=60656 +Language=English +%1 +. +MessageId=60657 +Language=English +%1 +. +MessageId=60658 +Language=English +%1 +. +MessageId=60659 +Language=English +%1 +. +MessageId=60660 +Language=English +%1 +. +MessageId=60661 +Language=English +%1 +. +MessageId=60662 +Language=English +%1 +. +MessageId=60663 +Language=English +%1 +. +MessageId=60664 +Language=English +%1 +. +MessageId=60665 +Language=English +%1 +. +MessageId=60666 +Language=English +%1 +. +MessageId=60667 +Language=English +%1 +. +MessageId=60668 +Language=English +%1 +. +MessageId=60669 +Language=English +%1 +. +MessageId=60670 +Language=English +%1 +. +MessageId=60671 +Language=English +%1 +. +MessageId=60672 +Language=English +%1 +. +MessageId=60673 +Language=English +%1 +. +MessageId=60674 +Language=English +%1 +. +MessageId=60675 +Language=English +%1 +. +MessageId=60676 +Language=English +%1 +. +MessageId=60677 +Language=English +%1 +. +MessageId=60678 +Language=English +%1 +. +MessageId=60679 +Language=English +%1 +. +MessageId=60680 +Language=English +%1 +. +MessageId=60681 +Language=English +%1 +. +MessageId=60682 +Language=English +%1 +. +MessageId=60683 +Language=English +%1 +. +MessageId=60684 +Language=English +%1 +. +MessageId=60685 +Language=English +%1 +. +MessageId=60686 +Language=English +%1 +. +MessageId=60687 +Language=English +%1 +. +MessageId=60688 +Language=English +%1 +. +MessageId=60689 +Language=English +%1 +. +MessageId=60690 +Language=English +%1 +. +MessageId=60691 +Language=English +%1 +. +MessageId=60692 +Language=English +%1 +. +MessageId=60693 +Language=English +%1 +. +MessageId=60694 +Language=English +%1 +. +MessageId=60695 +Language=English +%1 +. +MessageId=60696 +Language=English +%1 +. +MessageId=60697 +Language=English +%1 +. +MessageId=60698 +Language=English +%1 +. +MessageId=60699 +Language=English +%1 +. +MessageId=60700 +Language=English +%1 +. +MessageId=60701 +Language=English +%1 +. +MessageId=60702 +Language=English +%1 +. +MessageId=60703 +Language=English +%1 +. +MessageId=60704 +Language=English +%1 +. +MessageId=60705 +Language=English +%1 +. +MessageId=60706 +Language=English +%1 +. +MessageId=60707 +Language=English +%1 +. +MessageId=60708 +Language=English +%1 +. +MessageId=60709 +Language=English +%1 +. +MessageId=60710 +Language=English +%1 +. +MessageId=60711 +Language=English +%1 +. +MessageId=60712 +Language=English +%1 +. +MessageId=60713 +Language=English +%1 +. +MessageId=60714 +Language=English +%1 +. +MessageId=60715 +Language=English +%1 +. +MessageId=60716 +Language=English +%1 +. +MessageId=60717 +Language=English +%1 +. +MessageId=60718 +Language=English +%1 +. +MessageId=60719 +Language=English +%1 +. +MessageId=60720 +Language=English +%1 +. +MessageId=60721 +Language=English +%1 +. +MessageId=60722 +Language=English +%1 +. +MessageId=60723 +Language=English +%1 +. +MessageId=60724 +Language=English +%1 +. +MessageId=60725 +Language=English +%1 +. +MessageId=60726 +Language=English +%1 +. +MessageId=60727 +Language=English +%1 +. +MessageId=60728 +Language=English +%1 +. +MessageId=60729 +Language=English +%1 +. +MessageId=60730 +Language=English +%1 +. +MessageId=60731 +Language=English +%1 +. +MessageId=60732 +Language=English +%1 +. +MessageId=60733 +Language=English +%1 +. +MessageId=60734 +Language=English +%1 +. +MessageId=60735 +Language=English +%1 +. +MessageId=60736 +Language=English +%1 +. +MessageId=60737 +Language=English +%1 +. +MessageId=60738 +Language=English +%1 +. +MessageId=60739 +Language=English +%1 +. +MessageId=60740 +Language=English +%1 +. +MessageId=60741 +Language=English +%1 +. +MessageId=60742 +Language=English +%1 +. +MessageId=60743 +Language=English +%1 +. +MessageId=60744 +Language=English +%1 +. +MessageId=60745 +Language=English +%1 +. +MessageId=60746 +Language=English +%1 +. +MessageId=60747 +Language=English +%1 +. +MessageId=60748 +Language=English +%1 +. +MessageId=60749 +Language=English +%1 +. +MessageId=60750 +Language=English +%1 +. +MessageId=60751 +Language=English +%1 +. +MessageId=60752 +Language=English +%1 +. +MessageId=60753 +Language=English +%1 +. +MessageId=60754 +Language=English +%1 +. +MessageId=60755 +Language=English +%1 +. +MessageId=60756 +Language=English +%1 +. +MessageId=60757 +Language=English +%1 +. +MessageId=60758 +Language=English +%1 +. +MessageId=60759 +Language=English +%1 +. +MessageId=60760 +Language=English +%1 +. +MessageId=60761 +Language=English +%1 +. +MessageId=60762 +Language=English +%1 +. +MessageId=60763 +Language=English +%1 +. +MessageId=60764 +Language=English +%1 +. +MessageId=60765 +Language=English +%1 +. +MessageId=60766 +Language=English +%1 +. +MessageId=60767 +Language=English +%1 +. +MessageId=60768 +Language=English +%1 +. +MessageId=60769 +Language=English +%1 +. +MessageId=60770 +Language=English +%1 +. +MessageId=60771 +Language=English +%1 +. +MessageId=60772 +Language=English +%1 +. +MessageId=60773 +Language=English +%1 +. +MessageId=60774 +Language=English +%1 +. +MessageId=60775 +Language=English +%1 +. +MessageId=60776 +Language=English +%1 +. +MessageId=60777 +Language=English +%1 +. +MessageId=60778 +Language=English +%1 +. +MessageId=60779 +Language=English +%1 +. +MessageId=60780 +Language=English +%1 +. +MessageId=60781 +Language=English +%1 +. +MessageId=60782 +Language=English +%1 +. +MessageId=60783 +Language=English +%1 +. +MessageId=60784 +Language=English +%1 +. +MessageId=60785 +Language=English +%1 +. +MessageId=60786 +Language=English +%1 +. +MessageId=60787 +Language=English +%1 +. +MessageId=60788 +Language=English +%1 +. +MessageId=60789 +Language=English +%1 +. +MessageId=60790 +Language=English +%1 +. +MessageId=60791 +Language=English +%1 +. +MessageId=60792 +Language=English +%1 +. +MessageId=60793 +Language=English +%1 +. +MessageId=60794 +Language=English +%1 +. +MessageId=60795 +Language=English +%1 +. +MessageId=60796 +Language=English +%1 +. +MessageId=60797 +Language=English +%1 +. +MessageId=60798 +Language=English +%1 +. +MessageId=60799 +Language=English +%1 +. +MessageId=60800 +Language=English +%1 +. +MessageId=60801 +Language=English +%1 +. +MessageId=60802 +Language=English +%1 +. +MessageId=60803 +Language=English +%1 +. +MessageId=60804 +Language=English +%1 +. +MessageId=60805 +Language=English +%1 +. +MessageId=60806 +Language=English +%1 +. +MessageId=60807 +Language=English +%1 +. +MessageId=60808 +Language=English +%1 +. +MessageId=60809 +Language=English +%1 +. +MessageId=60810 +Language=English +%1 +. +MessageId=60811 +Language=English +%1 +. +MessageId=60812 +Language=English +%1 +. +MessageId=60813 +Language=English +%1 +. +MessageId=60814 +Language=English +%1 +. +MessageId=60815 +Language=English +%1 +. +MessageId=60816 +Language=English +%1 +. +MessageId=60817 +Language=English +%1 +. +MessageId=60818 +Language=English +%1 +. +MessageId=60819 +Language=English +%1 +. +MessageId=60820 +Language=English +%1 +. +MessageId=60821 +Language=English +%1 +. +MessageId=60822 +Language=English +%1 +. +MessageId=60823 +Language=English +%1 +. +MessageId=60824 +Language=English +%1 +. +MessageId=60825 +Language=English +%1 +. +MessageId=60826 +Language=English +%1 +. +MessageId=60827 +Language=English +%1 +. +MessageId=60828 +Language=English +%1 +. +MessageId=60829 +Language=English +%1 +. +MessageId=60830 +Language=English +%1 +. +MessageId=60831 +Language=English +%1 +. +MessageId=60832 +Language=English +%1 +. +MessageId=60833 +Language=English +%1 +. +MessageId=60834 +Language=English +%1 +. +MessageId=60835 +Language=English +%1 +. +MessageId=60836 +Language=English +%1 +. +MessageId=60837 +Language=English +%1 +. +MessageId=60838 +Language=English +%1 +. +MessageId=60839 +Language=English +%1 +. +MessageId=60840 +Language=English +%1 +. +MessageId=60841 +Language=English +%1 +. +MessageId=60842 +Language=English +%1 +. +MessageId=60843 +Language=English +%1 +. +MessageId=60844 +Language=English +%1 +. +MessageId=60845 +Language=English +%1 +. +MessageId=60846 +Language=English +%1 +. +MessageId=60847 +Language=English +%1 +. +MessageId=60848 +Language=English +%1 +. +MessageId=60849 +Language=English +%1 +. +MessageId=60850 +Language=English +%1 +. +MessageId=60851 +Language=English +%1 +. +MessageId=60852 +Language=English +%1 +. +MessageId=60853 +Language=English +%1 +. +MessageId=60854 +Language=English +%1 +. +MessageId=60855 +Language=English +%1 +. +MessageId=60856 +Language=English +%1 +. +MessageId=60857 +Language=English +%1 +. +MessageId=60858 +Language=English +%1 +. +MessageId=60859 +Language=English +%1 +. +MessageId=60860 +Language=English +%1 +. +MessageId=60861 +Language=English +%1 +. +MessageId=60862 +Language=English +%1 +. +MessageId=60863 +Language=English +%1 +. +MessageId=60864 +Language=English +%1 +. +MessageId=60865 +Language=English +%1 +. +MessageId=60866 +Language=English +%1 +. +MessageId=60867 +Language=English +%1 +. +MessageId=60868 +Language=English +%1 +. +MessageId=60869 +Language=English +%1 +. +MessageId=60870 +Language=English +%1 +. +MessageId=60871 +Language=English +%1 +. +MessageId=60872 +Language=English +%1 +. +MessageId=60873 +Language=English +%1 +. +MessageId=60874 +Language=English +%1 +. +MessageId=60875 +Language=English +%1 +. +MessageId=60876 +Language=English +%1 +. +MessageId=60877 +Language=English +%1 +. +MessageId=60878 +Language=English +%1 +. +MessageId=60879 +Language=English +%1 +. +MessageId=60880 +Language=English +%1 +. +MessageId=60881 +Language=English +%1 +. +MessageId=60882 +Language=English +%1 +. +MessageId=60883 +Language=English +%1 +. +MessageId=60884 +Language=English +%1 +. +MessageId=60885 +Language=English +%1 +. +MessageId=60886 +Language=English +%1 +. +MessageId=60887 +Language=English +%1 +. +MessageId=60888 +Language=English +%1 +. +MessageId=60889 +Language=English +%1 +. +MessageId=60890 +Language=English +%1 +. +MessageId=60891 +Language=English +%1 +. +MessageId=60892 +Language=English +%1 +. +MessageId=60893 +Language=English +%1 +. +MessageId=60894 +Language=English +%1 +. +MessageId=60895 +Language=English +%1 +. +MessageId=60896 +Language=English +%1 +. +MessageId=60897 +Language=English +%1 +. +MessageId=60898 +Language=English +%1 +. +MessageId=60899 +Language=English +%1 +. +MessageId=60900 +Language=English +%1 +. +MessageId=60901 +Language=English +%1 +. +MessageId=60902 +Language=English +%1 +. +MessageId=60903 +Language=English +%1 +. +MessageId=60904 +Language=English +%1 +. +MessageId=60905 +Language=English +%1 +. +MessageId=60906 +Language=English +%1 +. +MessageId=60907 +Language=English +%1 +. +MessageId=60908 +Language=English +%1 +. +MessageId=60909 +Language=English +%1 +. +MessageId=60910 +Language=English +%1 +. +MessageId=60911 +Language=English +%1 +. +MessageId=60912 +Language=English +%1 +. +MessageId=60913 +Language=English +%1 +. +MessageId=60914 +Language=English +%1 +. +MessageId=60915 +Language=English +%1 +. +MessageId=60916 +Language=English +%1 +. +MessageId=60917 +Language=English +%1 +. +MessageId=60918 +Language=English +%1 +. +MessageId=60919 +Language=English +%1 +. +MessageId=60920 +Language=English +%1 +. +MessageId=60921 +Language=English +%1 +. +MessageId=60922 +Language=English +%1 +. +MessageId=60923 +Language=English +%1 +. +MessageId=60924 +Language=English +%1 +. +MessageId=60925 +Language=English +%1 +. +MessageId=60926 +Language=English +%1 +. +MessageId=60927 +Language=English +%1 +. +MessageId=60928 +Language=English +%1 +. +MessageId=60929 +Language=English +%1 +. +MessageId=60930 +Language=English +%1 +. +MessageId=60931 +Language=English +%1 +. +MessageId=60932 +Language=English +%1 +. +MessageId=60933 +Language=English +%1 +. +MessageId=60934 +Language=English +%1 +. +MessageId=60935 +Language=English +%1 +. +MessageId=60936 +Language=English +%1 +. +MessageId=60937 +Language=English +%1 +. +MessageId=60938 +Language=English +%1 +. +MessageId=60939 +Language=English +%1 +. +MessageId=60940 +Language=English +%1 +. +MessageId=60941 +Language=English +%1 +. +MessageId=60942 +Language=English +%1 +. +MessageId=60943 +Language=English +%1 +. +MessageId=60944 +Language=English +%1 +. +MessageId=60945 +Language=English +%1 +. +MessageId=60946 +Language=English +%1 +. +MessageId=60947 +Language=English +%1 +. +MessageId=60948 +Language=English +%1 +. +MessageId=60949 +Language=English +%1 +. +MessageId=60950 +Language=English +%1 +. +MessageId=60951 +Language=English +%1 +. +MessageId=60952 +Language=English +%1 +. +MessageId=60953 +Language=English +%1 +. +MessageId=60954 +Language=English +%1 +. +MessageId=60955 +Language=English +%1 +. +MessageId=60956 +Language=English +%1 +. +MessageId=60957 +Language=English +%1 +. +MessageId=60958 +Language=English +%1 +. +MessageId=60959 +Language=English +%1 +. +MessageId=60960 +Language=English +%1 +. +MessageId=60961 +Language=English +%1 +. +MessageId=60962 +Language=English +%1 +. +MessageId=60963 +Language=English +%1 +. +MessageId=60964 +Language=English +%1 +. +MessageId=60965 +Language=English +%1 +. +MessageId=60966 +Language=English +%1 +. +MessageId=60967 +Language=English +%1 +. +MessageId=60968 +Language=English +%1 +. +MessageId=60969 +Language=English +%1 +. +MessageId=60970 +Language=English +%1 +. +MessageId=60971 +Language=English +%1 +. +MessageId=60972 +Language=English +%1 +. +MessageId=60973 +Language=English +%1 +. +MessageId=60974 +Language=English +%1 +. +MessageId=60975 +Language=English +%1 +. +MessageId=60976 +Language=English +%1 +. +MessageId=60977 +Language=English +%1 +. +MessageId=60978 +Language=English +%1 +. +MessageId=60979 +Language=English +%1 +. +MessageId=60980 +Language=English +%1 +. +MessageId=60981 +Language=English +%1 +. +MessageId=60982 +Language=English +%1 +. +MessageId=60983 +Language=English +%1 +. +MessageId=60984 +Language=English +%1 +. +MessageId=60985 +Language=English +%1 +. +MessageId=60986 +Language=English +%1 +. +MessageId=60987 +Language=English +%1 +. +MessageId=60988 +Language=English +%1 +. +MessageId=60989 +Language=English +%1 +. +MessageId=60990 +Language=English +%1 +. +MessageId=60991 +Language=English +%1 +. +MessageId=60992 +Language=English +%1 +. +MessageId=60993 +Language=English +%1 +. +MessageId=60994 +Language=English +%1 +. +MessageId=60995 +Language=English +%1 +. +MessageId=60996 +Language=English +%1 +. +MessageId=60997 +Language=English +%1 +. +MessageId=60998 +Language=English +%1 +. +MessageId=60999 +Language=English +%1 +. +MessageId=61000 +Language=English +%1 +. +MessageId=61001 +Language=English +%1 +. +MessageId=61002 +Language=English +%1 +. +MessageId=61003 +Language=English +%1 +. +MessageId=61004 +Language=English +%1 +. +MessageId=61005 +Language=English +%1 +. +MessageId=61006 +Language=English +%1 +. +MessageId=61007 +Language=English +%1 +. +MessageId=61008 +Language=English +%1 +. +MessageId=61009 +Language=English +%1 +. +MessageId=61010 +Language=English +%1 +. +MessageId=61011 +Language=English +%1 +. +MessageId=61012 +Language=English +%1 +. +MessageId=61013 +Language=English +%1 +. +MessageId=61014 +Language=English +%1 +. +MessageId=61015 +Language=English +%1 +. +MessageId=61016 +Language=English +%1 +. +MessageId=61017 +Language=English +%1 +. +MessageId=61018 +Language=English +%1 +. +MessageId=61019 +Language=English +%1 +. +MessageId=61020 +Language=English +%1 +. +MessageId=61021 +Language=English +%1 +. +MessageId=61022 +Language=English +%1 +. +MessageId=61023 +Language=English +%1 +. +MessageId=61024 +Language=English +%1 +. +MessageId=61025 +Language=English +%1 +. +MessageId=61026 +Language=English +%1 +. +MessageId=61027 +Language=English +%1 +. +MessageId=61028 +Language=English +%1 +. +MessageId=61029 +Language=English +%1 +. +MessageId=61030 +Language=English +%1 +. +MessageId=61031 +Language=English +%1 +. +MessageId=61032 +Language=English +%1 +. +MessageId=61033 +Language=English +%1 +. +MessageId=61034 +Language=English +%1 +. +MessageId=61035 +Language=English +%1 +. +MessageId=61036 +Language=English +%1 +. +MessageId=61037 +Language=English +%1 +. +MessageId=61038 +Language=English +%1 +. +MessageId=61039 +Language=English +%1 +. +MessageId=61040 +Language=English +%1 +. +MessageId=61041 +Language=English +%1 +. +MessageId=61042 +Language=English +%1 +. +MessageId=61043 +Language=English +%1 +. +MessageId=61044 +Language=English +%1 +. +MessageId=61045 +Language=English +%1 +. +MessageId=61046 +Language=English +%1 +. +MessageId=61047 +Language=English +%1 +. +MessageId=61048 +Language=English +%1 +. +MessageId=61049 +Language=English +%1 +. +MessageId=61050 +Language=English +%1 +. +MessageId=61051 +Language=English +%1 +. +MessageId=61052 +Language=English +%1 +. +MessageId=61053 +Language=English +%1 +. +MessageId=61054 +Language=English +%1 +. +MessageId=61055 +Language=English +%1 +. +MessageId=61056 +Language=English +%1 +. +MessageId=61057 +Language=English +%1 +. +MessageId=61058 +Language=English +%1 +. +MessageId=61059 +Language=English +%1 +. +MessageId=61060 +Language=English +%1 +. +MessageId=61061 +Language=English +%1 +. +MessageId=61062 +Language=English +%1 +. +MessageId=61063 +Language=English +%1 +. +MessageId=61064 +Language=English +%1 +. +MessageId=61065 +Language=English +%1 +. +MessageId=61066 +Language=English +%1 +. +MessageId=61067 +Language=English +%1 +. +MessageId=61068 +Language=English +%1 +. +MessageId=61069 +Language=English +%1 +. +MessageId=61070 +Language=English +%1 +. +MessageId=61071 +Language=English +%1 +. +MessageId=61072 +Language=English +%1 +. +MessageId=61073 +Language=English +%1 +. +MessageId=61074 +Language=English +%1 +. +MessageId=61075 +Language=English +%1 +. +MessageId=61076 +Language=English +%1 +. +MessageId=61077 +Language=English +%1 +. +MessageId=61078 +Language=English +%1 +. +MessageId=61079 +Language=English +%1 +. +MessageId=61080 +Language=English +%1 +. +MessageId=61081 +Language=English +%1 +. +MessageId=61082 +Language=English +%1 +. +MessageId=61083 +Language=English +%1 +. +MessageId=61084 +Language=English +%1 +. +MessageId=61085 +Language=English +%1 +. +MessageId=61086 +Language=English +%1 +. +MessageId=61087 +Language=English +%1 +. +MessageId=61088 +Language=English +%1 +. +MessageId=61089 +Language=English +%1 +. +MessageId=61090 +Language=English +%1 +. +MessageId=61091 +Language=English +%1 +. +MessageId=61092 +Language=English +%1 +. +MessageId=61093 +Language=English +%1 +. +MessageId=61094 +Language=English +%1 +. +MessageId=61095 +Language=English +%1 +. +MessageId=61096 +Language=English +%1 +. +MessageId=61097 +Language=English +%1 +. +MessageId=61098 +Language=English +%1 +. +MessageId=61099 +Language=English +%1 +. +MessageId=61100 +Language=English +%1 +. +MessageId=61101 +Language=English +%1 +. +MessageId=61102 +Language=English +%1 +. +MessageId=61103 +Language=English +%1 +. +MessageId=61104 +Language=English +%1 +. +MessageId=61105 +Language=English +%1 +. +MessageId=61106 +Language=English +%1 +. +MessageId=61107 +Language=English +%1 +. +MessageId=61108 +Language=English +%1 +. +MessageId=61109 +Language=English +%1 +. +MessageId=61110 +Language=English +%1 +. +MessageId=61111 +Language=English +%1 +. +MessageId=61112 +Language=English +%1 +. +MessageId=61113 +Language=English +%1 +. +MessageId=61114 +Language=English +%1 +. +MessageId=61115 +Language=English +%1 +. +MessageId=61116 +Language=English +%1 +. +MessageId=61117 +Language=English +%1 +. +MessageId=61118 +Language=English +%1 +. +MessageId=61119 +Language=English +%1 +. +MessageId=61120 +Language=English +%1 +. +MessageId=61121 +Language=English +%1 +. +MessageId=61122 +Language=English +%1 +. +MessageId=61123 +Language=English +%1 +. +MessageId=61124 +Language=English +%1 +. +MessageId=61125 +Language=English +%1 +. +MessageId=61126 +Language=English +%1 +. +MessageId=61127 +Language=English +%1 +. +MessageId=61128 +Language=English +%1 +. +MessageId=61129 +Language=English +%1 +. +MessageId=61130 +Language=English +%1 +. +MessageId=61131 +Language=English +%1 +. +MessageId=61132 +Language=English +%1 +. +MessageId=61133 +Language=English +%1 +. +MessageId=61134 +Language=English +%1 +. +MessageId=61135 +Language=English +%1 +. +MessageId=61136 +Language=English +%1 +. +MessageId=61137 +Language=English +%1 +. +MessageId=61138 +Language=English +%1 +. +MessageId=61139 +Language=English +%1 +. +MessageId=61140 +Language=English +%1 +. +MessageId=61141 +Language=English +%1 +. +MessageId=61142 +Language=English +%1 +. +MessageId=61143 +Language=English +%1 +. +MessageId=61144 +Language=English +%1 +. +MessageId=61145 +Language=English +%1 +. +MessageId=61146 +Language=English +%1 +. +MessageId=61147 +Language=English +%1 +. +MessageId=61148 +Language=English +%1 +. +MessageId=61149 +Language=English +%1 +. +MessageId=61150 +Language=English +%1 +. +MessageId=61151 +Language=English +%1 +. +MessageId=61152 +Language=English +%1 +. +MessageId=61153 +Language=English +%1 +. +MessageId=61154 +Language=English +%1 +. +MessageId=61155 +Language=English +%1 +. +MessageId=61156 +Language=English +%1 +. +MessageId=61157 +Language=English +%1 +. +MessageId=61158 +Language=English +%1 +. +MessageId=61159 +Language=English +%1 +. +MessageId=61160 +Language=English +%1 +. +MessageId=61161 +Language=English +%1 +. +MessageId=61162 +Language=English +%1 +. +MessageId=61163 +Language=English +%1 +. +MessageId=61164 +Language=English +%1 +. +MessageId=61165 +Language=English +%1 +. +MessageId=61166 +Language=English +%1 +. +MessageId=61167 +Language=English +%1 +. +MessageId=61168 +Language=English +%1 +. +MessageId=61169 +Language=English +%1 +. +MessageId=61170 +Language=English +%1 +. +MessageId=61171 +Language=English +%1 +. +MessageId=61172 +Language=English +%1 +. +MessageId=61173 +Language=English +%1 +. +MessageId=61174 +Language=English +%1 +. +MessageId=61175 +Language=English +%1 +. +MessageId=61176 +Language=English +%1 +. +MessageId=61177 +Language=English +%1 +. +MessageId=61178 +Language=English +%1 +. +MessageId=61179 +Language=English +%1 +. +MessageId=61180 +Language=English +%1 +. +MessageId=61181 +Language=English +%1 +. +MessageId=61182 +Language=English +%1 +. +MessageId=61183 +Language=English +%1 +. +MessageId=61184 +Language=English +%1 +. +MessageId=61185 +Language=English +%1 +. +MessageId=61186 +Language=English +%1 +. +MessageId=61187 +Language=English +%1 +. +MessageId=61188 +Language=English +%1 +. +MessageId=61189 +Language=English +%1 +. +MessageId=61190 +Language=English +%1 +. +MessageId=61191 +Language=English +%1 +. +MessageId=61192 +Language=English +%1 +. +MessageId=61193 +Language=English +%1 +. +MessageId=61194 +Language=English +%1 +. +MessageId=61195 +Language=English +%1 +. +MessageId=61196 +Language=English +%1 +. +MessageId=61197 +Language=English +%1 +. +MessageId=61198 +Language=English +%1 +. +MessageId=61199 +Language=English +%1 +. +MessageId=61200 +Language=English +%1 +. +MessageId=61201 +Language=English +%1 +. +MessageId=61202 +Language=English +%1 +. +MessageId=61203 +Language=English +%1 +. +MessageId=61204 +Language=English +%1 +. +MessageId=61205 +Language=English +%1 +. +MessageId=61206 +Language=English +%1 +. +MessageId=61207 +Language=English +%1 +. +MessageId=61208 +Language=English +%1 +. +MessageId=61209 +Language=English +%1 +. +MessageId=61210 +Language=English +%1 +. +MessageId=61211 +Language=English +%1 +. +MessageId=61212 +Language=English +%1 +. +MessageId=61213 +Language=English +%1 +. +MessageId=61214 +Language=English +%1 +. +MessageId=61215 +Language=English +%1 +. +MessageId=61216 +Language=English +%1 +. +MessageId=61217 +Language=English +%1 +. +MessageId=61218 +Language=English +%1 +. +MessageId=61219 +Language=English +%1 +. +MessageId=61220 +Language=English +%1 +. +MessageId=61221 +Language=English +%1 +. +MessageId=61222 +Language=English +%1 +. +MessageId=61223 +Language=English +%1 +. +MessageId=61224 +Language=English +%1 +. +MessageId=61225 +Language=English +%1 +. +MessageId=61226 +Language=English +%1 +. +MessageId=61227 +Language=English +%1 +. +MessageId=61228 +Language=English +%1 +. +MessageId=61229 +Language=English +%1 +. +MessageId=61230 +Language=English +%1 +. +MessageId=61231 +Language=English +%1 +. +MessageId=61232 +Language=English +%1 +. +MessageId=61233 +Language=English +%1 +. +MessageId=61234 +Language=English +%1 +. +MessageId=61235 +Language=English +%1 +. +MessageId=61236 +Language=English +%1 +. +MessageId=61237 +Language=English +%1 +. +MessageId=61238 +Language=English +%1 +. +MessageId=61239 +Language=English +%1 +. +MessageId=61240 +Language=English +%1 +. +MessageId=61241 +Language=English +%1 +. +MessageId=61242 +Language=English +%1 +. +MessageId=61243 +Language=English +%1 +. +MessageId=61244 +Language=English +%1 +. +MessageId=61245 +Language=English +%1 +. +MessageId=61246 +Language=English +%1 +. +MessageId=61247 +Language=English +%1 +. +MessageId=61248 +Language=English +%1 +. +MessageId=61249 +Language=English +%1 +. +MessageId=61250 +Language=English +%1 +. +MessageId=61251 +Language=English +%1 +. +MessageId=61252 +Language=English +%1 +. +MessageId=61253 +Language=English +%1 +. +MessageId=61254 +Language=English +%1 +. +MessageId=61255 +Language=English +%1 +. +MessageId=61256 +Language=English +%1 +. +MessageId=61257 +Language=English +%1 +. +MessageId=61258 +Language=English +%1 +. +MessageId=61259 +Language=English +%1 +. +MessageId=61260 +Language=English +%1 +. +MessageId=61261 +Language=English +%1 +. +MessageId=61262 +Language=English +%1 +. +MessageId=61263 +Language=English +%1 +. +MessageId=61264 +Language=English +%1 +. +MessageId=61265 +Language=English +%1 +. +MessageId=61266 +Language=English +%1 +. +MessageId=61267 +Language=English +%1 +. +MessageId=61268 +Language=English +%1 +. +MessageId=61269 +Language=English +%1 +. +MessageId=61270 +Language=English +%1 +. +MessageId=61271 +Language=English +%1 +. +MessageId=61272 +Language=English +%1 +. +MessageId=61273 +Language=English +%1 +. +MessageId=61274 +Language=English +%1 +. +MessageId=61275 +Language=English +%1 +. +MessageId=61276 +Language=English +%1 +. +MessageId=61277 +Language=English +%1 +. +MessageId=61278 +Language=English +%1 +. +MessageId=61279 +Language=English +%1 +. +MessageId=61280 +Language=English +%1 +. +MessageId=61281 +Language=English +%1 +. +MessageId=61282 +Language=English +%1 +. +MessageId=61283 +Language=English +%1 +. +MessageId=61284 +Language=English +%1 +. +MessageId=61285 +Language=English +%1 +. +MessageId=61286 +Language=English +%1 +. +MessageId=61287 +Language=English +%1 +. +MessageId=61288 +Language=English +%1 +. +MessageId=61289 +Language=English +%1 +. +MessageId=61290 +Language=English +%1 +. +MessageId=61291 +Language=English +%1 +. +MessageId=61292 +Language=English +%1 +. +MessageId=61293 +Language=English +%1 +. +MessageId=61294 +Language=English +%1 +. +MessageId=61295 +Language=English +%1 +. +MessageId=61296 +Language=English +%1 +. +MessageId=61297 +Language=English +%1 +. +MessageId=61298 +Language=English +%1 +. +MessageId=61299 +Language=English +%1 +. +MessageId=61300 +Language=English +%1 +. +MessageId=61301 +Language=English +%1 +. +MessageId=61302 +Language=English +%1 +. +MessageId=61303 +Language=English +%1 +. +MessageId=61304 +Language=English +%1 +. +MessageId=61305 +Language=English +%1 +. +MessageId=61306 +Language=English +%1 +. +MessageId=61307 +Language=English +%1 +. +MessageId=61308 +Language=English +%1 +. +MessageId=61309 +Language=English +%1 +. +MessageId=61310 +Language=English +%1 +. +MessageId=61311 +Language=English +%1 +. +MessageId=61312 +Language=English +%1 +. +MessageId=61313 +Language=English +%1 +. +MessageId=61314 +Language=English +%1 +. +MessageId=61315 +Language=English +%1 +. +MessageId=61316 +Language=English +%1 +. +MessageId=61317 +Language=English +%1 +. +MessageId=61318 +Language=English +%1 +. +MessageId=61319 +Language=English +%1 +. +MessageId=61320 +Language=English +%1 +. +MessageId=61321 +Language=English +%1 +. +MessageId=61322 +Language=English +%1 +. +MessageId=61323 +Language=English +%1 +. +MessageId=61324 +Language=English +%1 +. +MessageId=61325 +Language=English +%1 +. +MessageId=61326 +Language=English +%1 +. +MessageId=61327 +Language=English +%1 +. +MessageId=61328 +Language=English +%1 +. +MessageId=61329 +Language=English +%1 +. +MessageId=61330 +Language=English +%1 +. +MessageId=61331 +Language=English +%1 +. +MessageId=61332 +Language=English +%1 +. +MessageId=61333 +Language=English +%1 +. +MessageId=61334 +Language=English +%1 +. +MessageId=61335 +Language=English +%1 +. +MessageId=61336 +Language=English +%1 +. +MessageId=61337 +Language=English +%1 +. +MessageId=61338 +Language=English +%1 +. +MessageId=61339 +Language=English +%1 +. +MessageId=61340 +Language=English +%1 +. +MessageId=61341 +Language=English +%1 +. +MessageId=61342 +Language=English +%1 +. +MessageId=61343 +Language=English +%1 +. +MessageId=61344 +Language=English +%1 +. +MessageId=61345 +Language=English +%1 +. +MessageId=61346 +Language=English +%1 +. +MessageId=61347 +Language=English +%1 +. +MessageId=61348 +Language=English +%1 +. +MessageId=61349 +Language=English +%1 +. +MessageId=61350 +Language=English +%1 +. +MessageId=61351 +Language=English +%1 +. +MessageId=61352 +Language=English +%1 +. +MessageId=61353 +Language=English +%1 +. +MessageId=61354 +Language=English +%1 +. +MessageId=61355 +Language=English +%1 +. +MessageId=61356 +Language=English +%1 +. +MessageId=61357 +Language=English +%1 +. +MessageId=61358 +Language=English +%1 +. +MessageId=61359 +Language=English +%1 +. +MessageId=61360 +Language=English +%1 +. +MessageId=61361 +Language=English +%1 +. +MessageId=61362 +Language=English +%1 +. +MessageId=61363 +Language=English +%1 +. +MessageId=61364 +Language=English +%1 +. +MessageId=61365 +Language=English +%1 +. +MessageId=61366 +Language=English +%1 +. +MessageId=61367 +Language=English +%1 +. +MessageId=61368 +Language=English +%1 +. +MessageId=61369 +Language=English +%1 +. +MessageId=61370 +Language=English +%1 +. +MessageId=61371 +Language=English +%1 +. +MessageId=61372 +Language=English +%1 +. +MessageId=61373 +Language=English +%1 +. +MessageId=61374 +Language=English +%1 +. +MessageId=61375 +Language=English +%1 +. +MessageId=61376 +Language=English +%1 +. +MessageId=61377 +Language=English +%1 +. +MessageId=61378 +Language=English +%1 +. +MessageId=61379 +Language=English +%1 +. +MessageId=61380 +Language=English +%1 +. +MessageId=61381 +Language=English +%1 +. +MessageId=61382 +Language=English +%1 +. +MessageId=61383 +Language=English +%1 +. +MessageId=61384 +Language=English +%1 +. +MessageId=61385 +Language=English +%1 +. +MessageId=61386 +Language=English +%1 +. +MessageId=61387 +Language=English +%1 +. +MessageId=61388 +Language=English +%1 +. +MessageId=61389 +Language=English +%1 +. +MessageId=61390 +Language=English +%1 +. +MessageId=61391 +Language=English +%1 +. +MessageId=61392 +Language=English +%1 +. +MessageId=61393 +Language=English +%1 +. +MessageId=61394 +Language=English +%1 +. +MessageId=61395 +Language=English +%1 +. +MessageId=61396 +Language=English +%1 +. +MessageId=61397 +Language=English +%1 +. +MessageId=61398 +Language=English +%1 +. +MessageId=61399 +Language=English +%1 +. +MessageId=61400 +Language=English +%1 +. +MessageId=61401 +Language=English +%1 +. +MessageId=61402 +Language=English +%1 +. +MessageId=61403 +Language=English +%1 +. +MessageId=61404 +Language=English +%1 +. +MessageId=61405 +Language=English +%1 +. +MessageId=61406 +Language=English +%1 +. +MessageId=61407 +Language=English +%1 +. +MessageId=61408 +Language=English +%1 +. +MessageId=61409 +Language=English +%1 +. +MessageId=61410 +Language=English +%1 +. +MessageId=61411 +Language=English +%1 +. +MessageId=61412 +Language=English +%1 +. +MessageId=61413 +Language=English +%1 +. +MessageId=61414 +Language=English +%1 +. +MessageId=61415 +Language=English +%1 +. +MessageId=61416 +Language=English +%1 +. +MessageId=61417 +Language=English +%1 +. +MessageId=61418 +Language=English +%1 +. +MessageId=61419 +Language=English +%1 +. +MessageId=61420 +Language=English +%1 +. +MessageId=61421 +Language=English +%1 +. +MessageId=61422 +Language=English +%1 +. +MessageId=61423 +Language=English +%1 +. +MessageId=61424 +Language=English +%1 +. +MessageId=61425 +Language=English +%1 +. +MessageId=61426 +Language=English +%1 +. +MessageId=61427 +Language=English +%1 +. +MessageId=61428 +Language=English +%1 +. +MessageId=61429 +Language=English +%1 +. +MessageId=61430 +Language=English +%1 +. +MessageId=61431 +Language=English +%1 +. +MessageId=61432 +Language=English +%1 +. +MessageId=61433 +Language=English +%1 +. +MessageId=61434 +Language=English +%1 +. +MessageId=61435 +Language=English +%1 +. +MessageId=61436 +Language=English +%1 +. +MessageId=61437 +Language=English +%1 +. +MessageId=61438 +Language=English +%1 +. +MessageId=61439 +Language=English +%1 +. +MessageId=61440 +Language=English +%1 +. +MessageId=61441 +Language=English +%1 +. +MessageId=61442 +Language=English +%1 +. +MessageId=61443 +Language=English +%1 +. +MessageId=61444 +Language=English +%1 +. +MessageId=61445 +Language=English +%1 +. +MessageId=61446 +Language=English +%1 +. +MessageId=61447 +Language=English +%1 +. +MessageId=61448 +Language=English +%1 +. +MessageId=61449 +Language=English +%1 +. +MessageId=61450 +Language=English +%1 +. +MessageId=61451 +Language=English +%1 +. +MessageId=61452 +Language=English +%1 +. +MessageId=61453 +Language=English +%1 +. +MessageId=61454 +Language=English +%1 +. +MessageId=61455 +Language=English +%1 +. +MessageId=61456 +Language=English +%1 +. +MessageId=61457 +Language=English +%1 +. +MessageId=61458 +Language=English +%1 +. +MessageId=61459 +Language=English +%1 +. +MessageId=61460 +Language=English +%1 +. +MessageId=61461 +Language=English +%1 +. +MessageId=61462 +Language=English +%1 +. +MessageId=61463 +Language=English +%1 +. +MessageId=61464 +Language=English +%1 +. +MessageId=61465 +Language=English +%1 +. +MessageId=61466 +Language=English +%1 +. +MessageId=61467 +Language=English +%1 +. +MessageId=61468 +Language=English +%1 +. +MessageId=61469 +Language=English +%1 +. +MessageId=61470 +Language=English +%1 +. +MessageId=61471 +Language=English +%1 +. +MessageId=61472 +Language=English +%1 +. +MessageId=61473 +Language=English +%1 +. +MessageId=61474 +Language=English +%1 +. +MessageId=61475 +Language=English +%1 +. +MessageId=61476 +Language=English +%1 +. +MessageId=61477 +Language=English +%1 +. +MessageId=61478 +Language=English +%1 +. +MessageId=61479 +Language=English +%1 +. +MessageId=61480 +Language=English +%1 +. +MessageId=61481 +Language=English +%1 +. +MessageId=61482 +Language=English +%1 +. +MessageId=61483 +Language=English +%1 +. +MessageId=61484 +Language=English +%1 +. +MessageId=61485 +Language=English +%1 +. +MessageId=61486 +Language=English +%1 +. +MessageId=61487 +Language=English +%1 +. +MessageId=61488 +Language=English +%1 +. +MessageId=61489 +Language=English +%1 +. +MessageId=61490 +Language=English +%1 +. +MessageId=61491 +Language=English +%1 +. +MessageId=61492 +Language=English +%1 +. +MessageId=61493 +Language=English +%1 +. +MessageId=61494 +Language=English +%1 +. +MessageId=61495 +Language=English +%1 +. +MessageId=61496 +Language=English +%1 +. +MessageId=61497 +Language=English +%1 +. +MessageId=61498 +Language=English +%1 +. +MessageId=61499 +Language=English +%1 +. +MessageId=61500 +Language=English +%1 +. +MessageId=61501 +Language=English +%1 +. +MessageId=61502 +Language=English +%1 +. +MessageId=61503 +Language=English +%1 +. +MessageId=61504 +Language=English +%1 +. +MessageId=61505 +Language=English +%1 +. +MessageId=61506 +Language=English +%1 +. +MessageId=61507 +Language=English +%1 +. +MessageId=61508 +Language=English +%1 +. +MessageId=61509 +Language=English +%1 +. +MessageId=61510 +Language=English +%1 +. +MessageId=61511 +Language=English +%1 +. +MessageId=61512 +Language=English +%1 +. +MessageId=61513 +Language=English +%1 +. +MessageId=61514 +Language=English +%1 +. +MessageId=61515 +Language=English +%1 +. +MessageId=61516 +Language=English +%1 +. +MessageId=61517 +Language=English +%1 +. +MessageId=61518 +Language=English +%1 +. +MessageId=61519 +Language=English +%1 +. +MessageId=61520 +Language=English +%1 +. +MessageId=61521 +Language=English +%1 +. +MessageId=61522 +Language=English +%1 +. +MessageId=61523 +Language=English +%1 +. +MessageId=61524 +Language=English +%1 +. +MessageId=61525 +Language=English +%1 +. +MessageId=61526 +Language=English +%1 +. +MessageId=61527 +Language=English +%1 +. +MessageId=61528 +Language=English +%1 +. +MessageId=61529 +Language=English +%1 +. +MessageId=61530 +Language=English +%1 +. +MessageId=61531 +Language=English +%1 +. +MessageId=61532 +Language=English +%1 +. +MessageId=61533 +Language=English +%1 +. +MessageId=61534 +Language=English +%1 +. +MessageId=61535 +Language=English +%1 +. +MessageId=61536 +Language=English +%1 +. +MessageId=61537 +Language=English +%1 +. +MessageId=61538 +Language=English +%1 +. +MessageId=61539 +Language=English +%1 +. +MessageId=61540 +Language=English +%1 +. +MessageId=61541 +Language=English +%1 +. +MessageId=61542 +Language=English +%1 +. +MessageId=61543 +Language=English +%1 +. +MessageId=61544 +Language=English +%1 +. +MessageId=61545 +Language=English +%1 +. +MessageId=61546 +Language=English +%1 +. +MessageId=61547 +Language=English +%1 +. +MessageId=61548 +Language=English +%1 +. +MessageId=61549 +Language=English +%1 +. +MessageId=61550 +Language=English +%1 +. +MessageId=61551 +Language=English +%1 +. +MessageId=61552 +Language=English +%1 +. +MessageId=61553 +Language=English +%1 +. +MessageId=61554 +Language=English +%1 +. +MessageId=61555 +Language=English +%1 +. +MessageId=61556 +Language=English +%1 +. +MessageId=61557 +Language=English +%1 +. +MessageId=61558 +Language=English +%1 +. +MessageId=61559 +Language=English +%1 +. +MessageId=61560 +Language=English +%1 +. +MessageId=61561 +Language=English +%1 +. +MessageId=61562 +Language=English +%1 +. +MessageId=61563 +Language=English +%1 +. +MessageId=61564 +Language=English +%1 +. +MessageId=61565 +Language=English +%1 +. +MessageId=61566 +Language=English +%1 +. +MessageId=61567 +Language=English +%1 +. +MessageId=61568 +Language=English +%1 +. +MessageId=61569 +Language=English +%1 +. +MessageId=61570 +Language=English +%1 +. +MessageId=61571 +Language=English +%1 +. +MessageId=61572 +Language=English +%1 +. +MessageId=61573 +Language=English +%1 +. +MessageId=61574 +Language=English +%1 +. +MessageId=61575 +Language=English +%1 +. +MessageId=61576 +Language=English +%1 +. +MessageId=61577 +Language=English +%1 +. +MessageId=61578 +Language=English +%1 +. +MessageId=61579 +Language=English +%1 +. +MessageId=61580 +Language=English +%1 +. +MessageId=61581 +Language=English +%1 +. +MessageId=61582 +Language=English +%1 +. +MessageId=61583 +Language=English +%1 +. +MessageId=61584 +Language=English +%1 +. +MessageId=61585 +Language=English +%1 +. +MessageId=61586 +Language=English +%1 +. +MessageId=61587 +Language=English +%1 +. +MessageId=61588 +Language=English +%1 +. +MessageId=61589 +Language=English +%1 +. +MessageId=61590 +Language=English +%1 +. +MessageId=61591 +Language=English +%1 +. +MessageId=61592 +Language=English +%1 +. +MessageId=61593 +Language=English +%1 +. +MessageId=61594 +Language=English +%1 +. +MessageId=61595 +Language=English +%1 +. +MessageId=61596 +Language=English +%1 +. +MessageId=61597 +Language=English +%1 +. +MessageId=61598 +Language=English +%1 +. +MessageId=61599 +Language=English +%1 +. +MessageId=61600 +Language=English +%1 +. +MessageId=61601 +Language=English +%1 +. +MessageId=61602 +Language=English +%1 +. +MessageId=61603 +Language=English +%1 +. +MessageId=61604 +Language=English +%1 +. +MessageId=61605 +Language=English +%1 +. +MessageId=61606 +Language=English +%1 +. +MessageId=61607 +Language=English +%1 +. +MessageId=61608 +Language=English +%1 +. +MessageId=61609 +Language=English +%1 +. +MessageId=61610 +Language=English +%1 +. +MessageId=61611 +Language=English +%1 +. +MessageId=61612 +Language=English +%1 +. +MessageId=61613 +Language=English +%1 +. +MessageId=61614 +Language=English +%1 +. +MessageId=61615 +Language=English +%1 +. +MessageId=61616 +Language=English +%1 +. +MessageId=61617 +Language=English +%1 +. +MessageId=61618 +Language=English +%1 +. +MessageId=61619 +Language=English +%1 +. +MessageId=61620 +Language=English +%1 +. +MessageId=61621 +Language=English +%1 +. +MessageId=61622 +Language=English +%1 +. +MessageId=61623 +Language=English +%1 +. +MessageId=61624 +Language=English +%1 +. +MessageId=61625 +Language=English +%1 +. +MessageId=61626 +Language=English +%1 +. +MessageId=61627 +Language=English +%1 +. +MessageId=61628 +Language=English +%1 +. +MessageId=61629 +Language=English +%1 +. +MessageId=61630 +Language=English +%1 +. +MessageId=61631 +Language=English +%1 +. +MessageId=61632 +Language=English +%1 +. +MessageId=61633 +Language=English +%1 +. +MessageId=61634 +Language=English +%1 +. +MessageId=61635 +Language=English +%1 +. +MessageId=61636 +Language=English +%1 +. +MessageId=61637 +Language=English +%1 +. +MessageId=61638 +Language=English +%1 +. +MessageId=61639 +Language=English +%1 +. +MessageId=61640 +Language=English +%1 +. +MessageId=61641 +Language=English +%1 +. +MessageId=61642 +Language=English +%1 +. +MessageId=61643 +Language=English +%1 +. +MessageId=61644 +Language=English +%1 +. +MessageId=61645 +Language=English +%1 +. +MessageId=61646 +Language=English +%1 +. +MessageId=61647 +Language=English +%1 +. +MessageId=61648 +Language=English +%1 +. +MessageId=61649 +Language=English +%1 +. +MessageId=61650 +Language=English +%1 +. +MessageId=61651 +Language=English +%1 +. +MessageId=61652 +Language=English +%1 +. +MessageId=61653 +Language=English +%1 +. +MessageId=61654 +Language=English +%1 +. +MessageId=61655 +Language=English +%1 +. +MessageId=61656 +Language=English +%1 +. +MessageId=61657 +Language=English +%1 +. +MessageId=61658 +Language=English +%1 +. +MessageId=61659 +Language=English +%1 +. +MessageId=61660 +Language=English +%1 +. +MessageId=61661 +Language=English +%1 +. +MessageId=61662 +Language=English +%1 +. +MessageId=61663 +Language=English +%1 +. +MessageId=61664 +Language=English +%1 +. +MessageId=61665 +Language=English +%1 +. +MessageId=61666 +Language=English +%1 +. +MessageId=61667 +Language=English +%1 +. +MessageId=61668 +Language=English +%1 +. +MessageId=61669 +Language=English +%1 +. +MessageId=61670 +Language=English +%1 +. +MessageId=61671 +Language=English +%1 +. +MessageId=61672 +Language=English +%1 +. +MessageId=61673 +Language=English +%1 +. +MessageId=61674 +Language=English +%1 +. +MessageId=61675 +Language=English +%1 +. +MessageId=61676 +Language=English +%1 +. +MessageId=61677 +Language=English +%1 +. +MessageId=61678 +Language=English +%1 +. +MessageId=61679 +Language=English +%1 +. +MessageId=61680 +Language=English +%1 +. +MessageId=61681 +Language=English +%1 +. +MessageId=61682 +Language=English +%1 +. +MessageId=61683 +Language=English +%1 +. +MessageId=61684 +Language=English +%1 +. +MessageId=61685 +Language=English +%1 +. +MessageId=61686 +Language=English +%1 +. +MessageId=61687 +Language=English +%1 +. +MessageId=61688 +Language=English +%1 +. +MessageId=61689 +Language=English +%1 +. +MessageId=61690 +Language=English +%1 +. +MessageId=61691 +Language=English +%1 +. +MessageId=61692 +Language=English +%1 +. +MessageId=61693 +Language=English +%1 +. +MessageId=61694 +Language=English +%1 +. +MessageId=61695 +Language=English +%1 +. +MessageId=61696 +Language=English +%1 +. +MessageId=61697 +Language=English +%1 +. +MessageId=61698 +Language=English +%1 +. +MessageId=61699 +Language=English +%1 +. +MessageId=61700 +Language=English +%1 +. +MessageId=61701 +Language=English +%1 +. +MessageId=61702 +Language=English +%1 +. +MessageId=61703 +Language=English +%1 +. +MessageId=61704 +Language=English +%1 +. +MessageId=61705 +Language=English +%1 +. +MessageId=61706 +Language=English +%1 +. +MessageId=61707 +Language=English +%1 +. +MessageId=61708 +Language=English +%1 +. +MessageId=61709 +Language=English +%1 +. +MessageId=61710 +Language=English +%1 +. +MessageId=61711 +Language=English +%1 +. +MessageId=61712 +Language=English +%1 +. +MessageId=61713 +Language=English +%1 +. +MessageId=61714 +Language=English +%1 +. +MessageId=61715 +Language=English +%1 +. +MessageId=61716 +Language=English +%1 +. +MessageId=61717 +Language=English +%1 +. +MessageId=61718 +Language=English +%1 +. +MessageId=61719 +Language=English +%1 +. +MessageId=61720 +Language=English +%1 +. +MessageId=61721 +Language=English +%1 +. +MessageId=61722 +Language=English +%1 +. +MessageId=61723 +Language=English +%1 +. +MessageId=61724 +Language=English +%1 +. +MessageId=61725 +Language=English +%1 +. +MessageId=61726 +Language=English +%1 +. +MessageId=61727 +Language=English +%1 +. +MessageId=61728 +Language=English +%1 +. +MessageId=61729 +Language=English +%1 +. +MessageId=61730 +Language=English +%1 +. +MessageId=61731 +Language=English +%1 +. +MessageId=61732 +Language=English +%1 +. +MessageId=61733 +Language=English +%1 +. +MessageId=61734 +Language=English +%1 +. +MessageId=61735 +Language=English +%1 +. +MessageId=61736 +Language=English +%1 +. +MessageId=61737 +Language=English +%1 +. +MessageId=61738 +Language=English +%1 +. +MessageId=61739 +Language=English +%1 +. +MessageId=61740 +Language=English +%1 +. +MessageId=61741 +Language=English +%1 +. +MessageId=61742 +Language=English +%1 +. +MessageId=61743 +Language=English +%1 +. +MessageId=61744 +Language=English +%1 +. +MessageId=61745 +Language=English +%1 +. +MessageId=61746 +Language=English +%1 +. +MessageId=61747 +Language=English +%1 +. +MessageId=61748 +Language=English +%1 +. +MessageId=61749 +Language=English +%1 +. +MessageId=61750 +Language=English +%1 +. +MessageId=61751 +Language=English +%1 +. +MessageId=61752 +Language=English +%1 +. +MessageId=61753 +Language=English +%1 +. +MessageId=61754 +Language=English +%1 +. +MessageId=61755 +Language=English +%1 +. +MessageId=61756 +Language=English +%1 +. +MessageId=61757 +Language=English +%1 +. +MessageId=61758 +Language=English +%1 +. +MessageId=61759 +Language=English +%1 +. +MessageId=61760 +Language=English +%1 +. +MessageId=61761 +Language=English +%1 +. +MessageId=61762 +Language=English +%1 +. +MessageId=61763 +Language=English +%1 +. +MessageId=61764 +Language=English +%1 +. +MessageId=61765 +Language=English +%1 +. +MessageId=61766 +Language=English +%1 +. +MessageId=61767 +Language=English +%1 +. +MessageId=61768 +Language=English +%1 +. +MessageId=61769 +Language=English +%1 +. +MessageId=61770 +Language=English +%1 +. +MessageId=61771 +Language=English +%1 +. +MessageId=61772 +Language=English +%1 +. +MessageId=61773 +Language=English +%1 +. +MessageId=61774 +Language=English +%1 +. +MessageId=61775 +Language=English +%1 +. +MessageId=61776 +Language=English +%1 +. +MessageId=61777 +Language=English +%1 +. +MessageId=61778 +Language=English +%1 +. +MessageId=61779 +Language=English +%1 +. +MessageId=61780 +Language=English +%1 +. +MessageId=61781 +Language=English +%1 +. +MessageId=61782 +Language=English +%1 +. +MessageId=61783 +Language=English +%1 +. +MessageId=61784 +Language=English +%1 +. +MessageId=61785 +Language=English +%1 +. +MessageId=61786 +Language=English +%1 +. +MessageId=61787 +Language=English +%1 +. +MessageId=61788 +Language=English +%1 +. +MessageId=61789 +Language=English +%1 +. +MessageId=61790 +Language=English +%1 +. +MessageId=61791 +Language=English +%1 +. +MessageId=61792 +Language=English +%1 +. +MessageId=61793 +Language=English +%1 +. +MessageId=61794 +Language=English +%1 +. +MessageId=61795 +Language=English +%1 +. +MessageId=61796 +Language=English +%1 +. +MessageId=61797 +Language=English +%1 +. +MessageId=61798 +Language=English +%1 +. +MessageId=61799 +Language=English +%1 +. +MessageId=61800 +Language=English +%1 +. +MessageId=61801 +Language=English +%1 +. +MessageId=61802 +Language=English +%1 +. +MessageId=61803 +Language=English +%1 +. +MessageId=61804 +Language=English +%1 +. +MessageId=61805 +Language=English +%1 +. +MessageId=61806 +Language=English +%1 +. +MessageId=61807 +Language=English +%1 +. +MessageId=61808 +Language=English +%1 +. +MessageId=61809 +Language=English +%1 +. +MessageId=61810 +Language=English +%1 +. +MessageId=61811 +Language=English +%1 +. +MessageId=61812 +Language=English +%1 +. +MessageId=61813 +Language=English +%1 +. +MessageId=61814 +Language=English +%1 +. +MessageId=61815 +Language=English +%1 +. +MessageId=61816 +Language=English +%1 +. +MessageId=61817 +Language=English +%1 +. +MessageId=61818 +Language=English +%1 +. +MessageId=61819 +Language=English +%1 +. +MessageId=61820 +Language=English +%1 +. +MessageId=61821 +Language=English +%1 +. +MessageId=61822 +Language=English +%1 +. +MessageId=61823 +Language=English +%1 +. +MessageId=61824 +Language=English +%1 +. +MessageId=61825 +Language=English +%1 +. +MessageId=61826 +Language=English +%1 +. +MessageId=61827 +Language=English +%1 +. +MessageId=61828 +Language=English +%1 +. +MessageId=61829 +Language=English +%1 +. +MessageId=61830 +Language=English +%1 +. +MessageId=61831 +Language=English +%1 +. +MessageId=61832 +Language=English +%1 +. +MessageId=61833 +Language=English +%1 +. +MessageId=61834 +Language=English +%1 +. +MessageId=61835 +Language=English +%1 +. +MessageId=61836 +Language=English +%1 +. +MessageId=61837 +Language=English +%1 +. +MessageId=61838 +Language=English +%1 +. +MessageId=61839 +Language=English +%1 +. +MessageId=61840 +Language=English +%1 +. +MessageId=61841 +Language=English +%1 +. +MessageId=61842 +Language=English +%1 +. +MessageId=61843 +Language=English +%1 +. +MessageId=61844 +Language=English +%1 +. +MessageId=61845 +Language=English +%1 +. +MessageId=61846 +Language=English +%1 +. +MessageId=61847 +Language=English +%1 +. +MessageId=61848 +Language=English +%1 +. +MessageId=61849 +Language=English +%1 +. +MessageId=61850 +Language=English +%1 +. +MessageId=61851 +Language=English +%1 +. +MessageId=61852 +Language=English +%1 +. +MessageId=61853 +Language=English +%1 +. +MessageId=61854 +Language=English +%1 +. +MessageId=61855 +Language=English +%1 +. +MessageId=61856 +Language=English +%1 +. +MessageId=61857 +Language=English +%1 +. +MessageId=61858 +Language=English +%1 +. +MessageId=61859 +Language=English +%1 +. +MessageId=61860 +Language=English +%1 +. +MessageId=61861 +Language=English +%1 +. +MessageId=61862 +Language=English +%1 +. +MessageId=61863 +Language=English +%1 +. +MessageId=61864 +Language=English +%1 +. +MessageId=61865 +Language=English +%1 +. +MessageId=61866 +Language=English +%1 +. +MessageId=61867 +Language=English +%1 +. +MessageId=61868 +Language=English +%1 +. +MessageId=61869 +Language=English +%1 +. +MessageId=61870 +Language=English +%1 +. +MessageId=61871 +Language=English +%1 +. +MessageId=61872 +Language=English +%1 +. +MessageId=61873 +Language=English +%1 +. +MessageId=61874 +Language=English +%1 +. +MessageId=61875 +Language=English +%1 +. +MessageId=61876 +Language=English +%1 +. +MessageId=61877 +Language=English +%1 +. +MessageId=61878 +Language=English +%1 +. +MessageId=61879 +Language=English +%1 +. +MessageId=61880 +Language=English +%1 +. +MessageId=61881 +Language=English +%1 +. +MessageId=61882 +Language=English +%1 +. +MessageId=61883 +Language=English +%1 +. +MessageId=61884 +Language=English +%1 +. +MessageId=61885 +Language=English +%1 +. +MessageId=61886 +Language=English +%1 +. +MessageId=61887 +Language=English +%1 +. +MessageId=61888 +Language=English +%1 +. +MessageId=61889 +Language=English +%1 +. +MessageId=61890 +Language=English +%1 +. +MessageId=61891 +Language=English +%1 +. +MessageId=61892 +Language=English +%1 +. +MessageId=61893 +Language=English +%1 +. +MessageId=61894 +Language=English +%1 +. +MessageId=61895 +Language=English +%1 +. +MessageId=61896 +Language=English +%1 +. +MessageId=61897 +Language=English +%1 +. +MessageId=61898 +Language=English +%1 +. +MessageId=61899 +Language=English +%1 +. +MessageId=61900 +Language=English +%1 +. +MessageId=61901 +Language=English +%1 +. +MessageId=61902 +Language=English +%1 +. +MessageId=61903 +Language=English +%1 +. +MessageId=61904 +Language=English +%1 +. +MessageId=61905 +Language=English +%1 +. +MessageId=61906 +Language=English +%1 +. +MessageId=61907 +Language=English +%1 +. +MessageId=61908 +Language=English +%1 +. +MessageId=61909 +Language=English +%1 +. +MessageId=61910 +Language=English +%1 +. +MessageId=61911 +Language=English +%1 +. +MessageId=61912 +Language=English +%1 +. +MessageId=61913 +Language=English +%1 +. +MessageId=61914 +Language=English +%1 +. +MessageId=61915 +Language=English +%1 +. +MessageId=61916 +Language=English +%1 +. +MessageId=61917 +Language=English +%1 +. +MessageId=61918 +Language=English +%1 +. +MessageId=61919 +Language=English +%1 +. +MessageId=61920 +Language=English +%1 +. +MessageId=61921 +Language=English +%1 +. +MessageId=61922 +Language=English +%1 +. +MessageId=61923 +Language=English +%1 +. +MessageId=61924 +Language=English +%1 +. +MessageId=61925 +Language=English +%1 +. +MessageId=61926 +Language=English +%1 +. +MessageId=61927 +Language=English +%1 +. +MessageId=61928 +Language=English +%1 +. +MessageId=61929 +Language=English +%1 +. +MessageId=61930 +Language=English +%1 +. +MessageId=61931 +Language=English +%1 +. +MessageId=61932 +Language=English +%1 +. +MessageId=61933 +Language=English +%1 +. +MessageId=61934 +Language=English +%1 +. +MessageId=61935 +Language=English +%1 +. +MessageId=61936 +Language=English +%1 +. +MessageId=61937 +Language=English +%1 +. +MessageId=61938 +Language=English +%1 +. +MessageId=61939 +Language=English +%1 +. +MessageId=61940 +Language=English +%1 +. +MessageId=61941 +Language=English +%1 +. +MessageId=61942 +Language=English +%1 +. +MessageId=61943 +Language=English +%1 +. +MessageId=61944 +Language=English +%1 +. +MessageId=61945 +Language=English +%1 +. +MessageId=61946 +Language=English +%1 +. +MessageId=61947 +Language=English +%1 +. +MessageId=61948 +Language=English +%1 +. +MessageId=61949 +Language=English +%1 +. +MessageId=61950 +Language=English +%1 +. +MessageId=61951 +Language=English +%1 +. +MessageId=61952 +Language=English +%1 +. +MessageId=61953 +Language=English +%1 +. +MessageId=61954 +Language=English +%1 +. +MessageId=61955 +Language=English +%1 +. +MessageId=61956 +Language=English +%1 +. +MessageId=61957 +Language=English +%1 +. +MessageId=61958 +Language=English +%1 +. +MessageId=61959 +Language=English +%1 +. +MessageId=61960 +Language=English +%1 +. +MessageId=61961 +Language=English +%1 +. +MessageId=61962 +Language=English +%1 +. +MessageId=61963 +Language=English +%1 +. +MessageId=61964 +Language=English +%1 +. +MessageId=61965 +Language=English +%1 +. +MessageId=61966 +Language=English +%1 +. +MessageId=61967 +Language=English +%1 +. +MessageId=61968 +Language=English +%1 +. +MessageId=61969 +Language=English +%1 +. +MessageId=61970 +Language=English +%1 +. +MessageId=61971 +Language=English +%1 +. +MessageId=61972 +Language=English +%1 +. +MessageId=61973 +Language=English +%1 +. +MessageId=61974 +Language=English +%1 +. +MessageId=61975 +Language=English +%1 +. +MessageId=61976 +Language=English +%1 +. +MessageId=61977 +Language=English +%1 +. +MessageId=61978 +Language=English +%1 +. +MessageId=61979 +Language=English +%1 +. +MessageId=61980 +Language=English +%1 +. +MessageId=61981 +Language=English +%1 +. +MessageId=61982 +Language=English +%1 +. +MessageId=61983 +Language=English +%1 +. +MessageId=61984 +Language=English +%1 +. +MessageId=61985 +Language=English +%1 +. +MessageId=61986 +Language=English +%1 +. +MessageId=61987 +Language=English +%1 +. +MessageId=61988 +Language=English +%1 +. +MessageId=61989 +Language=English +%1 +. +MessageId=61990 +Language=English +%1 +. +MessageId=61991 +Language=English +%1 +. +MessageId=61992 +Language=English +%1 +. +MessageId=61993 +Language=English +%1 +. +MessageId=61994 +Language=English +%1 +. +MessageId=61995 +Language=English +%1 +. +MessageId=61996 +Language=English +%1 +. +MessageId=61997 +Language=English +%1 +. +MessageId=61998 +Language=English +%1 +. +MessageId=61999 +Language=English +%1 +. +MessageId=62000 +Language=English +%1 +. +MessageId=62001 +Language=English +%1 +. +MessageId=62002 +Language=English +%1 +. +MessageId=62003 +Language=English +%1 +. +MessageId=62004 +Language=English +%1 +. +MessageId=62005 +Language=English +%1 +. +MessageId=62006 +Language=English +%1 +. +MessageId=62007 +Language=English +%1 +. +MessageId=62008 +Language=English +%1 +. +MessageId=62009 +Language=English +%1 +. +MessageId=62010 +Language=English +%1 +. +MessageId=62011 +Language=English +%1 +. +MessageId=62012 +Language=English +%1 +. +MessageId=62013 +Language=English +%1 +. +MessageId=62014 +Language=English +%1 +. +MessageId=62015 +Language=English +%1 +. +MessageId=62016 +Language=English +%1 +. +MessageId=62017 +Language=English +%1 +. +MessageId=62018 +Language=English +%1 +. +MessageId=62019 +Language=English +%1 +. +MessageId=62020 +Language=English +%1 +. +MessageId=62021 +Language=English +%1 +. +MessageId=62022 +Language=English +%1 +. +MessageId=62023 +Language=English +%1 +. +MessageId=62024 +Language=English +%1 +. +MessageId=62025 +Language=English +%1 +. +MessageId=62026 +Language=English +%1 +. +MessageId=62027 +Language=English +%1 +. +MessageId=62028 +Language=English +%1 +. +MessageId=62029 +Language=English +%1 +. +MessageId=62030 +Language=English +%1 +. +MessageId=62031 +Language=English +%1 +. +MessageId=62032 +Language=English +%1 +. +MessageId=62033 +Language=English +%1 +. +MessageId=62034 +Language=English +%1 +. +MessageId=62035 +Language=English +%1 +. +MessageId=62036 +Language=English +%1 +. +MessageId=62037 +Language=English +%1 +. +MessageId=62038 +Language=English +%1 +. +MessageId=62039 +Language=English +%1 +. +MessageId=62040 +Language=English +%1 +. +MessageId=62041 +Language=English +%1 +. +MessageId=62042 +Language=English +%1 +. +MessageId=62043 +Language=English +%1 +. +MessageId=62044 +Language=English +%1 +. +MessageId=62045 +Language=English +%1 +. +MessageId=62046 +Language=English +%1 +. +MessageId=62047 +Language=English +%1 +. +MessageId=62048 +Language=English +%1 +. +MessageId=62049 +Language=English +%1 +. +MessageId=62050 +Language=English +%1 +. +MessageId=62051 +Language=English +%1 +. +MessageId=62052 +Language=English +%1 +. +MessageId=62053 +Language=English +%1 +. +MessageId=62054 +Language=English +%1 +. +MessageId=62055 +Language=English +%1 +. +MessageId=62056 +Language=English +%1 +. +MessageId=62057 +Language=English +%1 +. +MessageId=62058 +Language=English +%1 +. +MessageId=62059 +Language=English +%1 +. +MessageId=62060 +Language=English +%1 +. +MessageId=62061 +Language=English +%1 +. +MessageId=62062 +Language=English +%1 +. +MessageId=62063 +Language=English +%1 +. +MessageId=62064 +Language=English +%1 +. +MessageId=62065 +Language=English +%1 +. +MessageId=62066 +Language=English +%1 +. +MessageId=62067 +Language=English +%1 +. +MessageId=62068 +Language=English +%1 +. +MessageId=62069 +Language=English +%1 +. +MessageId=62070 +Language=English +%1 +. +MessageId=62071 +Language=English +%1 +. +MessageId=62072 +Language=English +%1 +. +MessageId=62073 +Language=English +%1 +. +MessageId=62074 +Language=English +%1 +. +MessageId=62075 +Language=English +%1 +. +MessageId=62076 +Language=English +%1 +. +MessageId=62077 +Language=English +%1 +. +MessageId=62078 +Language=English +%1 +. +MessageId=62079 +Language=English +%1 +. +MessageId=62080 +Language=English +%1 +. +MessageId=62081 +Language=English +%1 +. +MessageId=62082 +Language=English +%1 +. +MessageId=62083 +Language=English +%1 +. +MessageId=62084 +Language=English +%1 +. +MessageId=62085 +Language=English +%1 +. +MessageId=62086 +Language=English +%1 +. +MessageId=62087 +Language=English +%1 +. +MessageId=62088 +Language=English +%1 +. +MessageId=62089 +Language=English +%1 +. +MessageId=62090 +Language=English +%1 +. +MessageId=62091 +Language=English +%1 +. +MessageId=62092 +Language=English +%1 +. +MessageId=62093 +Language=English +%1 +. +MessageId=62094 +Language=English +%1 +. +MessageId=62095 +Language=English +%1 +. +MessageId=62096 +Language=English +%1 +. +MessageId=62097 +Language=English +%1 +. +MessageId=62098 +Language=English +%1 +. +MessageId=62099 +Language=English +%1 +. +MessageId=62100 +Language=English +%1 +. +MessageId=62101 +Language=English +%1 +. +MessageId=62102 +Language=English +%1 +. +MessageId=62103 +Language=English +%1 +. +MessageId=62104 +Language=English +%1 +. +MessageId=62105 +Language=English +%1 +. +MessageId=62106 +Language=English +%1 +. +MessageId=62107 +Language=English +%1 +. +MessageId=62108 +Language=English +%1 +. +MessageId=62109 +Language=English +%1 +. +MessageId=62110 +Language=English +%1 +. +MessageId=62111 +Language=English +%1 +. +MessageId=62112 +Language=English +%1 +. +MessageId=62113 +Language=English +%1 +. +MessageId=62114 +Language=English +%1 +. +MessageId=62115 +Language=English +%1 +. +MessageId=62116 +Language=English +%1 +. +MessageId=62117 +Language=English +%1 +. +MessageId=62118 +Language=English +%1 +. +MessageId=62119 +Language=English +%1 +. +MessageId=62120 +Language=English +%1 +. +MessageId=62121 +Language=English +%1 +. +MessageId=62122 +Language=English +%1 +. +MessageId=62123 +Language=English +%1 +. +MessageId=62124 +Language=English +%1 +. +MessageId=62125 +Language=English +%1 +. +MessageId=62126 +Language=English +%1 +. +MessageId=62127 +Language=English +%1 +. +MessageId=62128 +Language=English +%1 +. +MessageId=62129 +Language=English +%1 +. +MessageId=62130 +Language=English +%1 +. +MessageId=62131 +Language=English +%1 +. +MessageId=62132 +Language=English +%1 +. +MessageId=62133 +Language=English +%1 +. +MessageId=62134 +Language=English +%1 +. +MessageId=62135 +Language=English +%1 +. +MessageId=62136 +Language=English +%1 +. +MessageId=62137 +Language=English +%1 +. +MessageId=62138 +Language=English +%1 +. +MessageId=62139 +Language=English +%1 +. +MessageId=62140 +Language=English +%1 +. +MessageId=62141 +Language=English +%1 +. +MessageId=62142 +Language=English +%1 +. +MessageId=62143 +Language=English +%1 +. +MessageId=62144 +Language=English +%1 +. +MessageId=62145 +Language=English +%1 +. +MessageId=62146 +Language=English +%1 +. +MessageId=62147 +Language=English +%1 +. +MessageId=62148 +Language=English +%1 +. +MessageId=62149 +Language=English +%1 +. +MessageId=62150 +Language=English +%1 +. +MessageId=62151 +Language=English +%1 +. +MessageId=62152 +Language=English +%1 +. +MessageId=62153 +Language=English +%1 +. +MessageId=62154 +Language=English +%1 +. +MessageId=62155 +Language=English +%1 +. +MessageId=62156 +Language=English +%1 +. +MessageId=62157 +Language=English +%1 +. +MessageId=62158 +Language=English +%1 +. +MessageId=62159 +Language=English +%1 +. +MessageId=62160 +Language=English +%1 +. +MessageId=62161 +Language=English +%1 +. +MessageId=62162 +Language=English +%1 +. +MessageId=62163 +Language=English +%1 +. +MessageId=62164 +Language=English +%1 +. +MessageId=62165 +Language=English +%1 +. +MessageId=62166 +Language=English +%1 +. +MessageId=62167 +Language=English +%1 +. +MessageId=62168 +Language=English +%1 +. +MessageId=62169 +Language=English +%1 +. +MessageId=62170 +Language=English +%1 +. +MessageId=62171 +Language=English +%1 +. +MessageId=62172 +Language=English +%1 +. +MessageId=62173 +Language=English +%1 +. +MessageId=62174 +Language=English +%1 +. +MessageId=62175 +Language=English +%1 +. +MessageId=62176 +Language=English +%1 +. +MessageId=62177 +Language=English +%1 +. +MessageId=62178 +Language=English +%1 +. +MessageId=62179 +Language=English +%1 +. +MessageId=62180 +Language=English +%1 +. +MessageId=62181 +Language=English +%1 +. +MessageId=62182 +Language=English +%1 +. +MessageId=62183 +Language=English +%1 +. +MessageId=62184 +Language=English +%1 +. +MessageId=62185 +Language=English +%1 +. +MessageId=62186 +Language=English +%1 +. +MessageId=62187 +Language=English +%1 +. +MessageId=62188 +Language=English +%1 +. +MessageId=62189 +Language=English +%1 +. +MessageId=62190 +Language=English +%1 +. +MessageId=62191 +Language=English +%1 +. +MessageId=62192 +Language=English +%1 +. +MessageId=62193 +Language=English +%1 +. +MessageId=62194 +Language=English +%1 +. +MessageId=62195 +Language=English +%1 +. +MessageId=62196 +Language=English +%1 +. +MessageId=62197 +Language=English +%1 +. +MessageId=62198 +Language=English +%1 +. +MessageId=62199 +Language=English +%1 +. +MessageId=62200 +Language=English +%1 +. +MessageId=62201 +Language=English +%1 +. +MessageId=62202 +Language=English +%1 +. +MessageId=62203 +Language=English +%1 +. +MessageId=62204 +Language=English +%1 +. +MessageId=62205 +Language=English +%1 +. +MessageId=62206 +Language=English +%1 +. +MessageId=62207 +Language=English +%1 +. +MessageId=62208 +Language=English +%1 +. +MessageId=62209 +Language=English +%1 +. +MessageId=62210 +Language=English +%1 +. +MessageId=62211 +Language=English +%1 +. +MessageId=62212 +Language=English +%1 +. +MessageId=62213 +Language=English +%1 +. +MessageId=62214 +Language=English +%1 +. +MessageId=62215 +Language=English +%1 +. +MessageId=62216 +Language=English +%1 +. +MessageId=62217 +Language=English +%1 +. +MessageId=62218 +Language=English +%1 +. +MessageId=62219 +Language=English +%1 +. +MessageId=62220 +Language=English +%1 +. +MessageId=62221 +Language=English +%1 +. +MessageId=62222 +Language=English +%1 +. +MessageId=62223 +Language=English +%1 +. +MessageId=62224 +Language=English +%1 +. +MessageId=62225 +Language=English +%1 +. +MessageId=62226 +Language=English +%1 +. +MessageId=62227 +Language=English +%1 +. +MessageId=62228 +Language=English +%1 +. +MessageId=62229 +Language=English +%1 +. +MessageId=62230 +Language=English +%1 +. +MessageId=62231 +Language=English +%1 +. +MessageId=62232 +Language=English +%1 +. +MessageId=62233 +Language=English +%1 +. +MessageId=62234 +Language=English +%1 +. +MessageId=62235 +Language=English +%1 +. +MessageId=62236 +Language=English +%1 +. +MessageId=62237 +Language=English +%1 +. +MessageId=62238 +Language=English +%1 +. +MessageId=62239 +Language=English +%1 +. +MessageId=62240 +Language=English +%1 +. +MessageId=62241 +Language=English +%1 +. +MessageId=62242 +Language=English +%1 +. +MessageId=62243 +Language=English +%1 +. +MessageId=62244 +Language=English +%1 +. +MessageId=62245 +Language=English +%1 +. +MessageId=62246 +Language=English +%1 +. +MessageId=62247 +Language=English +%1 +. +MessageId=62248 +Language=English +%1 +. +MessageId=62249 +Language=English +%1 +. +MessageId=62250 +Language=English +%1 +. +MessageId=62251 +Language=English +%1 +. +MessageId=62252 +Language=English +%1 +. +MessageId=62253 +Language=English +%1 +. +MessageId=62254 +Language=English +%1 +. +MessageId=62255 +Language=English +%1 +. +MessageId=62256 +Language=English +%1 +. +MessageId=62257 +Language=English +%1 +. +MessageId=62258 +Language=English +%1 +. +MessageId=62259 +Language=English +%1 +. +MessageId=62260 +Language=English +%1 +. +MessageId=62261 +Language=English +%1 +. +MessageId=62262 +Language=English +%1 +. +MessageId=62263 +Language=English +%1 +. +MessageId=62264 +Language=English +%1 +. +MessageId=62265 +Language=English +%1 +. +MessageId=62266 +Language=English +%1 +. +MessageId=62267 +Language=English +%1 +. +MessageId=62268 +Language=English +%1 +. +MessageId=62269 +Language=English +%1 +. +MessageId=62270 +Language=English +%1 +. +MessageId=62271 +Language=English +%1 +. +MessageId=62272 +Language=English +%1 +. +MessageId=62273 +Language=English +%1 +. +MessageId=62274 +Language=English +%1 +. +MessageId=62275 +Language=English +%1 +. +MessageId=62276 +Language=English +%1 +. +MessageId=62277 +Language=English +%1 +. +MessageId=62278 +Language=English +%1 +. +MessageId=62279 +Language=English +%1 +. +MessageId=62280 +Language=English +%1 +. +MessageId=62281 +Language=English +%1 +. +MessageId=62282 +Language=English +%1 +. +MessageId=62283 +Language=English +%1 +. +MessageId=62284 +Language=English +%1 +. +MessageId=62285 +Language=English +%1 +. +MessageId=62286 +Language=English +%1 +. +MessageId=62287 +Language=English +%1 +. +MessageId=62288 +Language=English +%1 +. +MessageId=62289 +Language=English +%1 +. +MessageId=62290 +Language=English +%1 +. +MessageId=62291 +Language=English +%1 +. +MessageId=62292 +Language=English +%1 +. +MessageId=62293 +Language=English +%1 +. +MessageId=62294 +Language=English +%1 +. +MessageId=62295 +Language=English +%1 +. +MessageId=62296 +Language=English +%1 +. +MessageId=62297 +Language=English +%1 +. +MessageId=62298 +Language=English +%1 +. +MessageId=62299 +Language=English +%1 +. +MessageId=62300 +Language=English +%1 +. +MessageId=62301 +Language=English +%1 +. +MessageId=62302 +Language=English +%1 +. +MessageId=62303 +Language=English +%1 +. +MessageId=62304 +Language=English +%1 +. +MessageId=62305 +Language=English +%1 +. +MessageId=62306 +Language=English +%1 +. +MessageId=62307 +Language=English +%1 +. +MessageId=62308 +Language=English +%1 +. +MessageId=62309 +Language=English +%1 +. +MessageId=62310 +Language=English +%1 +. +MessageId=62311 +Language=English +%1 +. +MessageId=62312 +Language=English +%1 +. +MessageId=62313 +Language=English +%1 +. +MessageId=62314 +Language=English +%1 +. +MessageId=62315 +Language=English +%1 +. +MessageId=62316 +Language=English +%1 +. +MessageId=62317 +Language=English +%1 +. +MessageId=62318 +Language=English +%1 +. +MessageId=62319 +Language=English +%1 +. +MessageId=62320 +Language=English +%1 +. +MessageId=62321 +Language=English +%1 +. +MessageId=62322 +Language=English +%1 +. +MessageId=62323 +Language=English +%1 +. +MessageId=62324 +Language=English +%1 +. +MessageId=62325 +Language=English +%1 +. +MessageId=62326 +Language=English +%1 +. +MessageId=62327 +Language=English +%1 +. +MessageId=62328 +Language=English +%1 +. +MessageId=62329 +Language=English +%1 +. +MessageId=62330 +Language=English +%1 +. +MessageId=62331 +Language=English +%1 +. +MessageId=62332 +Language=English +%1 +. +MessageId=62333 +Language=English +%1 +. +MessageId=62334 +Language=English +%1 +. +MessageId=62335 +Language=English +%1 +. +MessageId=62336 +Language=English +%1 +. +MessageId=62337 +Language=English +%1 +. +MessageId=62338 +Language=English +%1 +. +MessageId=62339 +Language=English +%1 +. +MessageId=62340 +Language=English +%1 +. +MessageId=62341 +Language=English +%1 +. +MessageId=62342 +Language=English +%1 +. +MessageId=62343 +Language=English +%1 +. +MessageId=62344 +Language=English +%1 +. +MessageId=62345 +Language=English +%1 +. +MessageId=62346 +Language=English +%1 +. +MessageId=62347 +Language=English +%1 +. +MessageId=62348 +Language=English +%1 +. +MessageId=62349 +Language=English +%1 +. +MessageId=62350 +Language=English +%1 +. +MessageId=62351 +Language=English +%1 +. +MessageId=62352 +Language=English +%1 +. +MessageId=62353 +Language=English +%1 +. +MessageId=62354 +Language=English +%1 +. +MessageId=62355 +Language=English +%1 +. +MessageId=62356 +Language=English +%1 +. +MessageId=62357 +Language=English +%1 +. +MessageId=62358 +Language=English +%1 +. +MessageId=62359 +Language=English +%1 +. +MessageId=62360 +Language=English +%1 +. +MessageId=62361 +Language=English +%1 +. +MessageId=62362 +Language=English +%1 +. +MessageId=62363 +Language=English +%1 +. +MessageId=62364 +Language=English +%1 +. +MessageId=62365 +Language=English +%1 +. +MessageId=62366 +Language=English +%1 +. +MessageId=62367 +Language=English +%1 +. +MessageId=62368 +Language=English +%1 +. +MessageId=62369 +Language=English +%1 +. +MessageId=62370 +Language=English +%1 +. +MessageId=62371 +Language=English +%1 +. +MessageId=62372 +Language=English +%1 +. +MessageId=62373 +Language=English +%1 +. +MessageId=62374 +Language=English +%1 +. +MessageId=62375 +Language=English +%1 +. +MessageId=62376 +Language=English +%1 +. +MessageId=62377 +Language=English +%1 +. +MessageId=62378 +Language=English +%1 +. +MessageId=62379 +Language=English +%1 +. +MessageId=62380 +Language=English +%1 +. +MessageId=62381 +Language=English +%1 +. +MessageId=62382 +Language=English +%1 +. +MessageId=62383 +Language=English +%1 +. +MessageId=62384 +Language=English +%1 +. +MessageId=62385 +Language=English +%1 +. +MessageId=62386 +Language=English +%1 +. +MessageId=62387 +Language=English +%1 +. +MessageId=62388 +Language=English +%1 +. +MessageId=62389 +Language=English +%1 +. +MessageId=62390 +Language=English +%1 +. +MessageId=62391 +Language=English +%1 +. +MessageId=62392 +Language=English +%1 +. +MessageId=62393 +Language=English +%1 +. +MessageId=62394 +Language=English +%1 +. +MessageId=62395 +Language=English +%1 +. +MessageId=62396 +Language=English +%1 +. +MessageId=62397 +Language=English +%1 +. +MessageId=62398 +Language=English +%1 +. +MessageId=62399 +Language=English +%1 +. +MessageId=62400 +Language=English +%1 +. +MessageId=62401 +Language=English +%1 +. +MessageId=62402 +Language=English +%1 +. +MessageId=62403 +Language=English +%1 +. +MessageId=62404 +Language=English +%1 +. +MessageId=62405 +Language=English +%1 +. +MessageId=62406 +Language=English +%1 +. +MessageId=62407 +Language=English +%1 +. +MessageId=62408 +Language=English +%1 +. +MessageId=62409 +Language=English +%1 +. +MessageId=62410 +Language=English +%1 +. +MessageId=62411 +Language=English +%1 +. +MessageId=62412 +Language=English +%1 +. +MessageId=62413 +Language=English +%1 +. +MessageId=62414 +Language=English +%1 +. +MessageId=62415 +Language=English +%1 +. +MessageId=62416 +Language=English +%1 +. +MessageId=62417 +Language=English +%1 +. +MessageId=62418 +Language=English +%1 +. +MessageId=62419 +Language=English +%1 +. +MessageId=62420 +Language=English +%1 +. +MessageId=62421 +Language=English +%1 +. +MessageId=62422 +Language=English +%1 +. +MessageId=62423 +Language=English +%1 +. +MessageId=62424 +Language=English +%1 +. +MessageId=62425 +Language=English +%1 +. +MessageId=62426 +Language=English +%1 +. +MessageId=62427 +Language=English +%1 +. +MessageId=62428 +Language=English +%1 +. +MessageId=62429 +Language=English +%1 +. +MessageId=62430 +Language=English +%1 +. +MessageId=62431 +Language=English +%1 +. +MessageId=62432 +Language=English +%1 +. +MessageId=62433 +Language=English +%1 +. +MessageId=62434 +Language=English +%1 +. +MessageId=62435 +Language=English +%1 +. +MessageId=62436 +Language=English +%1 +. +MessageId=62437 +Language=English +%1 +. +MessageId=62438 +Language=English +%1 +. +MessageId=62439 +Language=English +%1 +. +MessageId=62440 +Language=English +%1 +. +MessageId=62441 +Language=English +%1 +. +MessageId=62442 +Language=English +%1 +. +MessageId=62443 +Language=English +%1 +. +MessageId=62444 +Language=English +%1 +. +MessageId=62445 +Language=English +%1 +. +MessageId=62446 +Language=English +%1 +. +MessageId=62447 +Language=English +%1 +. +MessageId=62448 +Language=English +%1 +. +MessageId=62449 +Language=English +%1 +. +MessageId=62450 +Language=English +%1 +. +MessageId=62451 +Language=English +%1 +. +MessageId=62452 +Language=English +%1 +. +MessageId=62453 +Language=English +%1 +. +MessageId=62454 +Language=English +%1 +. +MessageId=62455 +Language=English +%1 +. +MessageId=62456 +Language=English +%1 +. +MessageId=62457 +Language=English +%1 +. +MessageId=62458 +Language=English +%1 +. +MessageId=62459 +Language=English +%1 +. +MessageId=62460 +Language=English +%1 +. +MessageId=62461 +Language=English +%1 +. +MessageId=62462 +Language=English +%1 +. +MessageId=62463 +Language=English +%1 +. +MessageId=62464 +Language=English +%1 +. +MessageId=62465 +Language=English +%1 +. +MessageId=62466 +Language=English +%1 +. +MessageId=62467 +Language=English +%1 +. +MessageId=62468 +Language=English +%1 +. +MessageId=62469 +Language=English +%1 +. +MessageId=62470 +Language=English +%1 +. +MessageId=62471 +Language=English +%1 +. +MessageId=62472 +Language=English +%1 +. +MessageId=62473 +Language=English +%1 +. +MessageId=62474 +Language=English +%1 +. +MessageId=62475 +Language=English +%1 +. +MessageId=62476 +Language=English +%1 +. +MessageId=62477 +Language=English +%1 +. +MessageId=62478 +Language=English +%1 +. +MessageId=62479 +Language=English +%1 +. +MessageId=62480 +Language=English +%1 +. +MessageId=62481 +Language=English +%1 +. +MessageId=62482 +Language=English +%1 +. +MessageId=62483 +Language=English +%1 +. +MessageId=62484 +Language=English +%1 +. +MessageId=62485 +Language=English +%1 +. +MessageId=62486 +Language=English +%1 +. +MessageId=62487 +Language=English +%1 +. +MessageId=62488 +Language=English +%1 +. +MessageId=62489 +Language=English +%1 +. +MessageId=62490 +Language=English +%1 +. +MessageId=62491 +Language=English +%1 +. +MessageId=62492 +Language=English +%1 +. +MessageId=62493 +Language=English +%1 +. +MessageId=62494 +Language=English +%1 +. +MessageId=62495 +Language=English +%1 +. +MessageId=62496 +Language=English +%1 +. +MessageId=62497 +Language=English +%1 +. +MessageId=62498 +Language=English +%1 +. +MessageId=62499 +Language=English +%1 +. +MessageId=62500 +Language=English +%1 +. +MessageId=62501 +Language=English +%1 +. +MessageId=62502 +Language=English +%1 +. +MessageId=62503 +Language=English +%1 +. +MessageId=62504 +Language=English +%1 +. +MessageId=62505 +Language=English +%1 +. +MessageId=62506 +Language=English +%1 +. +MessageId=62507 +Language=English +%1 +. +MessageId=62508 +Language=English +%1 +. +MessageId=62509 +Language=English +%1 +. +MessageId=62510 +Language=English +%1 +. +MessageId=62511 +Language=English +%1 +. +MessageId=62512 +Language=English +%1 +. +MessageId=62513 +Language=English +%1 +. +MessageId=62514 +Language=English +%1 +. +MessageId=62515 +Language=English +%1 +. +MessageId=62516 +Language=English +%1 +. +MessageId=62517 +Language=English +%1 +. +MessageId=62518 +Language=English +%1 +. +MessageId=62519 +Language=English +%1 +. +MessageId=62520 +Language=English +%1 +. +MessageId=62521 +Language=English +%1 +. +MessageId=62522 +Language=English +%1 +. +MessageId=62523 +Language=English +%1 +. +MessageId=62524 +Language=English +%1 +. +MessageId=62525 +Language=English +%1 +. +MessageId=62526 +Language=English +%1 +. +MessageId=62527 +Language=English +%1 +. +MessageId=62528 +Language=English +%1 +. +MessageId=62529 +Language=English +%1 +. +MessageId=62530 +Language=English +%1 +. +MessageId=62531 +Language=English +%1 +. +MessageId=62532 +Language=English +%1 +. +MessageId=62533 +Language=English +%1 +. +MessageId=62534 +Language=English +%1 +. +MessageId=62535 +Language=English +%1 +. +MessageId=62536 +Language=English +%1 +. +MessageId=62537 +Language=English +%1 +. +MessageId=62538 +Language=English +%1 +. +MessageId=62539 +Language=English +%1 +. +MessageId=62540 +Language=English +%1 +. +MessageId=62541 +Language=English +%1 +. +MessageId=62542 +Language=English +%1 +. +MessageId=62543 +Language=English +%1 +. +MessageId=62544 +Language=English +%1 +. +MessageId=62545 +Language=English +%1 +. +MessageId=62546 +Language=English +%1 +. +MessageId=62547 +Language=English +%1 +. +MessageId=62548 +Language=English +%1 +. +MessageId=62549 +Language=English +%1 +. +MessageId=62550 +Language=English +%1 +. +MessageId=62551 +Language=English +%1 +. +MessageId=62552 +Language=English +%1 +. +MessageId=62553 +Language=English +%1 +. +MessageId=62554 +Language=English +%1 +. +MessageId=62555 +Language=English +%1 +. +MessageId=62556 +Language=English +%1 +. +MessageId=62557 +Language=English +%1 +. +MessageId=62558 +Language=English +%1 +. +MessageId=62559 +Language=English +%1 +. +MessageId=62560 +Language=English +%1 +. +MessageId=62561 +Language=English +%1 +. +MessageId=62562 +Language=English +%1 +. +MessageId=62563 +Language=English +%1 +. +MessageId=62564 +Language=English +%1 +. +MessageId=62565 +Language=English +%1 +. +MessageId=62566 +Language=English +%1 +. +MessageId=62567 +Language=English +%1 +. +MessageId=62568 +Language=English +%1 +. +MessageId=62569 +Language=English +%1 +. +MessageId=62570 +Language=English +%1 +. +MessageId=62571 +Language=English +%1 +. +MessageId=62572 +Language=English +%1 +. +MessageId=62573 +Language=English +%1 +. +MessageId=62574 +Language=English +%1 +. +MessageId=62575 +Language=English +%1 +. +MessageId=62576 +Language=English +%1 +. +MessageId=62577 +Language=English +%1 +. +MessageId=62578 +Language=English +%1 +. +MessageId=62579 +Language=English +%1 +. +MessageId=62580 +Language=English +%1 +. +MessageId=62581 +Language=English +%1 +. +MessageId=62582 +Language=English +%1 +. +MessageId=62583 +Language=English +%1 +. +MessageId=62584 +Language=English +%1 +. +MessageId=62585 +Language=English +%1 +. +MessageId=62586 +Language=English +%1 +. +MessageId=62587 +Language=English +%1 +. +MessageId=62588 +Language=English +%1 +. +MessageId=62589 +Language=English +%1 +. +MessageId=62590 +Language=English +%1 +. +MessageId=62591 +Language=English +%1 +. +MessageId=62592 +Language=English +%1 +. +MessageId=62593 +Language=English +%1 +. +MessageId=62594 +Language=English +%1 +. +MessageId=62595 +Language=English +%1 +. +MessageId=62596 +Language=English +%1 +. +MessageId=62597 +Language=English +%1 +. +MessageId=62598 +Language=English +%1 +. +MessageId=62599 +Language=English +%1 +. +MessageId=62600 +Language=English +%1 +. +MessageId=62601 +Language=English +%1 +. +MessageId=62602 +Language=English +%1 +. +MessageId=62603 +Language=English +%1 +. +MessageId=62604 +Language=English +%1 +. +MessageId=62605 +Language=English +%1 +. +MessageId=62606 +Language=English +%1 +. +MessageId=62607 +Language=English +%1 +. +MessageId=62608 +Language=English +%1 +. +MessageId=62609 +Language=English +%1 +. +MessageId=62610 +Language=English +%1 +. +MessageId=62611 +Language=English +%1 +. +MessageId=62612 +Language=English +%1 +. +MessageId=62613 +Language=English +%1 +. +MessageId=62614 +Language=English +%1 +. +MessageId=62615 +Language=English +%1 +. +MessageId=62616 +Language=English +%1 +. +MessageId=62617 +Language=English +%1 +. +MessageId=62618 +Language=English +%1 +. +MessageId=62619 +Language=English +%1 +. +MessageId=62620 +Language=English +%1 +. +MessageId=62621 +Language=English +%1 +. +MessageId=62622 +Language=English +%1 +. +MessageId=62623 +Language=English +%1 +. +MessageId=62624 +Language=English +%1 +. +MessageId=62625 +Language=English +%1 +. +MessageId=62626 +Language=English +%1 +. +MessageId=62627 +Language=English +%1 +. +MessageId=62628 +Language=English +%1 +. +MessageId=62629 +Language=English +%1 +. +MessageId=62630 +Language=English +%1 +. +MessageId=62631 +Language=English +%1 +. +MessageId=62632 +Language=English +%1 +. +MessageId=62633 +Language=English +%1 +. +MessageId=62634 +Language=English +%1 +. +MessageId=62635 +Language=English +%1 +. +MessageId=62636 +Language=English +%1 +. +MessageId=62637 +Language=English +%1 +. +MessageId=62638 +Language=English +%1 +. +MessageId=62639 +Language=English +%1 +. +MessageId=62640 +Language=English +%1 +. +MessageId=62641 +Language=English +%1 +. +MessageId=62642 +Language=English +%1 +. +MessageId=62643 +Language=English +%1 +. +MessageId=62644 +Language=English +%1 +. +MessageId=62645 +Language=English +%1 +. +MessageId=62646 +Language=English +%1 +. +MessageId=62647 +Language=English +%1 +. +MessageId=62648 +Language=English +%1 +. +MessageId=62649 +Language=English +%1 +. +MessageId=62650 +Language=English +%1 +. +MessageId=62651 +Language=English +%1 +. +MessageId=62652 +Language=English +%1 +. +MessageId=62653 +Language=English +%1 +. +MessageId=62654 +Language=English +%1 +. +MessageId=62655 +Language=English +%1 +. +MessageId=62656 +Language=English +%1 +. +MessageId=62657 +Language=English +%1 +. +MessageId=62658 +Language=English +%1 +. +MessageId=62659 +Language=English +%1 +. +MessageId=62660 +Language=English +%1 +. +MessageId=62661 +Language=English +%1 +. +MessageId=62662 +Language=English +%1 +. +MessageId=62663 +Language=English +%1 +. +MessageId=62664 +Language=English +%1 +. +MessageId=62665 +Language=English +%1 +. +MessageId=62666 +Language=English +%1 +. +MessageId=62667 +Language=English +%1 +. +MessageId=62668 +Language=English +%1 +. +MessageId=62669 +Language=English +%1 +. +MessageId=62670 +Language=English +%1 +. +MessageId=62671 +Language=English +%1 +. +MessageId=62672 +Language=English +%1 +. +MessageId=62673 +Language=English +%1 +. +MessageId=62674 +Language=English +%1 +. +MessageId=62675 +Language=English +%1 +. +MessageId=62676 +Language=English +%1 +. +MessageId=62677 +Language=English +%1 +. +MessageId=62678 +Language=English +%1 +. +MessageId=62679 +Language=English +%1 +. +MessageId=62680 +Language=English +%1 +. +MessageId=62681 +Language=English +%1 +. +MessageId=62682 +Language=English +%1 +. +MessageId=62683 +Language=English +%1 +. +MessageId=62684 +Language=English +%1 +. +MessageId=62685 +Language=English +%1 +. +MessageId=62686 +Language=English +%1 +. +MessageId=62687 +Language=English +%1 +. +MessageId=62688 +Language=English +%1 +. +MessageId=62689 +Language=English +%1 +. +MessageId=62690 +Language=English +%1 +. +MessageId=62691 +Language=English +%1 +. +MessageId=62692 +Language=English +%1 +. +MessageId=62693 +Language=English +%1 +. +MessageId=62694 +Language=English +%1 +. +MessageId=62695 +Language=English +%1 +. +MessageId=62696 +Language=English +%1 +. +MessageId=62697 +Language=English +%1 +. +MessageId=62698 +Language=English +%1 +. +MessageId=62699 +Language=English +%1 +. +MessageId=62700 +Language=English +%1 +. +MessageId=62701 +Language=English +%1 +. +MessageId=62702 +Language=English +%1 +. +MessageId=62703 +Language=English +%1 +. +MessageId=62704 +Language=English +%1 +. +MessageId=62705 +Language=English +%1 +. +MessageId=62706 +Language=English +%1 +. +MessageId=62707 +Language=English +%1 +. +MessageId=62708 +Language=English +%1 +. +MessageId=62709 +Language=English +%1 +. +MessageId=62710 +Language=English +%1 +. +MessageId=62711 +Language=English +%1 +. +MessageId=62712 +Language=English +%1 +. +MessageId=62713 +Language=English +%1 +. +MessageId=62714 +Language=English +%1 +. +MessageId=62715 +Language=English +%1 +. +MessageId=62716 +Language=English +%1 +. +MessageId=62717 +Language=English +%1 +. +MessageId=62718 +Language=English +%1 +. +MessageId=62719 +Language=English +%1 +. +MessageId=62720 +Language=English +%1 +. +MessageId=62721 +Language=English +%1 +. +MessageId=62722 +Language=English +%1 +. +MessageId=62723 +Language=English +%1 +. +MessageId=62724 +Language=English +%1 +. +MessageId=62725 +Language=English +%1 +. +MessageId=62726 +Language=English +%1 +. +MessageId=62727 +Language=English +%1 +. +MessageId=62728 +Language=English +%1 +. +MessageId=62729 +Language=English +%1 +. +MessageId=62730 +Language=English +%1 +. +MessageId=62731 +Language=English +%1 +. +MessageId=62732 +Language=English +%1 +. +MessageId=62733 +Language=English +%1 +. +MessageId=62734 +Language=English +%1 +. +MessageId=62735 +Language=English +%1 +. +MessageId=62736 +Language=English +%1 +. +MessageId=62737 +Language=English +%1 +. +MessageId=62738 +Language=English +%1 +. +MessageId=62739 +Language=English +%1 +. +MessageId=62740 +Language=English +%1 +. +MessageId=62741 +Language=English +%1 +. +MessageId=62742 +Language=English +%1 +. +MessageId=62743 +Language=English +%1 +. +MessageId=62744 +Language=English +%1 +. +MessageId=62745 +Language=English +%1 +. +MessageId=62746 +Language=English +%1 +. +MessageId=62747 +Language=English +%1 +. +MessageId=62748 +Language=English +%1 +. +MessageId=62749 +Language=English +%1 +. +MessageId=62750 +Language=English +%1 +. +MessageId=62751 +Language=English +%1 +. +MessageId=62752 +Language=English +%1 +. +MessageId=62753 +Language=English +%1 +. +MessageId=62754 +Language=English +%1 +. +MessageId=62755 +Language=English +%1 +. +MessageId=62756 +Language=English +%1 +. +MessageId=62757 +Language=English +%1 +. +MessageId=62758 +Language=English +%1 +. +MessageId=62759 +Language=English +%1 +. +MessageId=62760 +Language=English +%1 +. +MessageId=62761 +Language=English +%1 +. +MessageId=62762 +Language=English +%1 +. +MessageId=62763 +Language=English +%1 +. +MessageId=62764 +Language=English +%1 +. +MessageId=62765 +Language=English +%1 +. +MessageId=62766 +Language=English +%1 +. +MessageId=62767 +Language=English +%1 +. +MessageId=62768 +Language=English +%1 +. +MessageId=62769 +Language=English +%1 +. +MessageId=62770 +Language=English +%1 +. +MessageId=62771 +Language=English +%1 +. +MessageId=62772 +Language=English +%1 +. +MessageId=62773 +Language=English +%1 +. +MessageId=62774 +Language=English +%1 +. +MessageId=62775 +Language=English +%1 +. +MessageId=62776 +Language=English +%1 +. +MessageId=62777 +Language=English +%1 +. +MessageId=62778 +Language=English +%1 +. +MessageId=62779 +Language=English +%1 +. +MessageId=62780 +Language=English +%1 +. +MessageId=62781 +Language=English +%1 +. +MessageId=62782 +Language=English +%1 +. +MessageId=62783 +Language=English +%1 +. +MessageId=62784 +Language=English +%1 +. +MessageId=62785 +Language=English +%1 +. +MessageId=62786 +Language=English +%1 +. +MessageId=62787 +Language=English +%1 +. +MessageId=62788 +Language=English +%1 +. +MessageId=62789 +Language=English +%1 +. +MessageId=62790 +Language=English +%1 +. +MessageId=62791 +Language=English +%1 +. +MessageId=62792 +Language=English +%1 +. +MessageId=62793 +Language=English +%1 +. +MessageId=62794 +Language=English +%1 +. +MessageId=62795 +Language=English +%1 +. +MessageId=62796 +Language=English +%1 +. +MessageId=62797 +Language=English +%1 +. +MessageId=62798 +Language=English +%1 +. +MessageId=62799 +Language=English +%1 +. +MessageId=62800 +Language=English +%1 +. +MessageId=62801 +Language=English +%1 +. +MessageId=62802 +Language=English +%1 +. +MessageId=62803 +Language=English +%1 +. +MessageId=62804 +Language=English +%1 +. +MessageId=62805 +Language=English +%1 +. +MessageId=62806 +Language=English +%1 +. +MessageId=62807 +Language=English +%1 +. +MessageId=62808 +Language=English +%1 +. +MessageId=62809 +Language=English +%1 +. +MessageId=62810 +Language=English +%1 +. +MessageId=62811 +Language=English +%1 +. +MessageId=62812 +Language=English +%1 +. +MessageId=62813 +Language=English +%1 +. +MessageId=62814 +Language=English +%1 +. +MessageId=62815 +Language=English +%1 +. +MessageId=62816 +Language=English +%1 +. +MessageId=62817 +Language=English +%1 +. +MessageId=62818 +Language=English +%1 +. +MessageId=62819 +Language=English +%1 +. +MessageId=62820 +Language=English +%1 +. +MessageId=62821 +Language=English +%1 +. +MessageId=62822 +Language=English +%1 +. +MessageId=62823 +Language=English +%1 +. +MessageId=62824 +Language=English +%1 +. +MessageId=62825 +Language=English +%1 +. +MessageId=62826 +Language=English +%1 +. +MessageId=62827 +Language=English +%1 +. +MessageId=62828 +Language=English +%1 +. +MessageId=62829 +Language=English +%1 +. +MessageId=62830 +Language=English +%1 +. +MessageId=62831 +Language=English +%1 +. +MessageId=62832 +Language=English +%1 +. +MessageId=62833 +Language=English +%1 +. +MessageId=62834 +Language=English +%1 +. +MessageId=62835 +Language=English +%1 +. +MessageId=62836 +Language=English +%1 +. +MessageId=62837 +Language=English +%1 +. +MessageId=62838 +Language=English +%1 +. +MessageId=62839 +Language=English +%1 +. +MessageId=62840 +Language=English +%1 +. +MessageId=62841 +Language=English +%1 +. +MessageId=62842 +Language=English +%1 +. +MessageId=62843 +Language=English +%1 +. +MessageId=62844 +Language=English +%1 +. +MessageId=62845 +Language=English +%1 +. +MessageId=62846 +Language=English +%1 +. +MessageId=62847 +Language=English +%1 +. +MessageId=62848 +Language=English +%1 +. +MessageId=62849 +Language=English +%1 +. +MessageId=62850 +Language=English +%1 +. +MessageId=62851 +Language=English +%1 +. +MessageId=62852 +Language=English +%1 +. +MessageId=62853 +Language=English +%1 +. +MessageId=62854 +Language=English +%1 +. +MessageId=62855 +Language=English +%1 +. +MessageId=62856 +Language=English +%1 +. +MessageId=62857 +Language=English +%1 +. +MessageId=62858 +Language=English +%1 +. +MessageId=62859 +Language=English +%1 +. +MessageId=62860 +Language=English +%1 +. +MessageId=62861 +Language=English +%1 +. +MessageId=62862 +Language=English +%1 +. +MessageId=62863 +Language=English +%1 +. +MessageId=62864 +Language=English +%1 +. +MessageId=62865 +Language=English +%1 +. +MessageId=62866 +Language=English +%1 +. +MessageId=62867 +Language=English +%1 +. +MessageId=62868 +Language=English +%1 +. +MessageId=62869 +Language=English +%1 +. +MessageId=62870 +Language=English +%1 +. +MessageId=62871 +Language=English +%1 +. +MessageId=62872 +Language=English +%1 +. +MessageId=62873 +Language=English +%1 +. +MessageId=62874 +Language=English +%1 +. +MessageId=62875 +Language=English +%1 +. +MessageId=62876 +Language=English +%1 +. +MessageId=62877 +Language=English +%1 +. +MessageId=62878 +Language=English +%1 +. +MessageId=62879 +Language=English +%1 +. +MessageId=62880 +Language=English +%1 +. +MessageId=62881 +Language=English +%1 +. +MessageId=62882 +Language=English +%1 +. +MessageId=62883 +Language=English +%1 +. +MessageId=62884 +Language=English +%1 +. +MessageId=62885 +Language=English +%1 +. +MessageId=62886 +Language=English +%1 +. +MessageId=62887 +Language=English +%1 +. +MessageId=62888 +Language=English +%1 +. +MessageId=62889 +Language=English +%1 +. +MessageId=62890 +Language=English +%1 +. +MessageId=62891 +Language=English +%1 +. +MessageId=62892 +Language=English +%1 +. +MessageId=62893 +Language=English +%1 +. +MessageId=62894 +Language=English +%1 +. +MessageId=62895 +Language=English +%1 +. +MessageId=62896 +Language=English +%1 +. +MessageId=62897 +Language=English +%1 +. +MessageId=62898 +Language=English +%1 +. +MessageId=62899 +Language=English +%1 +. +MessageId=62900 +Language=English +%1 +. +MessageId=62901 +Language=English +%1 +. +MessageId=62902 +Language=English +%1 +. +MessageId=62903 +Language=English +%1 +. +MessageId=62904 +Language=English +%1 +. +MessageId=62905 +Language=English +%1 +. +MessageId=62906 +Language=English +%1 +. +MessageId=62907 +Language=English +%1 +. +MessageId=62908 +Language=English +%1 +. +MessageId=62909 +Language=English +%1 +. +MessageId=62910 +Language=English +%1 +. +MessageId=62911 +Language=English +%1 +. +MessageId=62912 +Language=English +%1 +. +MessageId=62913 +Language=English +%1 +. +MessageId=62914 +Language=English +%1 +. +MessageId=62915 +Language=English +%1 +. +MessageId=62916 +Language=English +%1 +. +MessageId=62917 +Language=English +%1 +. +MessageId=62918 +Language=English +%1 +. +MessageId=62919 +Language=English +%1 +. +MessageId=62920 +Language=English +%1 +. +MessageId=62921 +Language=English +%1 +. +MessageId=62922 +Language=English +%1 +. +MessageId=62923 +Language=English +%1 +. +MessageId=62924 +Language=English +%1 +. +MessageId=62925 +Language=English +%1 +. +MessageId=62926 +Language=English +%1 +. +MessageId=62927 +Language=English +%1 +. +MessageId=62928 +Language=English +%1 +. +MessageId=62929 +Language=English +%1 +. +MessageId=62930 +Language=English +%1 +. +MessageId=62931 +Language=English +%1 +. +MessageId=62932 +Language=English +%1 +. +MessageId=62933 +Language=English +%1 +. +MessageId=62934 +Language=English +%1 +. +MessageId=62935 +Language=English +%1 +. +MessageId=62936 +Language=English +%1 +. +MessageId=62937 +Language=English +%1 +. +MessageId=62938 +Language=English +%1 +. +MessageId=62939 +Language=English +%1 +. +MessageId=62940 +Language=English +%1 +. +MessageId=62941 +Language=English +%1 +. +MessageId=62942 +Language=English +%1 +. +MessageId=62943 +Language=English +%1 +. +MessageId=62944 +Language=English +%1 +. +MessageId=62945 +Language=English +%1 +. +MessageId=62946 +Language=English +%1 +. +MessageId=62947 +Language=English +%1 +. +MessageId=62948 +Language=English +%1 +. +MessageId=62949 +Language=English +%1 +. +MessageId=62950 +Language=English +%1 +. +MessageId=62951 +Language=English +%1 +. +MessageId=62952 +Language=English +%1 +. +MessageId=62953 +Language=English +%1 +. +MessageId=62954 +Language=English +%1 +. +MessageId=62955 +Language=English +%1 +. +MessageId=62956 +Language=English +%1 +. +MessageId=62957 +Language=English +%1 +. +MessageId=62958 +Language=English +%1 +. +MessageId=62959 +Language=English +%1 +. +MessageId=62960 +Language=English +%1 +. +MessageId=62961 +Language=English +%1 +. +MessageId=62962 +Language=English +%1 +. +MessageId=62963 +Language=English +%1 +. +MessageId=62964 +Language=English +%1 +. +MessageId=62965 +Language=English +%1 +. +MessageId=62966 +Language=English +%1 +. +MessageId=62967 +Language=English +%1 +. +MessageId=62968 +Language=English +%1 +. +MessageId=62969 +Language=English +%1 +. +MessageId=62970 +Language=English +%1 +. +MessageId=62971 +Language=English +%1 +. +MessageId=62972 +Language=English +%1 +. +MessageId=62973 +Language=English +%1 +. +MessageId=62974 +Language=English +%1 +. +MessageId=62975 +Language=English +%1 +. +MessageId=62976 +Language=English +%1 +. +MessageId=62977 +Language=English +%1 +. +MessageId=62978 +Language=English +%1 +. +MessageId=62979 +Language=English +%1 +. +MessageId=62980 +Language=English +%1 +. +MessageId=62981 +Language=English +%1 +. +MessageId=62982 +Language=English +%1 +. +MessageId=62983 +Language=English +%1 +. +MessageId=62984 +Language=English +%1 +. +MessageId=62985 +Language=English +%1 +. +MessageId=62986 +Language=English +%1 +. +MessageId=62987 +Language=English +%1 +. +MessageId=62988 +Language=English +%1 +. +MessageId=62989 +Language=English +%1 +. +MessageId=62990 +Language=English +%1 +. +MessageId=62991 +Language=English +%1 +. +MessageId=62992 +Language=English +%1 +. +MessageId=62993 +Language=English +%1 +. +MessageId=62994 +Language=English +%1 +. +MessageId=62995 +Language=English +%1 +. +MessageId=62996 +Language=English +%1 +. +MessageId=62997 +Language=English +%1 +. +MessageId=62998 +Language=English +%1 +. +MessageId=62999 +Language=English +%1 +. +MessageId=63000 +Language=English +%1 +. +MessageId=63001 +Language=English +%1 +. +MessageId=63002 +Language=English +%1 +. +MessageId=63003 +Language=English +%1 +. +MessageId=63004 +Language=English +%1 +. +MessageId=63005 +Language=English +%1 +. +MessageId=63006 +Language=English +%1 +. +MessageId=63007 +Language=English +%1 +. +MessageId=63008 +Language=English +%1 +. +MessageId=63009 +Language=English +%1 +. +MessageId=63010 +Language=English +%1 +. +MessageId=63011 +Language=English +%1 +. +MessageId=63012 +Language=English +%1 +. +MessageId=63013 +Language=English +%1 +. +MessageId=63014 +Language=English +%1 +. +MessageId=63015 +Language=English +%1 +. +MessageId=63016 +Language=English +%1 +. +MessageId=63017 +Language=English +%1 +. +MessageId=63018 +Language=English +%1 +. +MessageId=63019 +Language=English +%1 +. +MessageId=63020 +Language=English +%1 +. +MessageId=63021 +Language=English +%1 +. +MessageId=63022 +Language=English +%1 +. +MessageId=63023 +Language=English +%1 +. +MessageId=63024 +Language=English +%1 +. +MessageId=63025 +Language=English +%1 +. +MessageId=63026 +Language=English +%1 +. +MessageId=63027 +Language=English +%1 +. +MessageId=63028 +Language=English +%1 +. +MessageId=63029 +Language=English +%1 +. +MessageId=63030 +Language=English +%1 +. +MessageId=63031 +Language=English +%1 +. +MessageId=63032 +Language=English +%1 +. +MessageId=63033 +Language=English +%1 +. +MessageId=63034 +Language=English +%1 +. +MessageId=63035 +Language=English +%1 +. +MessageId=63036 +Language=English +%1 +. +MessageId=63037 +Language=English +%1 +. +MessageId=63038 +Language=English +%1 +. +MessageId=63039 +Language=English +%1 +. +MessageId=63040 +Language=English +%1 +. +MessageId=63041 +Language=English +%1 +. +MessageId=63042 +Language=English +%1 +. +MessageId=63043 +Language=English +%1 +. +MessageId=63044 +Language=English +%1 +. +MessageId=63045 +Language=English +%1 +. +MessageId=63046 +Language=English +%1 +. +MessageId=63047 +Language=English +%1 +. +MessageId=63048 +Language=English +%1 +. +MessageId=63049 +Language=English +%1 +. +MessageId=63050 +Language=English +%1 +. +MessageId=63051 +Language=English +%1 +. +MessageId=63052 +Language=English +%1 +. +MessageId=63053 +Language=English +%1 +. +MessageId=63054 +Language=English +%1 +. +MessageId=63055 +Language=English +%1 +. +MessageId=63056 +Language=English +%1 +. +MessageId=63057 +Language=English +%1 +. +MessageId=63058 +Language=English +%1 +. +MessageId=63059 +Language=English +%1 +. +MessageId=63060 +Language=English +%1 +. +MessageId=63061 +Language=English +%1 +. +MessageId=63062 +Language=English +%1 +. +MessageId=63063 +Language=English +%1 +. +MessageId=63064 +Language=English +%1 +. +MessageId=63065 +Language=English +%1 +. +MessageId=63066 +Language=English +%1 +. +MessageId=63067 +Language=English +%1 +. +MessageId=63068 +Language=English +%1 +. +MessageId=63069 +Language=English +%1 +. +MessageId=63070 +Language=English +%1 +. +MessageId=63071 +Language=English +%1 +. +MessageId=63072 +Language=English +%1 +. +MessageId=63073 +Language=English +%1 +. +MessageId=63074 +Language=English +%1 +. +MessageId=63075 +Language=English +%1 +. +MessageId=63076 +Language=English +%1 +. +MessageId=63077 +Language=English +%1 +. +MessageId=63078 +Language=English +%1 +. +MessageId=63079 +Language=English +%1 +. +MessageId=63080 +Language=English +%1 +. +MessageId=63081 +Language=English +%1 +. +MessageId=63082 +Language=English +%1 +. +MessageId=63083 +Language=English +%1 +. +MessageId=63084 +Language=English +%1 +. +MessageId=63085 +Language=English +%1 +. +MessageId=63086 +Language=English +%1 +. +MessageId=63087 +Language=English +%1 +. +MessageId=63088 +Language=English +%1 +. +MessageId=63089 +Language=English +%1 +. +MessageId=63090 +Language=English +%1 +. +MessageId=63091 +Language=English +%1 +. +MessageId=63092 +Language=English +%1 +. +MessageId=63093 +Language=English +%1 +. +MessageId=63094 +Language=English +%1 +. +MessageId=63095 +Language=English +%1 +. +MessageId=63096 +Language=English +%1 +. +MessageId=63097 +Language=English +%1 +. +MessageId=63098 +Language=English +%1 +. +MessageId=63099 +Language=English +%1 +. +MessageId=63100 +Language=English +%1 +. +MessageId=63101 +Language=English +%1 +. +MessageId=63102 +Language=English +%1 +. +MessageId=63103 +Language=English +%1 +. +MessageId=63104 +Language=English +%1 +. +MessageId=63105 +Language=English +%1 +. +MessageId=63106 +Language=English +%1 +. +MessageId=63107 +Language=English +%1 +. +MessageId=63108 +Language=English +%1 +. +MessageId=63109 +Language=English +%1 +. +MessageId=63110 +Language=English +%1 +. +MessageId=63111 +Language=English +%1 +. +MessageId=63112 +Language=English +%1 +. +MessageId=63113 +Language=English +%1 +. +MessageId=63114 +Language=English +%1 +. +MessageId=63115 +Language=English +%1 +. +MessageId=63116 +Language=English +%1 +. +MessageId=63117 +Language=English +%1 +. +MessageId=63118 +Language=English +%1 +. +MessageId=63119 +Language=English +%1 +. +MessageId=63120 +Language=English +%1 +. +MessageId=63121 +Language=English +%1 +. +MessageId=63122 +Language=English +%1 +. +MessageId=63123 +Language=English +%1 +. +MessageId=63124 +Language=English +%1 +. +MessageId=63125 +Language=English +%1 +. +MessageId=63126 +Language=English +%1 +. +MessageId=63127 +Language=English +%1 +. +MessageId=63128 +Language=English +%1 +. +MessageId=63129 +Language=English +%1 +. +MessageId=63130 +Language=English +%1 +. +MessageId=63131 +Language=English +%1 +. +MessageId=63132 +Language=English +%1 +. +MessageId=63133 +Language=English +%1 +. +MessageId=63134 +Language=English +%1 +. +MessageId=63135 +Language=English +%1 +. +MessageId=63136 +Language=English +%1 +. +MessageId=63137 +Language=English +%1 +. +MessageId=63138 +Language=English +%1 +. +MessageId=63139 +Language=English +%1 +. +MessageId=63140 +Language=English +%1 +. +MessageId=63141 +Language=English +%1 +. +MessageId=63142 +Language=English +%1 +. +MessageId=63143 +Language=English +%1 +. +MessageId=63144 +Language=English +%1 +. +MessageId=63145 +Language=English +%1 +. +MessageId=63146 +Language=English +%1 +. +MessageId=63147 +Language=English +%1 +. +MessageId=63148 +Language=English +%1 +. +MessageId=63149 +Language=English +%1 +. +MessageId=63150 +Language=English +%1 +. +MessageId=63151 +Language=English +%1 +. +MessageId=63152 +Language=English +%1 +. +MessageId=63153 +Language=English +%1 +. +MessageId=63154 +Language=English +%1 +. +MessageId=63155 +Language=English +%1 +. +MessageId=63156 +Language=English +%1 +. +MessageId=63157 +Language=English +%1 +. +MessageId=63158 +Language=English +%1 +. +MessageId=63159 +Language=English +%1 +. +MessageId=63160 +Language=English +%1 +. +MessageId=63161 +Language=English +%1 +. +MessageId=63162 +Language=English +%1 +. +MessageId=63163 +Language=English +%1 +. +MessageId=63164 +Language=English +%1 +. +MessageId=63165 +Language=English +%1 +. +MessageId=63166 +Language=English +%1 +. +MessageId=63167 +Language=English +%1 +. +MessageId=63168 +Language=English +%1 +. +MessageId=63169 +Language=English +%1 +. +MessageId=63170 +Language=English +%1 +. +MessageId=63171 +Language=English +%1 +. +MessageId=63172 +Language=English +%1 +. +MessageId=63173 +Language=English +%1 +. +MessageId=63174 +Language=English +%1 +. +MessageId=63175 +Language=English +%1 +. +MessageId=63176 +Language=English +%1 +. +MessageId=63177 +Language=English +%1 +. +MessageId=63178 +Language=English +%1 +. +MessageId=63179 +Language=English +%1 +. +MessageId=63180 +Language=English +%1 +. +MessageId=63181 +Language=English +%1 +. +MessageId=63182 +Language=English +%1 +. +MessageId=63183 +Language=English +%1 +. +MessageId=63184 +Language=English +%1 +. +MessageId=63185 +Language=English +%1 +. +MessageId=63186 +Language=English +%1 +. +MessageId=63187 +Language=English +%1 +. +MessageId=63188 +Language=English +%1 +. +MessageId=63189 +Language=English +%1 +. +MessageId=63190 +Language=English +%1 +. +MessageId=63191 +Language=English +%1 +. +MessageId=63192 +Language=English +%1 +. +MessageId=63193 +Language=English +%1 +. +MessageId=63194 +Language=English +%1 +. +MessageId=63195 +Language=English +%1 +. +MessageId=63196 +Language=English +%1 +. +MessageId=63197 +Language=English +%1 +. +MessageId=63198 +Language=English +%1 +. +MessageId=63199 +Language=English +%1 +. +MessageId=63200 +Language=English +%1 +. +MessageId=63201 +Language=English +%1 +. +MessageId=63202 +Language=English +%1 +. +MessageId=63203 +Language=English +%1 +. +MessageId=63204 +Language=English +%1 +. +MessageId=63205 +Language=English +%1 +. +MessageId=63206 +Language=English +%1 +. +MessageId=63207 +Language=English +%1 +. +MessageId=63208 +Language=English +%1 +. +MessageId=63209 +Language=English +%1 +. +MessageId=63210 +Language=English +%1 +. +MessageId=63211 +Language=English +%1 +. +MessageId=63212 +Language=English +%1 +. +MessageId=63213 +Language=English +%1 +. +MessageId=63214 +Language=English +%1 +. +MessageId=63215 +Language=English +%1 +. +MessageId=63216 +Language=English +%1 +. +MessageId=63217 +Language=English +%1 +. +MessageId=63218 +Language=English +%1 +. +MessageId=63219 +Language=English +%1 +. +MessageId=63220 +Language=English +%1 +. +MessageId=63221 +Language=English +%1 +. +MessageId=63222 +Language=English +%1 +. +MessageId=63223 +Language=English +%1 +. +MessageId=63224 +Language=English +%1 +. +MessageId=63225 +Language=English +%1 +. +MessageId=63226 +Language=English +%1 +. +MessageId=63227 +Language=English +%1 +. +MessageId=63228 +Language=English +%1 +. +MessageId=63229 +Language=English +%1 +. +MessageId=63230 +Language=English +%1 +. +MessageId=63231 +Language=English +%1 +. +MessageId=63232 +Language=English +%1 +. +MessageId=63233 +Language=English +%1 +. +MessageId=63234 +Language=English +%1 +. +MessageId=63235 +Language=English +%1 +. +MessageId=63236 +Language=English +%1 +. +MessageId=63237 +Language=English +%1 +. +MessageId=63238 +Language=English +%1 +. +MessageId=63239 +Language=English +%1 +. +MessageId=63240 +Language=English +%1 +. +MessageId=63241 +Language=English +%1 +. +MessageId=63242 +Language=English +%1 +. +MessageId=63243 +Language=English +%1 +. +MessageId=63244 +Language=English +%1 +. +MessageId=63245 +Language=English +%1 +. +MessageId=63246 +Language=English +%1 +. +MessageId=63247 +Language=English +%1 +. +MessageId=63248 +Language=English +%1 +. +MessageId=63249 +Language=English +%1 +. +MessageId=63250 +Language=English +%1 +. +MessageId=63251 +Language=English +%1 +. +MessageId=63252 +Language=English +%1 +. +MessageId=63253 +Language=English +%1 +. +MessageId=63254 +Language=English +%1 +. +MessageId=63255 +Language=English +%1 +. +MessageId=63256 +Language=English +%1 +. +MessageId=63257 +Language=English +%1 +. +MessageId=63258 +Language=English +%1 +. +MessageId=63259 +Language=English +%1 +. +MessageId=63260 +Language=English +%1 +. +MessageId=63261 +Language=English +%1 +. +MessageId=63262 +Language=English +%1 +. +MessageId=63263 +Language=English +%1 +. +MessageId=63264 +Language=English +%1 +. +MessageId=63265 +Language=English +%1 +. +MessageId=63266 +Language=English +%1 +. +MessageId=63267 +Language=English +%1 +. +MessageId=63268 +Language=English +%1 +. +MessageId=63269 +Language=English +%1 +. +MessageId=63270 +Language=English +%1 +. +MessageId=63271 +Language=English +%1 +. +MessageId=63272 +Language=English +%1 +. +MessageId=63273 +Language=English +%1 +. +MessageId=63274 +Language=English +%1 +. +MessageId=63275 +Language=English +%1 +. +MessageId=63276 +Language=English +%1 +. +MessageId=63277 +Language=English +%1 +. +MessageId=63278 +Language=English +%1 +. +MessageId=63279 +Language=English +%1 +. +MessageId=63280 +Language=English +%1 +. +MessageId=63281 +Language=English +%1 +. +MessageId=63282 +Language=English +%1 +. +MessageId=63283 +Language=English +%1 +. +MessageId=63284 +Language=English +%1 +. +MessageId=63285 +Language=English +%1 +. +MessageId=63286 +Language=English +%1 +. +MessageId=63287 +Language=English +%1 +. +MessageId=63288 +Language=English +%1 +. +MessageId=63289 +Language=English +%1 +. +MessageId=63290 +Language=English +%1 +. +MessageId=63291 +Language=English +%1 +. +MessageId=63292 +Language=English +%1 +. +MessageId=63293 +Language=English +%1 +. +MessageId=63294 +Language=English +%1 +. +MessageId=63295 +Language=English +%1 +. +MessageId=63296 +Language=English +%1 +. +MessageId=63297 +Language=English +%1 +. +MessageId=63298 +Language=English +%1 +. +MessageId=63299 +Language=English +%1 +. +MessageId=63300 +Language=English +%1 +. +MessageId=63301 +Language=English +%1 +. +MessageId=63302 +Language=English +%1 +. +MessageId=63303 +Language=English +%1 +. +MessageId=63304 +Language=English +%1 +. +MessageId=63305 +Language=English +%1 +. +MessageId=63306 +Language=English +%1 +. +MessageId=63307 +Language=English +%1 +. +MessageId=63308 +Language=English +%1 +. +MessageId=63309 +Language=English +%1 +. +MessageId=63310 +Language=English +%1 +. +MessageId=63311 +Language=English +%1 +. +MessageId=63312 +Language=English +%1 +. +MessageId=63313 +Language=English +%1 +. +MessageId=63314 +Language=English +%1 +. +MessageId=63315 +Language=English +%1 +. +MessageId=63316 +Language=English +%1 +. +MessageId=63317 +Language=English +%1 +. +MessageId=63318 +Language=English +%1 +. +MessageId=63319 +Language=English +%1 +. +MessageId=63320 +Language=English +%1 +. +MessageId=63321 +Language=English +%1 +. +MessageId=63322 +Language=English +%1 +. +MessageId=63323 +Language=English +%1 +. +MessageId=63324 +Language=English +%1 +. +MessageId=63325 +Language=English +%1 +. +MessageId=63326 +Language=English +%1 +. +MessageId=63327 +Language=English +%1 +. +MessageId=63328 +Language=English +%1 +. +MessageId=63329 +Language=English +%1 +. +MessageId=63330 +Language=English +%1 +. +MessageId=63331 +Language=English +%1 +. +MessageId=63332 +Language=English +%1 +. +MessageId=63333 +Language=English +%1 +. +MessageId=63334 +Language=English +%1 +. +MessageId=63335 +Language=English +%1 +. +MessageId=63336 +Language=English +%1 +. +MessageId=63337 +Language=English +%1 +. +MessageId=63338 +Language=English +%1 +. +MessageId=63339 +Language=English +%1 +. +MessageId=63340 +Language=English +%1 +. +MessageId=63341 +Language=English +%1 +. +MessageId=63342 +Language=English +%1 +. +MessageId=63343 +Language=English +%1 +. +MessageId=63344 +Language=English +%1 +. +MessageId=63345 +Language=English +%1 +. +MessageId=63346 +Language=English +%1 +. +MessageId=63347 +Language=English +%1 +. +MessageId=63348 +Language=English +%1 +. +MessageId=63349 +Language=English +%1 +. +MessageId=63350 +Language=English +%1 +. +MessageId=63351 +Language=English +%1 +. +MessageId=63352 +Language=English +%1 +. +MessageId=63353 +Language=English +%1 +. +MessageId=63354 +Language=English +%1 +. +MessageId=63355 +Language=English +%1 +. +MessageId=63356 +Language=English +%1 +. +MessageId=63357 +Language=English +%1 +. +MessageId=63358 +Language=English +%1 +. +MessageId=63359 +Language=English +%1 +. +MessageId=63360 +Language=English +%1 +. +MessageId=63361 +Language=English +%1 +. +MessageId=63362 +Language=English +%1 +. +MessageId=63363 +Language=English +%1 +. +MessageId=63364 +Language=English +%1 +. +MessageId=63365 +Language=English +%1 +. +MessageId=63366 +Language=English +%1 +. +MessageId=63367 +Language=English +%1 +. +MessageId=63368 +Language=English +%1 +. +MessageId=63369 +Language=English +%1 +. +MessageId=63370 +Language=English +%1 +. +MessageId=63371 +Language=English +%1 +. +MessageId=63372 +Language=English +%1 +. +MessageId=63373 +Language=English +%1 +. +MessageId=63374 +Language=English +%1 +. +MessageId=63375 +Language=English +%1 +. +MessageId=63376 +Language=English +%1 +. +MessageId=63377 +Language=English +%1 +. +MessageId=63378 +Language=English +%1 +. +MessageId=63379 +Language=English +%1 +. +MessageId=63380 +Language=English +%1 +. +MessageId=63381 +Language=English +%1 +. +MessageId=63382 +Language=English +%1 +. +MessageId=63383 +Language=English +%1 +. +MessageId=63384 +Language=English +%1 +. +MessageId=63385 +Language=English +%1 +. +MessageId=63386 +Language=English +%1 +. +MessageId=63387 +Language=English +%1 +. +MessageId=63388 +Language=English +%1 +. +MessageId=63389 +Language=English +%1 +. +MessageId=63390 +Language=English +%1 +. +MessageId=63391 +Language=English +%1 +. +MessageId=63392 +Language=English +%1 +. +MessageId=63393 +Language=English +%1 +. +MessageId=63394 +Language=English +%1 +. +MessageId=63395 +Language=English +%1 +. +MessageId=63396 +Language=English +%1 +. +MessageId=63397 +Language=English +%1 +. +MessageId=63398 +Language=English +%1 +. +MessageId=63399 +Language=English +%1 +. +MessageId=63400 +Language=English +%1 +. +MessageId=63401 +Language=English +%1 +. +MessageId=63402 +Language=English +%1 +. +MessageId=63403 +Language=English +%1 +. +MessageId=63404 +Language=English +%1 +. +MessageId=63405 +Language=English +%1 +. +MessageId=63406 +Language=English +%1 +. +MessageId=63407 +Language=English +%1 +. +MessageId=63408 +Language=English +%1 +. +MessageId=63409 +Language=English +%1 +. +MessageId=63410 +Language=English +%1 +. +MessageId=63411 +Language=English +%1 +. +MessageId=63412 +Language=English +%1 +. +MessageId=63413 +Language=English +%1 +. +MessageId=63414 +Language=English +%1 +. +MessageId=63415 +Language=English +%1 +. +MessageId=63416 +Language=English +%1 +. +MessageId=63417 +Language=English +%1 +. +MessageId=63418 +Language=English +%1 +. +MessageId=63419 +Language=English +%1 +. +MessageId=63420 +Language=English +%1 +. +MessageId=63421 +Language=English +%1 +. +MessageId=63422 +Language=English +%1 +. +MessageId=63423 +Language=English +%1 +. +MessageId=63424 +Language=English +%1 +. +MessageId=63425 +Language=English +%1 +. +MessageId=63426 +Language=English +%1 +. +MessageId=63427 +Language=English +%1 +. +MessageId=63428 +Language=English +%1 +. +MessageId=63429 +Language=English +%1 +. +MessageId=63430 +Language=English +%1 +. +MessageId=63431 +Language=English +%1 +. +MessageId=63432 +Language=English +%1 +. +MessageId=63433 +Language=English +%1 +. +MessageId=63434 +Language=English +%1 +. +MessageId=63435 +Language=English +%1 +. +MessageId=63436 +Language=English +%1 +. +MessageId=63437 +Language=English +%1 +. +MessageId=63438 +Language=English +%1 +. +MessageId=63439 +Language=English +%1 +. +MessageId=63440 +Language=English +%1 +. +MessageId=63441 +Language=English +%1 +. +MessageId=63442 +Language=English +%1 +. +MessageId=63443 +Language=English +%1 +. +MessageId=63444 +Language=English +%1 +. +MessageId=63445 +Language=English +%1 +. +MessageId=63446 +Language=English +%1 +. +MessageId=63447 +Language=English +%1 +. +MessageId=63448 +Language=English +%1 +. +MessageId=63449 +Language=English +%1 +. +MessageId=63450 +Language=English +%1 +. +MessageId=63451 +Language=English +%1 +. +MessageId=63452 +Language=English +%1 +. +MessageId=63453 +Language=English +%1 +. +MessageId=63454 +Language=English +%1 +. +MessageId=63455 +Language=English +%1 +. +MessageId=63456 +Language=English +%1 +. +MessageId=63457 +Language=English +%1 +. +MessageId=63458 +Language=English +%1 +. +MessageId=63459 +Language=English +%1 +. +MessageId=63460 +Language=English +%1 +. +MessageId=63461 +Language=English +%1 +. +MessageId=63462 +Language=English +%1 +. +MessageId=63463 +Language=English +%1 +. +MessageId=63464 +Language=English +%1 +. +MessageId=63465 +Language=English +%1 +. +MessageId=63466 +Language=English +%1 +. +MessageId=63467 +Language=English +%1 +. +MessageId=63468 +Language=English +%1 +. +MessageId=63469 +Language=English +%1 +. +MessageId=63470 +Language=English +%1 +. +MessageId=63471 +Language=English +%1 +. +MessageId=63472 +Language=English +%1 +. +MessageId=63473 +Language=English +%1 +. +MessageId=63474 +Language=English +%1 +. +MessageId=63475 +Language=English +%1 +. +MessageId=63476 +Language=English +%1 +. +MessageId=63477 +Language=English +%1 +. +MessageId=63478 +Language=English +%1 +. +MessageId=63479 +Language=English +%1 +. +MessageId=63480 +Language=English +%1 +. +MessageId=63481 +Language=English +%1 +. +MessageId=63482 +Language=English +%1 +. +MessageId=63483 +Language=English +%1 +. +MessageId=63484 +Language=English +%1 +. +MessageId=63485 +Language=English +%1 +. +MessageId=63486 +Language=English +%1 +. +MessageId=63487 +Language=English +%1 +. +MessageId=63488 +Language=English +%1 +. +MessageId=63489 +Language=English +%1 +. +MessageId=63490 +Language=English +%1 +. +MessageId=63491 +Language=English +%1 +. +MessageId=63492 +Language=English +%1 +. +MessageId=63493 +Language=English +%1 +. +MessageId=63494 +Language=English +%1 +. +MessageId=63495 +Language=English +%1 +. +MessageId=63496 +Language=English +%1 +. +MessageId=63497 +Language=English +%1 +. +MessageId=63498 +Language=English +%1 +. +MessageId=63499 +Language=English +%1 +. +MessageId=63500 +Language=English +%1 +. +MessageId=63501 +Language=English +%1 +. +MessageId=63502 +Language=English +%1 +. +MessageId=63503 +Language=English +%1 +. +MessageId=63504 +Language=English +%1 +. +MessageId=63505 +Language=English +%1 +. +MessageId=63506 +Language=English +%1 +. +MessageId=63507 +Language=English +%1 +. +MessageId=63508 +Language=English +%1 +. +MessageId=63509 +Language=English +%1 +. +MessageId=63510 +Language=English +%1 +. +MessageId=63511 +Language=English +%1 +. +MessageId=63512 +Language=English +%1 +. +MessageId=63513 +Language=English +%1 +. +MessageId=63514 +Language=English +%1 +. +MessageId=63515 +Language=English +%1 +. +MessageId=63516 +Language=English +%1 +. +MessageId=63517 +Language=English +%1 +. +MessageId=63518 +Language=English +%1 +. +MessageId=63519 +Language=English +%1 +. +MessageId=63520 +Language=English +%1 +. +MessageId=63521 +Language=English +%1 +. +MessageId=63522 +Language=English +%1 +. +MessageId=63523 +Language=English +%1 +. +MessageId=63524 +Language=English +%1 +. +MessageId=63525 +Language=English +%1 +. +MessageId=63526 +Language=English +%1 +. +MessageId=63527 +Language=English +%1 +. +MessageId=63528 +Language=English +%1 +. +MessageId=63529 +Language=English +%1 +. +MessageId=63530 +Language=English +%1 +. +MessageId=63531 +Language=English +%1 +. +MessageId=63532 +Language=English +%1 +. +MessageId=63533 +Language=English +%1 +. +MessageId=63534 +Language=English +%1 +. +MessageId=63535 +Language=English +%1 +. +MessageId=63536 +Language=English +%1 +. +MessageId=63537 +Language=English +%1 +. +MessageId=63538 +Language=English +%1 +. +MessageId=63539 +Language=English +%1 +. +MessageId=63540 +Language=English +%1 +. +MessageId=63541 +Language=English +%1 +. +MessageId=63542 +Language=English +%1 +. +MessageId=63543 +Language=English +%1 +. +MessageId=63544 +Language=English +%1 +. +MessageId=63545 +Language=English +%1 +. +MessageId=63546 +Language=English +%1 +. +MessageId=63547 +Language=English +%1 +. +MessageId=63548 +Language=English +%1 +. +MessageId=63549 +Language=English +%1 +. +MessageId=63550 +Language=English +%1 +. +MessageId=63551 +Language=English +%1 +. +MessageId=63552 +Language=English +%1 +. +MessageId=63553 +Language=English +%1 +. +MessageId=63554 +Language=English +%1 +. +MessageId=63555 +Language=English +%1 +. +MessageId=63556 +Language=English +%1 +. +MessageId=63557 +Language=English +%1 +. +MessageId=63558 +Language=English +%1 +. +MessageId=63559 +Language=English +%1 +. +MessageId=63560 +Language=English +%1 +. +MessageId=63561 +Language=English +%1 +. +MessageId=63562 +Language=English +%1 +. +MessageId=63563 +Language=English +%1 +. +MessageId=63564 +Language=English +%1 +. +MessageId=63565 +Language=English +%1 +. +MessageId=63566 +Language=English +%1 +. +MessageId=63567 +Language=English +%1 +. +MessageId=63568 +Language=English +%1 +. +MessageId=63569 +Language=English +%1 +. +MessageId=63570 +Language=English +%1 +. +MessageId=63571 +Language=English +%1 +. +MessageId=63572 +Language=English +%1 +. +MessageId=63573 +Language=English +%1 +. +MessageId=63574 +Language=English +%1 +. +MessageId=63575 +Language=English +%1 +. +MessageId=63576 +Language=English +%1 +. +MessageId=63577 +Language=English +%1 +. +MessageId=63578 +Language=English +%1 +. +MessageId=63579 +Language=English +%1 +. +MessageId=63580 +Language=English +%1 +. +MessageId=63581 +Language=English +%1 +. +MessageId=63582 +Language=English +%1 +. +MessageId=63583 +Language=English +%1 +. +MessageId=63584 +Language=English +%1 +. +MessageId=63585 +Language=English +%1 +. +MessageId=63586 +Language=English +%1 +. +MessageId=63587 +Language=English +%1 +. +MessageId=63588 +Language=English +%1 +. +MessageId=63589 +Language=English +%1 +. +MessageId=63590 +Language=English +%1 +. +MessageId=63591 +Language=English +%1 +. +MessageId=63592 +Language=English +%1 +. +MessageId=63593 +Language=English +%1 +. +MessageId=63594 +Language=English +%1 +. +MessageId=63595 +Language=English +%1 +. +MessageId=63596 +Language=English +%1 +. +MessageId=63597 +Language=English +%1 +. +MessageId=63598 +Language=English +%1 +. +MessageId=63599 +Language=English +%1 +. +MessageId=63600 +Language=English +%1 +. +MessageId=63601 +Language=English +%1 +. +MessageId=63602 +Language=English +%1 +. +MessageId=63603 +Language=English +%1 +. +MessageId=63604 +Language=English +%1 +. +MessageId=63605 +Language=English +%1 +. +MessageId=63606 +Language=English +%1 +. +MessageId=63607 +Language=English +%1 +. +MessageId=63608 +Language=English +%1 +. +MessageId=63609 +Language=English +%1 +. +MessageId=63610 +Language=English +%1 +. +MessageId=63611 +Language=English +%1 +. +MessageId=63612 +Language=English +%1 +. +MessageId=63613 +Language=English +%1 +. +MessageId=63614 +Language=English +%1 +. +MessageId=63615 +Language=English +%1 +. +MessageId=63616 +Language=English +%1 +. +MessageId=63617 +Language=English +%1 +. +MessageId=63618 +Language=English +%1 +. +MessageId=63619 +Language=English +%1 +. +MessageId=63620 +Language=English +%1 +. +MessageId=63621 +Language=English +%1 +. +MessageId=63622 +Language=English +%1 +. +MessageId=63623 +Language=English +%1 +. +MessageId=63624 +Language=English +%1 +. +MessageId=63625 +Language=English +%1 +. +MessageId=63626 +Language=English +%1 +. +MessageId=63627 +Language=English +%1 +. +MessageId=63628 +Language=English +%1 +. +MessageId=63629 +Language=English +%1 +. +MessageId=63630 +Language=English +%1 +. +MessageId=63631 +Language=English +%1 +. +MessageId=63632 +Language=English +%1 +. +MessageId=63633 +Language=English +%1 +. +MessageId=63634 +Language=English +%1 +. +MessageId=63635 +Language=English +%1 +. +MessageId=63636 +Language=English +%1 +. +MessageId=63637 +Language=English +%1 +. +MessageId=63638 +Language=English +%1 +. +MessageId=63639 +Language=English +%1 +. +MessageId=63640 +Language=English +%1 +. +MessageId=63641 +Language=English +%1 +. +MessageId=63642 +Language=English +%1 +. +MessageId=63643 +Language=English +%1 +. +MessageId=63644 +Language=English +%1 +. +MessageId=63645 +Language=English +%1 +. +MessageId=63646 +Language=English +%1 +. +MessageId=63647 +Language=English +%1 +. +MessageId=63648 +Language=English +%1 +. +MessageId=63649 +Language=English +%1 +. +MessageId=63650 +Language=English +%1 +. +MessageId=63651 +Language=English +%1 +. +MessageId=63652 +Language=English +%1 +. +MessageId=63653 +Language=English +%1 +. +MessageId=63654 +Language=English +%1 +. +MessageId=63655 +Language=English +%1 +. +MessageId=63656 +Language=English +%1 +. +MessageId=63657 +Language=English +%1 +. +MessageId=63658 +Language=English +%1 +. +MessageId=63659 +Language=English +%1 +. +MessageId=63660 +Language=English +%1 +. +MessageId=63661 +Language=English +%1 +. +MessageId=63662 +Language=English +%1 +. +MessageId=63663 +Language=English +%1 +. +MessageId=63664 +Language=English +%1 +. +MessageId=63665 +Language=English +%1 +. +MessageId=63666 +Language=English +%1 +. +MessageId=63667 +Language=English +%1 +. +MessageId=63668 +Language=English +%1 +. +MessageId=63669 +Language=English +%1 +. +MessageId=63670 +Language=English +%1 +. +MessageId=63671 +Language=English +%1 +. +MessageId=63672 +Language=English +%1 +. +MessageId=63673 +Language=English +%1 +. +MessageId=63674 +Language=English +%1 +. +MessageId=63675 +Language=English +%1 +. +MessageId=63676 +Language=English +%1 +. +MessageId=63677 +Language=English +%1 +. +MessageId=63678 +Language=English +%1 +. +MessageId=63679 +Language=English +%1 +. +MessageId=63680 +Language=English +%1 +. +MessageId=63681 +Language=English +%1 +. +MessageId=63682 +Language=English +%1 +. +MessageId=63683 +Language=English +%1 +. +MessageId=63684 +Language=English +%1 +. +MessageId=63685 +Language=English +%1 +. +MessageId=63686 +Language=English +%1 +. +MessageId=63687 +Language=English +%1 +. +MessageId=63688 +Language=English +%1 +. +MessageId=63689 +Language=English +%1 +. +MessageId=63690 +Language=English +%1 +. +MessageId=63691 +Language=English +%1 +. +MessageId=63692 +Language=English +%1 +. +MessageId=63693 +Language=English +%1 +. +MessageId=63694 +Language=English +%1 +. +MessageId=63695 +Language=English +%1 +. +MessageId=63696 +Language=English +%1 +. +MessageId=63697 +Language=English +%1 +. +MessageId=63698 +Language=English +%1 +. +MessageId=63699 +Language=English +%1 +. +MessageId=63700 +Language=English +%1 +. +MessageId=63701 +Language=English +%1 +. +MessageId=63702 +Language=English +%1 +. +MessageId=63703 +Language=English +%1 +. +MessageId=63704 +Language=English +%1 +. +MessageId=63705 +Language=English +%1 +. +MessageId=63706 +Language=English +%1 +. +MessageId=63707 +Language=English +%1 +. +MessageId=63708 +Language=English +%1 +. +MessageId=63709 +Language=English +%1 +. +MessageId=63710 +Language=English +%1 +. +MessageId=63711 +Language=English +%1 +. +MessageId=63712 +Language=English +%1 +. +MessageId=63713 +Language=English +%1 +. +MessageId=63714 +Language=English +%1 +. +MessageId=63715 +Language=English +%1 +. +MessageId=63716 +Language=English +%1 +. +MessageId=63717 +Language=English +%1 +. +MessageId=63718 +Language=English +%1 +. +MessageId=63719 +Language=English +%1 +. +MessageId=63720 +Language=English +%1 +. +MessageId=63721 +Language=English +%1 +. +MessageId=63722 +Language=English +%1 +. +MessageId=63723 +Language=English +%1 +. +MessageId=63724 +Language=English +%1 +. +MessageId=63725 +Language=English +%1 +. +MessageId=63726 +Language=English +%1 +. +MessageId=63727 +Language=English +%1 +. +MessageId=63728 +Language=English +%1 +. +MessageId=63729 +Language=English +%1 +. +MessageId=63730 +Language=English +%1 +. +MessageId=63731 +Language=English +%1 +. +MessageId=63732 +Language=English +%1 +. +MessageId=63733 +Language=English +%1 +. +MessageId=63734 +Language=English +%1 +. +MessageId=63735 +Language=English +%1 +. +MessageId=63736 +Language=English +%1 +. +MessageId=63737 +Language=English +%1 +. +MessageId=63738 +Language=English +%1 +. +MessageId=63739 +Language=English +%1 +. +MessageId=63740 +Language=English +%1 +. +MessageId=63741 +Language=English +%1 +. +MessageId=63742 +Language=English +%1 +. +MessageId=63743 +Language=English +%1 +. +MessageId=63744 +Language=English +%1 +. +MessageId=63745 +Language=English +%1 +. +MessageId=63746 +Language=English +%1 +. +MessageId=63747 +Language=English +%1 +. +MessageId=63748 +Language=English +%1 +. +MessageId=63749 +Language=English +%1 +. +MessageId=63750 +Language=English +%1 +. +MessageId=63751 +Language=English +%1 +. +MessageId=63752 +Language=English +%1 +. +MessageId=63753 +Language=English +%1 +. +MessageId=63754 +Language=English +%1 +. +MessageId=63755 +Language=English +%1 +. +MessageId=63756 +Language=English +%1 +. +MessageId=63757 +Language=English +%1 +. +MessageId=63758 +Language=English +%1 +. +MessageId=63759 +Language=English +%1 +. +MessageId=63760 +Language=English +%1 +. +MessageId=63761 +Language=English +%1 +. +MessageId=63762 +Language=English +%1 +. +MessageId=63763 +Language=English +%1 +. +MessageId=63764 +Language=English +%1 +. +MessageId=63765 +Language=English +%1 +. +MessageId=63766 +Language=English +%1 +. +MessageId=63767 +Language=English +%1 +. +MessageId=63768 +Language=English +%1 +. +MessageId=63769 +Language=English +%1 +. +MessageId=63770 +Language=English +%1 +. +MessageId=63771 +Language=English +%1 +. +MessageId=63772 +Language=English +%1 +. +MessageId=63773 +Language=English +%1 +. +MessageId=63774 +Language=English +%1 +. +MessageId=63775 +Language=English +%1 +. +MessageId=63776 +Language=English +%1 +. +MessageId=63777 +Language=English +%1 +. +MessageId=63778 +Language=English +%1 +. +MessageId=63779 +Language=English +%1 +. +MessageId=63780 +Language=English +%1 +. +MessageId=63781 +Language=English +%1 +. +MessageId=63782 +Language=English +%1 +. +MessageId=63783 +Language=English +%1 +. +MessageId=63784 +Language=English +%1 +. +MessageId=63785 +Language=English +%1 +. +MessageId=63786 +Language=English +%1 +. +MessageId=63787 +Language=English +%1 +. +MessageId=63788 +Language=English +%1 +. +MessageId=63789 +Language=English +%1 +. +MessageId=63790 +Language=English +%1 +. +MessageId=63791 +Language=English +%1 +. +MessageId=63792 +Language=English +%1 +. +MessageId=63793 +Language=English +%1 +. +MessageId=63794 +Language=English +%1 +. +MessageId=63795 +Language=English +%1 +. +MessageId=63796 +Language=English +%1 +. +MessageId=63797 +Language=English +%1 +. +MessageId=63798 +Language=English +%1 +. +MessageId=63799 +Language=English +%1 +. +MessageId=63800 +Language=English +%1 +. +MessageId=63801 +Language=English +%1 +. +MessageId=63802 +Language=English +%1 +. +MessageId=63803 +Language=English +%1 +. +MessageId=63804 +Language=English +%1 +. +MessageId=63805 +Language=English +%1 +. +MessageId=63806 +Language=English +%1 +. +MessageId=63807 +Language=English +%1 +. +MessageId=63808 +Language=English +%1 +. +MessageId=63809 +Language=English +%1 +. +MessageId=63810 +Language=English +%1 +. +MessageId=63811 +Language=English +%1 +. +MessageId=63812 +Language=English +%1 +. +MessageId=63813 +Language=English +%1 +. +MessageId=63814 +Language=English +%1 +. +MessageId=63815 +Language=English +%1 +. +MessageId=63816 +Language=English +%1 +. +MessageId=63817 +Language=English +%1 +. +MessageId=63818 +Language=English +%1 +. +MessageId=63819 +Language=English +%1 +. +MessageId=63820 +Language=English +%1 +. +MessageId=63821 +Language=English +%1 +. +MessageId=63822 +Language=English +%1 +. +MessageId=63823 +Language=English +%1 +. +MessageId=63824 +Language=English +%1 +. +MessageId=63825 +Language=English +%1 +. +MessageId=63826 +Language=English +%1 +. +MessageId=63827 +Language=English +%1 +. +MessageId=63828 +Language=English +%1 +. +MessageId=63829 +Language=English +%1 +. +MessageId=63830 +Language=English +%1 +. +MessageId=63831 +Language=English +%1 +. +MessageId=63832 +Language=English +%1 +. +MessageId=63833 +Language=English +%1 +. +MessageId=63834 +Language=English +%1 +. +MessageId=63835 +Language=English +%1 +. +MessageId=63836 +Language=English +%1 +. +MessageId=63837 +Language=English +%1 +. +MessageId=63838 +Language=English +%1 +. +MessageId=63839 +Language=English +%1 +. +MessageId=63840 +Language=English +%1 +. +MessageId=63841 +Language=English +%1 +. +MessageId=63842 +Language=English +%1 +. +MessageId=63843 +Language=English +%1 +. +MessageId=63844 +Language=English +%1 +. +MessageId=63845 +Language=English +%1 +. +MessageId=63846 +Language=English +%1 +. +MessageId=63847 +Language=English +%1 +. +MessageId=63848 +Language=English +%1 +. +MessageId=63849 +Language=English +%1 +. +MessageId=63850 +Language=English +%1 +. +MessageId=63851 +Language=English +%1 +. +MessageId=63852 +Language=English +%1 +. +MessageId=63853 +Language=English +%1 +. +MessageId=63854 +Language=English +%1 +. +MessageId=63855 +Language=English +%1 +. +MessageId=63856 +Language=English +%1 +. +MessageId=63857 +Language=English +%1 +. +MessageId=63858 +Language=English +%1 +. +MessageId=63859 +Language=English +%1 +. +MessageId=63860 +Language=English +%1 +. +MessageId=63861 +Language=English +%1 +. +MessageId=63862 +Language=English +%1 +. +MessageId=63863 +Language=English +%1 +. +MessageId=63864 +Language=English +%1 +. +MessageId=63865 +Language=English +%1 +. +MessageId=63866 +Language=English +%1 +. +MessageId=63867 +Language=English +%1 +. +MessageId=63868 +Language=English +%1 +. +MessageId=63869 +Language=English +%1 +. +MessageId=63870 +Language=English +%1 +. +MessageId=63871 +Language=English +%1 +. +MessageId=63872 +Language=English +%1 +. +MessageId=63873 +Language=English +%1 +. +MessageId=63874 +Language=English +%1 +. +MessageId=63875 +Language=English +%1 +. +MessageId=63876 +Language=English +%1 +. +MessageId=63877 +Language=English +%1 +. +MessageId=63878 +Language=English +%1 +. +MessageId=63879 +Language=English +%1 +. +MessageId=63880 +Language=English +%1 +. +MessageId=63881 +Language=English +%1 +. +MessageId=63882 +Language=English +%1 +. +MessageId=63883 +Language=English +%1 +. +MessageId=63884 +Language=English +%1 +. +MessageId=63885 +Language=English +%1 +. +MessageId=63886 +Language=English +%1 +. +MessageId=63887 +Language=English +%1 +. +MessageId=63888 +Language=English +%1 +. +MessageId=63889 +Language=English +%1 +. +MessageId=63890 +Language=English +%1 +. +MessageId=63891 +Language=English +%1 +. +MessageId=63892 +Language=English +%1 +. +MessageId=63893 +Language=English +%1 +. +MessageId=63894 +Language=English +%1 +. +MessageId=63895 +Language=English +%1 +. +MessageId=63896 +Language=English +%1 +. +MessageId=63897 +Language=English +%1 +. +MessageId=63898 +Language=English +%1 +. +MessageId=63899 +Language=English +%1 +. +MessageId=63900 +Language=English +%1 +. +MessageId=63901 +Language=English +%1 +. +MessageId=63902 +Language=English +%1 +. +MessageId=63903 +Language=English +%1 +. +MessageId=63904 +Language=English +%1 +. +MessageId=63905 +Language=English +%1 +. +MessageId=63906 +Language=English +%1 +. +MessageId=63907 +Language=English +%1 +. +MessageId=63908 +Language=English +%1 +. +MessageId=63909 +Language=English +%1 +. +MessageId=63910 +Language=English +%1 +. +MessageId=63911 +Language=English +%1 +. +MessageId=63912 +Language=English +%1 +. +MessageId=63913 +Language=English +%1 +. +MessageId=63914 +Language=English +%1 +. +MessageId=63915 +Language=English +%1 +. +MessageId=63916 +Language=English +%1 +. +MessageId=63917 +Language=English +%1 +. +MessageId=63918 +Language=English +%1 +. +MessageId=63919 +Language=English +%1 +. +MessageId=63920 +Language=English +%1 +. +MessageId=63921 +Language=English +%1 +. +MessageId=63922 +Language=English +%1 +. +MessageId=63923 +Language=English +%1 +. +MessageId=63924 +Language=English +%1 +. +MessageId=63925 +Language=English +%1 +. +MessageId=63926 +Language=English +%1 +. +MessageId=63927 +Language=English +%1 +. +MessageId=63928 +Language=English +%1 +. +MessageId=63929 +Language=English +%1 +. +MessageId=63930 +Language=English +%1 +. +MessageId=63931 +Language=English +%1 +. +MessageId=63932 +Language=English +%1 +. +MessageId=63933 +Language=English +%1 +. +MessageId=63934 +Language=English +%1 +. +MessageId=63935 +Language=English +%1 +. +MessageId=63936 +Language=English +%1 +. +MessageId=63937 +Language=English +%1 +. +MessageId=63938 +Language=English +%1 +. +MessageId=63939 +Language=English +%1 +. +MessageId=63940 +Language=English +%1 +. +MessageId=63941 +Language=English +%1 +. +MessageId=63942 +Language=English +%1 +. +MessageId=63943 +Language=English +%1 +. +MessageId=63944 +Language=English +%1 +. +MessageId=63945 +Language=English +%1 +. +MessageId=63946 +Language=English +%1 +. +MessageId=63947 +Language=English +%1 +. +MessageId=63948 +Language=English +%1 +. +MessageId=63949 +Language=English +%1 +. +MessageId=63950 +Language=English +%1 +. +MessageId=63951 +Language=English +%1 +. +MessageId=63952 +Language=English +%1 +. +MessageId=63953 +Language=English +%1 +. +MessageId=63954 +Language=English +%1 +. +MessageId=63955 +Language=English +%1 +. +MessageId=63956 +Language=English +%1 +. +MessageId=63957 +Language=English +%1 +. +MessageId=63958 +Language=English +%1 +. +MessageId=63959 +Language=English +%1 +. +MessageId=63960 +Language=English +%1 +. +MessageId=63961 +Language=English +%1 +. +MessageId=63962 +Language=English +%1 +. +MessageId=63963 +Language=English +%1 +. +MessageId=63964 +Language=English +%1 +. +MessageId=63965 +Language=English +%1 +. +MessageId=63966 +Language=English +%1 +. +MessageId=63967 +Language=English +%1 +. +MessageId=63968 +Language=English +%1 +. +MessageId=63969 +Language=English +%1 +. +MessageId=63970 +Language=English +%1 +. +MessageId=63971 +Language=English +%1 +. +MessageId=63972 +Language=English +%1 +. +MessageId=63973 +Language=English +%1 +. +MessageId=63974 +Language=English +%1 +. +MessageId=63975 +Language=English +%1 +. +MessageId=63976 +Language=English +%1 +. +MessageId=63977 +Language=English +%1 +. +MessageId=63978 +Language=English +%1 +. +MessageId=63979 +Language=English +%1 +. +MessageId=63980 +Language=English +%1 +. +MessageId=63981 +Language=English +%1 +. +MessageId=63982 +Language=English +%1 +. +MessageId=63983 +Language=English +%1 +. +MessageId=63984 +Language=English +%1 +. +MessageId=63985 +Language=English +%1 +. +MessageId=63986 +Language=English +%1 +. +MessageId=63987 +Language=English +%1 +. +MessageId=63988 +Language=English +%1 +. +MessageId=63989 +Language=English +%1 +. +MessageId=63990 +Language=English +%1 +. +MessageId=63991 +Language=English +%1 +. +MessageId=63992 +Language=English +%1 +. +MessageId=63993 +Language=English +%1 +. +MessageId=63994 +Language=English +%1 +. +MessageId=63995 +Language=English +%1 +. +MessageId=63996 +Language=English +%1 +. +MessageId=63997 +Language=English +%1 +. +MessageId=63998 +Language=English +%1 +. +MessageId=63999 +Language=English +%1 +. +MessageId=64000 +Language=English +%1 +. +MessageId=64001 +Language=English +%1 +. +MessageId=64002 +Language=English +%1 +. +MessageId=64003 +Language=English +%1 +. +MessageId=64004 +Language=English +%1 +. +MessageId=64005 +Language=English +%1 +. +MessageId=64006 +Language=English +%1 +. +MessageId=64007 +Language=English +%1 +. +MessageId=64008 +Language=English +%1 +. +MessageId=64009 +Language=English +%1 +. +MessageId=64010 +Language=English +%1 +. +MessageId=64011 +Language=English +%1 +. +MessageId=64012 +Language=English +%1 +. +MessageId=64013 +Language=English +%1 +. +MessageId=64014 +Language=English +%1 +. +MessageId=64015 +Language=English +%1 +. +MessageId=64016 +Language=English +%1 +. +MessageId=64017 +Language=English +%1 +. +MessageId=64018 +Language=English +%1 +. +MessageId=64019 +Language=English +%1 +. +MessageId=64020 +Language=English +%1 +. +MessageId=64021 +Language=English +%1 +. +MessageId=64022 +Language=English +%1 +. +MessageId=64023 +Language=English +%1 +. +MessageId=64024 +Language=English +%1 +. +MessageId=64025 +Language=English +%1 +. +MessageId=64026 +Language=English +%1 +. +MessageId=64027 +Language=English +%1 +. +MessageId=64028 +Language=English +%1 +. +MessageId=64029 +Language=English +%1 +. +MessageId=64030 +Language=English +%1 +. +MessageId=64031 +Language=English +%1 +. +MessageId=64032 +Language=English +%1 +. +MessageId=64033 +Language=English +%1 +. +MessageId=64034 +Language=English +%1 +. +MessageId=64035 +Language=English +%1 +. +MessageId=64036 +Language=English +%1 +. +MessageId=64037 +Language=English +%1 +. +MessageId=64038 +Language=English +%1 +. +MessageId=64039 +Language=English +%1 +. +MessageId=64040 +Language=English +%1 +. +MessageId=64041 +Language=English +%1 +. +MessageId=64042 +Language=English +%1 +. +MessageId=64043 +Language=English +%1 +. +MessageId=64044 +Language=English +%1 +. +MessageId=64045 +Language=English +%1 +. +MessageId=64046 +Language=English +%1 +. +MessageId=64047 +Language=English +%1 +. +MessageId=64048 +Language=English +%1 +. +MessageId=64049 +Language=English +%1 +. +MessageId=64050 +Language=English +%1 +. +MessageId=64051 +Language=English +%1 +. +MessageId=64052 +Language=English +%1 +. +MessageId=64053 +Language=English +%1 +. +MessageId=64054 +Language=English +%1 +. +MessageId=64055 +Language=English +%1 +. +MessageId=64056 +Language=English +%1 +. +MessageId=64057 +Language=English +%1 +. +MessageId=64058 +Language=English +%1 +. +MessageId=64059 +Language=English +%1 +. +MessageId=64060 +Language=English +%1 +. +MessageId=64061 +Language=English +%1 +. +MessageId=64062 +Language=English +%1 +. +MessageId=64063 +Language=English +%1 +. +MessageId=64064 +Language=English +%1 +. +MessageId=64065 +Language=English +%1 +. +MessageId=64066 +Language=English +%1 +. +MessageId=64067 +Language=English +%1 +. +MessageId=64068 +Language=English +%1 +. +MessageId=64069 +Language=English +%1 +. +MessageId=64070 +Language=English +%1 +. +MessageId=64071 +Language=English +%1 +. +MessageId=64072 +Language=English +%1 +. +MessageId=64073 +Language=English +%1 +. +MessageId=64074 +Language=English +%1 +. +MessageId=64075 +Language=English +%1 +. +MessageId=64076 +Language=English +%1 +. +MessageId=64077 +Language=English +%1 +. +MessageId=64078 +Language=English +%1 +. +MessageId=64079 +Language=English +%1 +. +MessageId=64080 +Language=English +%1 +. +MessageId=64081 +Language=English +%1 +. +MessageId=64082 +Language=English +%1 +. +MessageId=64083 +Language=English +%1 +. +MessageId=64084 +Language=English +%1 +. +MessageId=64085 +Language=English +%1 +. +MessageId=64086 +Language=English +%1 +. +MessageId=64087 +Language=English +%1 +. +MessageId=64088 +Language=English +%1 +. +MessageId=64089 +Language=English +%1 +. +MessageId=64090 +Language=English +%1 +. +MessageId=64091 +Language=English +%1 +. +MessageId=64092 +Language=English +%1 +. +MessageId=64093 +Language=English +%1 +. +MessageId=64094 +Language=English +%1 +. +MessageId=64095 +Language=English +%1 +. +MessageId=64096 +Language=English +%1 +. +MessageId=64097 +Language=English +%1 +. +MessageId=64098 +Language=English +%1 +. +MessageId=64099 +Language=English +%1 +. +MessageId=64100 +Language=English +%1 +. +MessageId=64101 +Language=English +%1 +. +MessageId=64102 +Language=English +%1 +. +MessageId=64103 +Language=English +%1 +. +MessageId=64104 +Language=English +%1 +. +MessageId=64105 +Language=English +%1 +. +MessageId=64106 +Language=English +%1 +. +MessageId=64107 +Language=English +%1 +. +MessageId=64108 +Language=English +%1 +. +MessageId=64109 +Language=English +%1 +. +MessageId=64110 +Language=English +%1 +. +MessageId=64111 +Language=English +%1 +. +MessageId=64112 +Language=English +%1 +. +MessageId=64113 +Language=English +%1 +. +MessageId=64114 +Language=English +%1 +. +MessageId=64115 +Language=English +%1 +. +MessageId=64116 +Language=English +%1 +. +MessageId=64117 +Language=English +%1 +. +MessageId=64118 +Language=English +%1 +. +MessageId=64119 +Language=English +%1 +. +MessageId=64120 +Language=English +%1 +. +MessageId=64121 +Language=English +%1 +. +MessageId=64122 +Language=English +%1 +. +MessageId=64123 +Language=English +%1 +. +MessageId=64124 +Language=English +%1 +. +MessageId=64125 +Language=English +%1 +. +MessageId=64126 +Language=English +%1 +. +MessageId=64127 +Language=English +%1 +. +MessageId=64128 +Language=English +%1 +. +MessageId=64129 +Language=English +%1 +. +MessageId=64130 +Language=English +%1 +. +MessageId=64131 +Language=English +%1 +. +MessageId=64132 +Language=English +%1 +. +MessageId=64133 +Language=English +%1 +. +MessageId=64134 +Language=English +%1 +. +MessageId=64135 +Language=English +%1 +. +MessageId=64136 +Language=English +%1 +. +MessageId=64137 +Language=English +%1 +. +MessageId=64138 +Language=English +%1 +. +MessageId=64139 +Language=English +%1 +. +MessageId=64140 +Language=English +%1 +. +MessageId=64141 +Language=English +%1 +. +MessageId=64142 +Language=English +%1 +. +MessageId=64143 +Language=English +%1 +. +MessageId=64144 +Language=English +%1 +. +MessageId=64145 +Language=English +%1 +. +MessageId=64146 +Language=English +%1 +. +MessageId=64147 +Language=English +%1 +. +MessageId=64148 +Language=English +%1 +. +MessageId=64149 +Language=English +%1 +. +MessageId=64150 +Language=English +%1 +. +MessageId=64151 +Language=English +%1 +. +MessageId=64152 +Language=English +%1 +. +MessageId=64153 +Language=English +%1 +. +MessageId=64154 +Language=English +%1 +. +MessageId=64155 +Language=English +%1 +. +MessageId=64156 +Language=English +%1 +. +MessageId=64157 +Language=English +%1 +. +MessageId=64158 +Language=English +%1 +. +MessageId=64159 +Language=English +%1 +. +MessageId=64160 +Language=English +%1 +. +MessageId=64161 +Language=English +%1 +. +MessageId=64162 +Language=English +%1 +. +MessageId=64163 +Language=English +%1 +. +MessageId=64164 +Language=English +%1 +. +MessageId=64165 +Language=English +%1 +. +MessageId=64166 +Language=English +%1 +. +MessageId=64167 +Language=English +%1 +. +MessageId=64168 +Language=English +%1 +. +MessageId=64169 +Language=English +%1 +. +MessageId=64170 +Language=English +%1 +. +MessageId=64171 +Language=English +%1 +. +MessageId=64172 +Language=English +%1 +. +MessageId=64173 +Language=English +%1 +. +MessageId=64174 +Language=English +%1 +. +MessageId=64175 +Language=English +%1 +. +MessageId=64176 +Language=English +%1 +. +MessageId=64177 +Language=English +%1 +. +MessageId=64178 +Language=English +%1 +. +MessageId=64179 +Language=English +%1 +. +MessageId=64180 +Language=English +%1 +. +MessageId=64181 +Language=English +%1 +. +MessageId=64182 +Language=English +%1 +. +MessageId=64183 +Language=English +%1 +. +MessageId=64184 +Language=English +%1 +. +MessageId=64185 +Language=English +%1 +. +MessageId=64186 +Language=English +%1 +. +MessageId=64187 +Language=English +%1 +. +MessageId=64188 +Language=English +%1 +. +MessageId=64189 +Language=English +%1 +. +MessageId=64190 +Language=English +%1 +. +MessageId=64191 +Language=English +%1 +. +MessageId=64192 +Language=English +%1 +. +MessageId=64193 +Language=English +%1 +. +MessageId=64194 +Language=English +%1 +. +MessageId=64195 +Language=English +%1 +. +MessageId=64196 +Language=English +%1 +. +MessageId=64197 +Language=English +%1 +. +MessageId=64198 +Language=English +%1 +. +MessageId=64199 +Language=English +%1 +. +MessageId=64200 +Language=English +%1 +. +MessageId=64201 +Language=English +%1 +. +MessageId=64202 +Language=English +%1 +. +MessageId=64203 +Language=English +%1 +. +MessageId=64204 +Language=English +%1 +. +MessageId=64205 +Language=English +%1 +. +MessageId=64206 +Language=English +%1 +. +MessageId=64207 +Language=English +%1 +. +MessageId=64208 +Language=English +%1 +. +MessageId=64209 +Language=English +%1 +. +MessageId=64210 +Language=English +%1 +. +MessageId=64211 +Language=English +%1 +. +MessageId=64212 +Language=English +%1 +. +MessageId=64213 +Language=English +%1 +. +MessageId=64214 +Language=English +%1 +. +MessageId=64215 +Language=English +%1 +. +MessageId=64216 +Language=English +%1 +. +MessageId=64217 +Language=English +%1 +. +MessageId=64218 +Language=English +%1 +. +MessageId=64219 +Language=English +%1 +. +MessageId=64220 +Language=English +%1 +. +MessageId=64221 +Language=English +%1 +. +MessageId=64222 +Language=English +%1 +. +MessageId=64223 +Language=English +%1 +. +MessageId=64224 +Language=English +%1 +. +MessageId=64225 +Language=English +%1 +. +MessageId=64226 +Language=English +%1 +. +MessageId=64227 +Language=English +%1 +. +MessageId=64228 +Language=English +%1 +. +MessageId=64229 +Language=English +%1 +. +MessageId=64230 +Language=English +%1 +. +MessageId=64231 +Language=English +%1 +. +MessageId=64232 +Language=English +%1 +. +MessageId=64233 +Language=English +%1 +. +MessageId=64234 +Language=English +%1 +. +MessageId=64235 +Language=English +%1 +. +MessageId=64236 +Language=English +%1 +. +MessageId=64237 +Language=English +%1 +. +MessageId=64238 +Language=English +%1 +. +MessageId=64239 +Language=English +%1 +. +MessageId=64240 +Language=English +%1 +. +MessageId=64241 +Language=English +%1 +. +MessageId=64242 +Language=English +%1 +. +MessageId=64243 +Language=English +%1 +. +MessageId=64244 +Language=English +%1 +. +MessageId=64245 +Language=English +%1 +. +MessageId=64246 +Language=English +%1 +. +MessageId=64247 +Language=English +%1 +. +MessageId=64248 +Language=English +%1 +. +MessageId=64249 +Language=English +%1 +. +MessageId=64250 +Language=English +%1 +. +MessageId=64251 +Language=English +%1 +. +MessageId=64252 +Language=English +%1 +. +MessageId=64253 +Language=English +%1 +. +MessageId=64254 +Language=English +%1 +. +MessageId=64255 +Language=English +%1 +. +MessageId=64256 +Language=English +%1 +. +MessageId=64257 +Language=English +%1 +. +MessageId=64258 +Language=English +%1 +. +MessageId=64259 +Language=English +%1 +. +MessageId=64260 +Language=English +%1 +. +MessageId=64261 +Language=English +%1 +. +MessageId=64262 +Language=English +%1 +. +MessageId=64263 +Language=English +%1 +. +MessageId=64264 +Language=English +%1 +. +MessageId=64265 +Language=English +%1 +. +MessageId=64266 +Language=English +%1 +. +MessageId=64267 +Language=English +%1 +. +MessageId=64268 +Language=English +%1 +. +MessageId=64269 +Language=English +%1 +. +MessageId=64270 +Language=English +%1 +. +MessageId=64271 +Language=English +%1 +. +MessageId=64272 +Language=English +%1 +. +MessageId=64273 +Language=English +%1 +. +MessageId=64274 +Language=English +%1 +. +MessageId=64275 +Language=English +%1 +. +MessageId=64276 +Language=English +%1 +. +MessageId=64277 +Language=English +%1 +. +MessageId=64278 +Language=English +%1 +. +MessageId=64279 +Language=English +%1 +. +MessageId=64280 +Language=English +%1 +. +MessageId=64281 +Language=English +%1 +. +MessageId=64282 +Language=English +%1 +. +MessageId=64283 +Language=English +%1 +. +MessageId=64284 +Language=English +%1 +. +MessageId=64285 +Language=English +%1 +. +MessageId=64286 +Language=English +%1 +. +MessageId=64287 +Language=English +%1 +. +MessageId=64288 +Language=English +%1 +. +MessageId=64289 +Language=English +%1 +. +MessageId=64290 +Language=English +%1 +. +MessageId=64291 +Language=English +%1 +. +MessageId=64292 +Language=English +%1 +. +MessageId=64293 +Language=English +%1 +. +MessageId=64294 +Language=English +%1 +. +MessageId=64295 +Language=English +%1 +. +MessageId=64296 +Language=English +%1 +. +MessageId=64297 +Language=English +%1 +. +MessageId=64298 +Language=English +%1 +. +MessageId=64299 +Language=English +%1 +. +MessageId=64300 +Language=English +%1 +. +MessageId=64301 +Language=English +%1 +. +MessageId=64302 +Language=English +%1 +. +MessageId=64303 +Language=English +%1 +. +MessageId=64304 +Language=English +%1 +. +MessageId=64305 +Language=English +%1 +. +MessageId=64306 +Language=English +%1 +. +MessageId=64307 +Language=English +%1 +. +MessageId=64308 +Language=English +%1 +. +MessageId=64309 +Language=English +%1 +. +MessageId=64310 +Language=English +%1 +. +MessageId=64311 +Language=English +%1 +. +MessageId=64312 +Language=English +%1 +. +MessageId=64313 +Language=English +%1 +. +MessageId=64314 +Language=English +%1 +. +MessageId=64315 +Language=English +%1 +. +MessageId=64316 +Language=English +%1 +. +MessageId=64317 +Language=English +%1 +. +MessageId=64318 +Language=English +%1 +. +MessageId=64319 +Language=English +%1 +. +MessageId=64320 +Language=English +%1 +. +MessageId=64321 +Language=English +%1 +. +MessageId=64322 +Language=English +%1 +. +MessageId=64323 +Language=English +%1 +. +MessageId=64324 +Language=English +%1 +. +MessageId=64325 +Language=English +%1 +. +MessageId=64326 +Language=English +%1 +. +MessageId=64327 +Language=English +%1 +. +MessageId=64328 +Language=English +%1 +. +MessageId=64329 +Language=English +%1 +. +MessageId=64330 +Language=English +%1 +. +MessageId=64331 +Language=English +%1 +. +MessageId=64332 +Language=English +%1 +. +MessageId=64333 +Language=English +%1 +. +MessageId=64334 +Language=English +%1 +. +MessageId=64335 +Language=English +%1 +. +MessageId=64336 +Language=English +%1 +. +MessageId=64337 +Language=English +%1 +. +MessageId=64338 +Language=English +%1 +. +MessageId=64339 +Language=English +%1 +. +MessageId=64340 +Language=English +%1 +. +MessageId=64341 +Language=English +%1 +. +MessageId=64342 +Language=English +%1 +. +MessageId=64343 +Language=English +%1 +. +MessageId=64344 +Language=English +%1 +. +MessageId=64345 +Language=English +%1 +. +MessageId=64346 +Language=English +%1 +. +MessageId=64347 +Language=English +%1 +. +MessageId=64348 +Language=English +%1 +. +MessageId=64349 +Language=English +%1 +. +MessageId=64350 +Language=English +%1 +. +MessageId=64351 +Language=English +%1 +. +MessageId=64352 +Language=English +%1 +. +MessageId=64353 +Language=English +%1 +. +MessageId=64354 +Language=English +%1 +. +MessageId=64355 +Language=English +%1 +. +MessageId=64356 +Language=English +%1 +. +MessageId=64357 +Language=English +%1 +. +MessageId=64358 +Language=English +%1 +. +MessageId=64359 +Language=English +%1 +. +MessageId=64360 +Language=English +%1 +. +MessageId=64361 +Language=English +%1 +. +MessageId=64362 +Language=English +%1 +. +MessageId=64363 +Language=English +%1 +. +MessageId=64364 +Language=English +%1 +. +MessageId=64365 +Language=English +%1 +. +MessageId=64366 +Language=English +%1 +. +MessageId=64367 +Language=English +%1 +. +MessageId=64368 +Language=English +%1 +. +MessageId=64369 +Language=English +%1 +. +MessageId=64370 +Language=English +%1 +. +MessageId=64371 +Language=English +%1 +. +MessageId=64372 +Language=English +%1 +. +MessageId=64373 +Language=English +%1 +. +MessageId=64374 +Language=English +%1 +. +MessageId=64375 +Language=English +%1 +. +MessageId=64376 +Language=English +%1 +. +MessageId=64377 +Language=English +%1 +. +MessageId=64378 +Language=English +%1 +. +MessageId=64379 +Language=English +%1 +. +MessageId=64380 +Language=English +%1 +. +MessageId=64381 +Language=English +%1 +. +MessageId=64382 +Language=English +%1 +. +MessageId=64383 +Language=English +%1 +. +MessageId=64384 +Language=English +%1 +. +MessageId=64385 +Language=English +%1 +. +MessageId=64386 +Language=English +%1 +. +MessageId=64387 +Language=English +%1 +. +MessageId=64388 +Language=English +%1 +. +MessageId=64389 +Language=English +%1 +. +MessageId=64390 +Language=English +%1 +. +MessageId=64391 +Language=English +%1 +. +MessageId=64392 +Language=English +%1 +. +MessageId=64393 +Language=English +%1 +. +MessageId=64394 +Language=English +%1 +. +MessageId=64395 +Language=English +%1 +. +MessageId=64396 +Language=English +%1 +. +MessageId=64397 +Language=English +%1 +. +MessageId=64398 +Language=English +%1 +. +MessageId=64399 +Language=English +%1 +. +MessageId=64400 +Language=English +%1 +. +MessageId=64401 +Language=English +%1 +. +MessageId=64402 +Language=English +%1 +. +MessageId=64403 +Language=English +%1 +. +MessageId=64404 +Language=English +%1 +. +MessageId=64405 +Language=English +%1 +. +MessageId=64406 +Language=English +%1 +. +MessageId=64407 +Language=English +%1 +. +MessageId=64408 +Language=English +%1 +. +MessageId=64409 +Language=English +%1 +. +MessageId=64410 +Language=English +%1 +. +MessageId=64411 +Language=English +%1 +. +MessageId=64412 +Language=English +%1 +. +MessageId=64413 +Language=English +%1 +. +MessageId=64414 +Language=English +%1 +. +MessageId=64415 +Language=English +%1 +. +MessageId=64416 +Language=English +%1 +. +MessageId=64417 +Language=English +%1 +. +MessageId=64418 +Language=English +%1 +. +MessageId=64419 +Language=English +%1 +. +MessageId=64420 +Language=English +%1 +. +MessageId=64421 +Language=English +%1 +. +MessageId=64422 +Language=English +%1 +. +MessageId=64423 +Language=English +%1 +. +MessageId=64424 +Language=English +%1 +. +MessageId=64425 +Language=English +%1 +. +MessageId=64426 +Language=English +%1 +. +MessageId=64427 +Language=English +%1 +. +MessageId=64428 +Language=English +%1 +. +MessageId=64429 +Language=English +%1 +. +MessageId=64430 +Language=English +%1 +. +MessageId=64431 +Language=English +%1 +. +MessageId=64432 +Language=English +%1 +. +MessageId=64433 +Language=English +%1 +. +MessageId=64434 +Language=English +%1 +. +MessageId=64435 +Language=English +%1 +. +MessageId=64436 +Language=English +%1 +. +MessageId=64437 +Language=English +%1 +. +MessageId=64438 +Language=English +%1 +. +MessageId=64439 +Language=English +%1 +. +MessageId=64440 +Language=English +%1 +. +MessageId=64441 +Language=English +%1 +. +MessageId=64442 +Language=English +%1 +. +MessageId=64443 +Language=English +%1 +. +MessageId=64444 +Language=English +%1 +. +MessageId=64445 +Language=English +%1 +. +MessageId=64446 +Language=English +%1 +. +MessageId=64447 +Language=English +%1 +. +MessageId=64448 +Language=English +%1 +. +MessageId=64449 +Language=English +%1 +. +MessageId=64450 +Language=English +%1 +. +MessageId=64451 +Language=English +%1 +. +MessageId=64452 +Language=English +%1 +. +MessageId=64453 +Language=English +%1 +. +MessageId=64454 +Language=English +%1 +. +MessageId=64455 +Language=English +%1 +. +MessageId=64456 +Language=English +%1 +. +MessageId=64457 +Language=English +%1 +. +MessageId=64458 +Language=English +%1 +. +MessageId=64459 +Language=English +%1 +. +MessageId=64460 +Language=English +%1 +. +MessageId=64461 +Language=English +%1 +. +MessageId=64462 +Language=English +%1 +. +MessageId=64463 +Language=English +%1 +. +MessageId=64464 +Language=English +%1 +. +MessageId=64465 +Language=English +%1 +. +MessageId=64466 +Language=English +%1 +. +MessageId=64467 +Language=English +%1 +. +MessageId=64468 +Language=English +%1 +. +MessageId=64469 +Language=English +%1 +. +MessageId=64470 +Language=English +%1 +. +MessageId=64471 +Language=English +%1 +. +MessageId=64472 +Language=English +%1 +. +MessageId=64473 +Language=English +%1 +. +MessageId=64474 +Language=English +%1 +. +MessageId=64475 +Language=English +%1 +. +MessageId=64476 +Language=English +%1 +. +MessageId=64477 +Language=English +%1 +. +MessageId=64478 +Language=English +%1 +. +MessageId=64479 +Language=English +%1 +. +MessageId=64480 +Language=English +%1 +. +MessageId=64481 +Language=English +%1 +. +MessageId=64482 +Language=English +%1 +. +MessageId=64483 +Language=English +%1 +. +MessageId=64484 +Language=English +%1 +. +MessageId=64485 +Language=English +%1 +. +MessageId=64486 +Language=English +%1 +. +MessageId=64487 +Language=English +%1 +. +MessageId=64488 +Language=English +%1 +. +MessageId=64489 +Language=English +%1 +. +MessageId=64490 +Language=English +%1 +. +MessageId=64491 +Language=English +%1 +. +MessageId=64492 +Language=English +%1 +. +MessageId=64493 +Language=English +%1 +. +MessageId=64494 +Language=English +%1 +. +MessageId=64495 +Language=English +%1 +. +MessageId=64496 +Language=English +%1 +. +MessageId=64497 +Language=English +%1 +. +MessageId=64498 +Language=English +%1 +. +MessageId=64499 +Language=English +%1 +. +MessageId=64500 +Language=English +%1 +. +MessageId=64501 +Language=English +%1 +. +MessageId=64502 +Language=English +%1 +. +MessageId=64503 +Language=English +%1 +. +MessageId=64504 +Language=English +%1 +. +MessageId=64505 +Language=English +%1 +. +MessageId=64506 +Language=English +%1 +. +MessageId=64507 +Language=English +%1 +. +MessageId=64508 +Language=English +%1 +. +MessageId=64509 +Language=English +%1 +. +MessageId=64510 +Language=English +%1 +. +MessageId=64511 +Language=English +%1 +. +MessageId=64512 +Language=English +%1 +. +MessageId=64513 +Language=English +%1 +. +MessageId=64514 +Language=English +%1 +. +MessageId=64515 +Language=English +%1 +. +MessageId=64516 +Language=English +%1 +. +MessageId=64517 +Language=English +%1 +. +MessageId=64518 +Language=English +%1 +. +MessageId=64519 +Language=English +%1 +. +MessageId=64520 +Language=English +%1 +. +MessageId=64521 +Language=English +%1 +. +MessageId=64522 +Language=English +%1 +. +MessageId=64523 +Language=English +%1 +. +MessageId=64524 +Language=English +%1 +. +MessageId=64525 +Language=English +%1 +. +MessageId=64526 +Language=English +%1 +. +MessageId=64527 +Language=English +%1 +. +MessageId=64528 +Language=English +%1 +. +MessageId=64529 +Language=English +%1 +. +MessageId=64530 +Language=English +%1 +. +MessageId=64531 +Language=English +%1 +. +MessageId=64532 +Language=English +%1 +. +MessageId=64533 +Language=English +%1 +. +MessageId=64534 +Language=English +%1 +. +MessageId=64535 +Language=English +%1 +. +MessageId=64536 +Language=English +%1 +. +MessageId=64537 +Language=English +%1 +. +MessageId=64538 +Language=English +%1 +. +MessageId=64539 +Language=English +%1 +. +MessageId=64540 +Language=English +%1 +. +MessageId=64541 +Language=English +%1 +. +MessageId=64542 +Language=English +%1 +. +MessageId=64543 +Language=English +%1 +. +MessageId=64544 +Language=English +%1 +. +MessageId=64545 +Language=English +%1 +. +MessageId=64546 +Language=English +%1 +. +MessageId=64547 +Language=English +%1 +. +MessageId=64548 +Language=English +%1 +. +MessageId=64549 +Language=English +%1 +. +MessageId=64550 +Language=English +%1 +. +MessageId=64551 +Language=English +%1 +. +MessageId=64552 +Language=English +%1 +. +MessageId=64553 +Language=English +%1 +. +MessageId=64554 +Language=English +%1 +. +MessageId=64555 +Language=English +%1 +. +MessageId=64556 +Language=English +%1 +. +MessageId=64557 +Language=English +%1 +. +MessageId=64558 +Language=English +%1 +. +MessageId=64559 +Language=English +%1 +. +MessageId=64560 +Language=English +%1 +. +MessageId=64561 +Language=English +%1 +. +MessageId=64562 +Language=English +%1 +. +MessageId=64563 +Language=English +%1 +. +MessageId=64564 +Language=English +%1 +. +MessageId=64565 +Language=English +%1 +. +MessageId=64566 +Language=English +%1 +. +MessageId=64567 +Language=English +%1 +. +MessageId=64568 +Language=English +%1 +. +MessageId=64569 +Language=English +%1 +. +MessageId=64570 +Language=English +%1 +. +MessageId=64571 +Language=English +%1 +. +MessageId=64572 +Language=English +%1 +. +MessageId=64573 +Language=English +%1 +. +MessageId=64574 +Language=English +%1 +. +MessageId=64575 +Language=English +%1 +. +MessageId=64576 +Language=English +%1 +. +MessageId=64577 +Language=English +%1 +. +MessageId=64578 +Language=English +%1 +. +MessageId=64579 +Language=English +%1 +. +MessageId=64580 +Language=English +%1 +. +MessageId=64581 +Language=English +%1 +. +MessageId=64582 +Language=English +%1 +. +MessageId=64583 +Language=English +%1 +. +MessageId=64584 +Language=English +%1 +. +MessageId=64585 +Language=English +%1 +. +MessageId=64586 +Language=English +%1 +. +MessageId=64587 +Language=English +%1 +. +MessageId=64588 +Language=English +%1 +. +MessageId=64589 +Language=English +%1 +. +MessageId=64590 +Language=English +%1 +. +MessageId=64591 +Language=English +%1 +. +MessageId=64592 +Language=English +%1 +. +MessageId=64593 +Language=English +%1 +. +MessageId=64594 +Language=English +%1 +. +MessageId=64595 +Language=English +%1 +. +MessageId=64596 +Language=English +%1 +. +MessageId=64597 +Language=English +%1 +. +MessageId=64598 +Language=English +%1 +. +MessageId=64599 +Language=English +%1 +. +MessageId=64600 +Language=English +%1 +. +MessageId=64601 +Language=English +%1 +. +MessageId=64602 +Language=English +%1 +. +MessageId=64603 +Language=English +%1 +. +MessageId=64604 +Language=English +%1 +. +MessageId=64605 +Language=English +%1 +. +MessageId=64606 +Language=English +%1 +. +MessageId=64607 +Language=English +%1 +. +MessageId=64608 +Language=English +%1 +. +MessageId=64609 +Language=English +%1 +. +MessageId=64610 +Language=English +%1 +. +MessageId=64611 +Language=English +%1 +. +MessageId=64612 +Language=English +%1 +. +MessageId=64613 +Language=English +%1 +. +MessageId=64614 +Language=English +%1 +. +MessageId=64615 +Language=English +%1 +. +MessageId=64616 +Language=English +%1 +. +MessageId=64617 +Language=English +%1 +. +MessageId=64618 +Language=English +%1 +. +MessageId=64619 +Language=English +%1 +. +MessageId=64620 +Language=English +%1 +. +MessageId=64621 +Language=English +%1 +. +MessageId=64622 +Language=English +%1 +. +MessageId=64623 +Language=English +%1 +. +MessageId=64624 +Language=English +%1 +. +MessageId=64625 +Language=English +%1 +. +MessageId=64626 +Language=English +%1 +. +MessageId=64627 +Language=English +%1 +. +MessageId=64628 +Language=English +%1 +. +MessageId=64629 +Language=English +%1 +. +MessageId=64630 +Language=English +%1 +. +MessageId=64631 +Language=English +%1 +. +MessageId=64632 +Language=English +%1 +. +MessageId=64633 +Language=English +%1 +. +MessageId=64634 +Language=English +%1 +. +MessageId=64635 +Language=English +%1 +. +MessageId=64636 +Language=English +%1 +. +MessageId=64637 +Language=English +%1 +. +MessageId=64638 +Language=English +%1 +. +MessageId=64639 +Language=English +%1 +. +MessageId=64640 +Language=English +%1 +. +MessageId=64641 +Language=English +%1 +. +MessageId=64642 +Language=English +%1 +. +MessageId=64643 +Language=English +%1 +. +MessageId=64644 +Language=English +%1 +. +MessageId=64645 +Language=English +%1 +. +MessageId=64646 +Language=English +%1 +. +MessageId=64647 +Language=English +%1 +. +MessageId=64648 +Language=English +%1 +. +MessageId=64649 +Language=English +%1 +. +MessageId=64650 +Language=English +%1 +. +MessageId=64651 +Language=English +%1 +. +MessageId=64652 +Language=English +%1 +. +MessageId=64653 +Language=English +%1 +. +MessageId=64654 +Language=English +%1 +. +MessageId=64655 +Language=English +%1 +. +MessageId=64656 +Language=English +%1 +. +MessageId=64657 +Language=English +%1 +. +MessageId=64658 +Language=English +%1 +. +MessageId=64659 +Language=English +%1 +. +MessageId=64660 +Language=English +%1 +. +MessageId=64661 +Language=English +%1 +. +MessageId=64662 +Language=English +%1 +. +MessageId=64663 +Language=English +%1 +. +MessageId=64664 +Language=English +%1 +. +MessageId=64665 +Language=English +%1 +. +MessageId=64666 +Language=English +%1 +. +MessageId=64667 +Language=English +%1 +. +MessageId=64668 +Language=English +%1 +. +MessageId=64669 +Language=English +%1 +. +MessageId=64670 +Language=English +%1 +. +MessageId=64671 +Language=English +%1 +. +MessageId=64672 +Language=English +%1 +. +MessageId=64673 +Language=English +%1 +. +MessageId=64674 +Language=English +%1 +. +MessageId=64675 +Language=English +%1 +. +MessageId=64676 +Language=English +%1 +. +MessageId=64677 +Language=English +%1 +. +MessageId=64678 +Language=English +%1 +. +MessageId=64679 +Language=English +%1 +. +MessageId=64680 +Language=English +%1 +. +MessageId=64681 +Language=English +%1 +. +MessageId=64682 +Language=English +%1 +. +MessageId=64683 +Language=English +%1 +. +MessageId=64684 +Language=English +%1 +. +MessageId=64685 +Language=English +%1 +. +MessageId=64686 +Language=English +%1 +. +MessageId=64687 +Language=English +%1 +. +MessageId=64688 +Language=English +%1 +. +MessageId=64689 +Language=English +%1 +. +MessageId=64690 +Language=English +%1 +. +MessageId=64691 +Language=English +%1 +. +MessageId=64692 +Language=English +%1 +. +MessageId=64693 +Language=English +%1 +. +MessageId=64694 +Language=English +%1 +. +MessageId=64695 +Language=English +%1 +. +MessageId=64696 +Language=English +%1 +. +MessageId=64697 +Language=English +%1 +. +MessageId=64698 +Language=English +%1 +. +MessageId=64699 +Language=English +%1 +. +MessageId=64700 +Language=English +%1 +. +MessageId=64701 +Language=English +%1 +. +MessageId=64702 +Language=English +%1 +. +MessageId=64703 +Language=English +%1 +. +MessageId=64704 +Language=English +%1 +. +MessageId=64705 +Language=English +%1 +. +MessageId=64706 +Language=English +%1 +. +MessageId=64707 +Language=English +%1 +. +MessageId=64708 +Language=English +%1 +. +MessageId=64709 +Language=English +%1 +. +MessageId=64710 +Language=English +%1 +. +MessageId=64711 +Language=English +%1 +. +MessageId=64712 +Language=English +%1 +. +MessageId=64713 +Language=English +%1 +. +MessageId=64714 +Language=English +%1 +. +MessageId=64715 +Language=English +%1 +. +MessageId=64716 +Language=English +%1 +. +MessageId=64717 +Language=English +%1 +. +MessageId=64718 +Language=English +%1 +. +MessageId=64719 +Language=English +%1 +. +MessageId=64720 +Language=English +%1 +. +MessageId=64721 +Language=English +%1 +. +MessageId=64722 +Language=English +%1 +. +MessageId=64723 +Language=English +%1 +. +MessageId=64724 +Language=English +%1 +. +MessageId=64725 +Language=English +%1 +. +MessageId=64726 +Language=English +%1 +. +MessageId=64727 +Language=English +%1 +. +MessageId=64728 +Language=English +%1 +. +MessageId=64729 +Language=English +%1 +. +MessageId=64730 +Language=English +%1 +. +MessageId=64731 +Language=English +%1 +. +MessageId=64732 +Language=English +%1 +. +MessageId=64733 +Language=English +%1 +. +MessageId=64734 +Language=English +%1 +. +MessageId=64735 +Language=English +%1 +. +MessageId=64736 +Language=English +%1 +. +MessageId=64737 +Language=English +%1 +. +MessageId=64738 +Language=English +%1 +. +MessageId=64739 +Language=English +%1 +. +MessageId=64740 +Language=English +%1 +. +MessageId=64741 +Language=English +%1 +. +MessageId=64742 +Language=English +%1 +. +MessageId=64743 +Language=English +%1 +. +MessageId=64744 +Language=English +%1 +. +MessageId=64745 +Language=English +%1 +. +MessageId=64746 +Language=English +%1 +. +MessageId=64747 +Language=English +%1 +. +MessageId=64748 +Language=English +%1 +. +MessageId=64749 +Language=English +%1 +. +MessageId=64750 +Language=English +%1 +. +MessageId=64751 +Language=English +%1 +. +MessageId=64752 +Language=English +%1 +. +MessageId=64753 +Language=English +%1 +. +MessageId=64754 +Language=English +%1 +. +MessageId=64755 +Language=English +%1 +. +MessageId=64756 +Language=English +%1 +. +MessageId=64757 +Language=English +%1 +. +MessageId=64758 +Language=English +%1 +. +MessageId=64759 +Language=English +%1 +. +MessageId=64760 +Language=English +%1 +. +MessageId=64761 +Language=English +%1 +. +MessageId=64762 +Language=English +%1 +. +MessageId=64763 +Language=English +%1 +. +MessageId=64764 +Language=English +%1 +. +MessageId=64765 +Language=English +%1 +. +MessageId=64766 +Language=English +%1 +. +MessageId=64767 +Language=English +%1 +. +MessageId=64768 +Language=English +%1 +. +MessageId=64769 +Language=English +%1 +. +MessageId=64770 +Language=English +%1 +. +MessageId=64771 +Language=English +%1 +. +MessageId=64772 +Language=English +%1 +. +MessageId=64773 +Language=English +%1 +. +MessageId=64774 +Language=English +%1 +. +MessageId=64775 +Language=English +%1 +. +MessageId=64776 +Language=English +%1 +. +MessageId=64777 +Language=English +%1 +. +MessageId=64778 +Language=English +%1 +. +MessageId=64779 +Language=English +%1 +. +MessageId=64780 +Language=English +%1 +. +MessageId=64781 +Language=English +%1 +. +MessageId=64782 +Language=English +%1 +. +MessageId=64783 +Language=English +%1 +. +MessageId=64784 +Language=English +%1 +. +MessageId=64785 +Language=English +%1 +. +MessageId=64786 +Language=English +%1 +. +MessageId=64787 +Language=English +%1 +. +MessageId=64788 +Language=English +%1 +. +MessageId=64789 +Language=English +%1 +. +MessageId=64790 +Language=English +%1 +. +MessageId=64791 +Language=English +%1 +. +MessageId=64792 +Language=English +%1 +. +MessageId=64793 +Language=English +%1 +. +MessageId=64794 +Language=English +%1 +. +MessageId=64795 +Language=English +%1 +. +MessageId=64796 +Language=English +%1 +. +MessageId=64797 +Language=English +%1 +. +MessageId=64798 +Language=English +%1 +. +MessageId=64799 +Language=English +%1 +. +MessageId=64800 +Language=English +%1 +. +MessageId=64801 +Language=English +%1 +. +MessageId=64802 +Language=English +%1 +. +MessageId=64803 +Language=English +%1 +. +MessageId=64804 +Language=English +%1 +. +MessageId=64805 +Language=English +%1 +. +MessageId=64806 +Language=English +%1 +. +MessageId=64807 +Language=English +%1 +. +MessageId=64808 +Language=English +%1 +. +MessageId=64809 +Language=English +%1 +. +MessageId=64810 +Language=English +%1 +. +MessageId=64811 +Language=English +%1 +. +MessageId=64812 +Language=English +%1 +. +MessageId=64813 +Language=English +%1 +. +MessageId=64814 +Language=English +%1 +. +MessageId=64815 +Language=English +%1 +. +MessageId=64816 +Language=English +%1 +. +MessageId=64817 +Language=English +%1 +. +MessageId=64818 +Language=English +%1 +. +MessageId=64819 +Language=English +%1 +. +MessageId=64820 +Language=English +%1 +. +MessageId=64821 +Language=English +%1 +. +MessageId=64822 +Language=English +%1 +. +MessageId=64823 +Language=English +%1 +. +MessageId=64824 +Language=English +%1 +. +MessageId=64825 +Language=English +%1 +. +MessageId=64826 +Language=English +%1 +. +MessageId=64827 +Language=English +%1 +. +MessageId=64828 +Language=English +%1 +. +MessageId=64829 +Language=English +%1 +. +MessageId=64830 +Language=English +%1 +. +MessageId=64831 +Language=English +%1 +. +MessageId=64832 +Language=English +%1 +. +MessageId=64833 +Language=English +%1 +. +MessageId=64834 +Language=English +%1 +. +MessageId=64835 +Language=English +%1 +. +MessageId=64836 +Language=English +%1 +. +MessageId=64837 +Language=English +%1 +. +MessageId=64838 +Language=English +%1 +. +MessageId=64839 +Language=English +%1 +. +MessageId=64840 +Language=English +%1 +. +MessageId=64841 +Language=English +%1 +. +MessageId=64842 +Language=English +%1 +. +MessageId=64843 +Language=English +%1 +. +MessageId=64844 +Language=English +%1 +. +MessageId=64845 +Language=English +%1 +. +MessageId=64846 +Language=English +%1 +. +MessageId=64847 +Language=English +%1 +. +MessageId=64848 +Language=English +%1 +. +MessageId=64849 +Language=English +%1 +. +MessageId=64850 +Language=English +%1 +. +MessageId=64851 +Language=English +%1 +. +MessageId=64852 +Language=English +%1 +. +MessageId=64853 +Language=English +%1 +. +MessageId=64854 +Language=English +%1 +. +MessageId=64855 +Language=English +%1 +. +MessageId=64856 +Language=English +%1 +. +MessageId=64857 +Language=English +%1 +. +MessageId=64858 +Language=English +%1 +. +MessageId=64859 +Language=English +%1 +. +MessageId=64860 +Language=English +%1 +. +MessageId=64861 +Language=English +%1 +. +MessageId=64862 +Language=English +%1 +. +MessageId=64863 +Language=English +%1 +. +MessageId=64864 +Language=English +%1 +. +MessageId=64865 +Language=English +%1 +. +MessageId=64866 +Language=English +%1 +. +MessageId=64867 +Language=English +%1 +. +MessageId=64868 +Language=English +%1 +. +MessageId=64869 +Language=English +%1 +. +MessageId=64870 +Language=English +%1 +. +MessageId=64871 +Language=English +%1 +. +MessageId=64872 +Language=English +%1 +. +MessageId=64873 +Language=English +%1 +. +MessageId=64874 +Language=English +%1 +. +MessageId=64875 +Language=English +%1 +. +MessageId=64876 +Language=English +%1 +. +MessageId=64877 +Language=English +%1 +. +MessageId=64878 +Language=English +%1 +. +MessageId=64879 +Language=English +%1 +. +MessageId=64880 +Language=English +%1 +. +MessageId=64881 +Language=English +%1 +. +MessageId=64882 +Language=English +%1 +. +MessageId=64883 +Language=English +%1 +. +MessageId=64884 +Language=English +%1 +. +MessageId=64885 +Language=English +%1 +. +MessageId=64886 +Language=English +%1 +. +MessageId=64887 +Language=English +%1 +. +MessageId=64888 +Language=English +%1 +. +MessageId=64889 +Language=English +%1 +. +MessageId=64890 +Language=English +%1 +. +MessageId=64891 +Language=English +%1 +. +MessageId=64892 +Language=English +%1 +. +MessageId=64893 +Language=English +%1 +. +MessageId=64894 +Language=English +%1 +. +MessageId=64895 +Language=English +%1 +. +MessageId=64896 +Language=English +%1 +. +MessageId=64897 +Language=English +%1 +. +MessageId=64898 +Language=English +%1 +. +MessageId=64899 +Language=English +%1 +. +MessageId=64900 +Language=English +%1 +. +MessageId=64901 +Language=English +%1 +. +MessageId=64902 +Language=English +%1 +. +MessageId=64903 +Language=English +%1 +. +MessageId=64904 +Language=English +%1 +. +MessageId=64905 +Language=English +%1 +. +MessageId=64906 +Language=English +%1 +. +MessageId=64907 +Language=English +%1 +. +MessageId=64908 +Language=English +%1 +. +MessageId=64909 +Language=English +%1 +. +MessageId=64910 +Language=English +%1 +. +MessageId=64911 +Language=English +%1 +. +MessageId=64912 +Language=English +%1 +. +MessageId=64913 +Language=English +%1 +. +MessageId=64914 +Language=English +%1 +. +MessageId=64915 +Language=English +%1 +. +MessageId=64916 +Language=English +%1 +. +MessageId=64917 +Language=English +%1 +. +MessageId=64918 +Language=English +%1 +. +MessageId=64919 +Language=English +%1 +. +MessageId=64920 +Language=English +%1 +. +MessageId=64921 +Language=English +%1 +. +MessageId=64922 +Language=English +%1 +. +MessageId=64923 +Language=English +%1 +. +MessageId=64924 +Language=English +%1 +. +MessageId=64925 +Language=English +%1 +. +MessageId=64926 +Language=English +%1 +. +MessageId=64927 +Language=English +%1 +. +MessageId=64928 +Language=English +%1 +. +MessageId=64929 +Language=English +%1 +. +MessageId=64930 +Language=English +%1 +. +MessageId=64931 +Language=English +%1 +. +MessageId=64932 +Language=English +%1 +. +MessageId=64933 +Language=English +%1 +. +MessageId=64934 +Language=English +%1 +. +MessageId=64935 +Language=English +%1 +. +MessageId=64936 +Language=English +%1 +. +MessageId=64937 +Language=English +%1 +. +MessageId=64938 +Language=English +%1 +. +MessageId=64939 +Language=English +%1 +. +MessageId=64940 +Language=English +%1 +. +MessageId=64941 +Language=English +%1 +. +MessageId=64942 +Language=English +%1 +. +MessageId=64943 +Language=English +%1 +. +MessageId=64944 +Language=English +%1 +. +MessageId=64945 +Language=English +%1 +. +MessageId=64946 +Language=English +%1 +. +MessageId=64947 +Language=English +%1 +. +MessageId=64948 +Language=English +%1 +. +MessageId=64949 +Language=English +%1 +. +MessageId=64950 +Language=English +%1 +. +MessageId=64951 +Language=English +%1 +. +MessageId=64952 +Language=English +%1 +. +MessageId=64953 +Language=English +%1 +. +MessageId=64954 +Language=English +%1 +. +MessageId=64955 +Language=English +%1 +. +MessageId=64956 +Language=English +%1 +. +MessageId=64957 +Language=English +%1 +. +MessageId=64958 +Language=English +%1 +. +MessageId=64959 +Language=English +%1 +. +MessageId=64960 +Language=English +%1 +. +MessageId=64961 +Language=English +%1 +. +MessageId=64962 +Language=English +%1 +. +MessageId=64963 +Language=English +%1 +. +MessageId=64964 +Language=English +%1 +. +MessageId=64965 +Language=English +%1 +. +MessageId=64966 +Language=English +%1 +. +MessageId=64967 +Language=English +%1 +. +MessageId=64968 +Language=English +%1 +. +MessageId=64969 +Language=English +%1 +. +MessageId=64970 +Language=English +%1 +. +MessageId=64971 +Language=English +%1 +. +MessageId=64972 +Language=English +%1 +. +MessageId=64973 +Language=English +%1 +. +MessageId=64974 +Language=English +%1 +. +MessageId=64975 +Language=English +%1 +. +MessageId=64976 +Language=English +%1 +. +MessageId=64977 +Language=English +%1 +. +MessageId=64978 +Language=English +%1 +. +MessageId=64979 +Language=English +%1 +. +MessageId=64980 +Language=English +%1 +. +MessageId=64981 +Language=English +%1 +. +MessageId=64982 +Language=English +%1 +. +MessageId=64983 +Language=English +%1 +. +MessageId=64984 +Language=English +%1 +. +MessageId=64985 +Language=English +%1 +. +MessageId=64986 +Language=English +%1 +. +MessageId=64987 +Language=English +%1 +. +MessageId=64988 +Language=English +%1 +. +MessageId=64989 +Language=English +%1 +. +MessageId=64990 +Language=English +%1 +. +MessageId=64991 +Language=English +%1 +. +MessageId=64992 +Language=English +%1 +. +MessageId=64993 +Language=English +%1 +. +MessageId=64994 +Language=English +%1 +. +MessageId=64995 +Language=English +%1 +. +MessageId=64996 +Language=English +%1 +. +MessageId=64997 +Language=English +%1 +. +MessageId=64998 +Language=English +%1 +. +MessageId=64999 +Language=English +%1 +. +MessageId=65000 +Language=English +%1 +. +MessageId=65001 +Language=English +%1 +. +MessageId=65002 +Language=English +%1 +. +MessageId=65003 +Language=English +%1 +. +MessageId=65004 +Language=English +%1 +. +MessageId=65005 +Language=English +%1 +. +MessageId=65006 +Language=English +%1 +. +MessageId=65007 +Language=English +%1 +. +MessageId=65008 +Language=English +%1 +. +MessageId=65009 +Language=English +%1 +. +MessageId=65010 +Language=English +%1 +. +MessageId=65011 +Language=English +%1 +. +MessageId=65012 +Language=English +%1 +. +MessageId=65013 +Language=English +%1 +. +MessageId=65014 +Language=English +%1 +. +MessageId=65015 +Language=English +%1 +. +MessageId=65016 +Language=English +%1 +. +MessageId=65017 +Language=English +%1 +. +MessageId=65018 +Language=English +%1 +. +MessageId=65019 +Language=English +%1 +. +MessageId=65020 +Language=English +%1 +. +MessageId=65021 +Language=English +%1 +. +MessageId=65022 +Language=English +%1 +. +MessageId=65023 +Language=English +%1 +. +MessageId=65024 +Language=English +%1 +. +MessageId=65025 +Language=English +%1 +. +MessageId=65026 +Language=English +%1 +. +MessageId=65027 +Language=English +%1 +. +MessageId=65028 +Language=English +%1 +. +MessageId=65029 +Language=English +%1 +. +MessageId=65030 +Language=English +%1 +. +MessageId=65031 +Language=English +%1 +. +MessageId=65032 +Language=English +%1 +. +MessageId=65033 +Language=English +%1 +. +MessageId=65034 +Language=English +%1 +. +MessageId=65035 +Language=English +%1 +. +MessageId=65036 +Language=English +%1 +. +MessageId=65037 +Language=English +%1 +. +MessageId=65038 +Language=English +%1 +. +MessageId=65039 +Language=English +%1 +. +MessageId=65040 +Language=English +%1 +. +MessageId=65041 +Language=English +%1 +. +MessageId=65042 +Language=English +%1 +. +MessageId=65043 +Language=English +%1 +. +MessageId=65044 +Language=English +%1 +. +MessageId=65045 +Language=English +%1 +. +MessageId=65046 +Language=English +%1 +. +MessageId=65047 +Language=English +%1 +. +MessageId=65048 +Language=English +%1 +. +MessageId=65049 +Language=English +%1 +. +MessageId=65050 +Language=English +%1 +. +MessageId=65051 +Language=English +%1 +. +MessageId=65052 +Language=English +%1 +. +MessageId=65053 +Language=English +%1 +. +MessageId=65054 +Language=English +%1 +. +MessageId=65055 +Language=English +%1 +. +MessageId=65056 +Language=English +%1 +. +MessageId=65057 +Language=English +%1 +. +MessageId=65058 +Language=English +%1 +. +MessageId=65059 +Language=English +%1 +. +MessageId=65060 +Language=English +%1 +. +MessageId=65061 +Language=English +%1 +. +MessageId=65062 +Language=English +%1 +. +MessageId=65063 +Language=English +%1 +. +MessageId=65064 +Language=English +%1 +. +MessageId=65065 +Language=English +%1 +. +MessageId=65066 +Language=English +%1 +. +MessageId=65067 +Language=English +%1 +. +MessageId=65068 +Language=English +%1 +. +MessageId=65069 +Language=English +%1 +. +MessageId=65070 +Language=English +%1 +. +MessageId=65071 +Language=English +%1 +. +MessageId=65072 +Language=English +%1 +. +MessageId=65073 +Language=English +%1 +. +MessageId=65074 +Language=English +%1 +. +MessageId=65075 +Language=English +%1 +. +MessageId=65076 +Language=English +%1 +. +MessageId=65077 +Language=English +%1 +. +MessageId=65078 +Language=English +%1 +. +MessageId=65079 +Language=English +%1 +. +MessageId=65080 +Language=English +%1 +. +MessageId=65081 +Language=English +%1 +. +MessageId=65082 +Language=English +%1 +. +MessageId=65083 +Language=English +%1 +. +MessageId=65084 +Language=English +%1 +. +MessageId=65085 +Language=English +%1 +. +MessageId=65086 +Language=English +%1 +. +MessageId=65087 +Language=English +%1 +. +MessageId=65088 +Language=English +%1 +. +MessageId=65089 +Language=English +%1 +. +MessageId=65090 +Language=English +%1 +. +MessageId=65091 +Language=English +%1 +. +MessageId=65092 +Language=English +%1 +. +MessageId=65093 +Language=English +%1 +. +MessageId=65094 +Language=English +%1 +. +MessageId=65095 +Language=English +%1 +. +MessageId=65096 +Language=English +%1 +. +MessageId=65097 +Language=English +%1 +. +MessageId=65098 +Language=English +%1 +. +MessageId=65099 +Language=English +%1 +. +MessageId=65100 +Language=English +%1 +. +MessageId=65101 +Language=English +%1 +. +MessageId=65102 +Language=English +%1 +. +MessageId=65103 +Language=English +%1 +. +MessageId=65104 +Language=English +%1 +. +MessageId=65105 +Language=English +%1 +. +MessageId=65106 +Language=English +%1 +. +MessageId=65107 +Language=English +%1 +. +MessageId=65108 +Language=English +%1 +. +MessageId=65109 +Language=English +%1 +. +MessageId=65110 +Language=English +%1 +. +MessageId=65111 +Language=English +%1 +. +MessageId=65112 +Language=English +%1 +. +MessageId=65113 +Language=English +%1 +. +MessageId=65114 +Language=English +%1 +. +MessageId=65115 +Language=English +%1 +. +MessageId=65116 +Language=English +%1 +. +MessageId=65117 +Language=English +%1 +. +MessageId=65118 +Language=English +%1 +. +MessageId=65119 +Language=English +%1 +. +MessageId=65120 +Language=English +%1 +. +MessageId=65121 +Language=English +%1 +. +MessageId=65122 +Language=English +%1 +. +MessageId=65123 +Language=English +%1 +. +MessageId=65124 +Language=English +%1 +. +MessageId=65125 +Language=English +%1 +. +MessageId=65126 +Language=English +%1 +. +MessageId=65127 +Language=English +%1 +. +MessageId=65128 +Language=English +%1 +. +MessageId=65129 +Language=English +%1 +. +MessageId=65130 +Language=English +%1 +. +MessageId=65131 +Language=English +%1 +. +MessageId=65132 +Language=English +%1 +. +MessageId=65133 +Language=English +%1 +. +MessageId=65134 +Language=English +%1 +. +MessageId=65135 +Language=English +%1 +. +MessageId=65136 +Language=English +%1 +. +MessageId=65137 +Language=English +%1 +. +MessageId=65138 +Language=English +%1 +. +MessageId=65139 +Language=English +%1 +. +MessageId=65140 +Language=English +%1 +. +MessageId=65141 +Language=English +%1 +. +MessageId=65142 +Language=English +%1 +. +MessageId=65143 +Language=English +%1 +. +MessageId=65144 +Language=English +%1 +. +MessageId=65145 +Language=English +%1 +. +MessageId=65146 +Language=English +%1 +. +MessageId=65147 +Language=English +%1 +. +MessageId=65148 +Language=English +%1 +. +MessageId=65149 +Language=English +%1 +. +MessageId=65150 +Language=English +%1 +. +MessageId=65151 +Language=English +%1 +. +MessageId=65152 +Language=English +%1 +. +MessageId=65153 +Language=English +%1 +. +MessageId=65154 +Language=English +%1 +. +MessageId=65155 +Language=English +%1 +. +MessageId=65156 +Language=English +%1 +. +MessageId=65157 +Language=English +%1 +. +MessageId=65158 +Language=English +%1 +. +MessageId=65159 +Language=English +%1 +. +MessageId=65160 +Language=English +%1 +. +MessageId=65161 +Language=English +%1 +. +MessageId=65162 +Language=English +%1 +. +MessageId=65163 +Language=English +%1 +. +MessageId=65164 +Language=English +%1 +. +MessageId=65165 +Language=English +%1 +. +MessageId=65166 +Language=English +%1 +. +MessageId=65167 +Language=English +%1 +. +MessageId=65168 +Language=English +%1 +. +MessageId=65169 +Language=English +%1 +. +MessageId=65170 +Language=English +%1 +. +MessageId=65171 +Language=English +%1 +. +MessageId=65172 +Language=English +%1 +. +MessageId=65173 +Language=English +%1 +. +MessageId=65174 +Language=English +%1 +. +MessageId=65175 +Language=English +%1 +. +MessageId=65176 +Language=English +%1 +. +MessageId=65177 +Language=English +%1 +. +MessageId=65178 +Language=English +%1 +. +MessageId=65179 +Language=English +%1 +. +MessageId=65180 +Language=English +%1 +. +MessageId=65181 +Language=English +%1 +. +MessageId=65182 +Language=English +%1 +. +MessageId=65183 +Language=English +%1 +. +MessageId=65184 +Language=English +%1 +. +MessageId=65185 +Language=English +%1 +. +MessageId=65186 +Language=English +%1 +. +MessageId=65187 +Language=English +%1 +. +MessageId=65188 +Language=English +%1 +. +MessageId=65189 +Language=English +%1 +. +MessageId=65190 +Language=English +%1 +. +MessageId=65191 +Language=English +%1 +. +MessageId=65192 +Language=English +%1 +. +MessageId=65193 +Language=English +%1 +. +MessageId=65194 +Language=English +%1 +. +MessageId=65195 +Language=English +%1 +. +MessageId=65196 +Language=English +%1 +. +MessageId=65197 +Language=English +%1 +. +MessageId=65198 +Language=English +%1 +. +MessageId=65199 +Language=English +%1 +. +MessageId=65200 +Language=English +%1 +. +MessageId=65201 +Language=English +%1 +. +MessageId=65202 +Language=English +%1 +. +MessageId=65203 +Language=English +%1 +. +MessageId=65204 +Language=English +%1 +. +MessageId=65205 +Language=English +%1 +. +MessageId=65206 +Language=English +%1 +. +MessageId=65207 +Language=English +%1 +. +MessageId=65208 +Language=English +%1 +. +MessageId=65209 +Language=English +%1 +. +MessageId=65210 +Language=English +%1 +. +MessageId=65211 +Language=English +%1 +. +MessageId=65212 +Language=English +%1 +. +MessageId=65213 +Language=English +%1 +. +MessageId=65214 +Language=English +%1 +. +MessageId=65215 +Language=English +%1 +. +MessageId=65216 +Language=English +%1 +. +MessageId=65217 +Language=English +%1 +. +MessageId=65218 +Language=English +%1 +. +MessageId=65219 +Language=English +%1 +. +MessageId=65220 +Language=English +%1 +. +MessageId=65221 +Language=English +%1 +. +MessageId=65222 +Language=English +%1 +. +MessageId=65223 +Language=English +%1 +. +MessageId=65224 +Language=English +%1 +. +MessageId=65225 +Language=English +%1 +. +MessageId=65226 +Language=English +%1 +. +MessageId=65227 +Language=English +%1 +. +MessageId=65228 +Language=English +%1 +. +MessageId=65229 +Language=English +%1 +. +MessageId=65230 +Language=English +%1 +. +MessageId=65231 +Language=English +%1 +. +MessageId=65232 +Language=English +%1 +. +MessageId=65233 +Language=English +%1 +. +MessageId=65234 +Language=English +%1 +. +MessageId=65235 +Language=English +%1 +. +MessageId=65236 +Language=English +%1 +. +MessageId=65237 +Language=English +%1 +. +MessageId=65238 +Language=English +%1 +. +MessageId=65239 +Language=English +%1 +. +MessageId=65240 +Language=English +%1 +. +MessageId=65241 +Language=English +%1 +. +MessageId=65242 +Language=English +%1 +. +MessageId=65243 +Language=English +%1 +. +MessageId=65244 +Language=English +%1 +. +MessageId=65245 +Language=English +%1 +. +MessageId=65246 +Language=English +%1 +. +MessageId=65247 +Language=English +%1 +. +MessageId=65248 +Language=English +%1 +. +MessageId=65249 +Language=English +%1 +. +MessageId=65250 +Language=English +%1 +. +MessageId=65251 +Language=English +%1 +. +MessageId=65252 +Language=English +%1 +. +MessageId=65253 +Language=English +%1 +. +MessageId=65254 +Language=English +%1 +. +MessageId=65255 +Language=English +%1 +. +MessageId=65256 +Language=English +%1 +. +MessageId=65257 +Language=English +%1 +. +MessageId=65258 +Language=English +%1 +. +MessageId=65259 +Language=English +%1 +. +MessageId=65260 +Language=English +%1 +. +MessageId=65261 +Language=English +%1 +. +MessageId=65262 +Language=English +%1 +. +MessageId=65263 +Language=English +%1 +. +MessageId=65264 +Language=English +%1 +. +MessageId=65265 +Language=English +%1 +. +MessageId=65266 +Language=English +%1 +. +MessageId=65267 +Language=English +%1 +. +MessageId=65268 +Language=English +%1 +. +MessageId=65269 +Language=English +%1 +. +MessageId=65270 +Language=English +%1 +. +MessageId=65271 +Language=English +%1 +. +MessageId=65272 +Language=English +%1 +. +MessageId=65273 +Language=English +%1 +. +MessageId=65274 +Language=English +%1 +. +MessageId=65275 +Language=English +%1 +. +MessageId=65276 +Language=English +%1 +. +MessageId=65277 +Language=English +%1 +. +MessageId=65278 +Language=English +%1 +. +MessageId=65279 +Language=English +%1 +. +MessageId=65280 +Language=English +%1 +. +MessageId=65281 +Language=English +%1 +. +MessageId=65282 +Language=English +%1 +. +MessageId=65283 +Language=English +%1 +. +MessageId=65284 +Language=English +%1 +. +MessageId=65285 +Language=English +%1 +. +MessageId=65286 +Language=English +%1 +. +MessageId=65287 +Language=English +%1 +. +MessageId=65288 +Language=English +%1 +. +MessageId=65289 +Language=English +%1 +. +MessageId=65290 +Language=English +%1 +. +MessageId=65291 +Language=English +%1 +. +MessageId=65292 +Language=English +%1 +. +MessageId=65293 +Language=English +%1 +. +MessageId=65294 +Language=English +%1 +. +MessageId=65295 +Language=English +%1 +. +MessageId=65296 +Language=English +%1 +. +MessageId=65297 +Language=English +%1 +. +MessageId=65298 +Language=English +%1 +. +MessageId=65299 +Language=English +%1 +. +MessageId=65300 +Language=English +%1 +. +MessageId=65301 +Language=English +%1 +. +MessageId=65302 +Language=English +%1 +. +MessageId=65303 +Language=English +%1 +. +MessageId=65304 +Language=English +%1 +. +MessageId=65305 +Language=English +%1 +. +MessageId=65306 +Language=English +%1 +. +MessageId=65307 +Language=English +%1 +. +MessageId=65308 +Language=English +%1 +. +MessageId=65309 +Language=English +%1 +. +MessageId=65310 +Language=English +%1 +. +MessageId=65311 +Language=English +%1 +. +MessageId=65312 +Language=English +%1 +. +MessageId=65313 +Language=English +%1 +. +MessageId=65314 +Language=English +%1 +. +MessageId=65315 +Language=English +%1 +. +MessageId=65316 +Language=English +%1 +. +MessageId=65317 +Language=English +%1 +. +MessageId=65318 +Language=English +%1 +. +MessageId=65319 +Language=English +%1 +. +MessageId=65320 +Language=English +%1 +. +MessageId=65321 +Language=English +%1 +. +MessageId=65322 +Language=English +%1 +. +MessageId=65323 +Language=English +%1 +. +MessageId=65324 +Language=English +%1 +. +MessageId=65325 +Language=English +%1 +. +MessageId=65326 +Language=English +%1 +. +MessageId=65327 +Language=English +%1 +. +MessageId=65328 +Language=English +%1 +. +MessageId=65329 +Language=English +%1 +. +MessageId=65330 +Language=English +%1 +. +MessageId=65331 +Language=English +%1 +. +MessageId=65332 +Language=English +%1 +. +MessageId=65333 +Language=English +%1 +. +MessageId=65334 +Language=English +%1 +. +MessageId=65335 +Language=English +%1 +. +MessageId=65336 +Language=English +%1 +. +MessageId=65337 +Language=English +%1 +. +MessageId=65338 +Language=English +%1 +. +MessageId=65339 +Language=English +%1 +. +MessageId=65340 +Language=English +%1 +. +MessageId=65341 +Language=English +%1 +. +MessageId=65342 +Language=English +%1 +. +MessageId=65343 +Language=English +%1 +. +MessageId=65344 +Language=English +%1 +. +MessageId=65345 +Language=English +%1 +. +MessageId=65346 +Language=English +%1 +. +MessageId=65347 +Language=English +%1 +. +MessageId=65348 +Language=English +%1 +. +MessageId=65349 +Language=English +%1 +. +MessageId=65350 +Language=English +%1 +. +MessageId=65351 +Language=English +%1 +. +MessageId=65352 +Language=English +%1 +. +MessageId=65353 +Language=English +%1 +. +MessageId=65354 +Language=English +%1 +. +MessageId=65355 +Language=English +%1 +. +MessageId=65356 +Language=English +%1 +. +MessageId=65357 +Language=English +%1 +. +MessageId=65358 +Language=English +%1 +. +MessageId=65359 +Language=English +%1 +. +MessageId=65360 +Language=English +%1 +. +MessageId=65361 +Language=English +%1 +. +MessageId=65362 +Language=English +%1 +. +MessageId=65363 +Language=English +%1 +. +MessageId=65364 +Language=English +%1 +. +MessageId=65365 +Language=English +%1 +. +MessageId=65366 +Language=English +%1 +. +MessageId=65367 +Language=English +%1 +. +MessageId=65368 +Language=English +%1 +. +MessageId=65369 +Language=English +%1 +. +MessageId=65370 +Language=English +%1 +. +MessageId=65371 +Language=English +%1 +. +MessageId=65372 +Language=English +%1 +. +MessageId=65373 +Language=English +%1 +. +MessageId=65374 +Language=English +%1 +. +MessageId=65375 +Language=English +%1 +. +MessageId=65376 +Language=English +%1 +. +MessageId=65377 +Language=English +%1 +. +MessageId=65378 +Language=English +%1 +. +MessageId=65379 +Language=English +%1 +. +MessageId=65380 +Language=English +%1 +. +MessageId=65381 +Language=English +%1 +. +MessageId=65382 +Language=English +%1 +. +MessageId=65383 +Language=English +%1 +. +MessageId=65384 +Language=English +%1 +. +MessageId=65385 +Language=English +%1 +. +MessageId=65386 +Language=English +%1 +. +MessageId=65387 +Language=English +%1 +. +MessageId=65388 +Language=English +%1 +. +MessageId=65389 +Language=English +%1 +. +MessageId=65390 +Language=English +%1 +. +MessageId=65391 +Language=English +%1 +. +MessageId=65392 +Language=English +%1 +. +MessageId=65393 +Language=English +%1 +. +MessageId=65394 +Language=English +%1 +. +MessageId=65395 +Language=English +%1 +. +MessageId=65396 +Language=English +%1 +. +MessageId=65397 +Language=English +%1 +. +MessageId=65398 +Language=English +%1 +. +MessageId=65399 +Language=English +%1 +. +MessageId=65400 +Language=English +%1 +. +MessageId=65401 +Language=English +%1 +. +MessageId=65402 +Language=English +%1 +. +MessageId=65403 +Language=English +%1 +. +MessageId=65404 +Language=English +%1 +. +MessageId=65405 +Language=English +%1 +. +MessageId=65406 +Language=English +%1 +. +MessageId=65407 +Language=English +%1 +. +MessageId=65408 +Language=English +%1 +. +MessageId=65409 +Language=English +%1 +. +MessageId=65410 +Language=English +%1 +. +MessageId=65411 +Language=English +%1 +. +MessageId=65412 +Language=English +%1 +. +MessageId=65413 +Language=English +%1 +. +MessageId=65414 +Language=English +%1 +. +MessageId=65415 +Language=English +%1 +. +MessageId=65416 +Language=English +%1 +. +MessageId=65417 +Language=English +%1 +. +MessageId=65418 +Language=English +%1 +. +MessageId=65419 +Language=English +%1 +. +MessageId=65420 +Language=English +%1 +. +MessageId=65421 +Language=English +%1 +. +MessageId=65422 +Language=English +%1 +. +MessageId=65423 +Language=English +%1 +. +MessageId=65424 +Language=English +%1 +. +MessageId=65425 +Language=English +%1 +. +MessageId=65426 +Language=English +%1 +. +MessageId=65427 +Language=English +%1 +. +MessageId=65428 +Language=English +%1 +. +MessageId=65429 +Language=English +%1 +. +MessageId=65430 +Language=English +%1 +. +MessageId=65431 +Language=English +%1 +. +MessageId=65432 +Language=English +%1 +. +MessageId=65433 +Language=English +%1 +. +MessageId=65434 +Language=English +%1 +. +MessageId=65435 +Language=English +%1 +. +MessageId=65436 +Language=English +%1 +. +MessageId=65437 +Language=English +%1 +. +MessageId=65438 +Language=English +%1 +. +MessageId=65439 +Language=English +%1 +. +MessageId=65440 +Language=English +%1 +. +MessageId=65441 +Language=English +%1 +. +MessageId=65442 +Language=English +%1 +. +MessageId=65443 +Language=English +%1 +. +MessageId=65444 +Language=English +%1 +. +MessageId=65445 +Language=English +%1 +. +MessageId=65446 +Language=English +%1 +. +MessageId=65447 +Language=English +%1 +. +MessageId=65448 +Language=English +%1 +. +MessageId=65449 +Language=English +%1 +. +MessageId=65450 +Language=English +%1 +. +MessageId=65451 +Language=English +%1 +. +MessageId=65452 +Language=English +%1 +. +MessageId=65453 +Language=English +%1 +. +MessageId=65454 +Language=English +%1 +. +MessageId=65455 +Language=English +%1 +. +MessageId=65456 +Language=English +%1 +. +MessageId=65457 +Language=English +%1 +. +MessageId=65458 +Language=English +%1 +. +MessageId=65459 +Language=English +%1 +. +MessageId=65460 +Language=English +%1 +. +MessageId=65461 +Language=English +%1 +. +MessageId=65462 +Language=English +%1 +. +MessageId=65463 +Language=English +%1 +. +MessageId=65464 +Language=English +%1 +. +MessageId=65465 +Language=English +%1 +. +MessageId=65466 +Language=English +%1 +. +MessageId=65467 +Language=English +%1 +. +MessageId=65468 +Language=English +%1 +. +MessageId=65469 +Language=English +%1 +. +MessageId=65470 +Language=English +%1 +. +MessageId=65471 +Language=English +%1 +. +MessageId=65472 +Language=English +%1 +. +MessageId=65473 +Language=English +%1 +. +MessageId=65474 +Language=English +%1 +. +MessageId=65475 +Language=English +%1 +. +MessageId=65476 +Language=English +%1 +. +MessageId=65477 +Language=English +%1 +. +MessageId=65478 +Language=English +%1 +. +MessageId=65479 +Language=English +%1 +. +MessageId=65480 +Language=English +%1 +. +MessageId=65481 +Language=English +%1 +. +MessageId=65482 +Language=English +%1 +. +MessageId=65483 +Language=English +%1 +. +MessageId=65484 +Language=English +%1 +. +MessageId=65485 +Language=English +%1 +. +MessageId=65486 +Language=English +%1 +. +MessageId=65487 +Language=English +%1 +. +MessageId=65488 +Language=English +%1 +. +MessageId=65489 +Language=English +%1 +. +MessageId=65490 +Language=English +%1 +. +MessageId=65491 +Language=English +%1 +. +MessageId=65492 +Language=English +%1 +. +MessageId=65493 +Language=English +%1 +. +MessageId=65494 +Language=English +%1 +. +MessageId=65495 +Language=English +%1 +. +MessageId=65496 +Language=English +%1 +. +MessageId=65497 +Language=English +%1 +. +MessageId=65498 +Language=English +%1 +. +MessageId=65499 +Language=English +%1 +. +MessageId=65500 +Language=English +%1 +. +MessageId=65501 +Language=English +%1 +. +MessageId=65502 +Language=English +%1 +. +MessageId=65503 +Language=English +%1 +. +MessageId=65504 +Language=English +%1 +. +MessageId=65505 +Language=English +%1 +. +MessageId=65506 +Language=English +%1 +. +MessageId=65507 +Language=English +%1 +. +MessageId=65508 +Language=English +%1 +. +MessageId=65509 +Language=English +%1 +. +MessageId=65510 +Language=English +%1 +. +MessageId=65511 +Language=English +%1 +. +MessageId=65512 +Language=English +%1 +. +MessageId=65513 +Language=English +%1 +. +MessageId=65514 +Language=English +%1 +. +MessageId=65515 +Language=English +%1 +. +MessageId=65516 +Language=English +%1 +. +MessageId=65517 +Language=English +%1 +. +MessageId=65518 +Language=English +%1 +. +MessageId=65519 +Language=English +%1 +. +MessageId=65520 +Language=English +%1 +. +MessageId=65521 +Language=English +%1 +. +MessageId=65522 +Language=English +%1 +. +MessageId=65523 +Language=English +%1 +. +MessageId=65524 +Language=English +%1 +. +MessageId=65525 +Language=English +%1 +. +MessageId=65526 +Language=English +%1 +. +MessageId=65527 +Language=English +%1 +. +MessageId=65528 +Language=English +%1 +. +MessageId=65529 +Language=English +%1 +. +MessageId=65530 +Language=English +%1 +. +MessageId=65531 +Language=English +%1 +. +MessageId=65532 +Language=English +%1 +. +MessageId=65533 +Language=English +%1 +. +MessageId=65534 +Language=English +%1 +. +MessageId=65535 +Language=English +%1 +. diff --git a/src/libraries/System.Diagnostics.EventLog/src/Messages/EventLogMessages.rc b/src/libraries/System.Diagnostics.EventLog/src/Messages/EventLogMessages.rc new file mode 100644 index 00000000000000..0abcb0fa2c5715 --- /dev/null +++ b/src/libraries/System.Diagnostics.EventLog/src/Messages/EventLogMessages.rc @@ -0,0 +1,2 @@ +LANGUAGE 0x9,0x1 +1 11 "MSG00001.bin" diff --git a/src/libraries/System.Diagnostics.EventLog/src/Messages/EventLogMessages.res b/src/libraries/System.Diagnostics.EventLog/src/Messages/EventLogMessages.res new file mode 100644 index 00000000000000..e7eeae19526e83 Binary files /dev/null and b/src/libraries/System.Diagnostics.EventLog/src/Messages/EventLogMessages.res differ diff --git a/src/libraries/System.Diagnostics.EventLog/src/Messages/System.Diagnostics.EventLog.Messages.csproj b/src/libraries/System.Diagnostics.EventLog/src/Messages/System.Diagnostics.EventLog.Messages.csproj new file mode 100644 index 00000000000000..88b9c7bf13b56c --- /dev/null +++ b/src/libraries/System.Diagnostics.EventLog/src/Messages/System.Diagnostics.EventLog.Messages.csproj @@ -0,0 +1,7 @@ + + + netstandard2.0 + EventLogMessages.res + false + + \ No newline at end of file diff --git a/src/libraries/System.Diagnostics.EventLog/src/Messages/generateEventLogMessagesRes.cmd b/src/libraries/System.Diagnostics.EventLog/src/Messages/generateEventLogMessagesRes.cmd new file mode 100644 index 00000000000000..7e390e0b21851e --- /dev/null +++ b/src/libraries/System.Diagnostics.EventLog/src/Messages/generateEventLogMessagesRes.cmd @@ -0,0 +1,4 @@ +@echo off +mc EventLogMessages.mc -n +rc EventLogMessages.rc +del EventLogMessages.h MSG00001.bin \ No newline at end of file diff --git a/src/libraries/System.Diagnostics.EventLog/src/Messages/readme.md b/src/libraries/System.Diagnostics.EventLog/src/Messages/readme.md new file mode 100644 index 00000000000000..d7b809ad142609 --- /dev/null +++ b/src/libraries/System.Diagnostics.EventLog/src/Messages/readme.md @@ -0,0 +1,15 @@ +These files are used to produce an Event Message File. + +For more information see https://docs.microsoft.com/en-us/windows/win32/eventlog/message-files. + +The design of the EventLog class is to allow for the registration of event sources without specifying message files. + +In the case an event source does not specify it's own message file, EventLog just provides a default message file +with 64K message IDs all that just pass through the first insertion string. This allow the event source to still +use IDs for messages, but doesn't require the caller to actually pass a message file in order to achieve this. + +The process for producing the message file requires mc.exe and rc.exe which do not work cross-platform, and they +require a VS install with C++ tools. Since these files rarely (if ever) change, we just use a manual process for +updating this res file. + +To update the checked in files, manually run generateEventLogMessagesRes.cmd from a Developer Command Prompt. \ No newline at end of file diff --git a/src/libraries/System.Diagnostics.EventLog/src/System.Diagnostics.EventLog.csproj b/src/libraries/System.Diagnostics.EventLog/src/System.Diagnostics.EventLog.csproj index a22f890d5bd57b..6e902a38bde716 100644 --- a/src/libraries/System.Diagnostics.EventLog/src/System.Diagnostics.EventLog.csproj +++ b/src/libraries/System.Diagnostics.EventLog/src/System.Diagnostics.EventLog.csproj @@ -10,7 +10,7 @@ true SR.PlatformNotSupported_EventLog - + @@ -99,8 +99,7 @@ - + @@ -127,4 +126,16 @@ + + + + + AdditionalFileToPackage + + + \ No newline at end of file diff --git a/src/libraries/System.Diagnostics.EventLog/src/System/Diagnostics/EventLog.cs b/src/libraries/System.Diagnostics.EventLog/src/System/Diagnostics/EventLog.cs index 192047a6ad4b5a..e96de7a6f9867a 100644 --- a/src/libraries/System.Diagnostics.EventLog/src/System/Diagnostics/EventLog.cs +++ b/src/libraries/System.Diagnostics.EventLog/src/System/Diagnostics/EventLog.cs @@ -23,6 +23,7 @@ public class EventLog : Component, ISupportInitialize { private const string EventLogKey = "SYSTEM\\CurrentControlSet\\Services\\EventLog"; internal const string DllName = "EventLogMessages.dll"; + internal const string AltDllName = "System.Diagnostics.EventLog.Messages.dll"; private const string eventLogMutexName = "netfxeventlog.1.0"; private const int DefaultMaxSize = 512 * 1024; @@ -692,7 +693,23 @@ internal static RegistryKey GetEventLogRegKey(string machine, bool writable) internal static string GetDllPath(string machineName) { - return Path.Combine(NetFrameworkUtils.GetLatestBuildDllDirectory(machineName), DllName); + string dllPath = Path.Combine(NetFrameworkUtils.GetLatestBuildDllDirectory(machineName), DllName); + + if (machineName == "." && !File.Exists(dllPath)) + { + // use this assembly directory + string assmLocation = typeof(EventLog).Assembly.Location; + if (!string.IsNullOrEmpty(assmLocation)) + { + dllPath = Path.Combine(Path.GetDirectoryName(assmLocation), AltDllName); + } + else + { + dllPath = Path.Combine(AppContext.BaseDirectory, AltDllName); + } + } + + return dllPath; } public static bool SourceExists(string source) diff --git a/src/libraries/System.Diagnostics.EventLog/src/System/Diagnostics/EventLogInternal.cs b/src/libraries/System.Diagnostics.EventLog/src/System/Diagnostics/EventLogInternal.cs index 17686e5dc3624e..8d10a75d9672f8 100644 --- a/src/libraries/System.Diagnostics.EventLog/src/System/Diagnostics/EventLogInternal.cs +++ b/src/libraries/System.Diagnostics.EventLog/src/System/Diagnostics/EventLogInternal.cs @@ -53,7 +53,6 @@ internal class EventLogInternal : IDisposable, ISupportInitialize private readonly EventLog parent; private const string EventLogKey = "SYSTEM\\CurrentControlSet\\Services\\EventLog"; - internal const string DllName = "EventLogMessages.dll"; private const string eventLogMutexName = "netfxeventlog.1.0"; private const int SecondsPerDay = 60 * 60 * 24; @@ -1016,11 +1015,6 @@ private int GetPreviousEntryPos(int pos) return pos - IntFrom(cache, pos - 4); } - internal static string GetDllPath(string machineName) - { - return Path.Combine(NetFrameworkUtils.GetLatestBuildDllDirectory(machineName), DllName); - } - private static int IntFrom(byte[] buf, int offset) { // assumes Little Endian byte order. diff --git a/src/libraries/System.Diagnostics.EventLog/tests/EventLogMessagesTests.cs b/src/libraries/System.Diagnostics.EventLog/tests/EventLogMessagesTests.cs new file mode 100644 index 00000000000000..c1d28492bf1e40 --- /dev/null +++ b/src/libraries/System.Diagnostics.EventLog/tests/EventLogMessagesTests.cs @@ -0,0 +1,87 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics.Eventing.Reader; +using System.IO; +using System.Reflection; +using System.Runtime.InteropServices; +using Microsoft.Win32.SafeHandles; +using Xunit; + +namespace System.Diagnostics.Tests +{ + public class EventLogMessagesTests + { + [Fact] + public void EventLogMessagesContainsNoTypes() + { + Assembly messageAssembly = Assembly.Load("System.Diagnostics.EventLog.Messages"); + Assert.NotNull(messageAssembly); + Assert.Empty(messageAssembly.GetTypes()); + } + + [Theory] + [InlineData(0)] + [InlineData(1)] + [InlineData(65535)] + public unsafe void CanFormatMessage(uint messageId) + { + string messageDllPath = Path.Combine(Path.GetDirectoryName(typeof(EventLog).Assembly.Location), "System.Diagnostics.EventLog.Messages.dll"); + Assert.True(File.Exists(messageDllPath)); + using SafeLibraryHandle hMessageDll = Interop.Kernel32.LoadLibraryExW(messageDllPath, IntPtr.Zero, Interop.Kernel32.LOAD_LIBRARY_AS_DATAFILE); + + string messageString = "hello message"; + char[] buffer = new char[1024]; + fixed (char* pMessageString = messageString) + { + IntPtr[] insertion = new[] { (IntPtr)pMessageString }; + int messageLength = Interop.Kernel32.FormatMessage( + Interop.Kernel32.FORMAT_MESSAGE_FROM_HMODULE | Interop.Kernel32.FORMAT_MESSAGE_ARGUMENT_ARRAY, + hMessageDll, + messageId, + 0, + buffer, + buffer.Length, + insertion); + + Assert.True(messageLength > 0); + string formattedMessage = new string(buffer, 0, messageLength); + Assert.Equal(messageString, formattedMessage); + } + } + + [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndSupportsEventLogs))] + public void CanReadAndWriteMessages() + { + string messageDllPath = Path.Combine(Path.GetDirectoryName(typeof(EventLog).Assembly.Location), "System.Diagnostics.EventLog.Messages.dll"); + EventSourceCreationData log = new EventSourceCreationData($"TestEventMessageSource {Guid.NewGuid()}", "Application") + { + MessageResourceFile = messageDllPath + }; + try + { + if (EventLog.SourceExists(log.Source)) + { + EventLog.DeleteEventSource(log.Source); + } + + EventLog.CreateEventSource(log); + string message = $"Hello {Guid.NewGuid()}"; + EventLog.WriteEntry(log.Source, message); + + using (EventLogReader reader = new EventLogReader(new EventLogQuery("Application", PathType.LogName, $"*[System/Provider/@Name=\"{log.Source}\"]"))) + { + EventRecord evt = reader.ReadEvent(); + + string logMessage = evt.FormatDescription(); + + Assert.Equal(message, logMessage); + } + } + finally + { + EventLog.DeleteEventSource(log.Source); + } + } + } +} diff --git a/src/libraries/System.Diagnostics.EventLog/tests/System.Diagnostics.EventLog.Tests.csproj b/src/libraries/System.Diagnostics.EventLog/tests/System.Diagnostics.EventLog.Tests.csproj index 8ebc945c1214b1..e5ab2708417700 100644 --- a/src/libraries/System.Diagnostics.EventLog/tests/System.Diagnostics.EventLog.Tests.csproj +++ b/src/libraries/System.Diagnostics.EventLog/tests/System.Diagnostics.EventLog.Tests.csproj @@ -1,6 +1,7 @@ $(NetCoreAppCurrent)-Windows_NT;net461 + true @@ -19,10 +20,26 @@ - + + + + + + + + + + + \ No newline at end of file diff --git a/src/libraries/System.Diagnostics.EventLog/tests/System/Diagnostics/Reader/ProviderMetadataTests.cs b/src/libraries/System.Diagnostics.EventLog/tests/System/Diagnostics/Reader/ProviderMetadataTests.cs index 7a1bf1a6ab0046..0f7f4511022d65 100644 --- a/src/libraries/System.Diagnostics.EventLog/tests/System/Diagnostics/Reader/ProviderMetadataTests.cs +++ b/src/libraries/System.Diagnostics.EventLog/tests/System/Diagnostics/Reader/ProviderMetadataTests.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Diagnostics.Eventing.Reader; using System.Globalization; +using System.IO; using System.Linq; using Xunit; @@ -58,10 +59,14 @@ public void ProviderNameTests(bool noProviderName) Assert.Equal("Aplicaci\u00F3n", logLink.DisplayName); } } - Assert.Contains("EventLogMessages.dll", providerMetadata.MessageFilePath); + + string[] expectedMessageFileNames = new[] { "EventLogMessages.dll", "System.Diagnostics.EventLog.Messages.dll" }; + string messageFileName = Path.GetFileName(providerMetadata.MessageFilePath); + Assert.Contains(expectedMessageFileNames, expected => expected.Equals(messageFileName, StringComparison.OrdinalIgnoreCase)); if (providerMetadata.HelpLink != null) { - Assert.Contains("EventLogMessages.dll", providerMetadata.HelpLink.ToString()); + string helpLink = providerMetadata.HelpLink.ToString(); + Assert.Contains(expectedMessageFileNames, expected => -1 != helpLink.IndexOf(expected, StringComparison.OrdinalIgnoreCase)); } } else diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/Directory.Build.props b/src/libraries/System.Diagnostics.PerformanceCounter/Directory.Build.props index 2f8a8940e012a3..6944f65a977f75 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/Directory.Build.props +++ b/src/libraries/System.Diagnostics.PerformanceCounter/Directory.Build.props @@ -3,5 +3,7 @@ Open true + 5.0.1 + 5.0.0.1 \ No newline at end of file diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj b/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj index 225439e4973207..67f8a05828a90b 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj +++ b/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj @@ -110,8 +110,8 @@ Link="Common\Interop\Windows\Kernel32\Interop.VirtualQuery.cs" /> - + public static class CounterSampleCalculator { - private static volatile bool s_perfCounterDllLoaded; - /// /// Converts 100NS elapsed time to fractional seconds /// @@ -89,11 +87,9 @@ public static float ComputeCounterValue(CounterSample oldSample, CounterSample n FillInValues(oldSample, newSample, ref oldPdhValue, ref newPdhValue); - LoadPerfCounterDll(); - Interop.Kernel32.PerformanceCounterOptions.PDH_FMT_COUNTERVALUE pdhFormattedValue = default; long timeBase = newSample.SystemFrequency; - int result = Interop.PerfCounter.FormatFromRawValue((uint)newCounterType, Interop.Kernel32.PerformanceCounterOptions.PDH_FMT_DOUBLE | Interop.Kernel32.PerformanceCounterOptions.PDH_FMT_NOSCALE | Interop.Kernel32.PerformanceCounterOptions.PDH_FMT_NOCAP100, + int result = Interop.Pdh.PdhFormatFromRawValue((uint)newCounterType, Interop.Kernel32.PerformanceCounterOptions.PDH_FMT_DOUBLE | Interop.Kernel32.PerformanceCounterOptions.PDH_FMT_NOSCALE | Interop.Kernel32.PerformanceCounterOptions.PDH_FMT_NOCAP100, ref timeBase, ref newPdhValue, ref oldPdhValue, ref pdhFormattedValue); if (result != Interop.Errors.ERROR_SUCCESS) @@ -227,21 +223,5 @@ private static void FillInValues(CounterSample oldSample, CounterSample newSampl break; } } - - private static void LoadPerfCounterDll() - { - if (s_perfCounterDllLoaded) - return; - - string installPath = NetFrameworkUtils.GetLatestBuildDllDirectory("."); - - string perfcounterPath = Path.Combine(installPath, "perfcounter.dll"); - if (Interop.Kernel32.LoadLibrary(perfcounterPath) == IntPtr.Zero) - { - throw new Win32Exception(Marshal.GetLastWin32Error()); - } - - s_perfCounterDllLoaded = true; - } } } diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/tests/CounterCreationDataCollectionTests.cs b/src/libraries/System.Diagnostics.PerformanceCounter/tests/CounterCreationDataCollectionTests.cs index 0470116bd3a01a..c018fc8571dfdc 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/tests/CounterCreationDataCollectionTests.cs +++ b/src/libraries/System.Diagnostics.PerformanceCounter/tests/CounterCreationDataCollectionTests.cs @@ -10,14 +10,14 @@ namespace System.Diagnostics.Tests { public static class CounterCreationDataCollectionTests { - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void CounterCreationDataCollection_CreateCounterCreationDataCollection_Empty() { CounterCreationDataCollection ccdc = new CounterCreationDataCollection(); Assert.Equal(0, ccdc.Count); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void CounterCreationDataCollection_CreateCounterCreationDataCollection_CCDC() { CounterCreationData[] ccds = { new CounterCreationData("Simple1", "Simple Help", PerformanceCounterType.RawBase), new CounterCreationData("Simple2", "Simple Help", PerformanceCounterType.RawBase) }; @@ -27,7 +27,7 @@ public static void CounterCreationDataCollection_CreateCounterCreationDataCollec Assert.Equal(2, ccdc2.Count); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void CounterCreationDataCollection_CreateCounterCreationDataCollection_Array() { CounterCreationData[] ccds = { new CounterCreationData("Simple1", "Simple Help", PerformanceCounterType.RawBase), new CounterCreationData("Simple2", "Simple Help", PerformanceCounterType.RawBase) }; @@ -37,7 +37,7 @@ public static void CounterCreationDataCollection_CreateCounterCreationDataCollec Assert.Equal(0, ccdc.IndexOf(ccds[0])); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void CounterCreationDataCollection_CreateCounterCreationDataCollection_Invalid() { CounterCreationData[] ccds = null; @@ -46,7 +46,7 @@ public static void CounterCreationDataCollection_CreateCounterCreationDataCollec Assert.Throws(() => new CounterCreationDataCollection(ccdc)); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void CounterCreationDataCollection_SetIndex2() { CounterCreationData[] ccds = { new CounterCreationData("Simple1", "Simple Help", PerformanceCounterType.RawBase), new CounterCreationData("Simple2", "Simple Help", PerformanceCounterType.RawBase) }; @@ -59,7 +59,7 @@ public static void CounterCreationDataCollection_SetIndex2() Assert.Equal(ccd, ccdc[1]); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void CounterCreationDataCollection_Remove() { CounterCreationData[] ccds = { new CounterCreationData("Simple1", "Simple Help", PerformanceCounterType.RawBase), new CounterCreationData("Simple2", "Simple Help", PerformanceCounterType.RawBase) }; @@ -69,7 +69,7 @@ public static void CounterCreationDataCollection_Remove() Assert.False(ccdc.Contains(ccds[0])); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void CounterCreationDataCollection_Insert() { CounterCreationData[] ccds = { new CounterCreationData("Simple1", "Simple Help", PerformanceCounterType.RawBase), new CounterCreationData("Simple2", "Simple Help", PerformanceCounterType.RawBase) }; @@ -82,7 +82,7 @@ public static void CounterCreationDataCollection_Insert() Assert.Equal(1, ccdc.IndexOf(ccd)); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void CounterCreationDataCollection_CopyTo() { CounterCreationData[] ccds = { new CounterCreationData("Simple1", "Simple Help", PerformanceCounterType.RawBase), new CounterCreationData("Simple2", "Simple Help", PerformanceCounterType.RawBase) }; diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/tests/CounterCreationDataTests.cs b/src/libraries/System.Diagnostics.PerformanceCounter/tests/CounterCreationDataTests.cs index 8b818c5efa332e..f7a5c00f16a25c 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/tests/CounterCreationDataTests.cs +++ b/src/libraries/System.Diagnostics.PerformanceCounter/tests/CounterCreationDataTests.cs @@ -11,7 +11,7 @@ namespace System.Diagnostics.Tests { public static class CounterCreationDataTests { - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void CounterCreationData_CreateCounterCreationData_SimpleSimpleHelpRawBase() { CounterCreationData ccd = new CounterCreationData("Simple", "Simple Help", PerformanceCounterType.RawBase); @@ -21,7 +21,7 @@ public static void CounterCreationData_CreateCounterCreationData_SimpleSimpleHel Assert.Equal(PerformanceCounterType.RawBase, ccd.CounterType); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void CounterCreationData_SetCounterType_Invalud() { CounterCreationData ccd = new CounterCreationData("Simple", "Simple Help", PerformanceCounterType.RawBase); diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/tests/CounterSampleCalculatorTests.cs b/src/libraries/System.Diagnostics.PerformanceCounter/tests/CounterSampleCalculatorTests.cs index b45e702478813c..4173d201c8a898 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/tests/CounterSampleCalculatorTests.cs +++ b/src/libraries/System.Diagnostics.PerformanceCounter/tests/CounterSampleCalculatorTests.cs @@ -10,7 +10,7 @@ namespace System.Diagnostics.Tests { public static class CounterSampleCalculatorTests { - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteAndReadNetPerfCounters))] public static void CounterSampleCalculator_ElapsedTime() { var name = nameof(CounterSampleCalculator_ElapsedTime) + "_Counter"; diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/tests/CounterSampleTests.cs b/src/libraries/System.Diagnostics.PerformanceCounter/tests/CounterSampleTests.cs index 3625a776021197..b53733c71b03a9 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/tests/CounterSampleTests.cs +++ b/src/libraries/System.Diagnostics.PerformanceCounter/tests/CounterSampleTests.cs @@ -10,7 +10,7 @@ namespace System.Diagnostics.Tests { public static class CounterSampleTests { - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void CounterSample_Constructor_EmptyCounterSample() { CounterSample counterSample = new CounterSample(); @@ -24,7 +24,7 @@ public static void CounterSample_Constructor_EmptyCounterSample() Assert.Equal(0, counterSample.TimeStamp100nSec); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void CounterSample_Constructor_CounterSample() { long timeStamp = DateTime.Now.ToFileTime(); @@ -39,8 +39,7 @@ public static void CounterSample_Constructor_CounterSample() Assert.Equal(timeStamp, counterSample.TimeStamp100nSec); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] - [ActiveIssue("https://github.com/dotnet/runtime/issues/34409", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)] + [Fact] public static void CounterSample_Calculate_CalculateCounterSample() { CounterSample counterSample = new CounterSample(5, 0, 0, 0, 0, 0, PerformanceCounterType.NumberOfItems32); @@ -48,8 +47,7 @@ public static void CounterSample_Calculate_CalculateCounterSample() Assert.Equal(5, CounterSample.Calculate(counterSample)); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] - [ActiveIssue("https://github.com/dotnet/runtime/issues/34409", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)] + [Fact] public static void CounterSample_Calculate_CalculateCounterSampleCounterSample() { CounterSample counterSample1 = new CounterSample(5, 0, 0, 1, 0, 0, PerformanceCounterType.CounterDelta32); @@ -58,7 +56,7 @@ public static void CounterSample_Calculate_CalculateCounterSampleCounterSample() Assert.Equal(10, CounterSample.Calculate(counterSample1, counterSample2)); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void CounterSample_Equal() { CounterSample counterSample1 = new CounterSample(5, 0, 0, 1, 0, 0, PerformanceCounterType.CounterDelta32); @@ -67,7 +65,7 @@ public static void CounterSample_Equal() Assert.Equal(counterSample1, counterSample2); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void CounterSample_opInequality() { CounterSample counterSample1 = new CounterSample(5, 0, 0, 1, 0, 0, PerformanceCounterType.CounterDelta32); @@ -76,7 +74,7 @@ public static void CounterSample_opInequality() Assert.True(counterSample1 != counterSample2); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void CounterSample_opEquality() { CounterSample counterSample1 = new CounterSample(5, 0, 0, 1, 0, 0, PerformanceCounterType.CounterDelta32); @@ -85,7 +83,7 @@ public static void CounterSample_opEquality() Assert.True(counterSample1 == counterSample2); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void CounterSample_GetHashCode() { CounterSample counterSample1 = new CounterSample(5, 0, 0, 1, 0, 0, PerformanceCounterType.CounterDelta32); diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/tests/Helpers.cs b/src/libraries/System.Diagnostics.PerformanceCounter/tests/Helpers.cs index 19a27141e94f71..0cf90e9e4682e2 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/tests/Helpers.cs +++ b/src/libraries/System.Diagnostics.PerformanceCounter/tests/Helpers.cs @@ -1,5 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.IO; using System.Threading; using Xunit; @@ -12,7 +13,9 @@ namespace System.Diagnostics.Tests internal class Helpers { public static bool IsElevatedAndCanWriteToPerfCounters { get => AdminHelpers.IsProcessElevated() && CanWriteToPerfCounters; } - public static bool CanWriteToPerfCounters { get => PlatformDetection.IsNotWindowsNanoServer && PlatformDetection.IsNotArmNorArm64Process; } + public static bool IsElevatedAndCanWriteAndReadNetPerfCounters { get => AdminHelpers.IsProcessElevated() && CanWriteToPerfCounters && CanReadNetPerfCounters; } + public static bool CanWriteToPerfCounters { get => PlatformDetection.IsNotWindowsNanoServer; } + public static bool CanReadNetPerfCounters { get => File.Exists(Environment.SystemDirectory + Path.DirectorySeparatorChar + "netfxperf.dll"); } public static string CreateCategory(string name, PerformanceCounterCategoryType categoryType) { diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/tests/InstanceDataTests.cs b/src/libraries/System.Diagnostics.PerformanceCounter/tests/InstanceDataTests.cs index fbe4ac89493e34..7ff34aaafb263e 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/tests/InstanceDataTests.cs +++ b/src/libraries/System.Diagnostics.PerformanceCounter/tests/InstanceDataTests.cs @@ -10,7 +10,7 @@ namespace System.Diagnostics.Tests { public static class InstanceDataTests { - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void InstanceData_CreateInstanceData_FromCounterSample() { long timestamp = DateTime.Now.ToFileTime(); @@ -22,7 +22,7 @@ public static void InstanceData_CreateInstanceData_FromCounterSample() Assert.Equal(1, id.RawValue); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void InstanceDataCollection_GetItem_ExistingCounter() { InstanceDataCollection idc = GetInstanceDataCollection(); @@ -41,7 +41,7 @@ public static void InstanceDataCollection_GetItem_ExistingCounter() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void InstanceDataCollection_NullTest() { InstanceDataCollection idc = GetInstanceDataCollection(); @@ -50,7 +50,7 @@ public static void InstanceDataCollection_NullTest() Assert.Throws(() => idc.Contains(null)); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void InstanceDataCollection_GetKeys() { InstanceDataCollection idc = GetInstanceDataCollection(); @@ -61,7 +61,7 @@ public static void InstanceDataCollection_GetKeys() Assert.True(keys.Length > 0); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void InstanceDataCollection_GetValues() { InstanceDataCollection idc = GetInstanceDataCollection(); @@ -72,7 +72,7 @@ public static void InstanceDataCollection_GetValues() Assert.True(values.Length > 0); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void InstanceDataCollectionCollection_GetItem_Invalid() { InstanceDataCollectionCollection idcc = GetInstanceDataCollectionCollection(); @@ -80,7 +80,7 @@ public static void InstanceDataCollectionCollection_GetItem_Invalid() Assert.Throws(() => idcc[null]); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void InstanceDataCollectionCollection_GetKeys() { InstanceDataCollectionCollection idcc = GetInstanceDataCollectionCollection(); @@ -88,7 +88,7 @@ public static void InstanceDataCollectionCollection_GetKeys() Assert.True(idcc.Keys.Count > 0); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void InstanceDataCollectionCollection_GetValues() { InstanceDataCollectionCollection idcc = GetInstanceDataCollectionCollection(); @@ -96,7 +96,7 @@ public static void InstanceDataCollectionCollection_GetValues() Assert.True(idcc.Values.Count > 0); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void InstanceDataCollectionCollection_Contains_Valid() { InstanceDataCollectionCollection idcc = GetInstanceDataCollectionCollection(); @@ -104,7 +104,7 @@ public static void InstanceDataCollectionCollection_Contains_Valid() Assert.False(idcc.Contains("Not a real instance")); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void InstanceDataCollectionCollection_Contains_inValid() { InstanceDataCollectionCollection idcc = GetInstanceDataCollectionCollection(); @@ -112,7 +112,7 @@ public static void InstanceDataCollectionCollection_Contains_inValid() Assert.Throws(() => idcc.Contains(null)); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void InstanceDataCollectionCollection_CopyTo() { InstanceDataCollectionCollection idcc = GetInstanceDataCollectionCollection(); diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/tests/PerformanceCounterCategoryTests.cs b/src/libraries/System.Diagnostics.PerformanceCounter/tests/PerformanceCounterCategoryTests.cs index 5c2ea1ee89703e..1760032fa2535f 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/tests/PerformanceCounterCategoryTests.cs +++ b/src/libraries/System.Diagnostics.PerformanceCounter/tests/PerformanceCounterCategoryTests.cs @@ -10,14 +10,14 @@ namespace System.Diagnostics.Tests { public static class PerformanceCounterCategoryTests { - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_CreatePerformanceCounterCategory_DefaultConstructor() { PerformanceCounterCategory pcc = new PerformanceCounterCategory(); Assert.Equal(".", pcc.MachineName); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_CreatePerformanceCounterCategory_NullTests() { Assert.Throws(() => new PerformanceCounterCategory(null, ".")); @@ -25,7 +25,7 @@ public static void PerformanceCounterCategory_CreatePerformanceCounterCategory_N Assert.Throws(() => new PerformanceCounterCategory("category", string.Empty)); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_SetCategoryName_Valid() { PerformanceCounterCategory pcc = new PerformanceCounterCategory(); @@ -33,7 +33,7 @@ public static void PerformanceCounterCategory_SetCategoryName_Valid() Assert.Equal("Processor", pcc.CategoryName); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_SetCategoryName_Invalid() { PerformanceCounterCategory pcc = new PerformanceCounterCategory(); @@ -42,7 +42,7 @@ public static void PerformanceCounterCategory_SetCategoryName_Invalid() Assert.Throws(() => pcc.CategoryName = string.Empty); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_SetMachineName_Invalid() { PerformanceCounterCategory pcc = new PerformanceCounterCategory(); @@ -50,7 +50,7 @@ public static void PerformanceCounterCategory_SetMachineName_Invalid() Assert.Throws(() => pcc.MachineName = string.Empty); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_SetMachineName_ValidCategoryNameNull() { PerformanceCounterCategory pcc = new PerformanceCounterCategory(); @@ -59,7 +59,7 @@ public static void PerformanceCounterCategory_SetMachineName_ValidCategoryNameNu Assert.Equal("machineName", pcc.MachineName); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_SetMachineName_ValidCategoryNameNotNull() { PerformanceCounterCategory pcc = new PerformanceCounterCategory(); @@ -69,7 +69,7 @@ public static void PerformanceCounterCategory_SetMachineName_ValidCategoryNameNo Assert.Equal("machineName", pcc.MachineName); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_GetCounterHelp_Invalid() { PerformanceCounterCategory pcc = new PerformanceCounterCategory(); @@ -77,7 +77,7 @@ public static void PerformanceCounterCategory_GetCounterHelp_Invalid() Assert.Throws(() => pcc.CategoryHelp); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteAndReadNetPerfCounters))] public static void PerformanceCounterCategory_CategoryType_MultiInstance() { var name = nameof(PerformanceCounterCategory_CategoryType_MultiInstance) + "_Counter"; @@ -90,7 +90,7 @@ public static void PerformanceCounterCategory_CategoryType_MultiInstance() PerformanceCounterCategory.Delete(category); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteAndReadNetPerfCounters))] public static void PerformanceCounterCategory_CategoryType_SingleInstance() { var name = nameof(PerformanceCounterCategory_CategoryType_SingleInstance) + "_Counter"; @@ -152,7 +152,7 @@ public static void PerformanceCounterCategory_Create_Invalid() Assert.Throws(() => PerformanceCounterCategory.Create("Category name", maxCounter, PerformanceCounterCategoryType.SingleInstance, "Counter name", "counter help")); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_GetCategories() { PerformanceCounterCategory[] categories = PerformanceCounterCategory.GetCategories(); @@ -160,13 +160,13 @@ public static void PerformanceCounterCategory_GetCategories() Assert.True(categories.Length > 0); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_GetCategories_StaticInvalid() { Assert.Throws(() => PerformanceCounterCategory.GetCategories(string.Empty)); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_CounterExists_InterruptsPerSec() { PerformanceCounterCategory pcc = Helpers.RetryOnAllPlatforms(() => new PerformanceCounterCategory("Processor")); @@ -174,7 +174,7 @@ public static void PerformanceCounterCategory_CounterExists_InterruptsPerSec() Assert.True(pcc.CounterExists("Interrupts/sec")); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_CounterExists_Invalid() { PerformanceCounterCategory pcc = new PerformanceCounterCategory(); @@ -183,13 +183,13 @@ public static void PerformanceCounterCategory_CounterExists_Invalid() Assert.Throws(() => pcc.CounterExists("Interrupts/sec")); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_CounterExists_StaticInterruptsPerSec() { Assert.True(PerformanceCounterCategory.CounterExists("Interrupts/sec", "Processor")); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_CounterExists_StaticInvalid() { Assert.Throws(() => PerformanceCounterCategory.CounterExists(null, "Processor")); @@ -198,7 +198,7 @@ public static void PerformanceCounterCategory_CounterExists_StaticInvalid() Assert.Throws(() => PerformanceCounterCategory.CounterExists("Interrupts/sec", "Processor", string.Empty)); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_DeleteCategory_Invalid() { Assert.Throws(() => PerformanceCounterCategory.Delete("Processor")); @@ -215,7 +215,7 @@ public static void PerformanceCounterCategory_DeleteCategory() Assert.False(PerformanceCounterCategory.Exists(category)); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_Exists_Invalid() { Assert.Throws(() => PerformanceCounterCategory.Exists(null, ".")); @@ -223,7 +223,7 @@ public static void PerformanceCounterCategory_Exists_Invalid() Assert.Throws(() => PerformanceCounterCategory.Exists("Processor", string.Empty)); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteAndReadNetPerfCounters))] public static void PerformanceCounterCategory_GetCounters() { var name = nameof(PerformanceCounterCategory_GetCounters) + "_Counter"; @@ -236,7 +236,7 @@ public static void PerformanceCounterCategory_GetCounters() PerformanceCounterCategory.Delete(category); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_GetCounters_Invalid() { PerformanceCounterCategory pcc = new PerformanceCounterCategory(); @@ -249,7 +249,7 @@ public static void PerformanceCounterCategory_GetCounters_Invalid() Assert.Throws(() => pcc.GetCounters("Not An Instance")); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_GetInstanceNames_Invalid() { PerformanceCounterCategory pcc = new PerformanceCounterCategory(); @@ -257,7 +257,7 @@ public static void PerformanceCounterCategory_GetInstanceNames_Invalid() Assert.Throws(() => pcc.GetInstanceNames()); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_InstanceExists_Invalid() { PerformanceCounterCategory pcc = new PerformanceCounterCategory(); @@ -266,7 +266,7 @@ public static void PerformanceCounterCategory_InstanceExists_Invalid() Assert.Throws(() => pcc.InstanceExists("")); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_InstanceExists_Static() { PerformanceCounterCategory pcc = Helpers.RetryOnAllPlatforms(() => new PerformanceCounterCategory("Processor")); @@ -280,7 +280,7 @@ public static void PerformanceCounterCategory_InstanceExists_Static() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_InstanceExists_StaticInvalid() { Assert.Throws(() => PerformanceCounterCategory.InstanceExists(null, "Processor", ".")); @@ -289,7 +289,7 @@ public static void PerformanceCounterCategory_InstanceExists_StaticInvalid() Assert.Throws(() => PerformanceCounterCategory.InstanceExists("", "Processor", string.Empty)); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_ReadCategory() { PerformanceCounterCategory pcc = Helpers.RetryOnAllPlatforms(() => new PerformanceCounterCategory("Processor")); @@ -299,7 +299,7 @@ public static void PerformanceCounterCategory_ReadCategory() Assert.NotNull(idColCol); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounterCategory_ReadCategory_Invalid() { PerformanceCounterCategory pcc = new PerformanceCounterCategory(); diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/tests/PerformanceCounterTests.cs b/src/libraries/System.Diagnostics.PerformanceCounter/tests/PerformanceCounterTests.cs index 4e3382956106d3..bfaf5fba64b3de 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/tests/PerformanceCounterTests.cs +++ b/src/libraries/System.Diagnostics.PerformanceCounter/tests/PerformanceCounterTests.cs @@ -10,7 +10,7 @@ namespace System.Diagnostics.Tests { public static class PerformanceCounterTests { - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounter_CreateCounter_EmptyCounter() { using (PerformanceCounter counterSample = new PerformanceCounter()) @@ -36,7 +36,7 @@ public static void PerformanceCounter_CreateCounter_Count0() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounter_CreateCounter_ProcessorCounter() { using (PerformanceCounter counterSample = new PerformanceCounter("Processor", "Interrupts/sec", "0", ".")) @@ -47,7 +47,7 @@ public static void PerformanceCounter_CreateCounter_ProcessorCounter() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteAndReadNetPerfCounters))] public static void PerformanceCounter_CreateCounter_MultiInstanceReadOnly() { var name = nameof(PerformanceCounter_CreateCounter_MultiInstanceReadOnly) + "_Counter"; @@ -66,7 +66,7 @@ public static void PerformanceCounter_CreateCounter_MultiInstanceReadOnly() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteAndReadNetPerfCounters))] public static void PerformanceCounter_CreateCounter_SetReadOnly() { var name = nameof(PerformanceCounter_CreateCounter_SetReadOnly) + "_Counter"; @@ -83,7 +83,7 @@ public static void PerformanceCounter_CreateCounter_SetReadOnly() Helpers.DeleteCategory(name); } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounter_SetProperties_Null() { using (PerformanceCounter counterSample = new PerformanceCounter()) @@ -94,7 +94,7 @@ public static void PerformanceCounter_SetProperties_Null() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounter_SetRawValue_ReadOnly() { using (PerformanceCounter counterSample = new PerformanceCounter()) @@ -103,7 +103,7 @@ public static void PerformanceCounter_SetRawValue_ReadOnly() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounter_GetRawValue_EmptyCategoryName() { var name = nameof(PerformanceCounter_GetRawValue_EmptyCategoryName) + "_Counter"; @@ -116,7 +116,7 @@ public static void PerformanceCounter_GetRawValue_EmptyCategoryName() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounter_GetRawValue_EmptyCounterName() { var name = nameof(PerformanceCounter_GetRawValue_EmptyCounterName) + "_Counter"; @@ -129,7 +129,7 @@ public static void PerformanceCounter_GetRawValue_EmptyCounterName() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounter_GetRawValue_CounterDoesNotExist() { var name = nameof(PerformanceCounter_GetRawValue_CounterDoesNotExist) + "_Counter"; @@ -144,7 +144,7 @@ public static void PerformanceCounter_GetRawValue_CounterDoesNotExist() } [ActiveIssue("https://github.com/dotnet/runtime/issues/29753")] - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounter_NextValue_ProcessorCounter() { using (PerformanceCounter counterSample = new PerformanceCounter("Processor", "Interrupts/sec", "0", ".")) @@ -156,7 +156,7 @@ public static void PerformanceCounter_NextValue_ProcessorCounter() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounter_BeginInit_ProcessorCounter() { using (PerformanceCounter counterSample = new PerformanceCounter("Processor", "Interrupts/sec", "0", ".")) @@ -167,7 +167,7 @@ public static void PerformanceCounter_BeginInit_ProcessorCounter() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [Fact] public static void PerformanceCounter_BeginInitEndInit_ProcessorCounter() { using (PerformanceCounter counterSample = new PerformanceCounter("Processor", "Interrupts/sec", "0", ".")) @@ -179,7 +179,7 @@ public static void PerformanceCounter_BeginInitEndInit_ProcessorCounter() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteAndReadNetPerfCounters))] public static void PerformanceCounter_Decrement() { var name = nameof(PerformanceCounter_Decrement) + "_Counter"; @@ -193,7 +193,7 @@ public static void PerformanceCounter_Decrement() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteAndReadNetPerfCounters))] public static void PerformanceCounter_Increment() { var name = nameof(PerformanceCounter_Increment) + "_Counter"; @@ -207,7 +207,7 @@ public static void PerformanceCounter_Increment() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteAndReadNetPerfCounters))] public static void PerformanceCounter_IncrementBy_IncrementBy2() { var name = nameof(PerformanceCounter_IncrementBy_IncrementBy2) + "_Counter"; @@ -221,8 +221,7 @@ public static void PerformanceCounter_IncrementBy_IncrementBy2() } } - [ActiveIssue("https://github.com/dotnet/runtime/issues/24176")] - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteAndReadNetPerfCounters))] public static void PerformanceCounter_IncrementBy_IncrementByReadOnly() { var name = nameof(PerformanceCounter_IncrementBy_IncrementByReadOnly) + "_Counter"; @@ -233,7 +232,7 @@ public static void PerformanceCounter_IncrementBy_IncrementByReadOnly() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteAndReadNetPerfCounters))] public static void PerformanceCounter_Increment_IncrementReadOnly() { var name = nameof(PerformanceCounter_Increment_IncrementReadOnly) + "_Counter"; @@ -244,7 +243,7 @@ public static void PerformanceCounter_Increment_IncrementReadOnly() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteAndReadNetPerfCounters))] public static void PerformanceCounter_Decrement_DecrementReadOnly() { var name = nameof(PerformanceCounter_Decrement_DecrementReadOnly) + "_Counter"; @@ -270,7 +269,7 @@ public static void PerformanceCounter_RemoveInstance() } } - [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteToPerfCounters))] + [ConditionalFact(typeof(Helpers), nameof(Helpers.IsElevatedAndCanWriteAndReadNetPerfCounters))] public static void PerformanceCounter_NextSample_MultiInstance() { var name = nameof(PerformanceCounter_NextSample_MultiInstance) + "_Counter"; diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/tests/PerformanceDataTests.cs b/src/libraries/System.Diagnostics.PerformanceCounter/tests/PerformanceDataTests.cs index eeef6af01f3154..d2864ae7bd3e3e 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/tests/PerformanceDataTests.cs +++ b/src/libraries/System.Diagnostics.PerformanceCounter/tests/PerformanceDataTests.cs @@ -18,7 +18,7 @@ public PerformanceDataTests(PerformanceDataTestsFixture fixture) } // We run the test only if the stress mode is enabled and the process is elvated. - private static bool IsRunnableEnvironnement => Helpers.IsElevatedAndCanWriteToPerfCounters && TestEnvironment.IsStressModeEnabled && RemoteExecutor.IsSupported; + private static bool IsRunnableEnvironnement => Helpers.IsElevatedAndCanWriteAndReadNetPerfCounters && TestEnvironment.IsStressModeEnabled && RemoteExecutor.IsSupported; /// /// This test was taken from System.Diagnostics.PerformanceData documentation https://msdn.microsoft.com/en-us/library/system.diagnostics.performancedata(v=vs.110).aspx diff --git a/src/libraries/System.Drawing.Common/Directory.Build.props b/src/libraries/System.Drawing.Common/Directory.Build.props index 4784967b7f86ac..4cd5dd6fad76e7 100644 --- a/src/libraries/System.Drawing.Common/Directory.Build.props +++ b/src/libraries/System.Drawing.Common/Directory.Build.props @@ -4,5 +4,8 @@ Open true browser + 5.0.1 + 5.0.0.1 + 4.5.2 \ No newline at end of file diff --git a/src/libraries/System.Drawing.Common/src/System/Drawing/Graphics.Unix.cs b/src/libraries/System.Drawing.Common/src/System/Drawing/Graphics.Unix.cs index 5527eba2bc88d2..43421be35c6eee 100644 --- a/src/libraries/System.Drawing.Common/src/System/Drawing/Graphics.Unix.cs +++ b/src/libraries/System.Drawing.Common/src/System/Drawing/Graphics.Unix.cs @@ -49,9 +49,18 @@ public sealed partial class Graphics : MarshalByRefObject, IDisposable, IDeviceC private bool disposed; private static float defDpiX; private static float defDpiY; + private Metafile.MetafileHolder? _metafileHolder; internal Graphics(IntPtr nativeGraphics) => NativeGraphics = nativeGraphics; + internal Graphics(IntPtr nativeGraphics, Image image) : this(nativeGraphics) + { + if (image is Metafile mf) + { + _metafileHolder = mf.AddMetafileHolder(); + } + } + ~Graphics() { Dispose(); @@ -225,6 +234,14 @@ public void Dispose() status = Gdip.GdipDeleteGraphics(new HandleRef(this, NativeGraphics)); NativeGraphics = IntPtr.Zero; Gdip.CheckStatus(status); + + if (_metafileHolder != null) + { + var mh = _metafileHolder; + _metafileHolder = null; + mh.GraphicsDisposed(); + } + disposed = true; } @@ -487,7 +504,7 @@ public static Graphics FromImage(Image image) int status = Gdip.GdipGetImageGraphicsContext(image.nativeImage, out graphics); Gdip.CheckStatus(status); - Graphics result = new Graphics(graphics); + Graphics result = new Graphics(graphics, image); Rectangle rect = new Rectangle(0, 0, image.Width, image.Height); Gdip.GdipSetVisibleClip_linux(result.NativeGraphics, ref rect); diff --git a/src/libraries/System.Drawing.Common/src/System/Drawing/Imaging/Metafile.Unix.cs b/src/libraries/System.Drawing.Common/src/System/Drawing/Imaging/Metafile.Unix.cs index 18119d940d9239..558e40bdffc950 100644 --- a/src/libraries/System.Drawing.Common/src/System/Drawing/Imaging/Metafile.Unix.cs +++ b/src/libraries/System.Drawing.Common/src/System/Drawing/Imaging/Metafile.Unix.cs @@ -34,6 +34,7 @@ using System.IO; using System.Reflection; using System.ComponentModel; +using System.Diagnostics; using System.Runtime.InteropServices; using Gdip = System.Drawing.SafeNativeMethods.Gdip; using System.Runtime.Serialization; @@ -42,6 +43,93 @@ namespace System.Drawing.Imaging { public sealed partial class Metafile : Image { + // Non-null if a graphics instance was created using + // Graphics.FromImage(this) The metadata holder is responsible for + // freeing the nativeImage if the Metadata instance is disposed before + // the Graphics instance. + private MetafileHolder? _metafileHolder; + + // A class responsible for disposing of the native Metafile instance + // if it needs to outlive the managed Metafile instance. + // + // The following are both legal with win32 GDI+: + // Metafile mf = ...; // get a metafile instance + // Graphics g = Graphics.FromImage(mf); // get a graphics instance + // g.Dispose(); mf.Dispose(); // dispose of the graphics instance first + // OR + // mf.Dispose(); g.Dispose(); // dispose of the metafile instance first + // + // ligbgdiplus has a bug where disposing of the metafile instance first will + // trigger a use of freed memory when the graphics instance is disposed, which + // could lead to crashes when the native memory is reused. + // + // The metafile holder is designed to take ownership of the native metafile image + // when the managed Metafile instance is disposed while a Graphics instance is still + // not disposed (ie the second code pattern above) and to keep the native image alive until the graphics + // instance is disposed. + // + // Note that the following throws, so we only ever need to keep track of one Graphics + // instance at a time: + // Metafile mf = ...; // get a metafile instance + // Graphics g = Graphics.FromImage(mf); + // Graphics g2 = Graphics.FromImage(mf); // throws OutOfMemoryException on GDI+ on Win32 + internal sealed class MetafileHolder : IDisposable + { + private bool _disposed; + private IntPtr _nativeImage; + + + internal bool Disposed { get => _disposed; } + internal MetafileHolder() + { + _disposed = false; + _nativeImage = IntPtr.Zero; + } + + ~MetafileHolder() => Dispose(false); + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + internal void Dispose(bool disposing) + { + if (!_disposed) + { + IntPtr nativeImage = _nativeImage; + _nativeImage = IntPtr.Zero; + _disposed = true; + if (nativeImage != IntPtr.Zero) + { + int status = Gdip.GdipDisposeImage(nativeImage); + Gdip.CheckStatus(status); + } + } + } + + internal void MetafileDisposed(IntPtr nativeImage) + { + _nativeImage = nativeImage; + } + + internal void GraphicsDisposed() + { + Dispose(); + } + } + + internal MetafileHolder? AddMetafileHolder() + { + // If _metafileHolder is not null and hasn't been disposed yet, there's already a graphics instance associated with + // this metafile, the native code will return an error status. + if (_metafileHolder != null && !_metafileHolder.Disposed) + return null; + _metafileHolder = new MetafileHolder(); + return _metafileHolder; + } + // Usually called when cloning images that need to have // not only the handle saved, but also the underlying stream // (when using MS GDI+ and IStream we must ensure the stream stays alive for all the life of the Image) @@ -142,6 +230,21 @@ public Metafile(string fileName, IntPtr referenceHdc, Rectangle frameRect, Metaf Gdip.CheckStatus(status); } + protected override void Dispose(bool disposing) + { + if (_metafileHolder != null && !_metafileHolder.Disposed) + { + // There's a graphics instance created from this Metafile, + // transfer responsibility for disposing the nativeImage to the + // MetafileHolder + _metafileHolder.MetafileDisposed(nativeImage); + _metafileHolder = null; + nativeImage = IntPtr.Zero; + } + + base.Dispose(disposing); + } + // methods public IntPtr GetHenhmetafile() diff --git a/src/libraries/System.Globalization/tests/CultureInfo/CultureInfoParent.cs b/src/libraries/System.Globalization/tests/CultureInfo/CultureInfoParent.cs index be9d74eb63d793..b9d6be536f48da 100644 --- a/src/libraries/System.Globalization/tests/CultureInfo/CultureInfoParent.cs +++ b/src/libraries/System.Globalization/tests/CultureInfo/CultureInfoParent.cs @@ -11,10 +11,25 @@ public class CultureInfoParent [InlineData("en-US", "en")] [InlineData("en", "")] [InlineData("", "")] + [InlineData("zh-CN", "zh-Hans")] + [InlineData("zh-SG", "zh-Hans")] + [InlineData("zh-HK", "zh-Hant")] + [InlineData("zh-MO", "zh-Hant")] + [InlineData("zh-TW", "zh-Hant")] + [InlineData("zh-Hans-CN", "zh-Hans")] + [InlineData("zh-Hant-TW", "zh-Hant")] public void Parent(string name, string expectedParentName) { - CultureInfo culture = new CultureInfo(name); - Assert.Equal(new CultureInfo(expectedParentName), culture.Parent); + try + { + CultureInfo culture = new CultureInfo(name); + Assert.Equal(new CultureInfo(expectedParentName), culture.Parent); + } + catch (CultureNotFoundException) + { + // on downlevel Windows versions, some cultures are not supported e.g. zh-Hans-CN + // Ignore that and pass the test + } } [Fact] diff --git a/src/libraries/System.Globalization/tests/System/Globalization/TextInfoTests.cs b/src/libraries/System.Globalization/tests/System/Globalization/TextInfoTests.cs index 3ab4461d0176a9..f0c56f385c146f 100644 --- a/src/libraries/System.Globalization/tests/System/Globalization/TextInfoTests.cs +++ b/src/libraries/System.Globalization/tests/System/Globalization/TextInfoTests.cs @@ -120,10 +120,42 @@ public void IsRightToLeft(string name, bool expected) Assert.Equal(expected, new CultureInfo(name).TextInfo.IsRightToLeft); } - [Fact] - public void ListSeparator_EnUS() - { - Assert.NotEqual(string.Empty, new CultureInfo("en-US").TextInfo.ListSeparator); + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData("ar-SA", ";")] + [InlineData("as-IN", ",")] + [InlineData("ba-RU", ";")] + [InlineData("bs-cyrl-BA", ";")] + [InlineData("de-DE", ";")] + [InlineData("dv-MV", "\u060C")] + [InlineData("en-GB", ",")] + [InlineData("en-US", ",")] + [InlineData("es-ES", ";")] + [InlineData("es-MX", ",")] + [InlineData("fa-IR", "\u061B")] + [InlineData("fr-FR", ";")] + [InlineData("hr-HR", ";")] + [InlineData("it-IT", ";")] + [InlineData("ko-KR", ",")] + [InlineData("ku-arab-iq", "\u061B")] + [InlineData("nl-NL", ";")] + [InlineData("pl-pl", ";")] + [InlineData("pt-PT", ";")] + [InlineData("ru-RU", ";")] + [InlineData("sv-SE", ";")] + [InlineData("th-TH", ",")] + [InlineData("ja-jp", ",")] + [InlineData("zh-CN", ",")] + [InlineData("", ",")] + public void ListSeparatorTest(string cultureName, string separator) + { + try + { + Assert.Equal(separator, CultureInfo.GetCultureInfo(cultureName).TextInfo.ListSeparator); + } + catch (CultureNotFoundException) + { + // Ignore the cultures we cannot create on downlevel versions. + } } [Theory] diff --git a/src/libraries/System.IO.MemoryMappedFiles/src/ILLinkTrim_LibraryBuild.xml b/src/libraries/System.IO.MemoryMappedFiles/src/ILLinkTrim_LibraryBuild.xml new file mode 100644 index 00000000000000..6c7d766e65f5c2 --- /dev/null +++ b/src/libraries/System.IO.MemoryMappedFiles/src/ILLinkTrim_LibraryBuild.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/libraries/System.IO.MemoryMappedFiles/tests/SafeMemoryMappedViewHandleTests.cs b/src/libraries/System.IO.MemoryMappedFiles/tests/SafeMemoryMappedViewHandleTests.cs new file mode 100644 index 00000000000000..3941ab7f8adacf --- /dev/null +++ b/src/libraries/System.IO.MemoryMappedFiles/tests/SafeMemoryMappedViewHandleTests.cs @@ -0,0 +1,72 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; +using Microsoft.Win32.SafeHandles; +using Xunit; + +namespace System.IO.MemoryMappedFiles.Tests +{ + /// + /// Tests for SafeMemoryMappedViewHandle + /// + public class SafeMemoryMappedViewHandleTests : MemoryMappedFilesTestBase + { + /// + /// Tests that external code can use SafeMemoryMappedViewHandle as the result of a P/Invoke on Windows. + /// + [Fact] + [PlatformSpecific(TestPlatforms.Windows)] + public void SafeMemoryMappedViewHandle_CanUseInPInvoke_Windows() + { + const int BUF_SIZE = 256; + + Interop.Kernel32.SECURITY_ATTRIBUTES secAttrs = default; + using SafeMemoryMappedFileHandle fileHandle = Interop.Kernel32.CreateFileMapping( + new IntPtr(-1), + ref secAttrs, + Interop.Kernel32.PageOptions.PAGE_EXECUTE_READWRITE, + 0, + BUF_SIZE, + CreateUniqueMapName()); + + using SafeMemoryMappedViewHandle handle = Interop.Kernel32.MapViewOfFile( + fileHandle, + Interop.Kernel32.FileMapOptions.FILE_MAP_READ, + 0, + 0, + (UIntPtr)BUF_SIZE); + + Assert.NotNull(handle); + } + + /// + /// Tests that external code can use SafeMemoryMappedViewHandle as the result of a P/Invoke on Unix. + /// + [Fact] + [PlatformSpecific(TestPlatforms.AnyUnix & ~TestPlatforms.Browser)] + public void SafeMemoryMappedViewHandle_CanUseInPInvoke_Unix() + { + const int MAP_PRIVATE = 0x02; + const int MAP_ANONYMOUS = 0x10; + + const int PROT_READ = 0x1; + const int PROT_WRITE = 0x2; + + // The handle returned may be invalid, but this is testing that the + // SafeHandle object can successfully be created in a P/Invoke + using SafeMemoryMappedViewHandle handle = mmap( + IntPtr.Zero, + 1, + PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS, + -1, + 0); + + Assert.NotNull(handle); + } + + [DllImport("libc")] + private static unsafe extern SafeMemoryMappedViewHandle mmap(IntPtr addr, nint lengthint, int prot, int flags, int fd, nuint offset); + } +} diff --git a/src/libraries/System.IO.MemoryMappedFiles/tests/System.IO.MemoryMappedFiles.Tests.csproj b/src/libraries/System.IO.MemoryMappedFiles/tests/System.IO.MemoryMappedFiles.Tests.csproj index f0c3ca4b20818f..234773ebf71444 100644 --- a/src/libraries/System.IO.MemoryMappedFiles/tests/System.IO.MemoryMappedFiles.Tests.csproj +++ b/src/libraries/System.IO.MemoryMappedFiles/tests/System.IO.MemoryMappedFiles.Tests.csproj @@ -17,6 +17,13 @@ + + + + + + + - \ No newline at end of file + diff --git a/src/libraries/System.IO.Pipelines/Directory.Build.props b/src/libraries/System.IO.Pipelines/Directory.Build.props index bdcfca3b543cbb..0475bcea41e1e1 100644 --- a/src/libraries/System.IO.Pipelines/Directory.Build.props +++ b/src/libraries/System.IO.Pipelines/Directory.Build.props @@ -2,5 +2,7 @@ Open + 5.0.1 + 5.0.0.1 - \ No newline at end of file + diff --git a/src/libraries/System.IO.Pipelines/src/System/IO/Pipelines/Pipe.cs b/src/libraries/System.IO.Pipelines/src/System/IO/Pipelines/Pipe.cs index 5637dd98393515..f90ac5b8a9b9fe 100644 --- a/src/libraries/System.IO.Pipelines/src/System/IO/Pipelines/Pipe.cs +++ b/src/libraries/System.IO.Pipelines/src/System/IO/Pipelines/Pipe.cs @@ -960,7 +960,7 @@ internal ValueTask WriteAsync(ReadOnlyMemory source, Cancella ThrowHelper.ThrowInvalidOperationException_NoWritingAllowed(); } - if (_readerCompletion.IsCompleted) + if (_readerCompletion.IsCompletedOrThrow()) { return new ValueTask(new FlushResult(isCanceled: false, isCompleted: true)); } diff --git a/src/libraries/System.IO.Pipelines/tests/PipeReaderWriterFacts.cs b/src/libraries/System.IO.Pipelines/tests/PipeReaderWriterFacts.cs index 61126ab08b5995..987c239c5f9428 100644 --- a/src/libraries/System.IO.Pipelines/tests/PipeReaderWriterFacts.cs +++ b/src/libraries/System.IO.Pipelines/tests/PipeReaderWriterFacts.cs @@ -4,6 +4,7 @@ using System.Buffers; using System.Collections.Generic; using System.Linq; +using System.Runtime.CompilerServices; using System.Text; using System.Text.RegularExpressions; using System.Threading; @@ -199,36 +200,53 @@ public async Task HelloWorldAcrossTwoBlocks() Assert.Equal(" World", Encoding.ASCII.GetString(worldBytes)); } - [Fact] - public async Task ReadAsync_ThrowsIfWriterCompletedWithException() + [MethodImpl(MethodImplOptions.NoInlining)] + void ThrowTestException(Exception ex, Action catchAction) { - void ThrowTestException() + try { - try - { - throw new InvalidOperationException("Writer exception"); - } - catch (Exception e) - { - _pipe.Writer.Complete(e); - } + throw ex; + } + catch (Exception e) + { + catchAction(e); } + } - ThrowTestException(); + [Fact] + public async Task ReadAsync_ThrowsIfWriterCompletedWithException() + { + ThrowTestException(new InvalidOperationException("Writer exception"), e => _pipe.Writer.Complete(e)); InvalidOperationException invalidOperationException = await Assert.ThrowsAsync(async () => await _pipe.Reader.ReadAsync()); Assert.Equal("Writer exception", invalidOperationException.Message); - Assert.Contains("ThrowTestException", invalidOperationException.StackTrace); + Assert.Contains(nameof(ThrowTestException), invalidOperationException.StackTrace); invalidOperationException = await Assert.ThrowsAsync(async () => await _pipe.Reader.ReadAsync()); Assert.Equal("Writer exception", invalidOperationException.Message); - Assert.Contains("ThrowTestException", invalidOperationException.StackTrace); + Assert.Contains(nameof(ThrowTestException), invalidOperationException.StackTrace); Assert.Single(Regex.Matches(invalidOperationException.StackTrace, "Pipe.GetReadResult")); } + [Fact] + public async Task WriteAsync_ThrowsIfReaderCompletedWithException() + { + ThrowTestException(new InvalidOperationException("Reader exception"), e => _pipe.Reader.Complete(e)); + + InvalidOperationException invalidOperationException = + await Assert.ThrowsAsync(async () => await _pipe.Writer.WriteAsync(new byte[1])); + + Assert.Equal("Reader exception", invalidOperationException.Message); + Assert.Contains(nameof(ThrowTestException), invalidOperationException.StackTrace); + + invalidOperationException = await Assert.ThrowsAsync(async () => await _pipe.Writer.WriteAsync(new byte[1])); + Assert.Equal("Reader exception", invalidOperationException.Message); + Assert.Contains(nameof(ThrowTestException), invalidOperationException.StackTrace); + } + [Fact] public async Task ReaderShouldNotGetUnflushedBytes() { diff --git a/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Http2.cs b/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Http2.cs index 040558f36bfcdb..12db501f35728a 100644 --- a/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Http2.cs +++ b/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Http2.cs @@ -1657,6 +1657,7 @@ public static IEnumerable KeepAliveTestDataSource() [OuterLoop("Significant delay.")] [MemberData(nameof(KeepAliveTestDataSource))] [ConditionalTheory(nameof(SupportsAlpn))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/41929")] public async Task Http2_PingKeepAlive(TimeSpan keepAlivePingDelay, HttpKeepAlivePingPolicy keepAlivePingPolicy, bool expectRequestFail) { TimeSpan pingTimeout = TimeSpan.FromSeconds(5); diff --git a/src/libraries/System.Net.HttpListener/Directory.Build.props b/src/libraries/System.Net.HttpListener/Directory.Build.props index 1db5968484c1ec..4784967b7f86ac 100644 --- a/src/libraries/System.Net.HttpListener/Directory.Build.props +++ b/src/libraries/System.Net.HttpListener/Directory.Build.props @@ -3,5 +3,6 @@ Open true + browser \ No newline at end of file diff --git a/src/libraries/System.Net.HttpListener/ref/System.Net.HttpListener.cs b/src/libraries/System.Net.HttpListener/ref/System.Net.HttpListener.cs index cdca2d97d4fe9d..b9bf091ebab1ee 100644 --- a/src/libraries/System.Net.HttpListener/ref/System.Net.HttpListener.cs +++ b/src/libraries/System.Net.HttpListener/ref/System.Net.HttpListener.cs @@ -13,7 +13,7 @@ public HttpListener() { } public System.Net.AuthenticationSchemes AuthenticationSchemes { get { throw null; } set { } } public System.Net.AuthenticationSchemeSelector? AuthenticationSchemeSelectorDelegate { get { throw null; } set { } } public System.Security.Authentication.ExtendedProtection.ServiceNameCollection DefaultServiceNames { get { throw null; } } - public System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy ExtendedProtectionPolicy { get { throw null; } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] set { } } + public System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy ExtendedProtectionPolicy { get { throw null; } set { } } [System.Diagnostics.CodeAnalysis.DisallowNullAttribute] public System.Net.HttpListener.ExtendedProtectionSelector? ExtendedProtectionSelectorDelegate { get { throw null; } set { } } public bool IgnoreWriteExceptions { get { throw null; } set { } } @@ -87,17 +87,14 @@ internal HttpListenerRequest() { } public string HttpMethod { get { throw null; } } public System.IO.Stream InputStream { get { throw null; } } public bool IsAuthenticated { get { throw null; } } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public bool IsLocal { get { throw null; } } public bool IsSecureConnection { get { throw null; } } public bool IsWebSocketRequest { get { throw null; } } public bool KeepAlive { get { throw null; } } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public System.Net.IPEndPoint LocalEndPoint { get { throw null; } } public System.Version ProtocolVersion { get { throw null; } } public System.Collections.Specialized.NameValueCollection QueryString { get { throw null; } } public string? RawUrl { get { throw null; } } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public System.Net.IPEndPoint RemoteEndPoint { get { throw null; } } public System.Guid RequestTraceIdentifier { get { throw null; } } public string? ServiceName { get { throw null; } } @@ -105,7 +102,6 @@ internal HttpListenerRequest() { } public System.Uri? Url { get { throw null; } } public System.Uri? UrlReferrer { get { throw null; } } public string UserAgent { get { throw null; } } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public string UserHostAddress { get { throw null; } } public string UserHostName { get { throw null; } } public string[]? UserLanguages { get { throw null; } } @@ -129,14 +125,11 @@ internal HttpListenerResponse() { } public bool SendChunked { get { throw null; } set { } } public int StatusCode { get { throw null; } set { } } public string StatusDescription { get { throw null; } set { } } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public void Abort() { } public void AddHeader(string name, string value) { } public void AppendCookie(System.Net.Cookie cookie) { } public void AppendHeader(string name, string value) { } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public void Close() { } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public void Close(byte[] responseEntity, bool willBlock) { } public void CopyFrom(System.Net.HttpListenerResponse templateResponse) { } public void Redirect(string url) { } diff --git a/src/libraries/System.Net.HttpListener/src/Resources/Strings.resx b/src/libraries/System.Net.HttpListener/src/Resources/Strings.resx index f9747a646f6a33..c9c146f360c39e 100644 --- a/src/libraries/System.Net.HttpListener/src/Resources/Strings.resx +++ b/src/libraries/System.Net.HttpListener/src/Resources/Strings.resx @@ -389,4 +389,7 @@ The WebSocket is in an invalid state ('{0}') for this operation. Valid states are: '{1}' + + System.Net.HttpListener is not supported on this platform. + \ No newline at end of file diff --git a/src/libraries/System.Net.HttpListener/src/System.Net.HttpListener.csproj b/src/libraries/System.Net.HttpListener/src/System.Net.HttpListener.csproj index 476f5987eb069a..c0af10c41b83b5 100644 --- a/src/libraries/System.Net.HttpListener/src/System.Net.HttpListener.csproj +++ b/src/libraries/System.Net.HttpListener/src/System.Net.HttpListener.csproj @@ -4,6 +4,7 @@ false $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser enable + SR.SystemNetHttpListener_PlatformNotSupported @@ -33,7 +34,7 @@ - + @@ -247,7 +248,7 @@ - + diff --git a/src/libraries/System.Net.HttpListener/src/System/Net/HttpListener.cs b/src/libraries/System.Net.HttpListener/src/System/Net/HttpListener.cs index d40826ba07710e..b391474791591f 100644 --- a/src/libraries/System.Net.HttpListener/src/System/Net/HttpListener.cs +++ b/src/libraries/System.Net.HttpListener/src/System/Net/HttpListener.cs @@ -3,7 +3,6 @@ using System.Collections; using System.Diagnostics.CodeAnalysis; -using System.Runtime.Versioning; using System.Security.Authentication.ExtendedProtection; using System.Text; using System.Threading.Tasks; @@ -82,7 +81,6 @@ public AuthenticationSchemes AuthenticationSchemes public ExtendedProtectionPolicy ExtendedProtectionPolicy { get => _extendedProtectionPolicy; - [UnsupportedOSPlatform("browser")] set { CheckDisposed(); diff --git a/src/libraries/System.Net.HttpListener/src/System/Net/HttpListenerRequest.cs b/src/libraries/System.Net.HttpListener/src/System/Net/HttpListenerRequest.cs index a431ed61e3fc63..4540239e76b4e9 100644 --- a/src/libraries/System.Net.HttpListener/src/System/Net/HttpListenerRequest.cs +++ b/src/libraries/System.Net.HttpListener/src/System/Net/HttpListenerRequest.cs @@ -7,7 +7,6 @@ using System.Globalization; using System.Net.WebSockets; using System.Reflection; -using System.Runtime.Versioning; using System.Security.Cryptography.X509Certificates; using System.Text; using System.Threading.Tasks; @@ -111,7 +110,6 @@ public Encoding ContentEncoding public string? ContentType => Headers[HttpKnownHeaderNames.ContentType]; - [UnsupportedOSPlatform("browser")] public bool IsLocal => LocalEndPoint!.Address.Equals(RemoteEndPoint!.Address); public bool IsWebSocketRequest @@ -208,7 +206,6 @@ public NameValueCollection QueryString public string UserAgent => Headers[HttpKnownHeaderNames.UserAgent]!; - [UnsupportedOSPlatform("browser")] public string UserHostAddress => LocalEndPoint!.ToString(); public string UserHostName => Headers[HttpKnownHeaderNames.Host]!; diff --git a/src/libraries/System.Net.HttpListener/src/System/Net/Managed/HttpListenerRequest.Managed.cs b/src/libraries/System.Net.HttpListener/src/System/Net/Managed/HttpListenerRequest.Managed.cs index 51f91329b602d4..2d37b75b5183ca 100644 --- a/src/libraries/System.Net.HttpListener/src/System/Net/Managed/HttpListenerRequest.Managed.cs +++ b/src/libraries/System.Net.HttpListener/src/System/Net/Managed/HttpListenerRequest.Managed.cs @@ -34,7 +34,6 @@ using System.Diagnostics; using System.Globalization; using System.IO; -using System.Runtime.Versioning; using System.Security.Authentication.ExtendedProtection; using System.Security.Cryptography.X509Certificates; using System.Text; @@ -374,10 +373,8 @@ public Stream InputStream public bool IsSecureConnection => _context.Connection.IsSecure; - [UnsupportedOSPlatform("browser")] public IPEndPoint? LocalEndPoint => _context.Connection.LocalEndPoint; - [UnsupportedOSPlatform("browser")] public IPEndPoint? RemoteEndPoint => _context.Connection.RemoteEndPoint; public Guid RequestTraceIdentifier { get; } = Guid.NewGuid(); diff --git a/src/libraries/System.Net.HttpListener/src/System/Net/Managed/HttpListenerResponse.Managed.cs b/src/libraries/System.Net.HttpListener/src/System/Net/Managed/HttpListenerResponse.Managed.cs index 5f328cc53435d7..504c2ca9c9b7e2 100644 --- a/src/libraries/System.Net.HttpListener/src/System/Net/Managed/HttpListenerResponse.Managed.cs +++ b/src/libraries/System.Net.HttpListener/src/System/Net/Managed/HttpListenerResponse.Managed.cs @@ -30,7 +30,6 @@ using System.Globalization; using System.IO; -using System.Runtime.Versioning; using System.Text; namespace System.Net @@ -93,7 +92,6 @@ public int StatusCode private void Dispose() => Close(true); - [UnsupportedOSPlatform("browser")] public void Close() { if (Disposed) @@ -102,7 +100,6 @@ public void Close() Close(false); } - [UnsupportedOSPlatform("browser")] public void Abort() { if (Disposed) @@ -117,7 +114,6 @@ private void Close(bool force) _httpContext!.Connection.Close(force); } - [UnsupportedOSPlatform("browser")] public void Close(byte[] responseEntity, bool willBlock) { CheckDisposed(); diff --git a/src/libraries/System.Net.HttpListener/src/System/Net/Windows/HttpListenerRequest.Windows.cs b/src/libraries/System.Net.HttpListener/src/System/Net/Windows/HttpListenerRequest.Windows.cs index b49eb2c1f1a21c..c3b038a3f083fe 100644 --- a/src/libraries/System.Net.HttpListener/src/System/Net/Windows/HttpListenerRequest.Windows.cs +++ b/src/libraries/System.Net.HttpListener/src/System/Net/Windows/HttpListenerRequest.Windows.cs @@ -7,7 +7,6 @@ using System.IO; using System.Net.WebSockets; using System.Runtime.InteropServices; -using System.Runtime.Versioning; using System.Security; using System.Security.Authentication.ExtendedProtection; using System.Security.Cryptography; @@ -289,7 +288,6 @@ public bool HasEntityBody } } - [UnsupportedOSPlatform("browser")] public IPEndPoint RemoteEndPoint { get @@ -303,7 +301,6 @@ public IPEndPoint RemoteEndPoint } } - [UnsupportedOSPlatform("browser")] public IPEndPoint LocalEndPoint { get diff --git a/src/libraries/System.Net.HttpListener/src/System/Net/Windows/HttpListenerResponse.Windows.cs b/src/libraries/System.Net.HttpListener/src/System/Net/Windows/HttpListenerResponse.Windows.cs index 40d72e8af468b8..0c4b36af8efc75 100644 --- a/src/libraries/System.Net.HttpListener/src/System/Net/Windows/HttpListenerResponse.Windows.cs +++ b/src/libraries/System.Net.HttpListener/src/System/Net/Windows/HttpListenerResponse.Windows.cs @@ -8,7 +8,6 @@ using System.Text; using System.ComponentModel; using System.Diagnostics; -using System.Runtime.Versioning; using Microsoft.Win32.SafeHandles; namespace System.Net @@ -96,7 +95,6 @@ public Version ProtocolVersion } } - [UnsupportedOSPlatform("browser")] public void Abort() { if (Disposed) @@ -108,7 +106,6 @@ public void Abort() HttpListenerContext.Abort(); } - [UnsupportedOSPlatform("browser")] public void Close() { try @@ -121,7 +118,6 @@ public void Close() } } - [UnsupportedOSPlatform("browser")] public void Close(byte[] responseEntity, bool willBlock) { CheckDisposed(); diff --git a/src/libraries/System.Net.HttpListener/tests/AssemblyInfo.cs b/src/libraries/System.Net.HttpListener/tests/AssemblyInfo.cs new file mode 100644 index 00000000000000..be691cadde455f --- /dev/null +++ b/src/libraries/System.Net.HttpListener/tests/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Xunit; + +[assembly: SkipOnMono("System.Net.HttpListener is not supported on wasm", TestPlatforms.Browser)] \ No newline at end of file diff --git a/src/libraries/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj b/src/libraries/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj index 3d8ebf1e50be37..2cb8e45108846b 100644 --- a/src/libraries/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj +++ b/src/libraries/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj @@ -3,8 +3,10 @@ true ../src/Resources/Strings.resx $(NetCoreAppCurrent)-Windows_NT;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX + true + diff --git a/src/libraries/System.Net.NameResolution/src/System/Net/Dns.cs b/src/libraries/System.Net.NameResolution/src/System/Net/Dns.cs index 60cc964ec08cea..4288285f181da9 100644 --- a/src/libraries/System.Net.NameResolution/src/System/Net/Dns.cs +++ b/src/libraries/System.Net.NameResolution/src/System/Net/Dns.cs @@ -464,15 +464,22 @@ private static Task GetHostEntryOrAddressesCoreAsync(string hostName, bool justR { ValidateHostName(hostName); + Task? t; if (NameResolutionTelemetry.Log.IsEnabled()) { - return justAddresses - ? (Task)GetAddrInfoWithTelemetryAsync(hostName, justAddresses) - : (Task)GetAddrInfoWithTelemetryAsync(hostName, justAddresses); + t = justAddresses + ? (Task?)GetAddrInfoWithTelemetryAsync(hostName, justAddresses) + : (Task?)GetAddrInfoWithTelemetryAsync(hostName, justAddresses); } else { - return NameResolutionPal.GetAddrInfoAsync(hostName, justAddresses); + t = NameResolutionPal.GetAddrInfoAsync(hostName, justAddresses); + } + + // If async resolution started, return task to user. otherwise fall back to sync API on threadpool. + if (t != null) + { + return t; } } @@ -481,20 +488,34 @@ private static Task GetHostEntryOrAddressesCoreAsync(string hostName, bool justR RunAsync(s => GetHostEntryCore((string)s), hostName); } - private static async Task GetAddrInfoWithTelemetryAsync(string hostName, bool justAddresses) + private static Task? GetAddrInfoWithTelemetryAsync(string hostName, bool justAddresses) where T : class { - ValueStopwatch stopwatch = NameResolutionTelemetry.Log.BeforeResolution(hostName); + ValueStopwatch stopwatch = ValueStopwatch.StartNew(); + Task? task = NameResolutionPal.GetAddrInfoAsync(hostName, justAddresses); - T? result = null; - try + if (task != null) { - result = await ((Task)NameResolutionPal.GetAddrInfoAsync(hostName, justAddresses)).ConfigureAwait(false); - return result; + return CompleteAsync(task, hostName, stopwatch); } - finally + + // If resolution even did not start don't bother with telemetry. + // We will retry on thread-pool. + return null; + + static async Task CompleteAsync(Task task, string hostName, ValueStopwatch stopwatch) { - NameResolutionTelemetry.Log.AfterResolution(stopwatch, successful: result is not null); + _ = NameResolutionTelemetry.Log.BeforeResolution(hostName); + T? result = null; + try + { + result = await ((Task)task).ConfigureAwait(false); + return result; + } + finally + { + NameResolutionTelemetry.Log.AfterResolution(stopwatch, successful: result is not null); + } } } diff --git a/src/libraries/System.Net.NameResolution/src/System/Net/NameResolutionPal.Windows.cs b/src/libraries/System.Net.NameResolution/src/System/Net/NameResolutionPal.Windows.cs index 64fe7cc99bd63a..7cd15d89108375 100644 --- a/src/libraries/System.Net.NameResolution/src/System/Net/NameResolutionPal.Windows.cs +++ b/src/libraries/System.Net.NameResolution/src/System/Net/NameResolutionPal.Windows.cs @@ -141,7 +141,7 @@ public static unsafe string GetHostName() return new string((sbyte*)buffer); } - public static unsafe Task GetAddrInfoAsync(string hostName, bool justAddresses) + public static unsafe Task? GetAddrInfoAsync(string hostName, bool justAddresses) { GetAddrInfoExContext* context = GetAddrInfoExContext.AllocateContext(); @@ -166,7 +166,18 @@ public static unsafe Task GetAddrInfoAsync(string hostName, bool justAddresses) SocketError errorCode = (SocketError)Interop.Winsock.GetAddrInfoExW( hostName, null, Interop.Winsock.NS_ALL, IntPtr.Zero, &hints, &context->Result, IntPtr.Zero, &context->Overlapped, s_getAddrInfoExCallback, &context->CancelHandle); - if (errorCode != SocketError.IOPending) + + if (errorCode == SocketError.TryAgain) + { + // WSATRY_AGAIN indicates possible problem with reachability according to docs. + // However, if servers are really unreachable, we would still get IOPending here + // and final result would be posted via overlapped IO. + // synchronous failure here may signal issue when GetAddrInfoExW does not work from + // impersonated context. + GetAddrInfoExContext.FreeContext(context); + return null; + } + else if (errorCode != SocketError.IOPending) { ProcessResult(errorCode, context); } diff --git a/src/libraries/System.Net.Security/src/System/Net/Security/NegotiateStream.cs b/src/libraries/System.Net.Security/src/System/Net/Security/NegotiateStream.cs index 45ea9a02e07452..2cab7ef3071165 100644 --- a/src/libraries/System.Net.Security/src/System/Net/Security/NegotiateStream.cs +++ b/src/libraries/System.Net.Security/src/System/Net/Security/NegotiateStream.cs @@ -362,7 +362,7 @@ private async ValueTask ReadAsync(TAdapter adapter, Memory while (true) { - int readBytes = await ReadAllAsync(adapter, _readHeader).ConfigureAwait(false); + int readBytes = await ReadAllAsync(adapter, _readHeader, allowZeroRead: true).ConfigureAwait(false); if (readBytes == 0) { return 0; @@ -386,12 +386,8 @@ private async ValueTask ReadAsync(TAdapter adapter, Memory { _readBuffer = new byte[readBytes]; } - readBytes = await ReadAllAsync(adapter, new Memory(_readBuffer, 0, readBytes)).ConfigureAwait(false); - if (readBytes == 0) - { - // We already checked that the frame body is bigger than 0 bytes. Hence, this is an EOF. - throw new IOException(SR.net_io_eof); - } + + readBytes = await ReadAllAsync(adapter, new Memory(_readBuffer, 0, readBytes), allowZeroRead: false).ConfigureAwait(false); // Decrypt into internal buffer, change "readBytes" to count now _Decrypted Bytes_ // Decrypted data start from zero offset, the size can be shrunk after decryption. @@ -423,16 +419,16 @@ private async ValueTask ReadAsync(TAdapter adapter, Memory _readInProgress = 0; } - static async ValueTask ReadAllAsync(TAdapter adapter, Memory buffer) + static async ValueTask ReadAllAsync(TAdapter adapter, Memory buffer, bool allowZeroRead) { - int length = buffer.Length; + int read = 0; do { int bytes = await adapter.ReadAsync(buffer).ConfigureAwait(false); if (bytes == 0) { - if (!buffer.IsEmpty) + if (read != 0 || !allowZeroRead) { throw new IOException(SR.net_io_eof); } @@ -440,10 +436,11 @@ static async ValueTask ReadAllAsync(TAdapter adapter, Memory buffer) } buffer = buffer.Slice(bytes); + read += bytes; } while (!buffer.IsEmpty); - return length; + return read; } } diff --git a/src/libraries/System.Net.Security/src/System/Net/Security/SslStreamCertificateContext.cs b/src/libraries/System.Net.Security/src/System/Net/Security/SslStreamCertificateContext.cs index 4cba3232be530f..dd41cc7ec78fe9 100644 --- a/src/libraries/System.Net.Security/src/System/Net/Security/SslStreamCertificateContext.cs +++ b/src/libraries/System.Net.Security/src/System/Net/Security/SslStreamCertificateContext.cs @@ -38,16 +38,22 @@ public static SslStreamCertificateContext Create(X509Certificate2 target, X509Ce NetEventSource.Error(null, $"Failed to build chain for {target.Subject}"); } - int count = chain.ChainElements.Count - (TrimRootCertificate ? 1 : 2); - foreach (X509ChainStatus status in chain.ChainStatus) + int count = chain.ChainElements.Count - 1; +#pragma warning disable 0162 // Disable unreachable code warning. TrimRootCertificate is const bool = false on some platforms + if (TrimRootCertificate) { - if (status.Status.HasFlag(X509ChainStatusFlags.PartialChain)) + count--; + foreach (X509ChainStatus status in chain.ChainStatus) { - // The last cert isn't a root cert - count++; - break; + if (status.Status.HasFlag(X509ChainStatusFlags.PartialChain)) + { + // The last cert isn't a root cert + count++; + break; + } } } +#pragma warning restore 0162 // Count can be zero for a self-signed certificate, or a cert issued directly from a root. if (count > 0 && chain.ChainElements.Count > 1) diff --git a/src/libraries/System.Net.Security/tests/FunctionalTests/NegotiateStreamStreamToStreamTest.cs b/src/libraries/System.Net.Security/tests/FunctionalTests/NegotiateStreamStreamToStreamTest.cs index 9c674b77594a3a..62a0bf76ad3039 100644 --- a/src/libraries/System.Net.Security/tests/FunctionalTests/NegotiateStreamStreamToStreamTest.cs +++ b/src/libraries/System.Net.Security/tests/FunctionalTests/NegotiateStreamStreamToStreamTest.cs @@ -376,6 +376,29 @@ await TestConfiguration.WhenAllOrAnyFailedWithTimeout( await Assert.ThrowsAnyAsync(() => t); } } + + [ConditionalFact(nameof(IsNtlmInstalled))] + public async Task NegotiateStream_ReadToEof_Returns0() + { + (Stream stream1, Stream stream2) = TestHelper.GetConnectedTcpStreams(); + using (var client = new NegotiateStream(stream1)) + using (var server = new NegotiateStream(stream2)) + { + await TestConfiguration.WhenAllOrAnyFailedWithTimeout( + AuthenticateAsClientAsync(client, CredentialCache.DefaultNetworkCredentials, string.Empty), + AuthenticateAsServerAsync(server)); + + client.Write(Encoding.UTF8.GetBytes("hello")); + client.Dispose(); + + Assert.Equal('h', server.ReadByte()); + Assert.Equal('e', server.ReadByte()); + Assert.Equal('l', server.ReadByte()); + Assert.Equal('l', server.ReadByte()); + Assert.Equal('o', server.ReadByte()); + Assert.Equal(-1, server.ReadByte()); + } + } } public sealed class NegotiateStreamStreamToStreamTest_Async_Array : NegotiateStreamStreamToStreamTest diff --git a/src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamNetworkStreamTest.cs b/src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamNetworkStreamTest.cs index 14d61a3d7407bd..a7d33494dd4711 100644 --- a/src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamNetworkStreamTest.cs +++ b/src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamNetworkStreamTest.cs @@ -274,15 +274,30 @@ await TestConfiguration.WhenAllOrAnyFailedWithTimeout( } } - [Fact] - public async Task SslStream_UntrustedCaWithCustomCallback_OK() + [Theory] + [InlineData(true)] + [InlineData(false)] + public async Task SslStream_UntrustedCaWithCustomCallback_OK(bool usePartialChain) { + var rnd = new Random(); + int split = rnd.Next(0, _serverChain.Count - 1); + var clientOptions = new SslClientAuthenticationOptions() { TargetHost = "localhost" }; clientOptions.RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { - chain.ChainPolicy.CustomTrustStore.Add(_serverChain[_serverChain.Count -1]); + // add our custom root CA + chain.ChainPolicy.CustomTrustStore.Add(_serverChain[_serverChain.Count - 1]); chain.ChainPolicy.TrustMode = X509ChainTrustMode.CustomRootTrust; + // Add only one CA to verify that peer did send intermediate CA cert. + // In case of partial chain, we need to make missing certs available. + if (usePartialChain) + { + for (int i = split; i < _serverChain.Count - 1; i++) + { + chain.ChainPolicy.ExtraStore.Add(_serverChain[i]); + } + } bool result = chain.Build((X509Certificate2)certificate); Assert.True(result); @@ -291,7 +306,22 @@ public async Task SslStream_UntrustedCaWithCustomCallback_OK() }; var serverOptions = new SslServerAuthenticationOptions(); - serverOptions.ServerCertificateContext = SslStreamCertificateContext.Create(_serverCert, _serverChain); + X509Certificate2Collection serverChain; + if (usePartialChain) + { + // give first few certificates without root CA + serverChain = new X509Certificate2Collection(); + for (int i = 0; i < split; i++) + { + serverChain.Add(_serverChain[i]); + } + } + else + { + serverChain = _serverChain; + } + + serverOptions.ServerCertificateContext = SslStreamCertificateContext.Create(_serverCert, serverChain); (Stream clientStream, Stream serverStream) = TestHelper.GetConnectedStreams(); using (clientStream) @@ -319,6 +349,7 @@ public async Task SslStream_UntrustedCaWithCustomCallback_Throws(bool customCall clientOptions.RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { + // Add only root CA to verify that peer did send intermediate CA cert. chain.ChainPolicy.CustomTrustStore.Add(_serverChain[_serverChain.Count -1]); chain.ChainPolicy.TrustMode = X509ChainTrustMode.CustomRootTrust; // This should work and we should be able to trust the chain. @@ -331,7 +362,8 @@ public async Task SslStream_UntrustedCaWithCustomCallback_Throws(bool customCall } else { - errorMessage = "UntrustedRoot"; + // On Windows we hand whole chain to OS so they can always see the root CA. + errorMessage = PlatformDetection.IsWindows ? "UntrustedRoot" : "PartialChain"; } var serverOptions = new SslServerAuthenticationOptions(); diff --git a/src/libraries/System.Net.Security/tests/FunctionalTests/TestHelper.cs b/src/libraries/System.Net.Security/tests/FunctionalTests/TestHelper.cs index b16bcac29825de..446882e5e6b614 100644 --- a/src/libraries/System.Net.Security/tests/FunctionalTests/TestHelper.cs +++ b/src/libraries/System.Net.Security/tests/FunctionalTests/TestHelper.cs @@ -107,8 +107,10 @@ internal static void CleanupCertificates(string testName) } catch { }; } - internal static (X509Certificate2 certificate, X509Certificate2Collection) GenerateCertificates(string targetName, string? testName = null) + internal static (X509Certificate2 certificate, X509Certificate2Collection) GenerateCertificates(string targetName, string? testName = null, bool longChain = false) { + const int keySize = 2048; + if (PlatformDetection.IsWindows && testName != null) { CleanupCertificates(testName); @@ -132,9 +134,43 @@ internal static (X509Certificate2 certificate, X509Certificate2Collection) Gener out X509Certificate2 endEntity, subjectName: targetName, testName: testName, - keySize: 2048, + keySize: keySize, extensions: extensions); + if (longChain) + { + using (RSA intermedKey2 = RSA.Create(keySize)) + using (RSA intermedKey3 = RSA.Create(keySize)) + { + X509Certificate2 intermedPub2 = intermediate.CreateSubordinateCA( + $"CN=\"A SSL Test CA 2\", O=\"testName\"", + intermedKey2); + + X509Certificate2 intermedCert2 = intermedPub2.CopyWithPrivateKey(intermedKey2); + intermedPub2.Dispose(); + CertificateAuthority intermediateAuthority2 = new CertificateAuthority(intermedCert2, null, null, null); + + X509Certificate2 intermedPub3 = intermediateAuthority2.CreateSubordinateCA( + $"CN=\"A SSL Test CA 3\", O=\"testName\"", + intermedKey3); + + X509Certificate2 intermedCert3 = intermedPub3.CopyWithPrivateKey(intermedKey3); + intermedPub3.Dispose(); + CertificateAuthority intermediateAuthority3 = new CertificateAuthority(intermedCert3, null, null, null); + + RSA eeKey = (RSA)endEntity.PrivateKey; + endEntity = intermediateAuthority3.CreateEndEntity( + $"CN=\"A SSL Test\", O=\"testName\"", + eeKey, + extensions); + + endEntity = endEntity.CopyWithPrivateKey(eeKey); + + chain.Add(intermedCert3); + chain.Add(intermedCert2); + } + } + chain.Add(intermediate.CloneIssuerCert()); chain.Add(root.CloneIssuerCert()); diff --git a/src/libraries/System.Net.Sockets/src/ILLinkTrim_LibraryBuild.xml b/src/libraries/System.Net.Sockets/src/ILLinkTrim_LibraryBuild.xml new file mode 100644 index 00000000000000..f135e9f7685c1b --- /dev/null +++ b/src/libraries/System.Net.Sockets/src/ILLinkTrim_LibraryBuild.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/libraries/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncContext.Unix.cs b/src/libraries/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncContext.Unix.cs index 4abf6ff75c8127..ee460b59affdc9 100644 --- a/src/libraries/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncContext.Unix.cs +++ b/src/libraries/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncContext.Unix.cs @@ -1511,6 +1511,7 @@ public SocketError ReceiveFrom(Memory buffer, ref SocketFlags flags, byte[ { Buffer = buffer, Flags = flags, + SetReceivedFlags = true, SocketAddress = socketAddress, SocketAddressLen = socketAddressLen, }; diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SafeHandleTest.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SafeHandleTest.cs index c45786c30d7f59..36b594654f7442 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SafeHandleTest.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SafeHandleTest.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Runtime.InteropServices; using Xunit; namespace System.Net.Sockets.Tests @@ -15,5 +16,27 @@ public static void SafeHandle_NotIsInvalid() Assert.False(s.SafeHandle.IsInvalid); } } + + [Fact] + [PlatformSpecific(TestPlatforms.Windows | TestPlatforms.AnyUnix)] + public void SafeSocketHandle_CanUseInPInvoke() + { + const int AF_INET = 2; + const int SOCK_STREAM = 1; + + using SafeSocketHandle handle = Socket(AF_INET, SOCK_STREAM, 0); + Assert.NotNull(handle); + } + + private static SafeSocketHandle Socket(int af, int type, int protocol) => + OperatingSystem.IsWindows() ? + SocketWindows(af, type, protocol) : + SocketUnix(af, type, protocol); + + [DllImport("ws2_32.dll", EntryPoint = "socket")] + private static extern SafeSocketHandle SocketWindows(int af, int type, int protocol); + + [DllImport("libc", EntryPoint = "socket")] + private static extern SafeSocketHandle SocketUnix(int af, int type, int protocol); } } diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceive.cs similarity index 95% rename from src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive.cs rename to src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceive.cs index 50a329e044c2b0..649312d6da090a 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceive.cs @@ -48,86 +48,6 @@ from addr in Loopbacks from b in new[] { false, true } select new object[] { addr[0], b }; - [ActiveIssue("https://github.com/dotnet/runtime/issues/1712")] - [OuterLoop] - [Theory] - [MemberData(nameof(LoopbackWithBool))] - public async Task SendToRecvFrom_Datagram_UDP(IPAddress loopbackAddress, bool useClone) - { - IPAddress leftAddress = loopbackAddress, rightAddress = loopbackAddress; - - const int DatagramSize = 256; - const int DatagramsToSend = 256; - const int AckTimeout = 10000; - const int TestTimeout = 30000; - - using var origLeft = new Socket(leftAddress.AddressFamily, SocketType.Dgram, ProtocolType.Udp); - using var origRight = new Socket(rightAddress.AddressFamily, SocketType.Dgram, ProtocolType.Udp); - origLeft.BindToAnonymousPort(leftAddress); - origRight.BindToAnonymousPort(rightAddress); - - using var left = useClone ? new Socket(origLeft.SafeHandle) : origLeft; - using var right = useClone ? new Socket(origRight.SafeHandle) : origRight; - - var leftEndpoint = (IPEndPoint)left.LocalEndPoint; - var rightEndpoint = (IPEndPoint)right.LocalEndPoint; - - var receiverAck = new SemaphoreSlim(0); - var senderAck = new SemaphoreSlim(0); - - _output.WriteLine($"{DateTime.Now}: Sending data from {rightEndpoint} to {leftEndpoint}"); - - var receivedChecksums = new uint?[DatagramsToSend]; - Task leftThread = Task.Run(async () => - { - EndPoint remote = leftEndpoint.Create(leftEndpoint.Serialize()); - var recvBuffer = new byte[DatagramSize]; - for (int i = 0; i < DatagramsToSend; i++) - { - SocketReceiveFromResult result = await ReceiveFromAsync( - left, new ArraySegment(recvBuffer), remote); - Assert.Equal(DatagramSize, result.ReceivedBytes); - Assert.Equal(rightEndpoint, result.RemoteEndPoint); - - int datagramId = recvBuffer[0]; - Assert.Null(receivedChecksums[datagramId]); - receivedChecksums[datagramId] = Fletcher32.Checksum(recvBuffer, 0, result.ReceivedBytes); - - receiverAck.Release(); - bool gotAck = await senderAck.WaitAsync(TestTimeout); - Assert.True(gotAck, $"{DateTime.Now}: Timeout waiting {TestTimeout} for senderAck in iteration {i}"); - } - }); - - var sentChecksums = new uint[DatagramsToSend]; - using (right) - { - var random = new Random(); - var sendBuffer = new byte[DatagramSize]; - for (int i = 0; i < DatagramsToSend; i++) - { - random.NextBytes(sendBuffer); - sendBuffer[0] = (byte)i; - - int sent = await SendToAsync(right, new ArraySegment(sendBuffer), leftEndpoint); - - bool gotAck = await receiverAck.WaitAsync(AckTimeout); - Assert.True(gotAck, $"{DateTime.Now}: Timeout waiting {AckTimeout} for receiverAck in iteration {i} after sending {sent}. Receiver is in {leftThread.Status}"); - senderAck.Release(); - - Assert.Equal(DatagramSize, sent); - sentChecksums[i] = Fletcher32.Checksum(sendBuffer, 0, sent); - } - } - - await leftThread; - for (int i = 0; i < DatagramsToSend; i++) - { - Assert.NotNull(receivedChecksums[i]); - Assert.Equal(sentChecksums[i], (uint)receivedChecksums[i]); - } - } - [OuterLoop] [Theory] [MemberData(nameof(LoopbacksAndBuffers))] diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceiveNonParallel.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceiveNonParallel.cs new file mode 100644 index 00000000000000..bf0ab1076559b2 --- /dev/null +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceiveNonParallel.cs @@ -0,0 +1,151 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace System.Net.Sockets.Tests +{ + [Collection(nameof(NoParallelTests))] + public abstract class SendReceiveNonParallel : SocketTestHelperBase where T : SocketHelperBase, new() + { + public SendReceiveNonParallel(ITestOutputHelper output) : base(output) { } + + public static IEnumerable LoopbackWithBool => + from addr in Loopbacks + from b in new[] { false, true } + select new object[] { addr[0], b }; + + [OuterLoop("Serial execution of all variants takes long")] + [Theory] + [MemberData(nameof(LoopbackWithBool))] + public async Task SendToRecvFrom_Datagram_UDP(IPAddress loopbackAddress, bool useClone) + { + IPAddress leftAddress = loopbackAddress, rightAddress = loopbackAddress; + + const int DatagramSize = 256; + const int DatagramsToSend = 256; + const int ReceiverAckTimeout = 5000; + const int SenderAckTimeout = 10000; + + using var origLeft = new Socket(leftAddress.AddressFamily, SocketType.Dgram, ProtocolType.Udp); + using var origRight = new Socket(rightAddress.AddressFamily, SocketType.Dgram, ProtocolType.Udp); + origLeft.BindToAnonymousPort(leftAddress); + origRight.BindToAnonymousPort(rightAddress); + + using var left = useClone ? new Socket(origLeft.SafeHandle) : origLeft; + using var right = useClone ? new Socket(origRight.SafeHandle) : origRight; + + // Force non-blocking mode in ...SyncForceNonBlocking variants of the test: + ConfigureNonBlocking(left); + ConfigureNonBlocking(right); + + var leftEndpoint = (IPEndPoint)left.LocalEndPoint; + var rightEndpoint = (IPEndPoint)right.LocalEndPoint; + + var receiverAck = new SemaphoreSlim(0); + var senderAck = new SemaphoreSlim(0); + + _output.WriteLine($"{DateTime.Now}: Sending data from {rightEndpoint} to {leftEndpoint}"); + + var receivedChecksums = new uint?[DatagramsToSend]; + Task leftThread = Task.Run(async () => + { + EndPoint remote = leftEndpoint.Create(leftEndpoint.Serialize()); + var recvBuffer = new byte[DatagramSize]; + for (int i = 0; i < DatagramsToSend; i++) + { + SocketReceiveFromResult result = await ReceiveFromAsync( + left, new ArraySegment(recvBuffer), remote); + Assert.Equal(DatagramSize, result.ReceivedBytes); + Assert.Equal(rightEndpoint, result.RemoteEndPoint); + + int datagramId = recvBuffer[0]; + Assert.Null(receivedChecksums[datagramId]); + receivedChecksums[datagramId] = Fletcher32.Checksum(recvBuffer, 0, result.ReceivedBytes); + + receiverAck.Release(); + bool gotAck = await senderAck.WaitAsync(SenderAckTimeout); + Assert.True(gotAck, $"{DateTime.Now}: Timeout waiting {SenderAckTimeout} for senderAck in iteration {i}"); + } + }); + + var sentChecksums = new uint[DatagramsToSend]; + using (right) + { + var random = new Random(); + var sendBuffer = new byte[DatagramSize]; + for (int i = 0; i < DatagramsToSend; i++) + { + random.NextBytes(sendBuffer); + sendBuffer[0] = (byte)i; + + int sent = await SendToAsync(right, new ArraySegment(sendBuffer), leftEndpoint); + + bool gotAck = await receiverAck.WaitAsync(ReceiverAckTimeout); + Assert.True(gotAck, $"{DateTime.Now}: Timeout waiting {ReceiverAckTimeout} for receiverAck in iteration {i} after sending {sent}. Receiver is in {leftThread.Status}"); + senderAck.Release(); + + Assert.Equal(DatagramSize, sent); + sentChecksums[i] = Fletcher32.Checksum(sendBuffer, 0, sent); + } + } + + await leftThread; + for (int i = 0; i < DatagramsToSend; i++) + { + Assert.NotNull(receivedChecksums[i]); + Assert.Equal(sentChecksums[i], (uint)receivedChecksums[i]); + } + } + } + + public sealed class SendReceiveNonParallel_Sync : SendReceiveNonParallel + { + public SendReceiveNonParallel_Sync(ITestOutputHelper output) : base(output) { } + } + + public sealed class SendReceiveNonParallel_SyncForceNonBlocking : SendReceiveNonParallel + { + public SendReceiveNonParallel_SyncForceNonBlocking(ITestOutputHelper output) : base(output) { } + } + + public sealed class SendReceiveNonParallel_Apm : SendReceiveNonParallel + { + public SendReceiveNonParallel_Apm(ITestOutputHelper output) : base(output) { } + } + + public sealed class SendReceiveNonParallel_Task : SendReceiveNonParallel + { + public SendReceiveNonParallel_Task(ITestOutputHelper output) : base(output) { } + } + + public sealed class SendReceiveNonParallel_Eap : SendReceiveNonParallel + { + public SendReceiveNonParallel_Eap(ITestOutputHelper output) : base(output) { } + } + + public sealed class SendReceiveNonParallel_SpanSync : SendReceiveNonParallel + { + public SendReceiveNonParallel_SpanSync(ITestOutputHelper output) : base(output) { } + } + + public sealed class SendReceiveNonParallel_SpanSyncForceNonBlocking : SendReceiveNonParallel + { + public SendReceiveNonParallel_SpanSyncForceNonBlocking(ITestOutputHelper output) : base(output) { } + } + + public sealed class SendReceiveNonParallel_MemoryArrayTask : SendReceiveNonParallel + { + public SendReceiveNonParallel_MemoryArrayTask(ITestOutputHelper output) : base(output) { } + } + + public sealed class SendReceiveNonParallel_MemoryNativeTask : SendReceiveNonParallel + { + public SendReceiveNonParallel_MemoryNativeTask(ITestOutputHelper output) : base(output) { } + } +} \ No newline at end of file diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketTestHelper.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketTestHelper.cs index 41fa116b0c40c9..b6ff51778cc528 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketTestHelper.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketTestHelper.cs @@ -41,6 +41,7 @@ public abstract Task ReceiveFromAsync( public virtual bool SupportsAcceptIntoExistingSocket => true; public virtual bool SupportsAcceptReceive => false; public virtual void Listen(Socket s, int backlog) { s.Listen(backlog); } + public virtual void ConfigureNonBlocking(Socket s) { } } public class SocketHelperArraySync : SocketHelperBase @@ -91,6 +92,7 @@ public override void Listen(Socket s, int backlog) s.Listen(backlog); s.ForceNonBlocking(true); } + public override void ConfigureNonBlocking(Socket s) => s.ForceNonBlocking(true); } public sealed class SocketHelperApm : SocketHelperBase @@ -345,6 +347,7 @@ public Task ReceiveFromAsync( public bool SupportsAcceptIntoExistingSocket => _socketHelper.SupportsAcceptIntoExistingSocket; public bool SupportsAcceptReceive => _socketHelper.SupportsAcceptReceive; public void Listen(Socket s, int backlog) => _socketHelper.Listen(s, backlog); + public void ConfigureNonBlocking(Socket s) => _socketHelper.ConfigureNonBlocking(s); } public class SocketHelperSpanSync : SocketHelperArraySync @@ -364,6 +367,7 @@ public override Task AcceptAsync(Socket s) => Task.Run(() => { s.ForceNonBlocking(true); Socket accepted = s.Accept(); accepted.ForceNonBlocking(true); return accepted; }); public override Task ConnectAsync(Socket s, EndPoint endPoint) => Task.Run(() => { s.ForceNonBlocking(true); s.Connect(endPoint); }); + public override void ConfigureNonBlocking(Socket s) => s.ForceNonBlocking(true); } public sealed class SocketHelperMemoryArrayTask : SocketHelperTask diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj b/src/libraries/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj index 43662fa98f8dfe..3d6ee7f9ae7904 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj @@ -33,7 +33,8 @@ - + + diff --git a/src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs b/src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs index c07cd8f01e7936..1f5beaf0644d4f 100644 --- a/src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs +++ b/src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs @@ -357,15 +357,29 @@ public override Task SendAsync(ArraySegment buffer, WebSocketMessageType m WebSocketValidate.ValidateArraySegment(buffer, nameof(buffer)); - _writeBuffer ??= new MemoryStream(); - _writeBuffer.Write(buffer.Array!, buffer.Offset, buffer.Count); - if (!endOfMessage) + { + _writeBuffer ??= new MemoryStream(); + _writeBuffer.Write(buffer.Array!, buffer.Offset, buffer.Count); return Task.CompletedTask; + } - MemoryStream writtenBuffer = _writeBuffer; + MemoryStream? writtenBuffer = _writeBuffer; _writeBuffer = null; + if (writtenBuffer is not null) + { + writtenBuffer.Write(buffer.Array!, buffer.Offset, buffer.Count); + if (writtenBuffer.TryGetBuffer(out var tmpBuffer)) + { + buffer = tmpBuffer; + } + else + { + buffer = writtenBuffer.ToArray(); + } + } + try { switch (messageType) diff --git a/src/libraries/System.Net.WebSockets.Client/tests/ConnectTest.cs b/src/libraries/System.Net.WebSockets.Client/tests/ConnectTest.cs index 6d4d63a730f1ea..265db6d6c41679 100644 --- a/src/libraries/System.Net.WebSockets.Client/tests/ConnectTest.cs +++ b/src/libraries/System.Net.WebSockets.Client/tests/ConnectTest.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Generic; +using System.IO; using System.Net.Test.Common; using System.Threading; using System.Threading.Tasks; @@ -277,10 +278,18 @@ await LoopbackServer.CreateClientAndServerAsync(async uri => releaseServer.SetResult(); clientSocket.Dispose(); } - }, server => server.AcceptConnectionAsync(async connection => + }, async server => { - await releaseServer.Task; - }), new LoopbackServer.Options { WebSocketEndpoint = true }); + try + { + await server.AcceptConnectionAsync(async connection => + { + await releaseServer.Task; + }); + } + // Ignore IO exception on server as there are race conditions when client is cancelling. + catch (IOException) { } + }, new LoopbackServer.Options { WebSocketEndpoint = true }); } } } diff --git a/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/RandomizedStringEqualityComparer.cs b/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/RandomizedStringEqualityComparer.cs index 168959d83386a2..30db6049d22f77 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/RandomizedStringEqualityComparer.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/RandomizedStringEqualityComparer.cs @@ -80,31 +80,6 @@ internal OrdinalIgnoreCaseComparer(IEqualityComparer wrappedComparer) public override bool Equals(string? x, string? y) => string.EqualsOrdinalIgnoreCase(x, y); - public override int GetHashCode(string? obj) - { - if (obj is null) - { - return 0; - } - - // The Ordinal version of Marvin32 operates over bytes, so convert - // char count -> byte count. Guaranteed not to integer overflow. - return Marvin.ComputeHash32( - ref Unsafe.As(ref obj.GetRawStringData()), - (uint)obj.Length * sizeof(char), - _seed.p0, _seed.p1); - } - } - - private sealed class RandomizedOrdinalIgnoreCaseComparer : RandomizedStringEqualityComparer - { - internal RandomizedOrdinalIgnoreCaseComparer(IEqualityComparer underlyingComparer) - : base(underlyingComparer) - { - } - - public override bool Equals(string? x, string? y) => string.EqualsOrdinalIgnoreCase(x, y); - public override int GetHashCode(string? obj) { if (obj is null) diff --git a/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.Icu.cs b/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.Icu.cs index faa339fcc3000a..855d11a0fcb68a 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.Icu.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.Icu.cs @@ -235,11 +235,48 @@ private static int IcuGetGeoId(string cultureName) return geoId == -1 ? CultureData.Invariant.GeoId : geoId; } + private const uint DigitSubstitutionMask = 0x0000FFFF; + private const uint ListSeparatorMask = 0xFFFF0000; + private static int IcuGetDigitSubstitution(string cultureName) { Debug.Assert(!GlobalizationMode.UseNls); - int digitSubstitution = IcuLocaleData.GetLocaleDataNumericPart(cultureName, IcuLocaleDataParts.DigitSubstitution); - return digitSubstitution == -1 ? (int) DigitShapes.None : digitSubstitution; + int digitSubstitution = IcuLocaleData.GetLocaleDataNumericPart(cultureName, IcuLocaleDataParts.DigitSubstitutionOrListSeparator); + return digitSubstitution == -1 ? (int) DigitShapes.None : (int)(digitSubstitution & DigitSubstitutionMask); + } + + private static string IcuGetListSeparator(string? cultureName) + { + Debug.Assert(!GlobalizationMode.UseNls); + Debug.Assert(cultureName != null); + + int separator = IcuLocaleData.GetLocaleDataNumericPart(cultureName, IcuLocaleDataParts.DigitSubstitutionOrListSeparator); + if (separator != -1) + { + switch (separator & ListSeparatorMask) + { + case IcuLocaleData.CommaSep: + return ","; + + case IcuLocaleData.SemicolonSep: + return ";"; + + case IcuLocaleData.ArabicCommaSep: + return "\u060C"; + + case IcuLocaleData.ArabicSemicolonSep: + return "\u061B"; + + case IcuLocaleData.DoubleCommaSep: + return ",,"; + + default: + Debug.Assert(false, "[CultureData.IcuGetListSeparator] Unexpected ListSeparator value."); + break; + } + } + + return ","; // default separator } private static string IcuGetThreeLetterWindowsLanguageName(string cultureName) diff --git a/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.cs b/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.cs index 939c16e4d8d9a6..76e95e087dd3a4 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureData.cs @@ -1378,7 +1378,7 @@ internal int MeasurementSystem /// list Separator /// (user can override) /// - internal string ListSeparator => _sListSeparator ??= GetLocaleInfoCoreUserOverride(LocaleStringData.ListSeparator); + internal string ListSeparator => _sListSeparator ??= ShouldUseUserOverrideNlsData ? NlsGetLocaleInfo(LocaleStringData.ListSeparator) : IcuGetListSeparator(_sWindowsName); /// /// AM designator diff --git a/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureInfo.cs b/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureInfo.cs index 6cf5e4ca2fdf85..f98f048d3d1066 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureInfo.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Globalization/CultureInfo.cs @@ -496,6 +496,42 @@ public virtual CultureInfo Parent CultureInfo culture; string parentName = _cultureData.ParentName; + if (parentName == "zh") + { + if (_name.Length == 5 && _name[2] == '-') + { + // We need to keep the parent chain for the zh cultures as follows to preserve the resource lookup compatability + // zh-CN -> zh-Hans -> zh -> Invariant + // zh-HK -> zh-Hant -> zh -> Invariant + // zh-MO -> zh-Hant -> zh -> Invariant + // zh-SG -> zh-Hans -> zh -> Invariant + // zh-TW -> zh-Hant -> zh -> Invariant + + if ((_name[3] == 'C' && _name[4] == 'N' ) || // zh-CN + (_name[3] == 'S' && _name[4] == 'G' )) // zh-SG + { + parentName = "zh-Hans"; + } + else if ((_name[3] == 'H' && _name[4] == 'K' ) || // zh-HK + (_name[3] == 'M' && _name[4] == 'O' ) || // zh-MO + (_name[3] == 'T' && _name[4] == 'W' )) // zh-TW + { + parentName = "zh-Hant"; + } + } + else if (_name.Length > 8 && _name.AsSpan(2, 4).Equals("-Han", StringComparison.Ordinal) && _name[7] == '-') // cultures like zh-Hant-* and zh-Hans-* + { + if (_name[6] == 't') // zh-Hant-* + { + parentName = "zh-Hant"; + } + else if (_name[6] == 's') // zh-Hans-* + { + parentName = "zh-Hans"; + } + } + } + if (string.IsNullOrEmpty(parentName)) { culture = InvariantCulture; diff --git a/src/libraries/System.Private.CoreLib/src/System/Globalization/IcuLocaleData.cs b/src/libraries/System.Private.CoreLib/src/System/Globalization/IcuLocaleData.cs index 0c122978e60335..99cdc9775c9ae1 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Globalization/IcuLocaleData.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Globalization/IcuLocaleData.cs @@ -17,7 +17,7 @@ internal enum IcuLocaleDataParts MacCodePage = 3, EbcdicCodePage = 4, GeoId = 5, - DigitSubstitution = 6, + DigitSubstitutionOrListSeparator = 6, SpecificLocaleIndex = 7, ConsoleLocaleIndex = 8 } @@ -2639,876 +2639,883 @@ internal static class IcuLocaleData }; private const int NUMERIC_LOCALE_DATA_COUNT_PER_ROW = 9; + + internal const int CommaSep = 0 << 16; + internal const int SemicolonSep = 1 << 16; + internal const int ArabicCommaSep = 2 << 16; + internal const int ArabicSemicolonSep = 3 << 16; + internal const int DoubleCommaSep = 4 << 16; + // s_nameIndexToNumericData is mapping from index in s_localeNamesIndices to locale data. // each row in the table will have the following data: - // Lcid, Ansi codepage, Oem codepage, MAC codepage, EBCDIC codepage, Geo Id, Digit Substitution, specific locale index, Console locale index + // Lcid, Ansi codepage, Oem codepage, MAC codepage, EBCDIC codepage, Geo Id, Digit Substitution | ListSeparator, specific locale index, Console locale index private static readonly int[] s_nameIndexToNumericData = new int[] { - // Lcid, Ansi CP, Oem CP, MAC CP, EBCDIC CP, Geo Id, digit substitution, Specific culture index, keyboard Id, Console locale index // index - locale name - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 3 , 240 , // 0 - aa - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3e , 1 , 1 , 240 , // 1 - aa-dj - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 2 , 240 , // 2 - aa-er - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 3 , 240 , // 3 - aa-et - 0x36 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 6 , 6 , // 4 - af - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xfe , 1 , 5 , 240 , // 5 - af-na - 0x436 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 6 , 6 , // 6 - af-za - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 8 , 240 , // 7 - agq - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 8 , 240 , // 8 - agq-cm - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x59 , 1 , 10 , 240 , // 9 - ak - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x59 , 1 , 10 , 240 , // 10 - ak-gh - 0x5e , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 12 , 143 , // 11 - am - 0x45e , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 12 , 143 , // 12 - am-et - 0x1 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xcd , 0 , 33 , 143 , // 13 - ar - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x989e, 0 , 14 , 240 , // 14 - ar-001 - 0x3801 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xe0 , 0 , 15 , 143 , // 15 - ar-ae - 0x3c01 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x11 , 0 , 16 , 143 , // 16 - ar-bh - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x3e , 0 , 17 , 240 , // 17 - ar-dj - 0x1401 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x4 , 1 , 18 , 300 , // 18 - ar-dz - 0xc01 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x43 , 0 , 19 , 143 , // 19 - ar-eg - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x47 , 0 , 20 , 240 , // 20 - ar-er - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x75 , 0 , 21 , 240 , // 21 - ar-il - 0x801 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x79 , 0 , 22 , 143 , // 22 - ar-iq - 0x2c01 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x7e , 0 , 23 , 143 , // 23 - ar-jo - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x32 , 0 , 24 , 240 , // 24 - ar-km - 0x3401 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x88 , 0 , 25 , 143 , // 25 - ar-kw - 0x3001 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x8b , 0 , 26 , 143 , // 26 - ar-lb - 0x1001 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x94 , 1 , 27 , 143 , // 27 - ar-ly - 0x1801 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x9f , 1 , 28 , 300 , // 28 - ar-ma - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xa2 , 0 , 29 , 240 , // 29 - ar-mr - 0x2001 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xa4 , 0 , 30 , 143 , // 30 - ar-om - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xb8 , 0 , 31 , 240 , // 31 - ar-ps - 0x4001 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xc5 , 0 , 32 , 143 , // 32 - ar-qa - 0x401 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xcd , 0 , 33 , 143 , // 33 - ar-sa - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xdb , 0 , 34 , 240 , // 34 - ar-sd - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xd8 , 0 , 35 , 240 , // 35 - ar-so - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x114 , 0 , 36 , 240 , // 36 - ar-ss - 0x2801 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xde , 0 , 37 , 143 , // 37 - ar-sy - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x29 , 0 , 38 , 240 , // 38 - ar-td - 0x1c01 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xea , 1 , 39 , 300 , // 39 - ar-tn - 0x2401 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x105 , 0 , 40 , 143 , // 40 - ar-ye - 0x7a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x2e , 1 , 42 , 42 , // 41 - arn - 0x47a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x2e , 1 , 42 , 42 , // 42 - arn-cl - 0x4d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 44 , 143 , // 43 - as - 0x44d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 44 , 143 , // 44 - as-in - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 46 , 240 , // 45 - asa - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 46 , 240 , // 46 - asa-tz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd9 , 1 , 48 , 240 , // 47 - ast - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd9 , 1 , 48 , 240 , // 48 - ast-es - 0x2c , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0x5 , 1 , 53 , 53 , // 49 - az - 0x742c , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x5 , 1 , 51 , 51 , // 50 - az-cyrl - 0x82c , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x5 , 1 , 51 , 51 , // 51 - az-cyrl-az - 0x782c , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0x5 , 1 , 53 , 53 , // 52 - az-latn - 0x42c , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0x5 , 1 , 53 , 53 , // 53 - az-latn-az - 0x6d , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 , 55 , 55 , // 54 - ba - 0x46d , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 , 55 , 55 , // 55 - ba-ru - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 57 , 240 , // 56 - bas - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 57 , 240 , // 57 - bas-cm - 0x23 , 0x4e3 , 0x362 , 0x2717, 0x1f4 , 0x1d , 1 , 59 , 59 , // 58 - be - 0x423 , 0x4e3 , 0x362 , 0x2717, 0x1f4 , 0x1d , 1 , 59 , 59 , // 59 - be-by - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x107 , 1 , 61 , 240 , // 60 - bem - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x107 , 1 , 61 , 240 , // 61 - bem-zm - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 63 , 240 , // 62 - bez - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 63 , 240 , // 63 - bez-tz - 0x2 , 0x4e3 , 0x362 , 0x2717, 0x5221, 0x23 , 1 , 65 , 65 , // 64 - bg - 0x402 , 0x4e3 , 0x362 , 0x2717, 0x5221, 0x23 , 1 , 65 , 65 , // 65 - bg-bg - 0x66 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 , 67 , 240 , // 66 - bin - 0x466 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 , 67 , 240 , // 67 - bin-ng - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 , 70 , 240 , // 68 - bm - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 , 70 , 240 , // 69 - bm-latn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 , 70 , 240 , // 70 - bm-latn-ml - 0x45 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x17 , 1 , 72 , 143 , // 71 - bn - 0x845 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x17 , 1 , 72 , 143 , // 72 - bn-bd - 0x445 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 73 , 143 , // 73 - bn-in - 0x51 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 , 75 , 143 , // 74 - bo - 0x451 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 , 75 , 143 , // 75 - bo-cn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 76 , 240 , // 76 - bo-in - 0x7e , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 78 , 78 , // 77 - br - 0x47e , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 78 , 78 , // 78 - br-fr - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 80 , 240 , // 79 - brx - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 80 , 240 , // 80 - brx-in - 0x781a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 , 85 , 85 , // 81 - bs - 0x641a , 0x4e3 , 0x357 , 0x2762, 0x366 , 0x19 , 1 , 83 , 83 , // 82 - bs-cyrl - 0x201a , 0x4e3 , 0x357 , 0x2762, 0x366 , 0x19 , 1 , 83 , 83 , // 83 - bs-cyrl-ba - 0x681a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 , 85 , 85 , // 84 - bs-latn - 0x141a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 , 85 , 85 , // 85 - bs-latn-ba - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 87 , 240 , // 86 - byn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 87 , 240 , // 87 - byn-er - 0x3 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 , 90 , 90 , // 88 - ca - 0x1000 , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0x8 , 1 , 89 , 240 , // 89 - ca-ad - 0x403 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 , 90 , 90 , // 90 - ca-es - 0x803 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 , 91 , 90 , // 91 - ca-es-valencia - 0x1000 , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0x54 , 1 , 92 , 240 , // 92 - ca-fr - 0x1000 , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0x76 , 1 , 93 , 240 , // 93 - ca-it - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 , 95 , 240 , // 94 - ce - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 , 95 , 240 , // 95 - ce-ru - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 97 , 240 , // 96 - cgg - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 97 , 240 , // 97 - cgg-ug - 0x5c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 , 100 , 240 , // 98 - chr - 0x7c5c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 , 100 , 240 , // 99 - chr-cher - 0x45c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 , 100 , 240 , // 100 - chr-cher-us - 0x83 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 102 , 102 , // 101 - co - 0x483 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 102 , 102 , // 102 - co-fr - 0x5 , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x4b , 1 , 104 , 104 , // 103 - cs - 0x405 , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x4b , 1 , 104 , 104 , // 104 - cs-cz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 , 106 , 240 , // 105 - cu - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 , 106 , 240 , // 106 - cu-ru - 0x52 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 , 108 , 108 , // 107 - cy - 0x452 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 , 108 , 108 , // 108 - cy-gb - 0x6 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0x3d , 1 , 110 , 110 , // 109 - da - 0x406 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0x3d , 1 , 110 , 110 , // 110 - da-dk - 0x1000 , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0x5d , 1 , 111 , 240 , // 111 - da-gl - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 113 , 240 , // 112 - dav - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 113 , 240 , // 113 - dav-ke - 0x7 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x5e , 1 , 118 , 118 , // 114 - de - 0xc07 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0xe , 1 , 115 , 115 , // 115 - de-at - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x15 , 1 , 116 , 240 , // 116 - de-be - 0x807 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0xdf , 1 , 117 , 117 , // 117 - de-ch - 0x407 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x5e , 1 , 118 , 118 , // 118 - de-de - 0x10407, 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x5e , 1 , 118 , 118 , // 119 - de-de_phoneb - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x76 , 1 , 120 , 240 , // 120 - de-it - 0x1407 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x91 , 1 , 121 , 121 , // 121 - de-li - 0x1007 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x93 , 1 , 122 , 122 , // 122 - de-lu - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xad , 1 , 124 , 240 , // 123 - dje - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xad , 1 , 124 , 240 , // 124 - dje-ne - 0x7c2e , 0x4e4 , 0x352 , 0x2710, 0x366 , 0x5e , 1 , 126 , 126 , // 125 - dsb - 0x82e , 0x4e4 , 0x352 , 0x2710, 0x366 , 0x5e , 1 , 126 , 126 , // 126 - dsb-de - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 128 , 240 , // 127 - dua - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 128 , 240 , // 128 - dua-cm - 0x65 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa5 , 1 , 130 , 143 , // 129 - dv - 0x465 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa5 , 1 , 130 , 143 , // 130 - dv-mv - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd2 , 1 , 132 , 240 , // 131 - dyo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd2 , 1 , 132 , 240 , // 132 - dyo-sn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x22 , 2 , 134 , 240 , // 133 - dz - 0xc51 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x22 , 2 , 134 , 240 , // 134 - dz-bt - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 136 , 240 , // 135 - ebu - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 136 , 240 , // 136 - ebu-ke - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x59 , 1 , 138 , 240 , // 137 - ee - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x59 , 1 , 138 , 240 , // 138 - ee-gh - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xe8 , 1 , 139 , 240 , // 139 - ee-tg - 0x8 , 0x4e5 , 0x2e1 , 0x2716, 0x4f31, 0x62 , 1 , 142 , 142 , // 140 - el - 0x1000 , 0x4e5 , 0x2e1 , 0x2716, 0x4f31, 0x3b , 1 , 141 , 240 , // 141 - el-cy - 0x408 , 0x4e5 , 0x2e1 , 0x2716, 0x4f31, 0x62 , 1 , 142 , 142 , // 142 - el-gr - 0x9 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 , 240 , 240 , // 143 - en - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x989e, 1 , 144 , 240 , // 144 - en-001 - 0x2409 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x993248, 1 , 145 , 145 , // 145 - en-029 - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x292d, 1 , 146 , 240 , // 146 - en-150 - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x2 , 1 , 147 , 240 , // 147 - en-ag - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x12c , 1 , 148 , 240 , // 148 - en-ai - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa , 1 , 149 , 240 , // 149 - en-as - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xe , 1 , 150 , 240 , // 150 - en-at - 0xc09 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc , 1 , 151 , 151 , // 151 - en-au - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x12 , 1 , 152 , 240 , // 152 - en-bb - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15 , 1 , 153 , 240 , // 153 - en-be - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x26 , 1 , 154 , 240 , // 154 - en-bi - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x14 , 1 , 155 , 240 , // 155 - en-bm - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x16 , 1 , 156 , 240 , // 156 - en-bs - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x13 , 1 , 157 , 240 , // 157 - en-bw - 0x2809 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x18 , 1 , 158 , 158 , // 158 - en-bz - 0x1009 , 0x4e4 , 0x352 , 0x2710, 0x25 , 0x27 , 1 , 159 , 159 , // 159 - en-ca - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x137 , 1 , 160 , 240 , // 160 - en-cc - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdf , 1 , 161 , 240 , // 161 - en-ch - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x138 , 1 , 162 , 240 , // 162 - en-ck - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x31 , 1 , 163 , 240 , // 163 - en-cm - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x135 , 1 , 164 , 240 , // 164 - en-cx - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3b , 1 , 165 , 240 , // 165 - en-cy - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 , 166 , 240 , // 166 - en-de - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3d , 1 , 167 , 240 , // 167 - en-dk - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x3f , 1 , 168 , 240 , // 168 - en-dm - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x47 , 1 , 169 , 240 , // 169 - en-er - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x4d , 1 , 170 , 240 , // 170 - en-fi - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x4e , 1 , 171 , 240 , // 171 - en-fj - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x13b , 1 , 172 , 240 , // 172 - en-fk - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x50 , 1 , 173 , 240 , // 173 - en-fm - 0x809 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 , 174 , 174 , // 174 - en-gb - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x5b , 1 , 175 , 240 , // 175 - en-gd - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x144 , 1 , 176 , 240 , // 176 - en-gg - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x59 , 1 , 177 , 240 , // 177 - en-gh - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x5a , 1 , 178 , 240 , // 178 - en-gi - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x56 , 1 , 179 , 240 , // 179 - en-gm - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x142 , 1 , 180 , 240 , // 180 - en-gu - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x65 , 1 , 181 , 240 , // 181 - en-gy - 0x3c09 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x68 , 1 , 182 , 240 , // 182 - en-hk - 0x3809 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 , 183 , 240 , // 183 - en-id - 0x1809 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x44 , 1 , 184 , 184 , // 184 - en-ie - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x75 , 1 , 185 , 240 , // 185 - en-il - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x3b16, 1 , 186 , 240 , // 186 - en-im - 0x4009 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x71 , 1 , 187 , 187 , // 187 - en-in - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x72 , 1 , 188 , 240 , // 188 - en-io - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x148 , 1 , 189 , 240 , // 189 - en-je - 0x2009 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x7c , 1 , 190 , 190 , // 190 - en-jm - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x81 , 1 , 191 , 240 , // 191 - en-ke - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x85 , 1 , 192 , 240 , // 192 - en-ki - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xcf , 1 , 193 , 240 , // 193 - en-kn - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x133 , 1 , 194 , 240 , // 194 - en-ky - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xda , 1 , 195 , 240 , // 195 - en-lc - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x8e , 1 , 196 , 240 , // 196 - en-lr - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x92 , 1 , 197 , 240 , // 197 - en-ls - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x95 , 1 , 198 , 240 , // 198 - en-mg - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc7 , 1 , 199 , 240 , // 199 - en-mh - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x97 , 1 , 200 , 240 , // 200 - en-mo - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x151 , 1 , 201 , 240 , // 201 - en-mp - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x14c , 1 , 202 , 240 , // 202 - en-ms - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa3 , 1 , 203 , 240 , // 203 - en-mt - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa0 , 1 , 204 , 240 , // 204 - en-mu - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x9c , 1 , 205 , 240 , // 205 - en-mw - 0x4409 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xa7 , 1 , 206 , 206 , // 206 - en-my - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xfe , 1 , 207 , 240 , // 207 - en-na - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x150 , 1 , 208 , 240 , // 208 - en-nf - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 , 209 , 240 , // 209 - en-ng - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb0 , 1 , 210 , 240 , // 210 - en-nl - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb4 , 1 , 211 , 240 , // 211 - en-nr - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x14f , 1 , 212 , 240 , // 212 - en-nu - 0x1409 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb7 , 1 , 213 , 213 , // 213 - en-nz - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc2 , 1 , 214 , 240 , // 214 - en-pg - 0x3409 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xc9 , 1 , 215 , 215 , // 215 - en-ph - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xbe , 1 , 216 , 240 , // 216 - en-pk - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x153 , 1 , 217 , 240 , // 217 - en-pn - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xca , 1 , 218 , 240 , // 218 - en-pr - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc3 , 1 , 219 , 240 , // 219 - en-pw - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xcc , 1 , 220 , 240 , // 220 - en-rw - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x1e , 1 , 221 , 240 , // 221 - en-sb - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd0 , 1 , 222 , 240 , // 222 - en-sc - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xdb , 1 , 223 , 240 , // 223 - en-sd - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdd , 1 , 224 , 240 , // 224 - en-se - 0x4809 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xd7 , 1 , 225 , 225 , // 225 - en-sg - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x157 , 1 , 226 , 240 , // 226 - en-sh - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd4 , 1 , 227 , 240 , // 227 - en-si - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd5 , 1 , 228 , 240 , // 228 - en-sl - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x114 , 1 , 229 , 240 , // 229 - en-ss - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x78f7, 1 , 230 , 240 , // 230 - en-sx - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x104 , 1 , 231 , 240 , // 231 - en-sz - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15d , 1 , 232 , 240 , // 232 - en-tc - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15b , 1 , 233 , 240 , // 233 - en-tk - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xe7 , 1 , 234 , 240 , // 234 - en-to - 0x2c09 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xe1 , 1 , 235 , 235 , // 235 - en-tt - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xec , 1 , 236 , 240 , // 236 - en-tv - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xef , 1 , 237 , 240 , // 237 - en-tz - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xf0 , 1 , 238 , 240 , // 238 - en-ug - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x9a55d40, 1 , 239 , 240 , // 239 - en-um - 0x409 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 , 240 , 240 , // 240 - en-us - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xf8 , 1 , 241 , 240 , // 241 - en-vc - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15f , 1 , 242 , 240 , // 242 - en-vg - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xfc , 1 , 243 , 240 , // 243 - en-vi - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xae , 1 , 244 , 240 , // 244 - en-vu - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x103 , 1 , 245 , 240 , // 245 - en-ws - 0x1c09 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xd1 , 1 , 246 , 246 , // 246 - en-za - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x107 , 1 , 247 , 240 , // 247 - en-zm - 0x3009 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x108 , 1 , 248 , 248 , // 248 - en-zw - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 250 , 240 , // 249 - eo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 250 , 240 , // 250 - eo-001 - 0xa , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xd9 , 1 , 262 , 262 , // 251 - es - 0x580a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x9a55d41, 1 , 252 , 240 , // 252 - es-419 - 0x2c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb , 1 , 253 , 253 , // 253 - es-ar - 0x400a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x1a , 1 , 254 , 254 , // 254 - es-bo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x20 , 1 , 255 , 240 , // 255 - es-br - 0x340a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x2e , 1 , 256 , 256 , // 256 - es-cl - 0x240a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x33 , 1 , 257 , 257 , // 257 - es-co - 0x140a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x36 , 1 , 258 , 258 , // 258 - es-cr - 0x5c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x38 , 1 , 259 , 240 , // 259 - es-cu - 0x1c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x41 , 1 , 260 , 260 , // 260 - es-do - 0x300a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x42 , 1 , 261 , 261 , // 261 - es-ec - 0xc0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xd9 , 1 , 262 , 262 , // 262 - es-es - 0x40a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xd9 , 1 , 263 , 263 , // 263 - es-es_tradnl - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x45 , 1 , 264 , 240 , // 264 - es-gq - 0x100a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x63 , 1 , 265 , 265 , // 265 - es-gt - 0x480a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x6a , 1 , 266 , 266 , // 266 - es-hn - 0x80a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xa6 , 1 , 267 , 267 , // 267 - es-mx - 0x4c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb6 , 1 , 268 , 268 , // 268 - es-ni - 0x180a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xc0 , 1 , 269 , 269 , // 269 - es-pa - 0x280a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xbb , 1 , 270 , 270 , // 270 - es-pe - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xc9 , 1 , 271 , 240 , // 271 - es-ph - 0x500a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xca , 1 , 272 , 272 , // 272 - es-pr - 0x3c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb9 , 1 , 273 , 273 , // 273 - es-py - 0x440a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x48 , 1 , 274 , 274 , // 274 - es-sv - 0x540a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xf4 , 1 , 275 , 275 , // 275 - es-us - 0x380a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xf6 , 1 , 276 , 276 , // 276 - es-uy - 0x200a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xf9 , 1 , 277 , 277 , // 277 - es-ve - 0x25 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x46 , 1 , 279 , 279 , // 278 - et - 0x425 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x46 , 1 , 279 , 279 , // 279 - et-ee - 0x2d , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0xd9 , 1 , 281 , 240 , // 280 - eu - 0x42d , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0xd9 , 1 , 281 , 240 , // 281 - eu-es - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 283 , 240 , // 282 - ewo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 283 , 240 , // 283 - ewo-cm - 0x29 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x74 , 0 , 285 , 143 , // 284 - fa - 0x429 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x74 , 0 , 285 , 143 , // 285 - fa-ir - 0x67 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 , 290 , 290 , // 286 - ff - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x31 , 1 , 287 , 240 , // 287 - ff-cm - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x64 , 1 , 288 , 240 , // 288 - ff-gn - 0x7c67 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 , 290 , 290 , // 289 - ff-latn - 0x867 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 , 290 , 290 , // 290 - ff-latn-sn - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xa2 , 1 , 291 , 240 , // 291 - ff-mr - 0x467 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xaf , 1 , 292 , 240 , // 292 - ff-ng - 0xb , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 , 294 , 294 , // 293 - fi - 0x40b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 , 294 , 294 , // 294 - fi-fi - 0x64 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xc9 , 1 , 296 , 296 , // 295 - fil - 0x464 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xc9 , 1 , 296 , 296 , // 296 - fil-ph - 0x38 , 0x4e4 , 0x352 , 0x275f, 0x4f35, 0x51 , 1 , 299 , 299 , // 297 - fo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3d , 1 , 298 , 240 , // 298 - fo-dk - 0x438 , 0x4e4 , 0x352 , 0x275f, 0x4f35, 0x51 , 1 , 299 , 299 , // 299 - fo-fo - 0xc , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 316 , 316 , // 300 - fr - 0x1c0c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x993248, 1 , 301 , 316 , // 301 - fr-029 - 0x80c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x15 , 1 , 302 , 302 , // 302 - fr-be - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xf5 , 1 , 303 , 240 , // 303 - fr-bf - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x26 , 1 , 304 , 240 , // 304 - fr-bi - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x1c , 1 , 305 , 240 , // 305 - fr-bj - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x9a55c4f, 1 , 306 , 240 , // 306 - fr-bl - 0xc0c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x27 , 1 , 307 , 307 , // 307 - fr-ca - 0x240c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x2c , 1 , 308 , 240 , // 308 - fr-cd - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x37 , 1 , 309 , 240 , // 309 - fr-cf - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x2b , 1 , 310 , 240 , // 310 - fr-cg - 0x100c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xdf , 1 , 311 , 311 , // 311 - fr-ch - 0x300c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x77 , 1 , 312 , 240 , // 312 - fr-ci - 0x2c0c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x31 , 1 , 313 , 240 , // 313 - fr-cm - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x3e , 1 , 314 , 240 , // 314 - fr-dj - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x4 , 1 , 315 , 240 , // 315 - fr-dz - 0x40c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 316 , 316 , // 316 - fr-fr - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x57 , 1 , 317 , 240 , // 317 - fr-ga - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x13d , 1 , 318 , 240 , // 318 - fr-gf - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x64 , 1 , 319 , 240 , // 319 - fr-gn - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x141 , 1 , 320 , 240 , // 320 - fr-gp - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x45 , 1 , 321 , 240 , // 321 - fr-gq - 0x3c0c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x67 , 1 , 322 , 240 , // 322 - fr-ht - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x32 , 1 , 323 , 240 , // 323 - fr-km - 0x140c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x93 , 1 , 324 , 324 , // 324 - fr-lu - 0x380c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x9f , 1 , 325 , 240 , // 325 - fr-ma - 0x180c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x9e , 1 , 326 , 326 , // 326 - fr-mc - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x7bda, 1 , 327 , 240 , // 327 - fr-mf - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x95 , 1 , 328 , 240 , // 328 - fr-mg - 0x340c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x9d , 1 , 329 , 240 , // 329 - fr-ml - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x14a , 1 , 330 , 240 , // 330 - fr-mq - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xa2 , 1 , 331 , 240 , // 331 - fr-mr - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xa0 , 1 , 332 , 240 , // 332 - fr-mu - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x14e , 1 , 333 , 240 , // 333 - fr-nc - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xad , 1 , 334 , 240 , // 334 - fr-ne - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x13e , 1 , 335 , 240 , // 335 - fr-pf - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xce , 1 , 336 , 240 , // 336 - fr-pm - 0x200c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xc6 , 1 , 337 , 240 , // 337 - fr-re - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xcc , 1 , 338 , 240 , // 338 - fr-rw - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd0 , 1 , 339 , 240 , // 339 - fr-sc - 0x280c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 , 340 , 240 , // 340 - fr-sn - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xde , 1 , 341 , 240 , // 341 - fr-sy - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x29 , 1 , 342 , 240 , // 342 - fr-td - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xe8 , 1 , 343 , 240 , // 343 - fr-tg - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xea , 1 , 344 , 240 , // 344 - fr-tn - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xae , 1 , 345 , 240 , // 345 - fr-vu - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x160 , 1 , 346 , 240 , // 346 - fr-wf - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x14b , 1 , 347 , 240 , // 347 - fr-yt - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x76 , 1 , 349 , 240 , // 348 - fur - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x76 , 1 , 349 , 240 , // 349 - fur-it - 0x62 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb0 , 1 , 351 , 351 , // 350 - fy - 0x462 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb0 , 1 , 351 , 351 , // 351 - fy-nl - 0x3c , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x44 , 1 , 353 , 353 , // 352 - ga - 0x83c , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x44 , 1 , 353 , 353 , // 353 - ga-ie - 0x91 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 , 355 , 355 , // 354 - gd - 0x491 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 , 355 , 355 , // 355 - gd-gb - 0x56 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 , 357 , 357 , // 356 - gl - 0x456 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 , 357 , 357 , // 357 - gl-es - 0x74 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb9 , 1 , 359 , 359 , // 358 - gn - 0x474 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb9 , 1 , 359 , 359 , // 359 - gn-py - 0x84 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xdf , 1 , 361 , 240 , // 360 - gsw - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xdf , 1 , 361 , 240 , // 361 - gsw-ch - 0x484 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 362 , 362 , // 362 - gsw-fr - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x91 , 1 , 363 , 240 , // 363 - gsw-li - 0x47 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 365 , 143 , // 364 - gu - 0x447 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 365 , 143 , // 365 - gu-in - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 367 , 240 , // 366 - guz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 367 , 240 , // 367 - guz-ke - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3b16, 1 , 369 , 240 , // 368 - gv - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3b16, 1 , 369 , 240 , // 369 - gv-im - 0x68 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 , 374 , 374 , // 370 - ha - 0x7c68 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 , 374 , 374 , // 371 - ha-latn - 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x59 , 1 , 372 , 240 , // 372 - ha-latn-gh - 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xad , 1 , 373 , 240 , // 373 - ha-latn-ne - 0x468 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 , 374 , 374 , // 374 - ha-latn-ng - 0x75 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 , 376 , 376 , // 375 - haw - 0x475 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 , 376 , 376 , // 376 - haw-us - 0xd , 0x4e7 , 0x35e , 0x2715, 0x1f4 , 0x75 , 1 , 378 , 143 , // 377 - he - 0x40d , 0x4e7 , 0x35e , 0x2715, 0x1f4 , 0x75 , 1 , 378 , 143 , // 378 - he-il - 0x39 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 380 , 143 , // 379 - hi - 0x439 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 380 , 143 , // 380 - hi-in - 0x1a , 0x4e2 , 0x354 , 0x2762, 0x1f4 , 0x6c , 1 , 383 , 383 , // 381 - hr - 0x101a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 , 382 , 382 , // 382 - hr-ba - 0x41a , 0x4e2 , 0x354 , 0x2762, 0x1f4 , 0x6c , 1 , 383 , 383 , // 383 - hr-hr - 0x2e , 0x4e4 , 0x352 , 0x2710, 0x366 , 0x5e , 1 , 385 , 385 , // 384 - hsb - 0x42e , 0x4e4 , 0x352 , 0x2710, 0x366 , 0x5e , 1 , 385 , 385 , // 385 - hsb-de - 0xe , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x6d , 1 , 387 , 387 , // 386 - hu - 0x40e , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x6d , 1 , 387 , 387 , // 387 - hu-hu - 0x1040e, 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x6d , 1 , 387 , 387 , // 388 - hu-hu_technl - 0x2b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x7 , 1 , 390 , 390 , // 389 - hy - 0x42b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x7 , 1 , 390 , 390 , // 390 - hy-am - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x54 , 1 , 393 , 240 , // 391 - ia - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 392 , 240 , // 392 - ia-001 - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x54 , 1 , 393 , 240 , // 393 - ia-fr - 0x69 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 , 395 , 240 , // 394 - ibb - 0x469 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 , 395 , 240 , // 395 - ibb-ng - 0x21 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 , 397 , 397 , // 396 - id - 0x421 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 , 397 , 397 , // 397 - id-id - 0x70 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 , 399 , 399 , // 398 - ig - 0x470 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 , 399 , 399 , // 399 - ig-ng - 0x78 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 , 401 , 143 , // 400 - ii - 0x478 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 , 401 , 143 , // 401 - ii-cn - 0xf , 0x4e4 , 0x352 , 0x275f, 0x5187, 0x6e , 1 , 403 , 403 , // 402 - is - 0x40f , 0x4e4 , 0x352 , 0x275f, 0x5187, 0x6e , 1 , 403 , 403 , // 403 - is-is - 0x10 , 0x4e4 , 0x352 , 0x2710, 0x4f38, 0x76 , 1 , 406 , 406 , // 404 - it - 0x810 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xdf , 1 , 405 , 405 , // 405 - it-ch - 0x410 , 0x4e4 , 0x352 , 0x2710, 0x4f38, 0x76 , 1 , 406 , 406 , // 406 - it-it - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f38, 0xd6 , 1 , 407 , 240 , // 407 - it-sm - 0x5d , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x27 , 1 , 412 , 412 , // 408 - iu - 0x785d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x27 , 1 , 410 , 143 , // 409 - iu-cans - 0x45d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x27 , 1 , 410 , 143 , // 410 - iu-cans-ca - 0x7c5d , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x27 , 1 , 412 , 412 , // 411 - iu-latn - 0x85d , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x27 , 1 , 412 , 412 , // 412 - iu-latn-ca - 0x11 , 0x3a4 , 0x3a4 , 0x2711, 0x4f42, 0x7a , 1 , 414 , 414 , // 413 - ja - 0x411 , 0x3a4 , 0x3a4 , 0x2711, 0x4f42, 0x7a , 1 , 414 , 414 , // 414 - ja-jp - 0x40411, 0x3a4 , 0x3a4 , 0x2711, 0x4f42, 0x7a , 1 , 414 , 414 , // 415 - ja-jp_radstr - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 417 , 240 , // 416 - jgo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 417 , 240 , // 417 - jgo-cm - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 419 , 240 , // 418 - jmc - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 419 , 240 , // 419 - jmc-tz - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 , 424 , 424 , // 420 - jv - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 , 422 , 424 , // 421 - jv-java - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 , 422 , 424 , // 422 - jv-java-id - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 , 424 , 424 , // 423 - jv-latn - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 , 424 , 424 , // 424 - jv-latn-id - 0x37 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 , 426 , 426 , // 425 - ka - 0x437 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 , 426 , 426 , // 426 - ka-ge - 0x10437, 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 , 426 , 426 , // 427 - ka-ge_modern - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x4 , 1 , 429 , 240 , // 428 - kab - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x4 , 1 , 429 , 240 , // 429 - kab-dz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 431 , 240 , // 430 - kam - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 431 , 240 , // 431 - kam-ke - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 433 , 240 , // 432 - kde - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 433 , 240 , // 433 - kde-tz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x39 , 1 , 435 , 240 , // 434 - kea - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x39 , 1 , 435 , 240 , // 435 - kea-cv - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 , 437 , 240 , // 436 - khq - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 , 437 , 240 , // 437 - khq-ml - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 439 , 240 , // 438 - ki - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 439 , 240 , // 439 - ki-ke - 0x3f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x89 , 1 , 441 , 441 , // 440 - kk - 0x43f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x89 , 1 , 441 , 441 , // 441 - kk-kz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 443 , 240 , // 442 - kkj - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 443 , 240 , // 443 - kkj-cm - 0x6f , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0x5d , 1 , 445 , 445 , // 444 - kl - 0x46f , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0x5d , 1 , 445 , 445 , // 445 - kl-gl - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 447 , 240 , // 446 - kln - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 447 , 240 , // 447 - kln-ke - 0x53 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x28 , 2 , 449 , 143 , // 448 - km - 0x453 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x28 , 2 , 449 , 143 , // 449 - km-kh - 0x4b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 451 , 143 , // 450 - kn - 0x44b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 451 , 143 , // 451 - kn-in - 0x12 , 0x3b5 , 0x3b5 , 0x2713, 0x5161, 0x86 , 1 , 454 , 454 , // 452 - ko - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x83 , 1 , 453 , 240 , // 453 - ko-kp - 0x412 , 0x3b5 , 0x3b5 , 0x2713, 0x5161, 0x86 , 1 , 454 , 454 , // 454 - ko-kr - 0x57 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 456 , 143 , // 455 - kok - 0x457 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 456 , 143 , // 456 - kok-in - 0x71 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 , 458 , 240 , // 457 - kr - 0x471 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 , 458 , 240 , // 458 - kr-ng - 0x60 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 2 , 461 , 240 , // 459 - ks - 0x460 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 2 , 461 , 240 , // 460 - ks-arab - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 2 , 461 , 240 , // 461 - ks-arab-in - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 463 , 187 , // 462 - ks-deva - 0x860 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 463 , 187 , // 463 - ks-deva-in - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 465 , 240 , // 464 - ksb - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 465 , 240 , // 465 - ksb-tz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 467 , 240 , // 466 - ksf - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 467 , 240 , // 467 - ksf-cm - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 , 469 , 240 , // 468 - ksh - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 , 469 , 240 , // 469 - ksh-de - 0x92 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x79 , 0 , 472 , 143 , // 470 - ku - 0x7c92 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x79 , 0 , 472 , 143 , // 471 - ku-arab - 0x492 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x79 , 0 , 472 , 143 , // 472 - ku-arab-iq - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 0 , 473 , 240 , // 473 - ku-arab-ir - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf2 , 1 , 475 , 240 , // 474 - kw - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf2 , 1 , 475 , 240 , // 475 - kw-gb - 0x40 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x82 , 1 , 477 , 477 , // 476 - ky - 0x440 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x82 , 1 , 477 , 477 , // 477 - ky-kg - 0x76 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x989e, 1 , 479 , 143 , // 478 - la - 0x476 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x989e, 1 , 479 , 143 , // 479 - la-001 - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 481 , 240 , // 480 - lag - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 481 , 240 , // 481 - lag-tz - 0x6e , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x93 , 1 , 483 , 483 , // 482 - lb - 0x46e , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x93 , 1 , 483 , 483 , // 483 - lb-lu - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 485 , 240 , // 484 - lg - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 485 , 240 , // 485 - lg-ug - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 , 487 , 240 , // 486 - lkt - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 , 487 , 240 , // 487 - lkt-us - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2c , 1 , 490 , 240 , // 488 - ln - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9 , 1 , 489 , 240 , // 489 - ln-ao - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2c , 1 , 490 , 240 , // 490 - ln-cd - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x37 , 1 , 491 , 240 , // 491 - ln-cf - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2b , 1 , 492 , 240 , // 492 - ln-cg - 0x54 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8a , 1 , 494 , 143 , // 493 - lo - 0x454 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8a , 1 , 494 , 143 , // 494 - lo-la - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 2 , 497 , 240 , // 495 - lrc - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x79 , 2 , 496 , 240 , // 496 - lrc-iq - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 2 , 497 , 240 , // 497 - lrc-ir - 0x27 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x8d , 1 , 499 , 499 , // 498 - lt - 0x427 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x8d , 1 , 499 , 499 , // 499 - lt-lt - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2c , 1 , 501 , 240 , // 500 - lu - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2c , 1 , 501 , 240 , // 501 - lu-cd - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 503 , 240 , // 502 - luo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 503 , 240 , // 503 - luo-ke - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 505 , 240 , // 504 - luy - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 505 , 240 , // 505 - luy-ke - 0x26 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x8c , 1 , 507 , 507 , // 506 - lv - 0x426 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x8c , 1 , 507 , 507 , // 507 - lv-lv - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 509 , 240 , // 508 - mas - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 509 , 240 , // 509 - mas-ke - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 510 , 240 , // 510 - mas-tz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 512 , 240 , // 511 - mer - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 512 , 240 , // 512 - mer-ke - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa0 , 1 , 514 , 240 , // 513 - mfe - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa0 , 1 , 514 , 240 , // 514 - mfe-mu - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x95 , 1 , 516 , 240 , // 515 - mg - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x95 , 1 , 516 , 240 , // 516 - mg-mg - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa8 , 1 , 518 , 240 , // 517 - mgh - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa8 , 1 , 518 , 240 , // 518 - mgh-mz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 520 , 240 , // 519 - mgo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 520 , 240 , // 520 - mgo-cm - 0x81 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb7 , 1 , 522 , 522 , // 521 - mi - 0x481 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb7 , 1 , 522 , 522 , // 522 - mi-nz - 0x2f , 0x4e3 , 0x362 , 0x2717, 0x1f4 , 0x4ca2, 1 , 524 , 524 , // 523 - mk - 0x42f , 0x4e3 , 0x362 , 0x2717, 0x1f4 , 0x4ca2, 1 , 524 , 524 , // 524 - mk-mk - 0x4c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 526 , 143 , // 525 - ml - 0x44c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 526 , 143 , // 526 - ml-in - 0x50 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x9a , 1 , 529 , 529 , // 527 - mn - 0x7850 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x9a , 1 , 529 , 529 , // 528 - mn-cyrl - 0x450 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x9a , 1 , 529 , 529 , // 529 - mn-mn - 0x7c50 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 , 531 , 531 , // 530 - mn-mong - 0x850 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 , 531 , 531 , // 531 - mn-mong-cn - 0xc50 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9a , 1 , 532 , 532 , // 532 - mn-mong-mn - 0x58 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 534 , 187 , // 533 - mni - 0x458 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 534 , 187 , // 534 - mni-in - 0x7c , 0x4e4 , 0x352 , 0x2710, 0x25 , 0x27 , 1 , 536 , 240 , // 535 - moh - 0x47c , 0x4e4 , 0x352 , 0x2710, 0x25 , 0x27 , 1 , 536 , 240 , // 536 - moh-ca - 0x4e , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 538 , 143 , // 537 - mr - 0x44e , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 538 , 143 , // 538 - mr-in - 0x3e , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa7 , 1 , 541 , 541 , // 539 - ms - 0x83e , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x25 , 1 , 540 , 540 , // 540 - ms-bn - 0x43e , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa7 , 1 , 541 , 541 , // 541 - ms-my - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd7 , 1 , 542 , 240 , // 542 - ms-sg - 0x3a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa3 , 1 , 544 , 544 , // 543 - mt - 0x43a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa3 , 1 , 544 , 544 , // 544 - mt-mt - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 546 , 240 , // 545 - mua - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 546 , 240 , // 546 - mua-cm - 0x55 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x1b , 2 , 548 , 240 , // 547 - my - 0x455 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x1b , 2 , 548 , 240 , // 548 - my-mm - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 2 , 550 , 240 , // 549 - mzn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 2 , 550 , 240 , // 550 - mzn-ir - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xfe , 1 , 552 , 240 , // 551 - naq - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xfe , 1 , 552 , 240 , // 552 - naq-na - 0x7c14 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 554 , 554 , // 553 - nb - 0x414 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 554 , 554 , // 554 - nb-no - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xdc , 1 , 555 , 240 , // 555 - nb-sj - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 , 557 , 240 , // 556 - nd - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 , 557 , 240 , // 557 - nd-zw - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 , 559 , 240 , // 558 - nds - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 , 559 , 240 , // 559 - nds-de - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb0 , 1 , 560 , 240 , // 560 - nds-nl - 0x61 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb2 , 1 , 563 , 143 , // 561 - ne - 0x861 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 2 , 562 , 240 , // 562 - ne-in - 0x461 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb2 , 1 , 563 , 143 , // 563 - ne-np - 0x13 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb0 , 1 , 569 , 569 , // 564 - nl - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x12e , 1 , 565 , 240 , // 565 - nl-aw - 0x813 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15 , 1 , 566 , 566 , // 566 - nl-be - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x9a55d42, 1 , 567 , 240 , // 567 - nl-bq - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x111 , 1 , 568 , 240 , // 568 - nl-cw - 0x413 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb0 , 1 , 569 , 569 , // 569 - nl-nl - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb5 , 1 , 570 , 240 , // 570 - nl-sr - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x78f7, 1 , 571 , 240 , // 571 - nl-sx - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 573 , 240 , // 572 - nmg - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 573 , 240 , // 573 - nmg-cm - 0x7814 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 575 , 575 , // 574 - nn - 0x814 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 575 , 575 , // 575 - nn-no - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 577 , 240 , // 576 - nnh - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 577 , 240 , // 577 - nnh-cm - 0x14 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 554 , 554 , // 578 - no - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x64 , 2 , 580 , 143 , // 579 - nqo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x64 , 2 , 580 , 143 , // 580 - nqo-gn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 582 , 240 , // 581 - nr - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 582 , 240 , // 582 - nr-za - 0x6c , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 584 , 584 , // 583 - nso - 0x46c , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 584 , 584 , // 584 - nso-za - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x114 , 1 , 586 , 240 , // 585 - nus - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x114 , 1 , 586 , 240 , // 586 - nus-ss - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 588 , 240 , // 587 - nyn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 588 , 240 , // 588 - nyn-ug - 0x82 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 590 , 590 , // 589 - oc - 0x482 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 , 590 , 590 , // 590 - oc-fr - 0x72 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 592 , 240 , // 591 - om - 0x472 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 592 , 240 , // 592 - om-et - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 593 , 240 , // 593 - om-ke - 0x48 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 595 , 143 , // 594 - or - 0x448 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 595 , 143 , // 595 - or-in - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 , 597 , 240 , // 596 - os - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 , 597 , 240 , // 597 - os-ge - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 , 598 , 240 , // 598 - os-ru - 0x46 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 602 , 143 , // 599 - pa - 0x7c46 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 , 601 , 143 , // 600 - pa-arab - 0x846 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 , 601 , 143 , // 601 - pa-arab-pk - 0x446 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 602 , 143 , // 602 - pa-in - 0x79 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x993248, 1 , 604 , 145 , // 603 - pap - 0x479 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x993248, 1 , 604 , 145 , // 604 - pap-029 - 0x15 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xbf , 1 , 606 , 606 , // 605 - pl - 0x415 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xbf , 1 , 606 , 606 , // 606 - pl-pl - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 608 , 240 , // 607 - prg - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 608 , 240 , // 608 - prg-001 - 0x8c , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x3 , 2 , 610 , 143 , // 609 - prs - 0x48c , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x3 , 2 , 610 , 143 , // 610 - prs-af - 0x63 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3 , 2 , 612 , 143 , // 611 - ps - 0x463 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3 , 2 , 612 , 143 , // 612 - ps-af - 0x16 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x20 , 1 , 615 , 615 , // 613 - pt - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x9 , 1 , 614 , 240 , // 614 - pt-ao - 0x416 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x20 , 1 , 615 , 615 , // 615 - pt-br - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdf , 1 , 616 , 240 , // 616 - pt-ch - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x39 , 1 , 617 , 240 , // 617 - pt-cv - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x45 , 1 , 618 , 240 , // 618 - pt-gq - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc4 , 1 , 619 , 240 , // 619 - pt-gw - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x93 , 1 , 620 , 240 , // 620 - pt-lu - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x97 , 1 , 621 , 240 , // 621 - pt-mo - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa8 , 1 , 622 , 240 , // 622 - pt-mz - 0x816 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc1 , 1 , 623 , 623 , // 623 - pt-pt - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xe9 , 1 , 624 , 240 , // 624 - pt-st - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f60e7, 1 , 625 , 240 , // 625 - pt-tl - 0x901 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x7c , 1 , 626 , 190 , // 626 - qps-latn-x-sh - 0x501 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xf4 , 1 , 627 , 627 , // 627 - qps-ploc - 0x5fe , 0x3a4 , 0x3a4 , 0x2711, 0x4f42, 0x7a , 1 , 628 , 628 , // 628 - qps-ploca - 0x9ff , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xcd , 0 , 629 , 143 , // 629 - qps-plocm - 0x86 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x63 , 1 , 632 , 632 , // 630 - quc - 0x7c86 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x63 , 1 , 632 , 632 , // 631 - quc-latn - 0x486 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x63 , 1 , 632 , 632 , // 632 - quc-latn-gt - 0x6b , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x1a , 1 , 634 , 634 , // 633 - quz - 0x46b , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x1a , 1 , 634 , 634 , // 634 - quz-bo - 0x86b , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x42 , 1 , 635 , 635 , // 635 - quz-ec - 0xc6b , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xbb , 1 , 636 , 636 , // 636 - quz-pe - 0x17 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0xdf , 1 , 638 , 638 , // 637 - rm - 0x417 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0xdf , 1 , 638 , 638 , // 638 - rm-ch - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x26 , 1 , 640 , 240 , // 639 - rn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x26 , 1 , 640 , 240 , // 640 - rn-bi - 0x18 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xc8 , 1 , 643 , 643 , // 641 - ro - 0x818 , 0x4e2 , 0x354 , 0x2 , 0x1f4 , 0x98 , 1 , 642 , 240 , // 642 - ro-md - 0x418 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xc8 , 1 , 643 , 643 , // 643 - ro-ro - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 645 , 240 , // 644 - rof - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 645 , 240 , // 645 - rof-tz - 0x19 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 , 651 , 651 , // 646 - ru - 0x1000 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0x1d , 1 , 647 , 240 , // 647 - ru-by - 0x1000 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0x82 , 1 , 648 , 240 , // 648 - ru-kg - 0x1000 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0x89 , 1 , 649 , 240 , // 649 - ru-kz - 0x819 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0x98 , 1 , 650 , 240 , // 650 - ru-md - 0x419 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 , 651 , 651 , // 651 - ru-ru - 0x1000 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0xf1 , 1 , 652 , 240 , // 652 - ru-ua - 0x87 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xcc , 1 , 654 , 654 , // 653 - rw - 0x487 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xcc , 1 , 654 , 654 , // 654 - rw-rw - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 656 , 240 , // 655 - rwk - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 656 , 240 , // 656 - rwk-tz - 0x4f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 658 , 143 , // 657 - sa - 0x44f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 658 , 143 , // 658 - sa-in - 0x85 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 , 660 , 660 , // 659 - sah - 0x485 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 , 660 , 660 , // 660 - sah-ru - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 662 , 240 , // 661 - saq - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 662 , 240 , // 662 - saq-ke - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 664 , 240 , // 663 - sbp - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 664 , 240 , // 664 - sbp-tz - 0x59 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 , 667 , 143 , // 665 - sd - 0x7c59 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 , 667 , 143 , // 666 - sd-arab - 0x859 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 , 667 , 143 , // 667 - sd-arab-pk - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 669 , 187 , // 668 - sd-deva - 0x459 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 669 , 187 , // 669 - sd-deva-in - 0x3b , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 672 , 672 , // 670 - se - 0xc3b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 , 671 , 671 , // 671 - se-fi - 0x43b , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 672 , 672 , // 672 - se-no - 0x83b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 , 673 , 673 , // 673 - se-se - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa8 , 1 , 675 , 240 , // 674 - seh - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa8 , 1 , 675 , 240 , // 675 - seh-mz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 , 677 , 240 , // 676 - ses - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 , 677 , 240 , // 677 - ses-ml - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x37 , 1 , 679 , 240 , // 678 - sg - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x37 , 1 , 679 , 240 , // 679 - sg-cf - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 684 , 240 , // 680 - shi - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 682 , 240 , // 681 - shi-latn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 682 , 240 , // 682 - shi-latn-ma - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 684 , 240 , // 683 - shi-tfng - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 684 , 240 , // 684 - shi-tfng-ma - 0x5b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2a , 1 , 686 , 143 , // 685 - si - 0x45b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2a , 1 , 686 , 143 , // 686 - si-lk - 0x1b , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x8f , 1 , 688 , 688 , // 687 - sk - 0x41b , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x8f , 1 , 688 , 688 , // 688 - sk-sk - 0x24 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xd4 , 1 , 690 , 690 , // 689 - sl - 0x424 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xd4 , 1 , 690 , 690 , // 690 - sl-si - 0x783b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 , 693 , 693 , // 691 - sma - 0x183b , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 692 , 692 , // 692 - sma-no - 0x1c3b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 , 693 , 693 , // 693 - sma-se - 0x7c3b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 , 696 , 696 , // 694 - smj - 0x103b , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 , 695 , 695 , // 695 - smj-no - 0x143b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 , 696 , 696 , // 696 - smj-se - 0x703b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 , 698 , 698 , // 697 - smn - 0x243b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 , 698 , 698 , // 698 - smn-fi - 0x743b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 , 700 , 700 , // 699 - sms - 0x203b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 , 700 , 700 , // 700 - sms-fi - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 , 703 , 240 , // 701 - sn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 , 703 , 240 , // 702 - sn-latn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 , 703 , 240 , // 703 - sn-latn-zw - 0x77 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd8 , 1 , 708 , 240 , // 704 - so - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3e , 1 , 705 , 240 , // 705 - so-dj - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 706 , 240 , // 706 - so-et - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 707 , 240 , // 707 - so-ke - 0x477 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd8 , 1 , 708 , 240 , // 708 - so-so - 0x1c , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x6 , 1 , 710 , 710 , // 709 - sq - 0x41c , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x6 , 1 , 710 , 710 , // 710 - sq-al - 0x1000 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x4ca2, 1 , 711 , 240 , // 711 - sq-mk - 0x1000 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x974941, 1 , 712 , 240 , // 712 - sq-xk - 0x7c1a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10f , 1 , 724 , 724 , // 713 - sr - 0x6c1a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x10f , 1 , 718 , 718 , // 714 - sr-cyrl - 0x1c1a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x19 , 1 , 715 , 715 , // 715 - sr-cyrl-ba - 0xc1a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x10d , 1 , 716 , 716 , // 716 - sr-cyrl-cs - 0x301a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x10e , 1 , 717 , 717 , // 717 - sr-cyrl-me - 0x281a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x10f , 1 , 718 , 718 , // 718 - sr-cyrl-rs - 0x1000 , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x974941, 1 , 719 , 240 , // 719 - sr-cyrl-xk - 0x701a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10f , 1 , 724 , 724 , // 720 - sr-latn - 0x181a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 , 721 , 721 , // 721 - sr-latn-ba - 0x81a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10d , 1 , 722 , 722 , // 722 - sr-latn-cs - 0x2c1a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10e , 1 , 723 , 723 , // 723 - sr-latn-me - 0x241a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10f , 1 , 724 , 724 , // 724 - sr-latn-rs - 0x1000 , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x974941, 1 , 725 , 240 , // 725 - sr-latn-xk - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 728 , 240 , // 726 - ss - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x104 , 1 , 727 , 240 , // 727 - ss-sz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 728 , 240 , // 728 - ss-za - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 730 , 240 , // 729 - ssy - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 730 , 240 , // 730 - ssy-er - 0x30 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 733 , 240 , // 731 - st - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x92 , 1 , 732 , 240 , // 732 - st-ls - 0x430 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 733 , 240 , // 733 - st-za - 0x1d , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 , 737 , 737 , // 734 - sv - 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x9906f5, 1 , 735 , 240 , // 735 - sv-ax - 0x81d , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 , 736 , 736 , // 736 - sv-fi - 0x41d , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 , 737 , 737 , // 737 - sv-se - 0x41 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x81 , 1 , 740 , 740 , // 738 - sw - 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x2c , 1 , 739 , 740 , // 739 - sw-cd - 0x441 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x81 , 1 , 740 , 740 , // 740 - sw-ke - 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xef , 1 , 741 , 240 , // 741 - sw-tz - 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xf0 , 1 , 742 , 240 , // 742 - sw-ug - 0x1000 , 0x0 , 0x1 , 0x0 , 0x1f4 , 0x2c , 1 , 744 , 240 , // 743 - swc - 0x1000 , 0x0 , 0x1 , 0x0 , 0x1f4 , 0x2c , 1 , 744 , 240 , // 744 - swc-cd - 0x5a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xde , 1 , 746 , 143 , // 745 - syr - 0x45a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xde , 1 , 746 , 143 , // 746 - syr-sy - 0x49 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 748 , 143 , // 747 - ta - 0x449 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 748 , 143 , // 748 - ta-in - 0x849 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2a , 1 , 749 , 143 , // 749 - ta-lk - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa7 , 1 , 750 , 240 , // 750 - ta-my - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd7 , 1 , 751 , 240 , // 751 - ta-sg - 0x4a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 753 , 143 , // 752 - te - 0x44a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 , 753 , 143 , // 753 - te-in - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 756 , 240 , // 754 - teo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 , 755 , 240 , // 755 - teo-ke - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 756 , 240 , // 756 - teo-ug - 0x28 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xe4 , 1 , 759 , 759 , // 757 - tg - 0x7c28 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xe4 , 1 , 759 , 759 , // 758 - tg-cyrl - 0x428 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xe4 , 1 , 759 , 759 , // 759 - tg-cyrl-tj - 0x1e , 0x36a , 0x36a , 0x2725, 0x5166, 0xe3 , 1 , 761 , 143 , // 760 - th - 0x41e , 0x36a , 0x36a , 0x2725, 0x5166, 0xe3 , 1 , 761 , 143 , // 761 - th-th - 0x73 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 763 , 143 , // 762 - ti - 0x873 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 763 , 143 , // 763 - ti-er - 0x473 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 764 , 143 , // 764 - ti-et - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 766 , 240 , // 765 - tig - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 , 766 , 240 , // 766 - tig-er - 0x42 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xee , 1 , 768 , 768 , // 767 - tk - 0x442 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xee , 1 , 768 , 768 , // 768 - tk-tm - 0x32 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 771 , 771 , // 769 - tn - 0x832 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x13 , 1 , 770 , 770 , // 770 - tn-bw - 0x432 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 771 , 771 , // 771 - tn-za - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xe7 , 1 , 773 , 240 , // 772 - to - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xe7 , 1 , 773 , 240 , // 773 - to-to - 0x1f , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0xeb , 1 , 776 , 776 , // 774 - tr - 0x1000 , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0x3b , 1 , 775 , 240 , // 775 - tr-cy - 0x41f , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0xeb , 1 , 776 , 776 , // 776 - tr-tr - 0x31 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 778 , 240 , // 777 - ts - 0x431 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 778 , 240 , // 778 - ts-za - 0x44 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 , 780 , 780 , // 779 - tt - 0x444 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 , 780 , 780 , // 780 - tt-ru - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xad , 1 , 782 , 240 , // 781 - twq - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xad , 1 , 782 , 240 , // 782 - twq-ne - 0x5f , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x4 , 1 , 787 , 787 , // 783 - tzm - 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x9f , 1 , 785 , 240 , // 784 - tzm-arab - 0x45f , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x9f , 1 , 785 , 240 , // 785 - tzm-arab-ma - 0x7c5f , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x4 , 1 , 787 , 787 , // 786 - tzm-latn - 0x85f , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x4 , 1 , 787 , 787 , // 787 - tzm-latn-dz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 788 , 240 , // 788 - tzm-latn-ma - 0x785f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 790 , 316 , // 789 - tzm-tfng - 0x105f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 790 , 316 , // 790 - tzm-tfng-ma - 0x80 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x2d , 1 , 792 , 143 , // 791 - ug - 0x480 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x2d , 1 , 792 , 143 , // 792 - ug-cn - 0x22 , 0x4e3 , 0x362 , 0x2721, 0x1f4 , 0xf1 , 1 , 794 , 794 , // 793 - uk - 0x422 , 0x4e3 , 0x362 , 0x2721, 0x1f4 , 0xf1 , 1 , 794 , 794 , // 794 - uk-ua - 0x20 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 1 , 797 , 143 , // 795 - ur - 0x820 , 0x4e8 , 0x2d0 , 0x2 , 0x1f4 , 0x71 , 2 , 796 , 240 , // 796 - ur-in - 0x420 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 1 , 797 , 143 , // 797 - ur-pk - 0x43 , 0x4e6 , 0x359 , 0x272d, 0x1f4 , 0xf7 , 1 , 804 , 804 , // 798 - uz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3 , 2 , 800 , 240 , // 799 - uz-arab - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3 , 2 , 800 , 240 , // 800 - uz-arab-af - 0x7843 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xf7 , 1 , 802 , 802 , // 801 - uz-cyrl - 0x843 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xf7 , 1 , 802 , 802 , // 802 - uz-cyrl-uz - 0x7c43 , 0x4e6 , 0x359 , 0x272d, 0x1f4 , 0xf7 , 1 , 804 , 804 , // 803 - uz-latn - 0x443 , 0x4e6 , 0x359 , 0x272d, 0x1f4 , 0xf7 , 1 , 804 , 804 , // 804 - uz-latn-uz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 , 809 , 240 , // 805 - vai - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 , 807 , 240 , // 806 - vai-latn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 , 807 , 240 , // 807 - vai-latn-lr - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 , 809 , 240 , // 808 - vai-vaii - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 , 809 , 240 , // 809 - vai-vaii-lr - 0x33 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 811 , 240 , // 810 - ve - 0x433 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 , 811 , 240 , // 811 - ve-za - 0x2a , 0x4ea , 0x4ea , 0x2710, 0x1f4 , 0xfb , 1 , 813 , 143 , // 812 - vi - 0x42a , 0x4ea , 0x4ea , 0x2710, 0x1f4 , 0xfb , 1 , 813 , 143 , // 813 - vi-vn - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 815 , 240 , // 814 - vo - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 815 , 240 , // 815 - vo-001 - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 817 , 240 , // 816 - vun - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 , 817 , 240 , // 817 - vun-tz - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdf , 1 , 819 , 240 , // 818 - wae - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdf , 1 , 819 , 240 , // 819 - wae-ch - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 821 , 240 , // 820 - wal - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 , 821 , 240 , // 821 - wal-et - 0x88 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 , 823 , 823 , // 822 - wo - 0x488 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 , 823 , 823 , // 823 - wo-sn - 0x1007f, 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 , -1 , -1 , // 824 - x-iv_mathan - 0x34 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 826 , 826 , // 825 - xh - 0x434 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 826 , 826 , // 826 - xh-za - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 828 , 240 , // 827 - xog - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 , 828 , 240 , // 828 - xog-ug - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 830 , 240 , // 829 - yav - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 , 830 , 240 , // 830 - yav-cm - 0x3d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 832 , 240 , // 831 - yi - 0x43d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 , 832 , 240 , // 832 - yi-001 - 0x6a , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 , 835 , 835 , // 833 - yo - 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x1c , 1 , 834 , 240 , // 834 - yo-bj - 0x46a , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 , 835 , 835 , // 835 - yo-ng - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x68 , 1 , 837 , 240 , // 836 - yue - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x68 , 1 , 837 , 240 , // 837 - yue-hk - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 840 , 316 , // 838 - zgh - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 840 , 316 , // 839 - zgh-tfng - 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 , 840 , 316 , // 840 - zgh-tfng-ma - 0x7804 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 , 844 , 844 , // 841 - zh - 0x4 , 0x3a8 , 0x3a8 , 0x0 , 0x1f4 , 0x2d , 1 , 844 , 844 , // 842 - zh-chs - 0x7c04 , 0x3b6 , 0x3b6 , 0x0 , 0x1f4 , 0x68 , 1 , 851 , 851 , // 843 - zh-cht - 0x804 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 , 844 , 844 , // 844 - zh-cn - 0x50804, 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 , 844 , 844 , // 845 - zh-cn_phoneb - 0x20804, 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 , 844 , 844 , // 846 - zh-cn_stroke - 0x4 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 , 844 , 844 , // 847 - zh-hans - 0x1000 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x68 , 1 , 848 , 240 , // 848 - zh-hans-hk - 0x1000 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x97 , 1 , 849 , 240 , // 849 - zh-hans-mo - 0x7c04 , 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x68 , 1 , 851 , 851 , // 850 - zh-hant - 0xc04 , 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x68 , 1 , 851 , 851 , // 851 - zh-hk - 0x40c04, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x68 , 1 , 851 , 851 , // 852 - zh-hk_radstr - 0x1404 , 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x97 , 1 , 853 , 853 , // 853 - zh-mo - 0x41404, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x97 , 1 , 853 , 853 , // 854 - zh-mo_radstr - 0x21404, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x97 , 1 , 853 , 853 , // 855 - zh-mo_stroke - 0x1004 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0xd7 , 1 , 856 , 856 , // 856 - zh-sg - 0x51004, 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0xd7 , 1 , 856 , 856 , // 857 - zh-sg_phoneb - 0x21004, 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0xd7 , 1 , 856 , 856 , // 858 - zh-sg_stroke - 0x404 , 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0xed , 1 , 859 , 859 , // 859 - zh-tw - 0x30404, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0xed , 1 , 859 , 859 , // 860 - zh-tw_pronun - 0x40404, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0xed , 1 , 859 , 859 , // 861 - zh-tw_radstr - 0x35 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 863 , 863 , // 862 - zu - 0x435 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 , 863 , 863 , // 863 - zu-za + // Lcid, Ansi CP, Oem CP, MAC CP, EBCDIC CP, Geo Id, digit substitution | ListSeparator, Specific culture index, Console locale index // index - locale name + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 3 , 240 , // 0 - aa + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3e , 1 | SemicolonSep , 1 , 240 , // 1 - aa-dj + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 2 , 240 , // 2 - aa-er + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 3 , 240 , // 3 - aa-et + 0x36 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 6 , 6 , // 4 - af + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xfe , 1 | SemicolonSep , 5 , 240 , // 5 - af-na + 0x436 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 6 , 6 , // 6 - af-za + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 8 , 240 , // 7 - agq + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 8 , 240 , // 8 - agq-cm + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x59 , 1 | SemicolonSep , 10 , 240 , // 9 - ak + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x59 , 1 | SemicolonSep , 10 , 240 , // 10 - ak-gh + 0x5e , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 12 , 143 , // 11 - am + 0x45e , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 12 , 143 , // 12 - am-et + 0x1 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xcd , 0 | SemicolonSep , 33 , 143 , // 13 - ar + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x989e, 0 | SemicolonSep , 14 , 240 , // 14 - ar-001 + 0x3801 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xe0 , 0 | SemicolonSep , 15 , 143 , // 15 - ar-ae + 0x3c01 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x11 , 0 | SemicolonSep , 16 , 143 , // 16 - ar-bh + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x3e , 0 | SemicolonSep , 17 , 240 , // 17 - ar-dj + 0x1401 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x4 , 1 | SemicolonSep , 18 , 300 , // 18 - ar-dz + 0xc01 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x43 , 0 | SemicolonSep , 19 , 143 , // 19 - ar-eg + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x47 , 0 | SemicolonSep , 20 , 240 , // 20 - ar-er + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x75 , 0 | SemicolonSep , 21 , 240 , // 21 - ar-il + 0x801 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x79 , 0 | SemicolonSep , 22 , 143 , // 22 - ar-iq + 0x2c01 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x7e , 0 | SemicolonSep , 23 , 143 , // 23 - ar-jo + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x32 , 0 | SemicolonSep , 24 , 240 , // 24 - ar-km + 0x3401 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x88 , 0 | SemicolonSep , 25 , 143 , // 25 - ar-kw + 0x3001 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x8b , 0 | SemicolonSep , 26 , 143 , // 26 - ar-lb + 0x1001 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x94 , 1 | SemicolonSep , 27 , 143 , // 27 - ar-ly + 0x1801 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x9f , 1 | SemicolonSep , 28 , 300 , // 28 - ar-ma + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xa2 , 0 | SemicolonSep , 29 , 240 , // 29 - ar-mr + 0x2001 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xa4 , 0 | SemicolonSep , 30 , 143 , // 30 - ar-om + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xb8 , 0 | SemicolonSep , 31 , 240 , // 31 - ar-ps + 0x4001 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xc5 , 0 | SemicolonSep , 32 , 143 , // 32 - ar-qa + 0x401 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xcd , 0 | SemicolonSep , 33 , 143 , // 33 - ar-sa + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xdb , 0 | SemicolonSep , 34 , 240 , // 34 - ar-sd + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xd8 , 0 | SemicolonSep , 35 , 240 , // 35 - ar-so + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x114 , 0 | SemicolonSep , 36 , 240 , // 36 - ar-ss + 0x2801 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xde , 0 | SemicolonSep , 37 , 143 , // 37 - ar-sy + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x29 , 0 | SemicolonSep , 38 , 240 , // 38 - ar-td + 0x1c01 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xea , 1 | SemicolonSep , 39 , 300 , // 39 - ar-tn + 0x2401 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x105 , 0 | SemicolonSep , 40 , 143 , // 40 - ar-ye + 0x7a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x2e , 1 | CommaSep , 42 , 42 , // 41 - arn + 0x47a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x2e , 1 | CommaSep , 42 , 42 , // 42 - arn-cl + 0x4d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 44 , 143 , // 43 - as + 0x44d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 44 , 143 , // 44 - as-in + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 46 , 240 , // 45 - asa + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 46 , 240 , // 46 - asa-tz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd9 , 1 | SemicolonSep , 48 , 240 , // 47 - ast + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd9 , 1 | SemicolonSep , 48 , 240 , // 48 - ast-es + 0x2c , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0x5 , 1 | SemicolonSep , 53 , 53 , // 49 - az + 0x742c , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x5 , 1 | SemicolonSep , 51 , 51 , // 50 - az-cyrl + 0x82c , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x5 , 1 | SemicolonSep , 51 , 51 , // 51 - az-cyrl-az + 0x782c , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0x5 , 1 | SemicolonSep , 53 , 53 , // 52 - az-latn + 0x42c , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0x5 , 1 | SemicolonSep , 53 , 53 , // 53 - az-latn-az + 0x6d , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 | SemicolonSep , 55 , 55 , // 54 - ba + 0x46d , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 | SemicolonSep , 55 , 55 , // 55 - ba-ru + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 57 , 240 , // 56 - bas + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 57 , 240 , // 57 - bas-cm + 0x23 , 0x4e3 , 0x362 , 0x2717, 0x1f4 , 0x1d , 1 | SemicolonSep , 59 , 59 , // 58 - be + 0x423 , 0x4e3 , 0x362 , 0x2717, 0x1f4 , 0x1d , 1 | SemicolonSep , 59 , 59 , // 59 - be-by + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x107 , 1 | SemicolonSep , 61 , 240 , // 60 - bem + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x107 , 1 | SemicolonSep , 61 , 240 , // 61 - bem-zm + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 63 , 240 , // 62 - bez + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 63 , 240 , // 63 - bez-tz + 0x2 , 0x4e3 , 0x362 , 0x2717, 0x5221, 0x23 , 1 | SemicolonSep , 65 , 65 , // 64 - bg + 0x402 , 0x4e3 , 0x362 , 0x2717, 0x5221, 0x23 , 1 | SemicolonSep , 65 , 65 , // 65 - bg-bg + 0x66 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 | SemicolonSep , 67 , 240 , // 66 - bin + 0x466 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 | SemicolonSep , 67 , 240 , // 67 - bin-ng + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 | SemicolonSep , 70 , 240 , // 68 - bm + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 | SemicolonSep , 70 , 240 , // 69 - bm-latn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 | SemicolonSep , 70 , 240 , // 70 - bm-latn-ml + 0x45 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x17 , 1 | CommaSep , 72 , 143 , // 71 - bn + 0x845 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x17 , 1 | CommaSep , 72 , 143 , // 72 - bn-bd + 0x445 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 73 , 143 , // 73 - bn-in + 0x51 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 | CommaSep , 75 , 143 , // 74 - bo + 0x451 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 | CommaSep , 75 , 143 , // 75 - bo-cn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | SemicolonSep , 76 , 240 , // 76 - bo-in + 0x7e , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 78 , 78 , // 77 - br + 0x47e , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 78 , 78 , // 78 - br-fr + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | SemicolonSep , 80 , 240 , // 79 - brx + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | SemicolonSep , 80 , 240 , // 80 - brx-in + 0x781a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 | SemicolonSep , 85 , 85 , // 81 - bs + 0x641a , 0x4e3 , 0x357 , 0x2762, 0x366 , 0x19 , 1 | SemicolonSep , 83 , 83 , // 82 - bs-cyrl + 0x201a , 0x4e3 , 0x357 , 0x2762, 0x366 , 0x19 , 1 | SemicolonSep , 83 , 83 , // 83 - bs-cyrl-ba + 0x681a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 | SemicolonSep , 85 , 85 , // 84 - bs-latn + 0x141a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 | SemicolonSep , 85 , 85 , // 85 - bs-latn-ba + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 87 , 240 , // 86 - byn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 87 , 240 , // 87 - byn-er + 0x3 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 | SemicolonSep , 90 , 90 , // 88 - ca + 0x1000 , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0x8 , 1 | SemicolonSep , 89 , 240 , // 89 - ca-ad + 0x403 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 | SemicolonSep , 90 , 90 , // 90 - ca-es + 0x803 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 | SemicolonSep , 91 , 90 , // 91 - ca-es-valencia + 0x1000 , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0x54 , 1 | SemicolonSep , 92 , 240 , // 92 - ca-fr + 0x1000 , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0x76 , 1 | SemicolonSep , 93 , 240 , // 93 - ca-it + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 | SemicolonSep , 95 , 240 , // 94 - ce + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 | SemicolonSep , 95 , 240 , // 95 - ce-ru + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 97 , 240 , // 96 - cgg + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 97 , 240 , // 97 - cgg-ug + 0x5c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 | CommaSep , 100 , 240 , // 98 - chr + 0x7c5c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 | CommaSep , 100 , 240 , // 99 - chr-cher + 0x45c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 | CommaSep , 100 , 240 , // 100 - chr-cher-us + 0x83 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 102 , 102 , // 101 - co + 0x483 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 102 , 102 , // 102 - co-fr + 0x5 , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x4b , 1 | SemicolonSep , 104 , 104 , // 103 - cs + 0x405 , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x4b , 1 | SemicolonSep , 104 , 104 , // 104 - cs-cz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 | SemicolonSep , 106 , 240 , // 105 - cu + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 | SemicolonSep , 106 , 240 , // 106 - cu-ru + 0x52 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 | SemicolonSep , 108 , 108 , // 107 - cy + 0x452 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 | SemicolonSep , 108 , 108 , // 108 - cy-gb + 0x6 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0x3d , 1 | SemicolonSep , 110 , 110 , // 109 - da + 0x406 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0x3d , 1 | SemicolonSep , 110 , 110 , // 110 - da-dk + 0x1000 , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0x5d , 1 | SemicolonSep , 111 , 240 , // 111 - da-gl + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 113 , 240 , // 112 - dav + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 113 , 240 , // 113 - dav-ke + 0x7 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x5e , 1 | SemicolonSep , 118 , 118 , // 114 - de + 0xc07 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0xe , 1 | SemicolonSep , 115 , 115 , // 115 - de-at + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x15 , 1 | SemicolonSep , 116 , 240 , // 116 - de-be + 0x807 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0xdf , 1 | SemicolonSep , 117 , 117 , // 117 - de-ch + 0x407 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x5e , 1 | SemicolonSep , 118 , 118 , // 118 - de-de + 0x10407, 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x5e , 1 | SemicolonSep , 118 , 118 , // 119 - de-de_phoneb + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x76 , 1 | SemicolonSep , 120 , 240 , // 120 - de-it + 0x1407 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x91 , 1 | SemicolonSep , 121 , 121 , // 121 - de-li + 0x1007 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0x93 , 1 | SemicolonSep , 122 , 122 , // 122 - de-lu + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xad , 1 | SemicolonSep , 124 , 240 , // 123 - dje + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xad , 1 | SemicolonSep , 124 , 240 , // 124 - dje-ne + 0x7c2e , 0x4e4 , 0x352 , 0x2710, 0x366 , 0x5e , 1 | SemicolonSep , 126 , 126 , // 125 - dsb + 0x82e , 0x4e4 , 0x352 , 0x2710, 0x366 , 0x5e , 1 | SemicolonSep , 126 , 126 , // 126 - dsb-de + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 128 , 240 , // 127 - dua + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 128 , 240 , // 128 - dua-cm + 0x65 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa5 , 1 | ArabicCommaSep , 130 , 143 , // 129 - dv + 0x465 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa5 , 1 | ArabicCommaSep , 130 , 143 , // 130 - dv-mv + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd2 , 1 | SemicolonSep , 132 , 240 , // 131 - dyo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd2 , 1 | SemicolonSep , 132 , 240 , // 132 - dyo-sn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x22 , 2 | SemicolonSep , 134 , 240 , // 133 - dz + 0xc51 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x22 , 2 | SemicolonSep , 134 , 240 , // 134 - dz-bt + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 136 , 240 , // 135 - ebu + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 136 , 240 , // 136 - ebu-ke + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x59 , 1 | SemicolonSep , 138 , 240 , // 137 - ee + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x59 , 1 | SemicolonSep , 138 , 240 , // 138 - ee-gh + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xe8 , 1 | SemicolonSep , 139 , 240 , // 139 - ee-tg + 0x8 , 0x4e5 , 0x2e1 , 0x2716, 0x4f31, 0x62 , 1 | SemicolonSep , 142 , 142 , // 140 - el + 0x1000 , 0x4e5 , 0x2e1 , 0x2716, 0x4f31, 0x3b , 1 | SemicolonSep , 141 , 240 , // 141 - el-cy + 0x408 , 0x4e5 , 0x2e1 , 0x2716, 0x4f31, 0x62 , 1 | SemicolonSep , 142 , 142 , // 142 - el-gr + 0x9 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 | CommaSep , 240 , 240 , // 143 - en + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x989e, 1 | CommaSep , 144 , 240 , // 144 - en-001 + 0x2409 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x993248, 1 | CommaSep , 145 , 145 , // 145 - en-029 + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x292d, 1 | CommaSep , 146 , 240 , // 146 - en-150 + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x2 , 1 | CommaSep , 147 , 240 , // 147 - en-ag + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x12c , 1 | CommaSep , 148 , 240 , // 148 - en-ai + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa , 1 | CommaSep , 149 , 240 , // 149 - en-as + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xe , 1 | CommaSep , 150 , 240 , // 150 - en-at + 0xc09 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc , 1 | CommaSep , 151 , 151 , // 151 - en-au + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x12 , 1 | CommaSep , 152 , 240 , // 152 - en-bb + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15 , 1 | CommaSep , 153 , 240 , // 153 - en-be + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x26 , 1 | CommaSep , 154 , 240 , // 154 - en-bi + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x14 , 1 | CommaSep , 155 , 240 , // 155 - en-bm + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x16 , 1 | CommaSep , 156 , 240 , // 156 - en-bs + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x13 , 1 | CommaSep , 157 , 240 , // 157 - en-bw + 0x2809 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x18 , 1 | CommaSep , 158 , 158 , // 158 - en-bz + 0x1009 , 0x4e4 , 0x352 , 0x2710, 0x25 , 0x27 , 1 | CommaSep , 159 , 159 , // 159 - en-ca + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x137 , 1 | CommaSep , 160 , 240 , // 160 - en-cc + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdf , 1 | CommaSep , 161 , 240 , // 161 - en-ch + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x138 , 1 | CommaSep , 162 , 240 , // 162 - en-ck + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x31 , 1 | CommaSep , 163 , 240 , // 163 - en-cm + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x135 , 1 | CommaSep , 164 , 240 , // 164 - en-cx + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3b , 1 | CommaSep , 165 , 240 , // 165 - en-cy + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 | CommaSep , 166 , 240 , // 166 - en-de + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3d , 1 | CommaSep , 167 , 240 , // 167 - en-dk + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x3f , 1 | CommaSep , 168 , 240 , // 168 - en-dm + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x47 , 1 | CommaSep , 169 , 240 , // 169 - en-er + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x4d , 1 | CommaSep , 170 , 240 , // 170 - en-fi + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x4e , 1 | CommaSep , 171 , 240 , // 171 - en-fj + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x13b , 1 | CommaSep , 172 , 240 , // 172 - en-fk + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x50 , 1 | CommaSep , 173 , 240 , // 173 - en-fm + 0x809 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 | CommaSep , 174 , 174 , // 174 - en-gb + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x5b , 1 | CommaSep , 175 , 240 , // 175 - en-gd + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x144 , 1 | CommaSep , 176 , 240 , // 176 - en-gg + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x59 , 1 | CommaSep , 177 , 240 , // 177 - en-gh + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x5a , 1 | CommaSep , 178 , 240 , // 178 - en-gi + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x56 , 1 | CommaSep , 179 , 240 , // 179 - en-gm + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x142 , 1 | CommaSep , 180 , 240 , // 180 - en-gu + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x65 , 1 | CommaSep , 181 , 240 , // 181 - en-gy + 0x3c09 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x68 , 1 | CommaSep , 182 , 240 , // 182 - en-hk + 0x3809 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 | SemicolonSep , 183 , 240 , // 183 - en-id + 0x1809 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x44 , 1 | CommaSep , 184 , 184 , // 184 - en-ie + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x75 , 1 | CommaSep , 185 , 240 , // 185 - en-il + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x3b16, 1 | CommaSep , 186 , 240 , // 186 - en-im + 0x4009 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x71 , 1 | CommaSep , 187 , 187 , // 187 - en-in + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x72 , 1 | CommaSep , 188 , 240 , // 188 - en-io + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x148 , 1 | CommaSep , 189 , 240 , // 189 - en-je + 0x2009 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x7c , 1 | CommaSep , 190 , 190 , // 190 - en-jm + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x81 , 1 | CommaSep , 191 , 240 , // 191 - en-ke + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x85 , 1 | CommaSep , 192 , 240 , // 192 - en-ki + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xcf , 1 | CommaSep , 193 , 240 , // 193 - en-kn + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x133 , 1 | CommaSep , 194 , 240 , // 194 - en-ky + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xda , 1 | CommaSep , 195 , 240 , // 195 - en-lc + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x8e , 1 | CommaSep , 196 , 240 , // 196 - en-lr + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x92 , 1 | CommaSep , 197 , 240 , // 197 - en-ls + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x95 , 1 | CommaSep , 198 , 240 , // 198 - en-mg + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc7 , 1 | CommaSep , 199 , 240 , // 199 - en-mh + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x97 , 1 | CommaSep , 200 , 240 , // 200 - en-mo + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x151 , 1 | CommaSep , 201 , 240 , // 201 - en-mp + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x14c , 1 | CommaSep , 202 , 240 , // 202 - en-ms + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa3 , 1 | CommaSep , 203 , 240 , // 203 - en-mt + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa0 , 1 | CommaSep , 204 , 240 , // 204 - en-mu + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x9c , 1 | CommaSep , 205 , 240 , // 205 - en-mw + 0x4409 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xa7 , 1 | CommaSep , 206 , 206 , // 206 - en-my + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xfe , 1 | CommaSep , 207 , 240 , // 207 - en-na + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x150 , 1 | CommaSep , 208 , 240 , // 208 - en-nf + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 | CommaSep , 209 , 240 , // 209 - en-ng + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb0 , 1 | CommaSep , 210 , 240 , // 210 - en-nl + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb4 , 1 | CommaSep , 211 , 240 , // 211 - en-nr + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x14f , 1 | CommaSep , 212 , 240 , // 212 - en-nu + 0x1409 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb7 , 1 | CommaSep , 213 , 213 , // 213 - en-nz + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc2 , 1 | CommaSep , 214 , 240 , // 214 - en-pg + 0x3409 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xc9 , 1 | CommaSep , 215 , 215 , // 215 - en-ph + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xbe , 1 | CommaSep , 216 , 240 , // 216 - en-pk + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x153 , 1 | CommaSep , 217 , 240 , // 217 - en-pn + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xca , 1 | CommaSep , 218 , 240 , // 218 - en-pr + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc3 , 1 | CommaSep , 219 , 240 , // 219 - en-pw + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xcc , 1 | CommaSep , 220 , 240 , // 220 - en-rw + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x1e , 1 | CommaSep , 221 , 240 , // 221 - en-sb + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd0 , 1 | CommaSep , 222 , 240 , // 222 - en-sc + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xdb , 1 | CommaSep , 223 , 240 , // 223 - en-sd + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdd , 1 | CommaSep , 224 , 240 , // 224 - en-se + 0x4809 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xd7 , 1 | CommaSep , 225 , 225 , // 225 - en-sg + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x157 , 1 | CommaSep , 226 , 240 , // 226 - en-sh + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd4 , 1 | CommaSep , 227 , 240 , // 227 - en-si + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd5 , 1 | CommaSep , 228 , 240 , // 228 - en-sl + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x114 , 1 | CommaSep , 229 , 240 , // 229 - en-ss + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x78f7, 1 | CommaSep , 230 , 240 , // 230 - en-sx + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x104 , 1 | CommaSep , 231 , 240 , // 231 - en-sz + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15d , 1 | CommaSep , 232 , 240 , // 232 - en-tc + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15b , 1 | CommaSep , 233 , 240 , // 233 - en-tk + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xe7 , 1 | CommaSep , 234 , 240 , // 234 - en-to + 0x2c09 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xe1 , 1 | CommaSep , 235 , 235 , // 235 - en-tt + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xec , 1 | CommaSep , 236 , 240 , // 236 - en-tv + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xef , 1 | CommaSep , 237 , 240 , // 237 - en-tz + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xf0 , 1 | CommaSep , 238 , 240 , // 238 - en-ug + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x9a55d40,1 | CommaSep , 239 , 240 , // 239 - en-um + 0x409 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 | CommaSep , 240 , 240 , // 240 - en-us + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xf8 , 1 | CommaSep , 241 , 240 , // 241 - en-vc + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15f , 1 | CommaSep , 242 , 240 , // 242 - en-vg + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xfc , 1 | CommaSep , 243 , 240 , // 243 - en-vi + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xae , 1 | CommaSep , 244 , 240 , // 244 - en-vu + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x103 , 1 | CommaSep , 245 , 240 , // 245 - en-ws + 0x1c09 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xd1 , 1 | CommaSep , 246 , 246 , // 246 - en-za + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x107 , 1 | CommaSep , 247 , 240 , // 247 - en-zm + 0x3009 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x108 , 1 | CommaSep , 248 , 248 , // 248 - en-zw + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 250 , 240 , // 249 - eo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 250 , 240 , // 250 - eo-001 + 0xa , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xd9 , 1 | SemicolonSep , 262 , 262 , // 251 - es + 0x580a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x9a55d41, 1 | SemicolonSep , 252 , 240 , // 252 - es-419 + 0x2c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb , 1 | SemicolonSep , 253 , 253 , // 253 - es-ar + 0x400a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x1a , 1 | SemicolonSep , 254 , 254 , // 254 - es-bo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x20 , 1 | SemicolonSep , 255 , 240 , // 255 - es-br + 0x340a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x2e , 1 | SemicolonSep , 256 , 256 , // 256 - es-cl + 0x240a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x33 , 1 | SemicolonSep , 257 , 257 , // 257 - es-co + 0x140a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x36 , 1 | SemicolonSep , 258 , 258 , // 258 - es-cr + 0x5c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x38 , 1 | SemicolonSep , 259 , 240 , // 259 - es-cu + 0x1c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x41 , 1 | SemicolonSep , 260 , 260 , // 260 - es-do + 0x300a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x42 , 1 | SemicolonSep , 261 , 261 , // 261 - es-ec + 0xc0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xd9 , 1 | SemicolonSep , 262 , 262 , // 262 - es-es + 0x40a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xd9 , 1 | SemicolonSep , 263 , 263 , // 263 - es-es_tradnl + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x45 , 1 | SemicolonSep , 264 , 240 , // 264 - es-gq + 0x100a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x63 , 1 | SemicolonSep , 265 , 265 , // 265 - es-gt + 0x480a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x6a , 1 | SemicolonSep , 266 , 266 , // 266 - es-hn + 0x80a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xa6 , 1 | CommaSep , 267 , 267 , // 267 - es-mx + 0x4c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb6 , 1 | SemicolonSep , 268 , 268 , // 268 - es-ni + 0x180a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xc0 , 1 | SemicolonSep , 269 , 269 , // 269 - es-pa + 0x280a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xbb , 1 | SemicolonSep , 270 , 270 , // 270 - es-pe + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xc9 , 1 | SemicolonSep , 271 , 240 , // 271 - es-ph + 0x500a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xca , 1 | SemicolonSep , 272 , 272 , // 272 - es-pr + 0x3c0a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb9 , 1 | SemicolonSep , 273 , 273 , // 273 - es-py + 0x440a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x48 , 1 | SemicolonSep , 274 , 274 , // 274 - es-sv + 0x540a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xf4 , 1 | CommaSep , 275 , 275 , // 275 - es-us + 0x380a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xf6 , 1 | SemicolonSep , 276 , 276 , // 276 - es-uy + 0x200a , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xf9 , 1 | SemicolonSep , 277 , 277 , // 277 - es-ve + 0x25 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x46 , 1 | SemicolonSep , 279 , 279 , // 278 - et + 0x425 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x46 , 1 | SemicolonSep , 279 , 279 , // 279 - et-ee + 0x2d , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0xd9 , 1 | SemicolonSep , 281 , 240 , // 280 - eu + 0x42d , 0x4e4 , 0x352 , 0x2 , 0x1f4 , 0xd9 , 1 | SemicolonSep , 281 , 240 , // 281 - eu-es + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 283 , 240 , // 282 - ewo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 283 , 240 , // 283 - ewo-cm + 0x29 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x74 , 0 | ArabicSemicolonSep, 285 , 143 , // 284 - fa + 0x429 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x74 , 0 | ArabicSemicolonSep, 285 , 143 , // 285 - fa-ir + 0x67 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 | SemicolonSep , 290 , 290 , // 286 - ff + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x31 , 1 | SemicolonSep , 287 , 240 , // 287 - ff-cm + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x64 , 1 | SemicolonSep , 288 , 240 , // 288 - ff-gn + 0x7c67 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 | SemicolonSep , 290 , 290 , // 289 - ff-latn + 0x867 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 | SemicolonSep , 290 , 290 , // 290 - ff-latn-sn + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xa2 , 1 | SemicolonSep , 291 , 240 , // 291 - ff-mr + 0x467 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xaf , 1 | SemicolonSep , 292 , 240 , // 292 - ff-ng + 0xb , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 | SemicolonSep , 294 , 294 , // 293 - fi + 0x40b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 | SemicolonSep , 294 , 294 , // 294 - fi-fi + 0x64 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xc9 , 1 | SemicolonSep , 296 , 296 , // 295 - fil + 0x464 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xc9 , 1 | SemicolonSep , 296 , 296 , // 296 - fil-ph + 0x38 , 0x4e4 , 0x352 , 0x275f, 0x4f35, 0x51 , 1 | SemicolonSep , 299 , 299 , // 297 - fo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3d , 1 | SemicolonSep , 298 , 240 , // 298 - fo-dk + 0x438 , 0x4e4 , 0x352 , 0x275f, 0x4f35, 0x51 , 1 | SemicolonSep , 299 , 299 , // 299 - fo-fo + 0xc , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 316 , 316 , // 300 - fr + 0x1c0c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x993248, 1 | SemicolonSep , 301 , 316 , // 301 - fr-029 + 0x80c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x15 , 1 | SemicolonSep , 302 , 302 , // 302 - fr-be + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xf5 , 1 | SemicolonSep , 303 , 240 , // 303 - fr-bf + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x26 , 1 | SemicolonSep , 304 , 240 , // 304 - fr-bi + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x1c , 1 | SemicolonSep , 305 , 240 , // 305 - fr-bj + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x9a55c4f, 1 | SemicolonSep , 306 , 240 , // 306 - fr-bl + 0xc0c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x27 , 1 | SemicolonSep , 307 , 307 , // 307 - fr-ca + 0x240c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x2c , 1 | SemicolonSep , 308 , 240 , // 308 - fr-cd + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x37 , 1 | SemicolonSep , 309 , 240 , // 309 - fr-cf + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x2b , 1 | SemicolonSep , 310 , 240 , // 310 - fr-cg + 0x100c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xdf , 1 | SemicolonSep , 311 , 311 , // 311 - fr-ch + 0x300c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x77 , 1 | SemicolonSep , 312 , 240 , // 312 - fr-ci + 0x2c0c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x31 , 1 | SemicolonSep , 313 , 240 , // 313 - fr-cm + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x3e , 1 | SemicolonSep , 314 , 240 , // 314 - fr-dj + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x4 , 1 | SemicolonSep , 315 , 240 , // 315 - fr-dz + 0x40c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 316 , 316 , // 316 - fr-fr + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x57 , 1 | SemicolonSep , 317 , 240 , // 317 - fr-ga + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x13d , 1 | SemicolonSep , 318 , 240 , // 318 - fr-gf + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x64 , 1 | SemicolonSep , 319 , 240 , // 319 - fr-gn + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x141 , 1 | SemicolonSep , 320 , 240 , // 320 - fr-gp + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x45 , 1 | SemicolonSep , 321 , 240 , // 321 - fr-gq + 0x3c0c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x67 , 1 | SemicolonSep , 322 , 240 , // 322 - fr-ht + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x32 , 1 | SemicolonSep , 323 , 240 , // 323 - fr-km + 0x140c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x93 , 1 | SemicolonSep , 324 , 324 , // 324 - fr-lu + 0x380c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x9f , 1 | SemicolonSep , 325 , 240 , // 325 - fr-ma + 0x180c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x9e , 1 | SemicolonSep , 326 , 326 , // 326 - fr-mc + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x7bda, 1 | SemicolonSep , 327 , 240 , // 327 - fr-mf + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x95 , 1 | SemicolonSep , 328 , 240 , // 328 - fr-mg + 0x340c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x9d , 1 | SemicolonSep , 329 , 240 , // 329 - fr-ml + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x14a , 1 | SemicolonSep , 330 , 240 , // 330 - fr-mq + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xa2 , 1 | SemicolonSep , 331 , 240 , // 331 - fr-mr + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xa0 , 1 | SemicolonSep , 332 , 240 , // 332 - fr-mu + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x14e , 1 | SemicolonSep , 333 , 240 , // 333 - fr-nc + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xad , 1 | SemicolonSep , 334 , 240 , // 334 - fr-ne + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x13e , 1 | SemicolonSep , 335 , 240 , // 335 - fr-pf + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xce , 1 | SemicolonSep , 336 , 240 , // 336 - fr-pm + 0x200c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xc6 , 1 | SemicolonSep , 337 , 240 , // 337 - fr-re + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xcc , 1 | SemicolonSep , 338 , 240 , // 338 - fr-rw + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd0 , 1 | SemicolonSep , 339 , 240 , // 339 - fr-sc + 0x280c , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 | SemicolonSep , 340 , 240 , // 340 - fr-sn + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xde , 1 | SemicolonSep , 341 , 240 , // 341 - fr-sy + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x29 , 1 | SemicolonSep , 342 , 240 , // 342 - fr-td + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xe8 , 1 | SemicolonSep , 343 , 240 , // 343 - fr-tg + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xea , 1 | SemicolonSep , 344 , 240 , // 344 - fr-tn + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xae , 1 | SemicolonSep , 345 , 240 , // 345 - fr-vu + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x160 , 1 | SemicolonSep , 346 , 240 , // 346 - fr-wf + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x14b , 1 | SemicolonSep , 347 , 240 , // 347 - fr-yt + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x76 , 1 | SemicolonSep , 349 , 240 , // 348 - fur + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x76 , 1 | SemicolonSep , 349 , 240 , // 349 - fur-it + 0x62 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb0 , 1 | SemicolonSep , 351 , 351 , // 350 - fy + 0x462 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb0 , 1 | SemicolonSep , 351 , 351 , // 351 - fy-nl + 0x3c , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x44 , 1 | SemicolonSep , 353 , 353 , // 352 - ga + 0x83c , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x44 , 1 | SemicolonSep , 353 , 353 , // 353 - ga-ie + 0x91 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 | SemicolonSep , 355 , 355 , // 354 - gd + 0x491 , 0x4e4 , 0x352 , 0x2710, 0x4f3d, 0xf2 , 1 | SemicolonSep , 355 , 355 , // 355 - gd-gb + 0x56 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 | SemicolonSep , 357 , 357 , // 356 - gl + 0x456 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd9 , 1 | SemicolonSep , 357 , 357 , // 357 - gl-es + 0x74 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb9 , 1 | CommaSep , 359 , 359 , // 358 - gn + 0x474 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xb9 , 1 | CommaSep , 359 , 359 , // 359 - gn-py + 0x84 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xdf , 1 | SemicolonSep , 361 , 240 , // 360 - gsw + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xdf , 1 | SemicolonSep , 361 , 240 , // 361 - gsw-ch + 0x484 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 362 , 362 , // 362 - gsw-fr + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x91 , 1 | SemicolonSep , 363 , 240 , // 363 - gsw-li + 0x47 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 365 , 143 , // 364 - gu + 0x447 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 365 , 143 , // 365 - gu-in + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 367 , 240 , // 366 - guz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 367 , 240 , // 367 - guz-ke + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3b16, 1 | SemicolonSep , 369 , 240 , // 368 - gv + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3b16, 1 | SemicolonSep , 369 , 240 , // 369 - gv-im + 0x68 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 | SemicolonSep , 374 , 374 , // 370 - ha + 0x7c68 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 | SemicolonSep , 374 , 374 , // 371 - ha-latn + 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x59 , 1 | SemicolonSep , 372 , 240 , // 372 - ha-latn-gh + 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xad , 1 | SemicolonSep , 373 , 240 , // 373 - ha-latn-ne + 0x468 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 | SemicolonSep , 374 , 374 , // 374 - ha-latn-ng + 0x75 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 | SemicolonSep , 376 , 376 , // 375 - haw + 0x475 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 | SemicolonSep , 376 , 376 , // 376 - haw-us + 0xd , 0x4e7 , 0x35e , 0x2715, 0x1f4 , 0x75 , 1 | CommaSep , 378 , 143 , // 377 - he + 0x40d , 0x4e7 , 0x35e , 0x2715, 0x1f4 , 0x75 , 1 | CommaSep , 378 , 143 , // 378 - he-il + 0x39 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 380 , 143 , // 379 - hi + 0x439 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 380 , 143 , // 380 - hi-in + 0x1a , 0x4e2 , 0x354 , 0x2762, 0x1f4 , 0x6c , 1 | SemicolonSep , 383 , 383 , // 381 - hr + 0x101a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 | SemicolonSep , 382 , 382 , // 382 - hr-ba + 0x41a , 0x4e2 , 0x354 , 0x2762, 0x1f4 , 0x6c , 1 | SemicolonSep , 383 , 383 , // 383 - hr-hr + 0x2e , 0x4e4 , 0x352 , 0x2710, 0x366 , 0x5e , 1 | SemicolonSep , 385 , 385 , // 384 - hsb + 0x42e , 0x4e4 , 0x352 , 0x2710, 0x366 , 0x5e , 1 | SemicolonSep , 385 , 385 , // 385 - hsb-de + 0xe , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x6d , 1 | SemicolonSep , 387 , 387 , // 386 - hu + 0x40e , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x6d , 1 | SemicolonSep , 387 , 387 , // 387 - hu-hu + 0x1040e, 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x6d , 1 | SemicolonSep , 387 , 387 , // 388 - hu-hu_technl + 0x2b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x7 , 1 | CommaSep , 390 , 390 , // 389 - hy + 0x42b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x7 , 1 | CommaSep , 390 , 390 , // 390 - hy-am + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x54 , 1 | SemicolonSep , 393 , 240 , // 391 - ia + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 392 , 240 , // 392 - ia-001 + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x54 , 1 | SemicolonSep , 393 , 240 , // 393 - ia-fr + 0x69 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 | SemicolonSep , 395 , 240 , // 394 - ibb + 0x469 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 | SemicolonSep , 395 , 240 , // 395 - ibb-ng + 0x21 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 | SemicolonSep , 397 , 397 , // 396 - id + 0x421 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 | SemicolonSep , 397 , 397 , // 397 - id-id + 0x70 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 | SemicolonSep , 399 , 399 , // 398 - ig + 0x470 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 | SemicolonSep , 399 , 399 , // 399 - ig-ng + 0x78 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 | SemicolonSep , 401 , 143 , // 400 - ii + 0x478 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 | SemicolonSep , 401 , 143 , // 401 - ii-cn + 0xf , 0x4e4 , 0x352 , 0x275f, 0x5187, 0x6e , 1 | SemicolonSep , 403 , 403 , // 402 - is + 0x40f , 0x4e4 , 0x352 , 0x275f, 0x5187, 0x6e , 1 | SemicolonSep , 403 , 403 , // 403 - is-is + 0x10 , 0x4e4 , 0x352 , 0x2710, 0x4f38, 0x76 , 1 | SemicolonSep , 406 , 406 , // 404 - it + 0x810 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xdf , 1 | SemicolonSep , 405 , 405 , // 405 - it-ch + 0x410 , 0x4e4 , 0x352 , 0x2710, 0x4f38, 0x76 , 1 | SemicolonSep , 406 , 406 , // 406 - it-it + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f38, 0xd6 , 1 | SemicolonSep , 407 , 240 , // 407 - it-sm + 0x5d , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x27 , 1 | CommaSep , 412 , 412 , // 408 - iu + 0x785d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x27 , 1 | CommaSep , 410 , 143 , // 409 - iu-cans + 0x45d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x27 , 1 | CommaSep , 410 , 143 , // 410 - iu-cans-ca + 0x7c5d , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x27 , 1 | CommaSep , 412 , 412 , // 411 - iu-latn + 0x85d , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x27 , 1 | CommaSep , 412 , 412 , // 412 - iu-latn-ca + 0x11 , 0x3a4 , 0x3a4 , 0x2711, 0x4f42, 0x7a , 1 | CommaSep , 414 , 414 , // 413 - ja + 0x411 , 0x3a4 , 0x3a4 , 0x2711, 0x4f42, 0x7a , 1 | CommaSep , 414 , 414 , // 414 - ja-jp + 0x40411, 0x3a4 , 0x3a4 , 0x2711, 0x4f42, 0x7a , 1 | CommaSep , 414 , 414 , // 415 - ja-jp_radstr + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 417 , 240 , // 416 - jgo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 417 , 240 , // 417 - jgo-cm + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 419 , 240 , // 418 - jmc + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 419 , 240 , // 419 - jmc-tz + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 | SemicolonSep , 424 , 424 , // 420 - jv + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 | SemicolonSep , 422 , 424 , // 421 - jv-java + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 | SemicolonSep , 422 , 424 , // 422 - jv-java-id + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 | SemicolonSep , 424 , 424 , // 423 - jv-latn + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f , 1 | SemicolonSep , 424 , 424 , // 424 - jv-latn-id + 0x37 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 | SemicolonSep , 426 , 426 , // 425 - ka + 0x437 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 | SemicolonSep , 426 , 426 , // 426 - ka-ge + 0x10437, 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 | SemicolonSep , 426 , 426 , // 427 - ka-ge_modern + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x4 , 1 | SemicolonSep , 429 , 240 , // 428 - kab + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x4 , 1 | SemicolonSep , 429 , 240 , // 429 - kab-dz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 431 , 240 , // 430 - kam + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 431 , 240 , // 431 - kam-ke + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 433 , 240 , // 432 - kde + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 433 , 240 , // 433 - kde-tz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x39 , 1 | SemicolonSep , 435 , 240 , // 434 - kea + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x39 , 1 | SemicolonSep , 435 , 240 , // 435 - kea-cv + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 | SemicolonSep , 437 , 240 , // 436 - khq + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 | SemicolonSep , 437 , 240 , // 437 - khq-ml + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 439 , 240 , // 438 - ki + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 439 , 240 , // 439 - ki-ke + 0x3f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x89 , 1 | SemicolonSep , 441 , 441 , // 440 - kk + 0x43f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x89 , 1 | SemicolonSep , 441 , 441 , // 441 - kk-kz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 443 , 240 , // 442 - kkj + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 443 , 240 , // 443 - kkj-cm + 0x6f , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0x5d , 1 | SemicolonSep , 445 , 445 , // 444 - kl + 0x46f , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0x5d , 1 | SemicolonSep , 445 , 445 , // 445 - kl-gl + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 447 , 240 , // 446 - kln + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 447 , 240 , // 447 - kln-ke + 0x53 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x28 , 2 | CommaSep , 449 , 143 , // 448 - km + 0x453 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x28 , 2 | CommaSep , 449 , 143 , // 449 - km-kh + 0x4b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 451 , 143 , // 450 - kn + 0x44b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 451 , 143 , // 451 - kn-in + 0x12 , 0x3b5 , 0x3b5 , 0x2713, 0x5161, 0x86 , 1 | CommaSep , 454 , 454 , // 452 - ko + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x83 , 1 | SemicolonSep , 453 , 240 , // 453 - ko-kp + 0x412 , 0x3b5 , 0x3b5 , 0x2713, 0x5161, 0x86 , 1 | CommaSep , 454 , 454 , // 454 - ko-kr + 0x57 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 456 , 143 , // 455 - kok + 0x457 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 456 , 143 , // 456 - kok-in + 0x71 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 | SemicolonSep , 458 , 240 , // 457 - kr + 0x471 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xaf , 1 | SemicolonSep , 458 , 240 , // 458 - kr-ng + 0x60 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 2 | SemicolonSep , 461 , 240 , // 459 - ks + 0x460 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 2 | SemicolonSep , 461 , 240 , // 460 - ks-arab + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 2 | SemicolonSep , 461 , 240 , // 461 - ks-arab-in + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 463 , 187 , // 462 - ks-deva + 0x860 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 463 , 187 , // 463 - ks-deva-in + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 465 , 240 , // 464 - ksb + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 465 , 240 , // 465 - ksb-tz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 467 , 240 , // 466 - ksf + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 467 , 240 , // 467 - ksf-cm + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 | SemicolonSep , 469 , 240 , // 468 - ksh + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 | SemicolonSep , 469 , 240 , // 469 - ksh-de + 0x92 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x79 , 0 | ArabicSemicolonSep, 472 , 143 , // 470 - ku + 0x7c92 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x79 , 0 | ArabicSemicolonSep, 472 , 143 , // 471 - ku-arab + 0x492 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x79 , 0 | ArabicSemicolonSep, 472 , 143 , // 472 - ku-arab-iq + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 0 | SemicolonSep , 473 , 240 , // 473 - ku-arab-ir + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf2 , 1 | SemicolonSep , 475 , 240 , // 474 - kw + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf2 , 1 | SemicolonSep , 475 , 240 , // 475 - kw-gb + 0x40 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x82 , 1 | SemicolonSep , 477 , 477 , // 476 - ky + 0x440 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x82 , 1 | SemicolonSep , 477 , 477 , // 477 - ky-kg + 0x76 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x989e, 1 | CommaSep , 479 , 143 , // 478 - la + 0x476 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0x989e, 1 | CommaSep , 479 , 143 , // 479 - la-001 + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 481 , 240 , // 480 - lag + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 481 , 240 , // 481 - lag-tz + 0x6e , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x93 , 1 | SemicolonSep , 483 , 483 , // 482 - lb + 0x46e , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x93 , 1 | SemicolonSep , 483 , 483 , // 483 - lb-lu + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 485 , 240 , // 484 - lg + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 485 , 240 , // 485 - lg-ug + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 | SemicolonSep , 487 , 240 , // 486 - lkt + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf4 , 1 | SemicolonSep , 487 , 240 , // 487 - lkt-us + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2c , 1 | SemicolonSep , 490 , 240 , // 488 - ln + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9 , 1 | SemicolonSep , 489 , 240 , // 489 - ln-ao + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2c , 1 | SemicolonSep , 490 , 240 , // 490 - ln-cd + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x37 , 1 | SemicolonSep , 491 , 240 , // 491 - ln-cf + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2b , 1 | SemicolonSep , 492 , 240 , // 492 - ln-cg + 0x54 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8a , 1 | SemicolonSep , 494 , 143 , // 493 - lo + 0x454 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8a , 1 | SemicolonSep , 494 , 143 , // 494 - lo-la + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 2 | SemicolonSep , 497 , 240 , // 495 - lrc + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x79 , 2 | SemicolonSep , 496 , 240 , // 496 - lrc-iq + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 2 | SemicolonSep , 497 , 240 , // 497 - lrc-ir + 0x27 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x8d , 1 | SemicolonSep , 499 , 499 , // 498 - lt + 0x427 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x8d , 1 | SemicolonSep , 499 , 499 , // 499 - lt-lt + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2c , 1 | SemicolonSep , 501 , 240 , // 500 - lu + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2c , 1 | SemicolonSep , 501 , 240 , // 501 - lu-cd + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 503 , 240 , // 502 - luo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 503 , 240 , // 503 - luo-ke + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 505 , 240 , // 504 - luy + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 505 , 240 , // 505 - luy-ke + 0x26 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x8c , 1 | SemicolonSep , 507 , 507 , // 506 - lv + 0x426 , 0x4e9 , 0x307 , 0x272d, 0x1f4 , 0x8c , 1 | SemicolonSep , 507 , 507 , // 507 - lv-lv + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 509 , 240 , // 508 - mas + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 509 , 240 , // 509 - mas-ke + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 510 , 240 , // 510 - mas-tz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 512 , 240 , // 511 - mer + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 512 , 240 , // 512 - mer-ke + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa0 , 1 | SemicolonSep , 514 , 240 , // 513 - mfe + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa0 , 1 | SemicolonSep , 514 , 240 , // 514 - mfe-mu + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x95 , 1 | SemicolonSep , 516 , 240 , // 515 - mg + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x95 , 1 | SemicolonSep , 516 , 240 , // 516 - mg-mg + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa8 , 1 | SemicolonSep , 518 , 240 , // 517 - mgh + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa8 , 1 | SemicolonSep , 518 , 240 , // 518 - mgh-mz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 520 , 240 , // 519 - mgo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 520 , 240 , // 520 - mgo-cm + 0x81 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb7 , 1 | CommaSep , 522 , 522 , // 521 - mi + 0x481 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb7 , 1 | CommaSep , 522 , 522 , // 522 - mi-nz + 0x2f , 0x4e3 , 0x362 , 0x2717, 0x1f4 , 0x4ca2, 1 | SemicolonSep , 524 , 524 , // 523 - mk + 0x42f , 0x4e3 , 0x362 , 0x2717, 0x1f4 , 0x4ca2, 1 | SemicolonSep , 524 , 524 , // 524 - mk-mk + 0x4c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | SemicolonSep , 526 , 143 , // 525 - ml + 0x44c , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | SemicolonSep , 526 , 143 , // 526 - ml-in + 0x50 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x9a , 1 | SemicolonSep , 529 , 529 , // 527 - mn + 0x7850 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x9a , 1 | SemicolonSep , 529 , 529 , // 528 - mn-cyrl + 0x450 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0x9a , 1 | SemicolonSep , 529 , 529 , // 529 - mn-mn + 0x7c50 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 | CommaSep , 531 , 531 , // 530 - mn-mong + 0x850 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2d , 1 | CommaSep , 531 , 531 , // 531 - mn-mong-cn + 0xc50 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9a , 1 | CommaSep , 532 , 532 , // 532 - mn-mong-mn + 0x58 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 534 , 187 , // 533 - mni + 0x458 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 534 , 187 , // 534 - mni-in + 0x7c , 0x4e4 , 0x352 , 0x2710, 0x25 , 0x27 , 1 | CommaSep , 536 , 240 , // 535 - moh + 0x47c , 0x4e4 , 0x352 , 0x2710, 0x25 , 0x27 , 1 | CommaSep , 536 , 240 , // 536 - moh-ca + 0x4e , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 538 , 143 , // 537 - mr + 0x44e , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 538 , 143 , // 538 - mr-in + 0x3e , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa7 , 1 | SemicolonSep , 541 , 541 , // 539 - ms + 0x83e , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x25 , 1 | SemicolonSep , 540 , 540 , // 540 - ms-bn + 0x43e , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa7 , 1 | SemicolonSep , 541 , 541 , // 541 - ms-my + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd7 , 1 | SemicolonSep , 542 , 240 , // 542 - ms-sg + 0x3a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa3 , 1 | SemicolonSep , 544 , 544 , // 543 - mt + 0x43a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa3 , 1 | SemicolonSep , 544 , 544 , // 544 - mt-mt + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 546 , 240 , // 545 - mua + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 546 , 240 , // 546 - mua-cm + 0x55 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x1b , 2 | SemicolonSep , 548 , 240 , // 547 - my + 0x455 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x1b , 2 | SemicolonSep , 548 , 240 , // 548 - my-mm + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 2 | SemicolonSep , 550 , 240 , // 549 - mzn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x74 , 2 | SemicolonSep , 550 , 240 , // 550 - mzn-ir + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xfe , 1 | SemicolonSep , 552 , 240 , // 551 - naq + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xfe , 1 | SemicolonSep , 552 , 240 , // 552 - naq-na + 0x7c14 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 554 , 554 , // 553 - nb + 0x414 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 554 , 554 , // 554 - nb-no + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xdc , 1 | SemicolonSep , 555 , 240 , // 555 - nb-sj + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 | SemicolonSep , 557 , 240 , // 556 - nd + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 | SemicolonSep , 557 , 240 , // 557 - nd-zw + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 | SemicolonSep , 559 , 240 , // 558 - nds + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x5e , 1 | SemicolonSep , 559 , 240 , // 559 - nds-de + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb0 , 1 | SemicolonSep , 560 , 240 , // 560 - nds-nl + 0x61 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb2 , 1 | CommaSep , 563 , 143 , // 561 - ne + 0x861 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 2 | SemicolonSep , 562 , 240 , // 562 - ne-in + 0x461 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xb2 , 1 | CommaSep , 563 , 143 , // 563 - ne-np + 0x13 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb0 , 1 | SemicolonSep , 569 , 569 , // 564 - nl + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x12e , 1 | SemicolonSep , 565 , 240 , // 565 - nl-aw + 0x813 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x15 , 1 | SemicolonSep , 566 , 566 , // 566 - nl-be + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x9a55d42, 1 | SemicolonSep , 567 , 240 , // 567 - nl-bq + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x111 , 1 | SemicolonSep , 568 , 240 , // 568 - nl-cw + 0x413 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb0 , 1 | SemicolonSep , 569 , 569 , // 569 - nl-nl + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xb5 , 1 | SemicolonSep , 570 , 240 , // 570 - nl-sr + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x78f7, 1 | SemicolonSep , 571 , 240 , // 571 - nl-sx + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 573 , 240 , // 572 - nmg + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 573 , 240 , // 573 - nmg-cm + 0x7814 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 575 , 575 , // 574 - nn + 0x814 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 575 , 575 , // 575 - nn-no + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 577 , 240 , // 576 - nnh + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 577 , 240 , // 577 - nnh-cm + 0x14 , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 554 , 554 , // 578 - no + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x64 , 2 | ArabicCommaSep , 580 , 143 , // 579 - nqo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x64 , 2 | ArabicCommaSep , 580 , 143 , // 580 - nqo-gn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 582 , 240 , // 581 - nr + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 582 , 240 , // 582 - nr-za + 0x6c , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 584 , 584 , // 583 - nso + 0x46c , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 584 , 584 , // 584 - nso-za + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x114 , 1 | SemicolonSep , 586 , 240 , // 585 - nus + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x114 , 1 | SemicolonSep , 586 , 240 , // 586 - nus-ss + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 588 , 240 , // 587 - nyn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 588 , 240 , // 588 - nyn-ug + 0x82 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 590 , 590 , // 589 - oc + 0x482 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x54 , 1 | SemicolonSep , 590 , 590 , // 590 - oc-fr + 0x72 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 592 , 240 , // 591 - om + 0x472 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 592 , 240 , // 592 - om-et + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 593 , 240 , // 593 - om-ke + 0x48 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 595 , 143 , // 594 - or + 0x448 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 595 , 143 , // 595 - or-in + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 | SemicolonSep , 597 , 240 , // 596 - os + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x58 , 1 | SemicolonSep , 597 , 240 , // 597 - os-ge + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xcb , 1 | SemicolonSep , 598 , 240 , // 598 - os-ru + 0x46 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 602 , 143 , // 599 - pa + 0x7c46 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 | SemicolonSep , 601 , 143 , // 600 - pa-arab + 0x846 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 | SemicolonSep , 601 , 143 , // 601 - pa-arab-pk + 0x446 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 602 , 143 , // 602 - pa-in + 0x79 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x993248, 1 | CommaSep , 604 , 145 , // 603 - pap + 0x479 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x993248, 1 | CommaSep , 604 , 145 , // 604 - pap-029 + 0x15 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xbf , 1 | SemicolonSep , 606 , 606 , // 605 - pl + 0x415 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xbf , 1 | SemicolonSep , 606 , 606 , // 606 - pl-pl + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 608 , 240 , // 607 - prg + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 608 , 240 , // 608 - prg-001 + 0x8c , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x3 , 2 | SemicolonSep , 610 , 143 , // 609 - prs + 0x48c , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x3 , 2 | SemicolonSep , 610 , 143 , // 610 - prs-af + 0x63 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3 , 2 | SemicolonSep , 612 , 143 , // 611 - ps + 0x463 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3 , 2 | SemicolonSep , 612 , 143 , // 612 - ps-af + 0x16 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x20 , 1 | SemicolonSep , 615 , 615 , // 613 - pt + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x9 , 1 | SemicolonSep , 614 , 240 , // 614 - pt-ao + 0x416 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x20 , 1 | SemicolonSep , 615 , 615 , // 615 - pt-br + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdf , 1 | SemicolonSep , 616 , 240 , // 616 - pt-ch + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x39 , 1 | SemicolonSep , 617 , 240 , // 617 - pt-cv + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x45 , 1 | SemicolonSep , 618 , 240 , // 618 - pt-gq + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc4 , 1 | SemicolonSep , 619 , 240 , // 619 - pt-gw + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x93 , 1 | SemicolonSep , 620 , 240 , // 620 - pt-lu + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x97 , 1 | SemicolonSep , 621 , 240 , // 621 - pt-mo + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xa8 , 1 | SemicolonSep , 622 , 240 , // 622 - pt-mz + 0x816 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xc1 , 1 | SemicolonSep , 623 , 623 , // 623 - pt-pt + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xe9 , 1 | SemicolonSep , 624 , 240 , // 624 - pt-st + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x6f60e7,1| SemicolonSep , 625 , 240 , // 625 - pt-tl + 0x901 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x7c , 1 | CommaSep , 626 , 190 , // 626 - qps-latn-x-sh + 0x501 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xf4 , 1 | DoubleCommaSep , 627 , 627 , // 627 - qps-ploc + 0x5fe , 0x3a4 , 0x3a4 , 0x2711, 0x4f42, 0x7a , 1 | CommaSep , 628 , 628 , // 628 - qps-ploca + 0x9ff , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xcd , 0 | SemicolonSep , 629 , 143 , // 629 - qps-plocm + 0x86 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x63 , 1 | CommaSep , 632 , 632 , // 630 - quc + 0x7c86 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x63 , 1 | CommaSep , 632 , 632 , // 631 - quc-latn + 0x486 , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x63 , 1 | CommaSep , 632 , 632 , // 632 - quc-latn-gt + 0x6b , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x1a , 1 | CommaSep , 634 , 634 , // 633 - quz + 0x46b , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x1a , 1 | CommaSep , 634 , 634 , // 634 - quz-bo + 0x86b , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0x42 , 1 | CommaSep , 635 , 635 , // 635 - quz-ec + 0xc6b , 0x4e4 , 0x352 , 0x2710, 0x4f3c, 0xbb , 1 | CommaSep , 636 , 636 , // 636 - quz-pe + 0x17 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0xdf , 1 | SemicolonSep , 638 , 638 , // 637 - rm + 0x417 , 0x4e4 , 0x352 , 0x2710, 0x4f31, 0xdf , 1 | SemicolonSep , 638 , 638 , // 638 - rm-ch + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x26 , 1 | SemicolonSep , 640 , 240 , // 639 - rn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x26 , 1 | SemicolonSep , 640 , 240 , // 640 - rn-bi + 0x18 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xc8 , 1 | SemicolonSep , 643 , 643 , // 641 - ro + 0x818 , 0x4e2 , 0x354 , 0x2 , 0x1f4 , 0x98 , 1 | SemicolonSep , 642 , 240 , // 642 - ro-md + 0x418 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xc8 , 1 | SemicolonSep , 643 , 643 , // 643 - ro-ro + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 645 , 240 , // 644 - rof + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 645 , 240 , // 645 - rof-tz + 0x19 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 | SemicolonSep , 651 , 651 , // 646 - ru + 0x1000 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0x1d , 1 | SemicolonSep , 647 , 240 , // 647 - ru-by + 0x1000 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0x82 , 1 | SemicolonSep , 648 , 240 , // 648 - ru-kg + 0x1000 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0x89 , 1 | SemicolonSep , 649 , 240 , // 649 - ru-kz + 0x819 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0x98 , 1 | SemicolonSep , 650 , 240 , // 650 - ru-md + 0x419 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 | SemicolonSep , 651 , 651 , // 651 - ru-ru + 0x1000 , 0x4e3 , 0x362 , 0x2 , 0x1f4 , 0xf1 , 1 | SemicolonSep , 652 , 240 , // 652 - ru-ua + 0x87 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xcc , 1 | SemicolonSep , 654 , 654 , // 653 - rw + 0x487 , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xcc , 1 | SemicolonSep , 654 , 654 , // 654 - rw-rw + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 656 , 240 , // 655 - rwk + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 656 , 240 , // 656 - rwk-tz + 0x4f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 658 , 143 , // 657 - sa + 0x44f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 658 , 143 , // 658 - sa-in + 0x85 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 | SemicolonSep , 660 , 660 , // 659 - sah + 0x485 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 | SemicolonSep , 660 , 660 , // 660 - sah-ru + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 662 , 240 , // 661 - saq + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 662 , 240 , // 662 - saq-ke + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 664 , 240 , // 663 - sbp + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 664 , 240 , // 664 - sbp-tz + 0x59 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 | SemicolonSep , 667 , 143 , // 665 - sd + 0x7c59 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 | SemicolonSep , 667 , 143 , // 666 - sd-arab + 0x859 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 2 | SemicolonSep , 667 , 143 , // 667 - sd-arab-pk + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 669 , 187 , // 668 - sd-deva + 0x459 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 669 , 187 , // 669 - sd-deva-in + 0x3b , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 672 , 672 , // 670 - se + 0xc3b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 | SemicolonSep , 671 , 671 , // 671 - se-fi + 0x43b , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 672 , 672 , // 672 - se-no + 0x83b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 | SemicolonSep , 673 , 673 , // 673 - se-se + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa8 , 1 | SemicolonSep , 675 , 240 , // 674 - seh + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa8 , 1 | SemicolonSep , 675 , 240 , // 675 - seh-mz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 | SemicolonSep , 677 , 240 , // 676 - ses + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9d , 1 | SemicolonSep , 677 , 240 , // 677 - ses-ml + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x37 , 1 | SemicolonSep , 679 , 240 , // 678 - sg + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x37 , 1 | SemicolonSep , 679 , 240 , // 679 - sg-cf + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 684 , 240 , // 680 - shi + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 682 , 240 , // 681 - shi-latn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 682 , 240 , // 682 - shi-latn-ma + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 684 , 240 , // 683 - shi-tfng + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 684 , 240 , // 684 - shi-tfng-ma + 0x5b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2a , 1 | SemicolonSep , 686 , 143 , // 685 - si + 0x45b , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2a , 1 | SemicolonSep , 686 , 143 , // 686 - si-lk + 0x1b , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x8f , 1 | SemicolonSep , 688 , 688 , // 687 - sk + 0x41b , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x8f , 1 | SemicolonSep , 688 , 688 , // 688 - sk-sk + 0x24 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xd4 , 1 | SemicolonSep , 690 , 690 , // 689 - sl + 0x424 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xd4 , 1 | SemicolonSep , 690 , 690 , // 690 - sl-si + 0x783b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 | SemicolonSep , 693 , 693 , // 691 - sma + 0x183b , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 692 , 692 , // 692 - sma-no + 0x1c3b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 | SemicolonSep , 693 , 693 , // 693 - sma-se + 0x7c3b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 | SemicolonSep , 696 , 696 , // 694 - smj + 0x103b , 0x4e4 , 0x352 , 0x2710, 0x4f35, 0xb1 , 1 | SemicolonSep , 695 , 695 , // 695 - smj-no + 0x143b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 | SemicolonSep , 696 , 696 , // 696 - smj-se + 0x703b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 | SemicolonSep , 698 , 698 , // 697 - smn + 0x243b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 | SemicolonSep , 698 , 698 , // 698 - smn-fi + 0x743b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 | SemicolonSep , 700 , 700 , // 699 - sms + 0x203b , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 | SemicolonSep , 700 , 700 , // 700 - sms-fi + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 | SemicolonSep , 703 , 240 , // 701 - sn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 | SemicolonSep , 703 , 240 , // 702 - sn-latn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x108 , 1 | SemicolonSep , 703 , 240 , // 703 - sn-latn-zw + 0x77 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd8 , 1 | SemicolonSep , 708 , 240 , // 704 - so + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3e , 1 | SemicolonSep , 705 , 240 , // 705 - so-dj + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 706 , 240 , // 706 - so-et + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 707 , 240 , // 707 - so-ke + 0x477 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd8 , 1 | SemicolonSep , 708 , 240 , // 708 - so-so + 0x1c , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x6 , 1 | SemicolonSep , 710 , 710 , // 709 - sq + 0x41c , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x6 , 1 | SemicolonSep , 710 , 710 , // 710 - sq-al + 0x1000 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x4ca2, 1 | SemicolonSep , 711 , 240 , // 711 - sq-mk + 0x1000 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0x974941, 1 | SemicolonSep , 712 , 240 , // 712 - sq-xk + 0x7c1a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10f , 1 | SemicolonSep , 724 , 724 , // 713 - sr + 0x6c1a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x10f , 1 | SemicolonSep , 718 , 718 , // 714 - sr-cyrl + 0x1c1a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x19 , 1 | SemicolonSep , 715 , 715 , // 715 - sr-cyrl-ba + 0xc1a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x10d , 1 | SemicolonSep , 716 , 716 , // 716 - sr-cyrl-cs + 0x301a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x10e , 1 | SemicolonSep , 717 , 717 , // 717 - sr-cyrl-me + 0x281a , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x10f , 1 | SemicolonSep , 718 , 718 , // 718 - sr-cyrl-rs + 0x1000 , 0x4e3 , 0x357 , 0x2717, 0x5221, 0x974941, 1 | SemicolonSep , 719 , 240 , // 719 - sr-cyrl-xk + 0x701a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10f , 1 | SemicolonSep , 724 , 724 , // 720 - sr-latn + 0x181a , 0x4e2 , 0x354 , 0x2762, 0x366 , 0x19 , 1 | SemicolonSep , 721 , 721 , // 721 - sr-latn-ba + 0x81a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10d , 1 | SemicolonSep , 722 , 722 , // 722 - sr-latn-cs + 0x2c1a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10e , 1 | SemicolonSep , 723 , 723 , // 723 - sr-latn-me + 0x241a , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x10f , 1 | SemicolonSep , 724 , 724 , // 724 - sr-latn-rs + 0x1000 , 0x4e2 , 0x354 , 0x272d, 0x1f4 , 0x974941, 1 | SemicolonSep , 725 , 240 , // 725 - sr-latn-xk + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 728 , 240 , // 726 - ss + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x104 , 1 | SemicolonSep , 727 , 240 , // 727 - ss-sz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 728 , 240 , // 728 - ss-za + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 730 , 240 , // 729 - ssy + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 730 , 240 , // 730 - ssy-er + 0x30 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 733 , 240 , // 731 - st + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x92 , 1 | SemicolonSep , 732 , 240 , // 732 - st-ls + 0x430 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 733 , 240 , // 733 - st-za + 0x1d , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 | SemicolonSep , 737 , 737 , // 734 - sv + 0x1000 , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x9906f5, 1 | SemicolonSep , 735 , 240 , // 735 - sv-ax + 0x81d , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0x4d , 1 | SemicolonSep , 736 , 736 , // 736 - sv-fi + 0x41d , 0x4e4 , 0x352 , 0x2710, 0x4f36, 0xdd , 1 | SemicolonSep , 737 , 737 , // 737 - sv-se + 0x41 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x81 , 1 | SemicolonSep , 740 , 740 , // 738 - sw + 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x2c , 1 | SemicolonSep , 739 , 740 , // 739 - sw-cd + 0x441 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x81 , 1 | SemicolonSep , 740 , 740 , // 740 - sw-ke + 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xef , 1 | SemicolonSep , 741 , 240 , // 741 - sw-tz + 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0xf0 , 1 | SemicolonSep , 742 , 240 , // 742 - sw-ug + 0x1000 , 0x0 , 0x1 , 0x0 , 0x1f4 , 0x2c , 1 | CommaSep , 744 , 240 , // 743 - swc + 0x1000 , 0x0 , 0x1 , 0x0 , 0x1f4 , 0x2c , 1 | SemicolonSep , 744 , 240 , // 744 - swc-cd + 0x5a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xde , 1 | CommaSep , 746 , 143 , // 745 - syr + 0x45a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xde , 1 | CommaSep , 746 , 143 , // 746 - syr-sy + 0x49 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 748 , 143 , // 747 - ta + 0x449 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | CommaSep , 748 , 143 , // 748 - ta-in + 0x849 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x2a , 1 | SemicolonSep , 749 , 143 , // 749 - ta-lk + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xa7 , 1 | SemicolonSep , 750 , 240 , // 750 - ta-my + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd7 , 1 | SemicolonSep , 751 , 240 , // 751 - ta-sg + 0x4a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | SemicolonSep , 753 , 143 , // 752 - te + 0x44a , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x71 , 1 | SemicolonSep , 753 , 143 , // 753 - te-in + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 756 , 240 , // 754 - teo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x81 , 1 | SemicolonSep , 755 , 240 , // 755 - teo-ke + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 756 , 240 , // 756 - teo-ug + 0x28 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xe4 , 1 | SemicolonSep , 759 , 759 , // 757 - tg + 0x7c28 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xe4 , 1 | SemicolonSep , 759 , 759 , // 758 - tg-cyrl + 0x428 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xe4 , 1 | SemicolonSep , 759 , 759 , // 759 - tg-cyrl-tj + 0x1e , 0x36a , 0x36a , 0x2725, 0x5166, 0xe3 , 1 | CommaSep , 761 , 143 , // 760 - th + 0x41e , 0x36a , 0x36a , 0x2725, 0x5166, 0xe3 , 1 | CommaSep , 761 , 143 , // 761 - th-th + 0x73 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 763 , 143 , // 762 - ti + 0x873 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 763 , 143 , // 763 - ti-er + 0x473 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 764 , 143 , // 764 - ti-et + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 766 , 240 , // 765 - tig + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x47 , 1 | SemicolonSep , 766 , 240 , // 766 - tig-er + 0x42 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xee , 1 | SemicolonSep , 768 , 768 , // 767 - tk + 0x442 , 0x4e2 , 0x354 , 0x272d, 0x5190, 0xee , 1 | SemicolonSep , 768 , 768 , // 768 - tk-tm + 0x32 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 771 , 771 , // 769 - tn + 0x832 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0x13 , 1 | SemicolonSep , 770 , 770 , // 770 - tn-bw + 0x432 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 771 , 771 , // 771 - tn-za + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xe7 , 1 | SemicolonSep , 773 , 240 , // 772 - to + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xe7 , 1 | SemicolonSep , 773 , 240 , // 773 - to-to + 0x1f , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0xeb , 1 | SemicolonSep , 776 , 776 , // 774 - tr + 0x1000 , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0x3b , 1 | SemicolonSep , 775 , 240 , // 775 - tr-cy + 0x41f , 0x4e6 , 0x359 , 0x2761, 0x51a9, 0xeb , 1 | SemicolonSep , 776 , 776 , // 776 - tr-tr + 0x31 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 778 , 240 , // 777 - ts + 0x431 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 778 , 240 , // 778 - ts-za + 0x44 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 | SemicolonSep , 780 , 780 , // 779 - tt + 0x444 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xcb , 1 | SemicolonSep , 780 , 780 , // 780 - tt-ru + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xad , 1 | SemicolonSep , 782 , 240 , // 781 - twq + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xad , 1 | SemicolonSep , 782 , 240 , // 782 - twq-ne + 0x5f , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x4 , 1 | SemicolonSep , 787 , 787 , // 783 - tzm + 0x1000 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x9f , 1 | SemicolonSep , 785 , 240 , // 784 - tzm-arab + 0x45f , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x9f , 1 | SemicolonSep , 785 , 240 , // 785 - tzm-arab-ma + 0x7c5f , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x4 , 1 | SemicolonSep , 787 , 787 , // 786 - tzm-latn + 0x85f , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0x4 , 1 | SemicolonSep , 787 , 787 , // 787 - tzm-latn-dz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 788 , 240 , // 788 - tzm-latn-ma + 0x785f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 790 , 316 , // 789 - tzm-tfng + 0x105f , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 790 , 316 , // 790 - tzm-tfng-ma + 0x80 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x2d , 1 | CommaSep , 792 , 143 , // 791 - ug + 0x480 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0x2d , 1 | CommaSep , 792 , 143 , // 792 - ug-cn + 0x22 , 0x4e3 , 0x362 , 0x2721, 0x1f4 , 0xf1 , 1 | SemicolonSep , 794 , 794 , // 793 - uk + 0x422 , 0x4e3 , 0x362 , 0x2721, 0x1f4 , 0xf1 , 1 | SemicolonSep , 794 , 794 , // 794 - uk-ua + 0x20 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 1 | SemicolonSep , 797 , 143 , // 795 - ur + 0x820 , 0x4e8 , 0x2d0 , 0x2 , 0x1f4 , 0x71 , 2 | SemicolonSep , 796 , 240 , // 796 - ur-in + 0x420 , 0x4e8 , 0x2d0 , 0x2714, 0x4fc4, 0xbe , 1 | SemicolonSep , 797 , 143 , // 797 - ur-pk + 0x43 , 0x4e6 , 0x359 , 0x272d, 0x1f4 , 0xf7 , 1 | SemicolonSep , 804 , 804 , // 798 - uz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3 , 2 | SemicolonSep , 800 , 240 , // 799 - uz-arab + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x3 , 2 | SemicolonSep , 800 , 240 , // 800 - uz-arab-af + 0x7843 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xf7 , 1 | SemicolonSep , 802 , 802 , // 801 - uz-cyrl + 0x843 , 0x4e3 , 0x362 , 0x2717, 0x5190, 0xf7 , 1 | SemicolonSep , 802 , 802 , // 802 - uz-cyrl-uz + 0x7c43 , 0x4e6 , 0x359 , 0x272d, 0x1f4 , 0xf7 , 1 | SemicolonSep , 804 , 804 , // 803 - uz-latn + 0x443 , 0x4e6 , 0x359 , 0x272d, 0x1f4 , 0xf7 , 1 | SemicolonSep , 804 , 804 , // 804 - uz-latn-uz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 | SemicolonSep , 809 , 240 , // 805 - vai + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 | SemicolonSep , 807 , 240 , // 806 - vai-latn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 | SemicolonSep , 807 , 240 , // 807 - vai-latn-lr + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 | SemicolonSep , 809 , 240 , // 808 - vai-vaii + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x8e , 1 | SemicolonSep , 809 , 240 , // 809 - vai-vaii-lr + 0x33 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 811 , 240 , // 810 - ve + 0x433 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xd1 , 1 | SemicolonSep , 811 , 240 , // 811 - ve-za + 0x2a , 0x4ea , 0x4ea , 0x2710, 0x1f4 , 0xfb , 1 | CommaSep , 813 , 143 , // 812 - vi + 0x42a , 0x4ea , 0x4ea , 0x2710, 0x1f4 , 0xfb , 1 | CommaSep , 813 , 143 , // 813 - vi-vn + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 815 , 240 , // 814 - vo + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 815 , 240 , // 815 - vo-001 + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 817 , 240 , // 816 - vun + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xef , 1 | SemicolonSep , 817 , 240 , // 817 - vun-tz + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdf , 1 | SemicolonSep , 819 , 240 , // 818 - wae + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xdf , 1 | SemicolonSep , 819 , 240 , // 819 - wae-ch + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 821 , 240 , // 820 - wal + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x49 , 1 | SemicolonSep , 821 , 240 , // 821 - wal-et + 0x88 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 | SemicolonSep , 823 , 823 , // 822 - wo + 0x488 , 0x4e4 , 0x352 , 0x2710, 0x4f49, 0xd2 , 1 | SemicolonSep , 823 , 823 , // 823 - wo-sn + 0x1007f, 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xf4 , 1 | CommaSep , -1 , -1 , // 824 - x-iv_mathan + 0x34 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 826 , 826 , // 825 - xh + 0x434 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 826 , 826 , // 826 - xh-za + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 828 , 240 , // 827 - xog + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0xf0 , 1 | SemicolonSep , 828 , 240 , // 828 - xog-ug + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 830 , 240 , // 829 - yav + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x31 , 1 | SemicolonSep , 830 , 240 , // 830 - yav-cm + 0x3d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 832 , 240 , // 831 - yi + 0x43d , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x989e, 1 | SemicolonSep , 832 , 240 , // 832 - yi-001 + 0x6a , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 | SemicolonSep , 835 , 835 , // 833 - yo + 0x1000 , 0x4e4 , 0x1b5 , 0x2710, 0x1f4 , 0x1c , 1 | SemicolonSep , 834 , 240 , // 834 - yo-bj + 0x46a , 0x4e4 , 0x1b5 , 0x2710, 0x25 , 0xaf , 1 | SemicolonSep , 835 , 835 , // 835 - yo-ng + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x68 , 1 | CommaSep , 837 , 240 , // 836 - yue + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x68 , 1 | CommaSep , 837 , 240 , // 837 - yue-hk + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 840 , 316 , // 838 - zgh + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 840 , 316 , // 839 - zgh-tfng + 0x1000 , 0x0 , 0x1 , 0x2 , 0x1f4 , 0x9f , 1 | SemicolonSep , 840 , 316 , // 840 - zgh-tfng-ma + 0x7804 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 | CommaSep , 844 , 844 , // 841 - zh + 0x4 , 0x3a8 , 0x3a8 , 0x0 , 0x1f4 , 0x2d , 1 | CommaSep , 844 , 844 , // 842 - zh-chs + 0x7c04 , 0x3b6 , 0x3b6 , 0x0 , 0x1f4 , 0x68 , 1 | CommaSep , 851 , 851 , // 843 - zh-cht + 0x804 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 | CommaSep , 844 , 844 , // 844 - zh-cn + 0x50804, 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 | CommaSep , 844 , 844 , // 845 - zh-cn_phoneb + 0x20804, 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 | CommaSep , 844 , 844 , // 846 - zh-cn_stroke + 0x4 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x2d , 1 | CommaSep , 844 , 844 , // 847 - zh-hans + 0x1000 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x68 , 1 | SemicolonSep , 848 , 240 , // 848 - zh-hans-hk + 0x1000 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0x97 , 1 | SemicolonSep , 849 , 240 , // 849 - zh-hans-mo + 0x7c04 , 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x68 , 1 | CommaSep , 851 , 851 , // 850 - zh-hant + 0xc04 , 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x68 , 1 | CommaSep , 851 , 851 , // 851 - zh-hk + 0x40c04, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x68 , 1 | CommaSep , 851 , 851 , // 852 - zh-hk_radstr + 0x1404 , 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x97 , 1 | CommaSep , 853 , 853 , // 853 - zh-mo + 0x41404, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x97 , 1 | CommaSep , 853 , 853 , // 854 - zh-mo_radstr + 0x21404, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0x97 , 1 | CommaSep , 853 , 853 , // 855 - zh-mo_stroke + 0x1004 , 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0xd7 , 1 | CommaSep , 856 , 856 , // 856 - zh-sg + 0x51004, 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0xd7 , 1 | CommaSep , 856 , 856 , // 857 - zh-sg_phoneb + 0x21004, 0x3a8 , 0x3a8 , 0x2718, 0x1f4 , 0xd7 , 1 | CommaSep , 856 , 856 , // 858 - zh-sg_stroke + 0x404 , 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0xed , 1 | CommaSep , 859 , 859 , // 859 - zh-tw + 0x30404, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0xed , 1 | CommaSep , 859 , 859 , // 860 - zh-tw_pronun + 0x40404, 0x3b6 , 0x3b6 , 0x2712, 0x1f4 , 0xed , 1 | CommaSep , 859 , 859 , // 861 - zh-tw_radstr + 0x35 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 863 , 863 , // 862 - zu + 0x435 , 0x4e4 , 0x352 , 0x2710, 0x1f4 , 0xd1 , 1 | SemicolonSep , 863 , 863 , // 863 - zu-za }; // s_lcids list all supported lcids. used to binary search and we use the index of the matched lcid to diff --git a/src/libraries/System.Private.CoreLib/src/System/Half.cs b/src/libraries/System.Private.CoreLib/src/System/Half.cs index 1840f3c61107e6..6961bbe4f89a23 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Half.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Half.cs @@ -637,6 +637,7 @@ private static ushort RoundPackToHalf(bool sign, short exp, ushort sig) { sig = (ushort)ShiftRightJam(sig, -exp); exp = 0; + roundBits = sig & 0xF; } else if (exp > 0x1D || sig + RoundIncrement >= 0x8000) // Overflow { @@ -685,10 +686,10 @@ private static double CreateDoubleNaN(bool sign, ulong significand) } private static float CreateSingle(bool sign, byte exp, uint sig) - => BitConverter.Int32BitsToSingle((int)(((sign ? 1U : 0U) << float.SignShift) | ((uint)exp << float.ExponentShift) | sig)); + => BitConverter.Int32BitsToSingle((int)(((sign ? 1U : 0U) << float.SignShift) + ((uint)exp << float.ExponentShift) + sig)); private static double CreateDouble(bool sign, ushort exp, ulong sig) - => BitConverter.Int64BitsToDouble((long)(((sign ? 1UL : 0UL) << double.SignShift) | ((ulong)exp << double.ExponentShift) | sig)); + => BitConverter.Int64BitsToDouble((long)(((sign ? 1UL : 0UL) << double.SignShift) + ((ulong)exp << double.ExponentShift) + sig)); #endregion } diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Versioning/PlatformAttributes.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Versioning/PlatformAttributes.cs index 66564c1c26c42d..467a91165f2b1e 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Versioning/PlatformAttributes.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Versioning/PlatformAttributes.cs @@ -66,9 +66,9 @@ public TargetPlatformAttribute(string platformName) : base(platformName) #else internal #endif - sealed class SupportedOSPlatformAttribute : OSPlatformAttribute + sealed class SupportedOSPlatformAttribute : OSPlatformAttribute { - public SupportedOSPlatformAttribute (string platformName) : base(platformName) + public SupportedOSPlatformAttribute(string platformName) : base(platformName) { } } diff --git a/src/libraries/System.Private.CoreLib/src/System/String.Comparison.cs b/src/libraries/System.Private.CoreLib/src/System/String.Comparison.cs index c616ae9e28a8ed..d629f82e8f5176 100644 --- a/src/libraries/System.Private.CoreLib/src/System/String.Comparison.cs +++ b/src/libraries/System.Private.CoreLib/src/System/String.Comparison.cs @@ -1,11 +1,13 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Buffers; using System.Diagnostics; using System.Globalization; using System.Numerics; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using System.Text.Unicode; using Internal.Runtime.CompilerServices; @@ -834,42 +836,96 @@ internal unsafe int GetNonRandomizedHashCode() } } - // Use this if and only if 'Denial of Service' attacks are not a concern (i.e. never used for free-form user input), - // or are otherwise mitigated internal unsafe int GetNonRandomizedHashCodeOrdinalIgnoreCase() { + uint hash1 = (5381 << 16) + 5381; + uint hash2 = hash1; + fixed (char* src = &_firstChar) { Debug.Assert(src[this.Length] == '\0', "src[this.Length] == '\\0'"); - Debug.Assert(((int)src) % 4 == 0, "Managed string should start at 4 bytes boundary"); + Debug.Assert(((int) src) % 4 == 0, "Managed string should start at 4 bytes boundary"); - uint hash1 = (5381 << 16) + 5381; - uint hash2 = hash1; - - uint* ptr = (uint*)src; + uint* ptr = (uint*) src; int length = this.Length; // We "normalize to lowercase" every char by ORing with 0x0020. This casts // a very wide net because it will change, e.g., '^' to '~'. But that should // be ok because we expect this to be very rare in practice. - const uint NormalizeToLowercase = 0x0020_0020u; // valid both for big-endian and for little-endian while (length > 2) { + uint p0 = ptr[0]; + uint p1 = ptr[1]; + if (!Utf16Utility.AllCharsInUInt32AreAscii(p0 | p1)) + { + goto NotAscii; + } + length -= 4; // Where length is 4n-1 (e.g. 3,7,11,15,19) this additionally consumes the null terminator - hash1 = (BitOperations.RotateLeft(hash1, 5) + hash1) ^ (ptr[0] | NormalizeToLowercase); - hash2 = (BitOperations.RotateLeft(hash2, 5) + hash2) ^ (ptr[1] | NormalizeToLowercase); + hash1 = (BitOperations.RotateLeft(hash1, 5) + hash1) ^ (p0 | NormalizeToLowercase); + hash2 = (BitOperations.RotateLeft(hash2, 5) + hash2) ^ (p1 | NormalizeToLowercase); ptr += 2; } if (length > 0) { + uint p0 = ptr[0]; + if (!Utf16Utility.AllCharsInUInt32AreAscii(p0)) + { + goto NotAscii; + } + // Where length is 4n-3 (e.g. 1,5,9,13,17) this additionally consumes the null terminator - hash2 = (BitOperations.RotateLeft(hash2, 5) + hash2) ^ (ptr[0] | NormalizeToLowercase); + hash2 = (BitOperations.RotateLeft(hash2, 5) + hash2) ^ (p0 | NormalizeToLowercase); + } + } + + return (int)(hash1 + (hash2 * 1566083941)); + + NotAscii: + return GetNonRandomizedHashCodeOrdinalIgnoreCaseSlow(this); + + static int GetNonRandomizedHashCodeOrdinalIgnoreCaseSlow(string str) + { + int length = str.Length; + char[]? borrowedArr = null; + // Important: leave an additional space for '\0' + Span scratch = (uint)length < 64 ? + stackalloc char[64] : (borrowedArr = ArrayPool.Shared.Rent(length + 1)); + + int charsWritten = System.Globalization.Ordinal.ToUpperOrdinal(str, scratch); + Debug.Assert(charsWritten == length); + scratch[length] = '\0'; + + const uint NormalizeToLowercase = 0x0020_0020u; + uint hash1 = (5381 << 16) + 5381; + uint hash2 = hash1; + + // Duplicate the main loop, can be removed once JIT gets "Loop Unswitching" optimization + fixed (char* src = scratch) + { + uint* ptr = (uint*)src; + while (length > 2) + { + length -= 4; + hash1 = (BitOperations.RotateLeft(hash1, 5) + hash1) ^ (ptr[0] | NormalizeToLowercase); + hash2 = (BitOperations.RotateLeft(hash2, 5) + hash2) ^ (ptr[1] | NormalizeToLowercase); + ptr += 2; + } + + if (length > 0) + { + hash2 = (BitOperations.RotateLeft(hash2, 5) + hash2) ^ (ptr[0] | NormalizeToLowercase); + } } + if (borrowedArr != null) + { + ArrayPool.Shared.Return(borrowedArr); + } return (int)(hash1 + (hash2 * 1566083941)); } } diff --git a/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf16Utility.cs b/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf16Utility.cs index 379de97efec511..ab75f3e6789d38 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf16Utility.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf16Utility.cs @@ -150,31 +150,46 @@ internal static bool UInt32OrdinalIgnoreCaseAscii(uint valueA, uint valueB) Debug.Assert(AllCharsInUInt32AreAscii(valueA)); Debug.Assert(AllCharsInUInt32AreAscii(valueB)); - // a mask of all bits which are different between A and B - uint differentBits = valueA ^ valueB; - - // the 0x80 bit of each word of 'lowerIndicator' will be set iff the word has value < 'A' - uint lowerIndicator = valueA + 0x0100_0100u - 0x0041_0041u; - - // the 0x80 bit of each word of 'upperIndicator' will be set iff (word | 0x20) has value > 'z' - uint upperIndicator = (valueA | 0x0020_0020u) + 0x0080_0080u - 0x007B_007Bu; - - // the 0x80 bit of each word of 'combinedIndicator' will be set iff the word is *not* [A-Za-z] - uint combinedIndicator = lowerIndicator | upperIndicator; - - // Shift all the 0x80 bits of 'combinedIndicator' into the 0x20 positions, then set all bits - // aside from 0x20. This creates a mask where all bits are set *except* for the 0x20 bits - // which correspond to alpha chars (either lower or upper). For these alpha chars only, the - // 0x20 bit is allowed to differ between the two input values. Every other char must be an - // exact bitwise match between the two input values. In other words, (valueA & mask) will - // convert valueA to uppercase, so (valueA & mask) == (valueB & mask) answers "is the uppercase - // form of valueA equal to the uppercase form of valueB?" (Technically if valueA has an alpha - // char in the same position as a non-alpha char in valueB, or vice versa, this operation will - // result in nonsense, but it'll still compute as inequal regardless, which is what we want ultimately.) - // The line below is a more efficient way of doing the same check taking advantage of the XOR - // computation we performed at the beginning of the method. - - return (((combinedIndicator >> 2) | ~0x0020_0020u) & differentBits) == 0; + // Generate a mask of all bits which are different between A and B. Since [A-Z] + // and [a-z] differ by the 0x20 bit, we'll left-shift this by 2 now so that + // this is moved over to the 0x80 bit, which nicely aligns with the calculation + // we're going to do on the indicator flag later. + // + // n.b. All of the logic below assumes we have at least 2 "known zero" bits leading + // each of the 7-bit ASCII values. This assumption won't hold if this method is + // ever adapted to deal with packed bytes instead of packed chars. + + uint differentBits = (valueA ^ valueB) << 2; + + // Now, we want to generate a mask where for each word in the input, the mask contains + // 0xFF7F if the word is [A-Za-z], 0xFFFF if the word is not [A-Za-z]. We know each + // input word is ASCII (only low 7 bit set), so we can use a combination of addition + // and logical operators as follows. + // + // original input +05 |A0 +1A + // ==================================================== + // 00 .. 3F -> 05 .. 44 -> A5 .. E4 -> BF .. FE + // 40 -> 45 -> E5 -> FF + // ([A-Z]) 41 .. 5A -> 46 .. 5F -> E6 .. FF -> 00 .. 19 + // 5B .. 5F -> 60 .. 64 -> E0 .. E4 -> FA .. FE + // 60 -> 65 -> E5 -> FF + // ([a-z]) 61 .. 7A -> 66 .. 7F -> E6 .. FF -> 00 .. 19 + // 7B .. 7F -> 80 .. 84 -> A0 .. A4 -> BA .. BE + // + // This combination of operations results in the 0x80 bit of each word being set + // iff the original word value was *not* [A-Za-z]. + + uint indicator = valueA + 0x0005_0005u; + indicator |= 0x00A0_00A0u; + indicator += 0x001A_001Au; + indicator |= 0xFF7F_FF7Fu; // normalize each word to 0xFF7F or 0xFFFF + + // At this point, 'indicator' contains the mask of bits which are *not* allowed to + // differ between the inputs, and 'differentBits' contains the mask of bits which + // actually differ between the inputs. If these masks have any bits in common, then + // the two values are *not* equal under an OrdinalIgnoreCase comparer. + + return (differentBits & indicator) == 0; } /// @@ -192,26 +207,15 @@ internal static bool UInt64OrdinalIgnoreCaseAscii(ulong valueA, ulong valueB) Debug.Assert(AllCharsInUInt64AreAscii(valueA)); Debug.Assert(AllCharsInUInt64AreAscii(valueB)); - // the 0x80 bit of each word of 'lowerIndicator' will be set iff the word has value >= 'A' - ulong lowerIndicator = valueA + 0x0080_0080_0080_0080ul - 0x0041_0041_0041_0041ul; - - // the 0x80 bit of each word of 'upperIndicator' will be set iff (word | 0x20) has value <= 'z' - ulong upperIndicator = (valueA | 0x0020_0020_0020_0020ul) + 0x0100_0100_0100_0100ul - 0x007B_007B_007B_007Bul; - - // the 0x20 bit of each word of 'combinedIndicator' will be set iff the word is [A-Za-z] - ulong combinedIndicator = (0x0080_0080_0080_0080ul & lowerIndicator & upperIndicator) >> 2; - - // Convert both values to lowercase (using the combined indicator from the first value) - // and compare for equality. It's possible that the first value will contain an alpha character - // where the second value doesn't (or vice versa), and applying the combined indicator will - // create nonsensical data, but the comparison would have failed anyway in this case so it's - // a safe operation to perform. - // - // This 64-bit method is similar to the 32-bit method, but it performs the equivalent of convert-to- - // lowercase-then-compare rather than convert-to-uppercase-and-compare. This particular operation - // happens to be faster on x64. + // Duplicate of logic in UInt32OrdinalIgnoreCaseAscii, but using 64-bit consts. + // See comments in that method for more info. - return (valueA | combinedIndicator) == (valueB | combinedIndicator); + ulong differentBits = (valueA ^ valueB) << 2; + ulong indicator = valueA + 0x0005_0005_0005_0005ul; + indicator |= 0x00A0_00A0_00A0_00A0ul; + indicator += 0x001A_001A_001A_001Aul; + indicator |= 0xFF7F_FF7F_FF7F_FF7Ful; + return (differentBits & indicator) == 0; } } } diff --git a/src/libraries/System.Runtime.InteropServices/tests/System/Runtime/InteropServices/Marshal/SizeOfTests.cs b/src/libraries/System.Runtime.InteropServices/tests/System/Runtime/InteropServices/Marshal/SizeOfTests.cs index 6192a7f47714ca..6a009a06437f9a 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/System/Runtime/InteropServices/Marshal/SizeOfTests.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/System/Runtime/InteropServices/Marshal/SizeOfTests.cs @@ -59,6 +59,12 @@ public void SizeOf_Struct_With_GenericValueTypeField_ReturnsExpected() Assert.Equal(8, Marshal.SizeOf()); } + [Fact] + public void SizeOf_TypeWithEmptyBase_ReturnsExpected() + { + Assert.Equal(4, Marshal.SizeOf()); + } + public static IEnumerable SizeOf_InvalidType_TestData() { yield return new object[] { typeof(int).MakeByRefType(), null }; @@ -78,6 +84,7 @@ public static IEnumerable SizeOf_InvalidType_TestData() yield return new object[] { typeBuilder, "t" }; yield return new object[] { typeof(TestStructWithFxdLPSTRSAFld), null }; + yield return new object[] { typeof(int[]), null }; } [Theory] @@ -135,5 +142,16 @@ public struct TestStructWithVector64 { public System.Runtime.Intrinsics.Vector64 v; } + + [StructLayout(LayoutKind.Sequential)] + public class EmptyClass + { + } + + [StructLayout(LayoutKind.Sequential)] + public class DerivedClass : EmptyClass + { + public int i; + } } } diff --git a/src/libraries/System.Runtime/tests/System/HalfTests.cs b/src/libraries/System.Runtime/tests/System/HalfTests.cs index 69dd6310959fb1..d45cfa8f0e7b64 100644 --- a/src/libraries/System.Runtime/tests/System/HalfTests.cs +++ b/src/libraries/System.Runtime/tests/System/HalfTests.cs @@ -367,7 +367,7 @@ public static IEnumerable ExplicitConversion_ToSingle_TestData() (UInt16BitsToHalf(0b1_11111_1010101010), BitConverter.Int32BitsToSingle(unchecked((int)0xFFD54000))), // Negative Signalling NaN - Should preserve payload (Half.Epsilon, 1/16777216f), // PosEpsilon = 0.000000059605... (UInt16BitsToHalf(0), 0), // 0 - (UInt16BitsToHalf(0b1_00000_0000000000), -0f), // -0 + (UInt16BitsToHalf(0b1_00000_0000000000), -0f), // -0 (UInt16BitsToHalf(0b0_10000_1001001000), 3.140625f), // 3.140625 (UInt16BitsToHalf(0b1_10000_1001001000), -3.140625f), // -3.140625 (UInt16BitsToHalf(0b0_10000_0101110000), 2.71875f), // 2.71875 @@ -376,6 +376,16 @@ public static IEnumerable ExplicitConversion_ToSingle_TestData() (UInt16BitsToHalf(0b1_01111_1000000000), -1.5f), // -1.5 (UInt16BitsToHalf(0b0_01111_1000000001), 1.5009765625f), // 1.5009765625 (UInt16BitsToHalf(0b1_01111_1000000001), -1.5009765625f), // -1.5009765625 + (UInt16BitsToHalf(0b0_00001_0000000000), BitConverter.Int32BitsToSingle(0x38800000)), // smallest normal + (UInt16BitsToHalf(0b0_00000_1111111111), BitConverter.Int32BitsToSingle(0x387FC000)), // largest subnormal + (UInt16BitsToHalf(0b0_00000_1000000000), BitConverter.Int32BitsToSingle(0x38000000)), // middle subnormal + (UInt16BitsToHalf(0b0_00000_0111111111), BitConverter.Int32BitsToSingle(0x37FF8000)), // just below middle subnormal + (UInt16BitsToHalf(0b0_00000_0000000001), BitConverter.Int32BitsToSingle(0x33800000)), // smallest subnormal + (UInt16BitsToHalf(0b1_00000_0000000001), BitConverter.Int32BitsToSingle(unchecked((int)0xB3800000))), // highest negative subnormal + (UInt16BitsToHalf(0b1_00000_0111111111), BitConverter.Int32BitsToSingle(unchecked((int)0xB7FF8000))), // just above negative middle subnormal + (UInt16BitsToHalf(0b1_00000_1000000000), BitConverter.Int32BitsToSingle(unchecked((int)0xB8000000))), // negative middle subnormal + (UInt16BitsToHalf(0b1_00000_1111111111), BitConverter.Int32BitsToSingle(unchecked((int)0xB87FC000))), // lowest negative subnormal + (UInt16BitsToHalf(0b1_00001_0000000000), BitConverter.Int32BitsToSingle(unchecked((int)0xB8800000))) // highest negative normal }; foreach ((Half original, float expected) in data) @@ -412,7 +422,7 @@ public static IEnumerable ExplicitConversion_ToDouble_TestData() (UInt16BitsToHalf(0b1_11111_1010101010), BitConverter.Int64BitsToDouble(unchecked((long)0xFFFAA800_00000000))), // Negative Signalling NaN - Should preserve payload (Half.Epsilon, 1/16777216d), // PosEpsilon = 0.000000059605... (UInt16BitsToHalf(0), 0d), // 0 - (UInt16BitsToHalf(0b1_00000_0000000000), -0d), // -0 + (UInt16BitsToHalf(0b1_00000_0000000000), -0d), // -0 (UInt16BitsToHalf(0b0_10000_1001001000), 3.140625d), // 3.140625 (UInt16BitsToHalf(0b1_10000_1001001000), -3.140625d), // -3.140625 (UInt16BitsToHalf(0b0_10000_0101110000), 2.71875d), // 2.71875 @@ -420,7 +430,17 @@ public static IEnumerable ExplicitConversion_ToDouble_TestData() (UInt16BitsToHalf(0b0_01111_1000000000), 1.5d), // 1.5 (UInt16BitsToHalf(0b1_01111_1000000000), -1.5d), // -1.5 (UInt16BitsToHalf(0b0_01111_1000000001), 1.5009765625d), // 1.5009765625 - (UInt16BitsToHalf(0b1_01111_1000000001), -1.5009765625d) // -1.5009765625 + (UInt16BitsToHalf(0b1_01111_1000000001), -1.5009765625d), // -1.5009765625 + (UInt16BitsToHalf(0b0_00001_0000000000), BitConverter.Int64BitsToDouble(0x3F10000000000000)), // smallest normal + (UInt16BitsToHalf(0b0_00000_1111111111), BitConverter.Int64BitsToDouble(0x3F0FF80000000000)), // largest subnormal + (UInt16BitsToHalf(0b0_00000_1000000000), BitConverter.Int64BitsToDouble(0x3F00000000000000)), // middle subnormal + (UInt16BitsToHalf(0b0_00000_0111111111), BitConverter.Int64BitsToDouble(0x3EFFF00000000000)), // just below middle subnormal + (UInt16BitsToHalf(0b0_00000_0000000001), BitConverter.Int64BitsToDouble(0x3E70000000000000)), // smallest subnormal + (UInt16BitsToHalf(0b1_00000_0000000001), BitConverter.Int64BitsToDouble(unchecked((long)0xBE70000000000000))), // highest negative subnormal + (UInt16BitsToHalf(0b1_00000_0111111111), BitConverter.Int64BitsToDouble(unchecked((long)0xBEFFF00000000000))), // just above negative middle subnormal + (UInt16BitsToHalf(0b1_00000_1000000000), BitConverter.Int64BitsToDouble(unchecked((long)0xBF00000000000000))), // negative middle subnormal + (UInt16BitsToHalf(0b1_00000_1111111111), BitConverter.Int64BitsToDouble(unchecked((long)0xBF0FF80000000000))), // lowest negative subnormal + (UInt16BitsToHalf(0b1_00001_0000000000), BitConverter.Int64BitsToDouble(unchecked((long)0xBF10000000000000))) // highest negative normal }; foreach ((Half original, double expected) in data) @@ -469,6 +489,46 @@ public static IEnumerable ExplicitConversion_FromSingle_TestData() (-1.5f, UInt16BitsToHalf(0b1_01111_1000000000)), // -1.5 (1.5009765625f, UInt16BitsToHalf(0b0_01111_1000000001)), // 1.5009765625 (-1.5009765625f, UInt16BitsToHalf(0b1_01111_1000000001)), // -1.5009765625 + (BitConverter.Int32BitsToSingle(0x38800000), UInt16BitsToHalf(0b0_00001_0000000000)), // smallest normal + (BitConverter.Int32BitsToSingle(0x387FC000), UInt16BitsToHalf(0b0_00000_1111111111)), // largest subnormal + (BitConverter.Int32BitsToSingle(0x38000000), UInt16BitsToHalf(0b0_00000_1000000000)), // middle subnormal + (BitConverter.Int32BitsToSingle(0x37FF8000), UInt16BitsToHalf(0b0_00000_0111111111)), // just below middle subnormal + (BitConverter.Int32BitsToSingle(0x33800000), UInt16BitsToHalf(0b0_00000_0000000001)), // smallest subnormal + (BitConverter.Int32BitsToSingle(unchecked((int)0xB3800000)), + UInt16BitsToHalf(0b1_00000_0000000001)), // highest negative subnormal + (BitConverter.Int32BitsToSingle(unchecked((int)0xB7FF8000)), + UInt16BitsToHalf(0b1_00000_0111111111)), // just above negative middle subnormal + (BitConverter.Int32BitsToSingle(unchecked((int)0xB8000000)), + UInt16BitsToHalf(0b1_00000_1000000000)), // negative middle subnormal + (BitConverter.Int32BitsToSingle(unchecked((int)0xB87FC000)), + UInt16BitsToHalf(0b1_00000_1111111111)), // lowest negative subnormal + (BitConverter.Int32BitsToSingle(unchecked((int)0xB8800000)), + UInt16BitsToHalf(0b1_00001_0000000000)), // highest negative normal + (BitConverter.Int32BitsToSingle(0b0_10001001_00000000111000000000001), + UInt16BitsToHalf(0b0_11001_0000000100)), // 1027.5+ULP rounds up + (BitConverter.Int32BitsToSingle(0b0_10001001_00000000111000000000000), + UInt16BitsToHalf(0b0_11001_0000000100)), // 1027.5 rounds to even + (BitConverter.Int32BitsToSingle(0b0_10001001_00000000110111111111111), + UInt16BitsToHalf(0b0_11001_0000000011)), // 1027.5-ULP rounds down + (BitConverter.Int32BitsToSingle(unchecked((int)0b1_10001001_00000000110111111111111)), + UInt16BitsToHalf(0b1_11001_0000000011)), // -1027.5+ULP rounds towards zero + (BitConverter.Int32BitsToSingle(unchecked((int)0b1_10001001_00000000111000000000000)), + UInt16BitsToHalf(0b1_11001_0000000100)), // -1027.5 rounds to even + (BitConverter.Int32BitsToSingle(unchecked((int)0b1_10001001_00000000111000000000001)), + UInt16BitsToHalf(0b1_11001_0000000100)), // -1027.5-ULP rounds away from zero + (BitConverter.Int32BitsToSingle(0b0_01110000_00000001110000000000001), + UInt16BitsToHalf(0b0_00000_1000000100)), // subnormal + ULP rounds up + (BitConverter.Int32BitsToSingle(0b0_01110000_00000001110000000000000), + UInt16BitsToHalf(0b0_00000_1000000100)), // subnormal rounds to even + (BitConverter.Int32BitsToSingle(0b0_01110000_00000001101111111111111), + UInt16BitsToHalf(0b0_00000_1000000011)), // subnormal - ULP rounds down + (BitConverter.Int32BitsToSingle(unchecked((int)0b1_01110000_00000001101111111111111)), + UInt16BitsToHalf(0b1_00000_1000000011)), // neg subnormal + ULP rounds higher + (BitConverter.Int32BitsToSingle(unchecked((int)0b1_01110000_00000001110000000000000)), + UInt16BitsToHalf(0b1_00000_1000000100)), // neg subnormal rounds to even + (BitConverter.Int32BitsToSingle(unchecked((int)0b1_01110000_00000001101111111111111)), + UInt16BitsToHalf(0b1_00000_1000000011)), // neg subnormal - ULP rounds lower, + (BitConverter.Int32BitsToSingle(0x33000000), UInt16BitsToHalf(0b0_00000_000000000)), // (half-precision minimum subnormal / 2) should underflow to zero }; foreach ((float original, Half expected) in data) @@ -518,6 +578,51 @@ public static IEnumerable ExplicitConversion_FromDouble_TestData() (-1.5d, UInt16BitsToHalf(0b1_01111_1000000000)), // -1.5 (1.5009765625d, UInt16BitsToHalf(0b0_01111_1000000001)), // 1.5009765625 (-1.5009765625d, UInt16BitsToHalf(0b1_01111_1000000001)), // -1.5009765625 + (BitConverter.Int64BitsToDouble(0x3F10000000000000), + UInt16BitsToHalf(0b0_00001_0000000000)), // smallest normal + (BitConverter.Int64BitsToDouble(0x3F0FF80000000000), + UInt16BitsToHalf(0b0_00000_1111111111)), // largest subnormal + (BitConverter.Int64BitsToDouble(0x3f00000000000000), + UInt16BitsToHalf(0b0_00000_1000000000)), // middle subnormal + (BitConverter.Int64BitsToDouble(0x3EFFF00000000000), + UInt16BitsToHalf(0b0_00000_0111111111)), // just below middle subnormal + (BitConverter.Int64BitsToDouble(0x3E70000000000000), + UInt16BitsToHalf(0b0_00000_0000000001)), // smallest subnormal + (BitConverter.Int64BitsToDouble(unchecked((long)0xBE70000000000000)), + UInt16BitsToHalf(0b1_00000_0000000001)), // highest negative subnormal + (BitConverter.Int64BitsToDouble(unchecked((long)0xBEFFF00000000000)), + UInt16BitsToHalf(0b1_00000_0111111111)), // just above negative middle subnormal + (BitConverter.Int64BitsToDouble(unchecked((long)0xBF00000000000000)), + UInt16BitsToHalf(0b1_00000_1000000000)), // negative middle subnormal + (BitConverter.Int64BitsToDouble(unchecked((long)0xBF0FF80000000000)), + UInt16BitsToHalf(0b1_00000_1111111111)), // lowest negative subnormal + (BitConverter.Int64BitsToDouble(unchecked((long)0xBF10000000000000)), + UInt16BitsToHalf(0b1_00001_0000000000)), // highest negative normal + (BitConverter.Int64BitsToDouble(0x40900E0000000001), + UInt16BitsToHalf(0b0_11001_0000000100)), // 1027.5+ULP rounds up + (BitConverter.Int64BitsToDouble(0x40900E0000000000), + UInt16BitsToHalf(0b0_11001_0000000100)), // 1027.5 rounds to even + (BitConverter.Int64BitsToDouble(0x40900DFFFFFFFFFF), + UInt16BitsToHalf(0b0_11001_0000000011)), // 1027.5-ULP rounds down + (BitConverter.Int64BitsToDouble(unchecked((long)0xC0900DFFFFFFFFFF)), + UInt16BitsToHalf(0b1_11001_0000000011)), // -1027.5+ULP rounds towards zero + (BitConverter.Int64BitsToDouble(unchecked((long)0xC0900E0000000000)), + UInt16BitsToHalf(0b1_11001_0000000100)), // -1027.5 rounds to even + (BitConverter.Int64BitsToDouble(unchecked((long)0xC0900E0000000001)), + UInt16BitsToHalf(0b1_11001_0000000100)), // -1027.5-ULP rounds away from zero + (BitConverter.Int64BitsToDouble(0x3F001C0000000001), + UInt16BitsToHalf(0b0_00000_1000000100)), // subnormal + ULP rounds up + (BitConverter.Int64BitsToDouble(0x3F001C0000000001), + UInt16BitsToHalf(0b0_00000_1000000100)), // subnormal rounds to even + (BitConverter.Int64BitsToDouble(0x3F001BFFFFFFFFFF), + UInt16BitsToHalf(0b0_00000_1000000011)), // subnormal - ULP rounds down + (BitConverter.Int64BitsToDouble(unchecked((long)0xBF001BFFFFFFFFFF)), + UInt16BitsToHalf(0b1_00000_1000000011)), // neg subnormal + ULP rounds higher + (BitConverter.Int64BitsToDouble(unchecked((long)0xBF001C0000000000)), + UInt16BitsToHalf(0b1_00000_1000000100)), // neg subnormal rounds to even + (BitConverter.Int64BitsToDouble(unchecked((long)0xBF001C0000000001)), + UInt16BitsToHalf(0b1_00000_1000000100)), // neg subnormal - ULP rounds lower + (BitConverter.Int64BitsToDouble(0x3E60000000000000), UInt16BitsToHalf(0b0_00000_000000000)), // (half-precision minimum subnormal / 2) should underflow to zero }; foreach ((double original, Half expected) in data) @@ -885,6 +990,17 @@ public static IEnumerable ToStringRoundtrip_TestData() yield return new object[] { MathF.PI }; yield return new object[] { Half.MaxValue }; yield return new object[] { Half.PositiveInfinity }; + + yield return new object[] { (UInt16BitsToHalf(0b0_00001_0000000000))}; // smallest normal + yield return new object[] { (UInt16BitsToHalf(0b0_00000_1111111111))}; // largest subnormal + yield return new object[] { (UInt16BitsToHalf(0b0_00000_1000000000))}; // middle subnormal + yield return new object[] { (UInt16BitsToHalf(0b0_00000_0111111111))}; // just below middle subnormal + yield return new object[] { (UInt16BitsToHalf(0b0_00000_0000000001))}; // smallest subnormal + yield return new object[] { (UInt16BitsToHalf(0b1_00000_0000000001))}; // highest negative subnormal + yield return new object[] { (UInt16BitsToHalf(0b1_00000_0111111111))}; // just above negative middle subnormal + yield return new object[] { (UInt16BitsToHalf(0b1_00000_1000000000))}; // negative middle subnormal + yield return new object[] { (UInt16BitsToHalf(0b1_00000_1111111111))}; // lowest negative subnormal + yield return new object[] { (UInt16BitsToHalf(0b1_00001_0000000000))}; // highest negative normal } [Theory] diff --git a/src/libraries/System.Runtime/tests/System/StringTests.cs b/src/libraries/System.Runtime/tests/System/StringTests.cs index 88f77c6d050738..4518e117480f9f 100644 --- a/src/libraries/System.Runtime/tests/System/StringTests.cs +++ b/src/libraries/System.Runtime/tests/System/StringTests.cs @@ -1775,5 +1775,46 @@ public static void MakeSureNoTrimChecksGoOutOfRange_Memory() Assert.True(rom.Span.SequenceEqual(rom.TrimEnd().Span)); } } + + [Fact] + public static void EqualityTests_AsciiOptimizations() + { + for (int i = 0; i < 128; i++) + { + for (int j = 0; j < 128; j++) + { + for (int len = 0; len < 8; len++) + { + bool expectedEqualOrdinal = i == j; + bool expectedEqualOrdinalIgnoreCase = (i == j) || ((i | 0x20) >= 'a' && (i | 0x20) <= 'z' && ((i | 0x20) == (j | 0x20))); + + // optimization might vary based on string length, so we use 'len' to vary the string length + // in order to hit as many code paths as possible + string prefix = new string('a', len); + string suffix = new string('b', len); + string s1 = prefix + (char)i + suffix; + string s2 = prefix + (char)j + suffix; + + bool actualEqualOrdinal = string.Equals(s1, s2, StringComparison.Ordinal); + bool actualEqualOrdinalIgnoreCase = string.Equals(s1, s2, StringComparison.OrdinalIgnoreCase); + + int actualCompareToOrdinal = string.Compare(s1, s2, StringComparison.Ordinal); + int actualCompareToOrdinalIgnoreCase = string.Compare(s1, s2, StringComparison.OrdinalIgnoreCase); + + try + { + Assert.Equal(expectedEqualOrdinal, actualEqualOrdinal); + Assert.Equal(expectedEqualOrdinal, actualCompareToOrdinal == 0); + Assert.Equal(expectedEqualOrdinalIgnoreCase, actualEqualOrdinalIgnoreCase); + Assert.Equal(expectedEqualOrdinalIgnoreCase, actualCompareToOrdinalIgnoreCase == 0); + } + catch (Exception ex) + { + throw new Exception($"Chars U+{i:X4} ('{(char)i}') and U+{j:X4} ('{(char)j}') did not compare as expected. Iteration: len = {len}.", ex); + } + } + } + } + } } } diff --git a/src/libraries/System.Runtime/tests/System/TimeZoneInfoTests.cs b/src/libraries/System.Runtime/tests/System/TimeZoneInfoTests.cs index c659446475eba0..20716ad6047745 100644 --- a/src/libraries/System.Runtime/tests/System/TimeZoneInfoTests.cs +++ b/src/libraries/System.Runtime/tests/System/TimeZoneInfoTests.cs @@ -2287,6 +2287,50 @@ public static void TestNameWithInvariantCulture() } + [Theory] + [PlatformSpecific(TestPlatforms.Browser)] + [InlineData("America/Buenos_Aires", "America/Argentina/Buenos_Aires")] + [InlineData("America/Catamarca", "America/Argentina/Catamarca")] + [InlineData("America/Cordoba", "America/Argentina/Cordoba")] + [InlineData("America/Jujuy", "America/Argentina/Jujuy")] + [InlineData("America/Mendoza", "America/Argentina/Mendoza")] + [InlineData("America/Indianapolis", "America/Indiana/Indianapolis")] + public static void TestTimeZoneIdBackwardCompatibility(string oldId, string currentId) + { + TimeZoneInfo oldtz = TimeZoneInfo.FindSystemTimeZoneById(oldId); + TimeZoneInfo currenttz = TimeZoneInfo.FindSystemTimeZoneById(currentId); + + Assert.Equal(oldtz.StandardName, currenttz.StandardName); + Assert.Equal(oldtz.DisplayName, currenttz.DisplayName); + } + + [Theory] + [PlatformSpecific(TestPlatforms.Browser)] + [InlineData("America/Buenos_Aires")] + [InlineData("America/Catamarca")] + [InlineData("America/Cordoba")] + [InlineData("America/Jujuy")] + [InlineData("America/Mendoza")] + [InlineData("America/Indianapolis")] + public static void ChangeLocalTimeZone(string id) + { + string originalTZ = Environment.GetEnvironmentVariable("TZ"); + try { + TimeZoneInfo.ClearCachedData(); + Environment.SetEnvironmentVariable("TZ", id); + + TimeZoneInfo localtz = TimeZoneInfo.Local; + TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById(id); + + Assert.Equal(tz.StandardName, localtz.StandardName); + Assert.Equal(tz.DisplayName, localtz.DisplayName); + } + finally { + TimeZoneInfo.ClearCachedData(); + Environment.SetEnvironmentVariable("TZ", originalTZ); + } + } + private static bool IsEnglishUILanguageAndRemoteExecutorSupported => (CultureInfo.CurrentUICulture.Name == "en" || CultureInfo.CurrentUICulture.Name.StartsWith("en-", StringComparison.Ordinal)) && RemoteExecutor.IsSupported; private static void VerifyConvertException(DateTimeOffset inputTime, string destinationTimeZoneId) where TException : Exception diff --git a/src/libraries/System.Security.Cryptography.Algorithms/ref/System.Security.Cryptography.Algorithms.cs b/src/libraries/System.Security.Cryptography.Algorithms/ref/System.Security.Cryptography.Algorithms.cs index e5b2651a5d6bea..5af666dc29fbdd 100644 --- a/src/libraries/System.Security.Cryptography.Algorithms/ref/System.Security.Cryptography.Algorithms.cs +++ b/src/libraries/System.Security.Cryptography.Algorithms/ref/System.Security.Cryptography.Algorithms.cs @@ -96,7 +96,6 @@ protected AsymmetricSignatureFormatter() { } public abstract void SetHashAlgorithm(string strName); public abstract void SetKey(System.Security.Cryptography.AsymmetricAlgorithm key); } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public partial class CryptoConfig { public CryptoConfig() { } diff --git a/src/libraries/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/RijndaelImplementation.cs b/src/libraries/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/RijndaelImplementation.cs index c4afcf09488359..a91a886ba9fe0d 100644 --- a/src/libraries/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/RijndaelImplementation.cs +++ b/src/libraries/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/RijndaelImplementation.cs @@ -23,6 +23,7 @@ internal RijndaelImplementation() // This class wraps Aes _impl = Aes.Create(); + _impl.FeedbackSize = 128; } public override int BlockSize @@ -42,6 +43,12 @@ public override int BlockSize } } + public override int FeedbackSize + { + get => _impl.FeedbackSize; + set => _impl.FeedbackSize = value; + } + public override byte[] IV { get { return _impl.IV; } diff --git a/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/CryptoConfig.cs b/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/CryptoConfig.cs index 10ada271582680..a1aea6e932dd91 100644 --- a/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/CryptoConfig.cs +++ b/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/CryptoConfig.cs @@ -8,11 +8,9 @@ using System.Globalization; using System.Reflection; using System.Runtime.InteropServices; -using System.Runtime.Versioning; namespace System.Security.Cryptography { - [UnsupportedOSPlatform("browser")] public class CryptoConfig { private const string AssemblyName_Cng = "System.Security.Cryptography.Cng"; diff --git a/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/RijndaelManaged.cs b/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/RijndaelManaged.cs index 876d17503b9efc..8eda1cf01026c2 100644 --- a/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/RijndaelManaged.cs +++ b/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/RijndaelManaged.cs @@ -19,6 +19,7 @@ public RijndaelManaged() // This class wraps Aes _impl = Aes.Create(); + _impl.FeedbackSize = 128; } public override int BlockSize @@ -38,6 +39,12 @@ public override int BlockSize } } + public override int FeedbackSize + { + get => _impl.FeedbackSize; + set => _impl.FeedbackSize = value; + } + public override byte[] IV { get { return _impl.IV; } diff --git a/src/libraries/System.Security.Cryptography.Algorithms/tests/RijndaelTests.cs b/src/libraries/System.Security.Cryptography.Algorithms/tests/RijndaelTests.cs index f2c922f1c24a2e..7a81f8ccb5eba1 100644 --- a/src/libraries/System.Security.Cryptography.Algorithms/tests/RijndaelTests.cs +++ b/src/libraries/System.Security.Cryptography.Algorithms/tests/RijndaelTests.cs @@ -25,6 +25,7 @@ static void test(Rijndael alg) Assert.Equal(128, alg.LegalBlockSizes[0].MinSize); Assert.Equal(128, alg.LegalBlockSizes[0].MaxSize); Assert.Equal(128, alg.BlockSize); + Assert.Equal(128, alg.FeedbackSize); // Different exception since we have different supported BlockSizes than desktop Assert.Throws(() => alg.BlockSize = 192); @@ -32,6 +33,7 @@ static void test(Rijndael alg) // Normal exception for rest Assert.Throws(() => alg.BlockSize = 111); + Assert.Throws(() => alg.FeedbackSize = 15); Assert.Equal(CipherMode.CBC, alg.Mode); Assert.Equal(PaddingMode.PKCS7, alg.Padding); @@ -169,6 +171,9 @@ static void test(Rijndael alg) alg.Padding = PaddingMode.PKCS7; Assert.Equal(PaddingMode.PKCS7, alg.Padding); + + alg.FeedbackSize = 8; + Assert.Equal(8, alg.FeedbackSize); } using (var alg = Rijndael.Create()) @@ -291,6 +296,47 @@ public static void MultipleBlockDecryptTransform(bool blockAlignedOutput) Assert.Equal(ExpectedOutput, decrypted); } + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindows7))] + [InlineData(128)] + [InlineData(8)] + [InlineData(null)] + public static void CfbFeedbackSizeIsRespected(int? feedbackSize) + { + void Test(Rijndael alg) + { + alg.Mode = CipherMode.CFB; + + if (feedbackSize == null) + { + feedbackSize = alg.FeedbackSize; + } + else + { + alg.FeedbackSize = feedbackSize.Value; + } + + int feedbackSizeBytes = feedbackSize.Value / 8; + byte[] input = new byte[feedbackSizeBytes + 1]; + + using ICryptoTransform transform = alg.CreateEncryptor(); + + byte[] output = transform.TransformFinalBlock(input, 0, input.Length); + int expectedOutputSize = (input.Length / feedbackSizeBytes) * feedbackSizeBytes + feedbackSizeBytes; + + Assert.Equal(expectedOutputSize, output.Length); + } + + using (Rijndael alg = new RijndaelManaged()) + { + Test(alg); + } + + using (Rijndael alg = Rijndael.Create()) + { + Test(alg); + } + } + private class RijndaelLegalSizesBreaker : RijndaelMinimal { public RijndaelLegalSizesBreaker() diff --git a/src/libraries/System.Security.Cryptography.Pkcs/Directory.Build.props b/src/libraries/System.Security.Cryptography.Pkcs/Directory.Build.props index 1f799d605feb93..ea521cfd4a184c 100644 --- a/src/libraries/System.Security.Cryptography.Pkcs/Directory.Build.props +++ b/src/libraries/System.Security.Cryptography.Pkcs/Directory.Build.props @@ -2,6 +2,8 @@ Microsoft + 5.0.1 + 5.0.0.1 true browser diff --git a/src/libraries/System.Security.Cryptography.Pkcs/src/Internal/Cryptography/PkcsHelpers.cs b/src/libraries/System.Security.Cryptography.Pkcs/src/Internal/Cryptography/PkcsHelpers.cs index bb0e6ee90f427b..7e810dae5e7bdd 100644 --- a/src/libraries/System.Security.Cryptography.Pkcs/src/Internal/Cryptography/PkcsHelpers.cs +++ b/src/libraries/System.Security.Cryptography.Pkcs/src/Internal/Cryptography/PkcsHelpers.cs @@ -227,7 +227,20 @@ public static string OctetStringToUnicode(this byte[] octets) if (octets.Length < 2) return string.Empty; // .NET Framework compat: 0-length byte array maps to string.empty. 1-length byte array gets passed to Marshal.PtrToStringUni() with who knows what outcome. - string s = Encoding.Unicode.GetString(octets, 0, octets.Length - 2); + int end = octets.Length; + int endMinusOne = end - 1; + + // Truncate the string to before the first embedded \0 (probably the last two bytes). + for (int i = 0; i < endMinusOne; i += 2) + { + if (octets[i] == 0 && octets[i + 1] == 0) + { + end = i; + break; + } + } + + string s = Encoding.Unicode.GetString(octets, 0, end); return s; } diff --git a/src/libraries/System.Security.Cryptography.Pkcs/tests/Pkcs9AttributeTests.cs b/src/libraries/System.Security.Cryptography.Pkcs/tests/Pkcs9AttributeTests.cs index cf5fdba5960be1..3b653450eb493a 100644 --- a/src/libraries/System.Security.Cryptography.Pkcs/tests/Pkcs9AttributeTests.cs +++ b/src/libraries/System.Security.Cryptography.Pkcs/tests/Pkcs9AttributeTests.cs @@ -177,6 +177,31 @@ public static void DocumentDescriptionFromRawData() Assert.Equal(s_OidDocumentDescription, oid); } + [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/45168", TargetFrameworkMonikers.NetFramework)] + public static void DocumentDescriptionMissingTerminator() + { + byte[] rawData = "041e4d00790020004400650073006300720069007000740069006f006e002100".HexToByteArray(); + Pkcs9DocumentDescription p = new Pkcs9DocumentDescription(rawData); + Assert.Equal(rawData, p.RawData); + string cookedData = p.DocumentDescription; + Assert.Equal("My Description!", cookedData); + string oid = p.Oid.Value; + Assert.Equal(s_OidDocumentDescription, oid); + } + + [Fact] + public static void DocumentDescriptionEmbeddedTerminator() + { + byte[] rawData = "041e4d00790020004400650073006300720000007000740069006f006e000000".HexToByteArray(); + Pkcs9DocumentDescription p = new Pkcs9DocumentDescription(rawData); + Assert.Equal(rawData, p.RawData); + string cookedData = p.DocumentDescription; + Assert.Equal("My Descr", cookedData); + string oid = p.Oid.Value; + Assert.Equal(s_OidDocumentDescription, oid); + } + [Fact] public static void DocumentDescriptionFromCookedData() { @@ -226,6 +251,31 @@ public static void DocumentNameFromRawData() Assert.Equal(s_OidDocumentName, oid); } + [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/45168", TargetFrameworkMonikers.NetFramework)] + public static void DocumentNameMissingTerminator() + { + byte[] rawData = "04104d00790020004e0061006d0065002100".HexToByteArray(); + Pkcs9DocumentName p = new Pkcs9DocumentName(rawData); + Assert.Equal(rawData, p.RawData); + string cookedData = p.DocumentName; + Assert.Equal("My Name!", cookedData); + string oid = p.Oid.Value; + Assert.Equal(s_OidDocumentName, oid); + } + + [Fact] + public static void DocumentNameEmbeddedTerminator() + { + byte[] rawData = "04104d00790020004e006100000065000000".HexToByteArray(); + Pkcs9DocumentName p = new Pkcs9DocumentName(rawData); + Assert.Equal(rawData, p.RawData); + string cookedData = p.DocumentName; + Assert.Equal("My Na", cookedData); + string oid = p.Oid.Value; + Assert.Equal(s_OidDocumentName, oid); + } + [Fact] public static void DocumentNameFromCookedData() { diff --git a/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/CertificateAssetDownloader.cs b/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/CertificateAssetDownloader.cs index c6b9fef9e115b5..94c95b8d2b2fe3 100644 --- a/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/CertificateAssetDownloader.cs +++ b/src/libraries/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/CertificateAssetDownloader.cs @@ -16,7 +16,7 @@ namespace Internal.Cryptography.Pal { internal static class CertificateAssetDownloader { - private static readonly Func? s_downloadBytes = CreateDownloadBytesFunc(); + private static readonly Func? s_downloadBytes = CreateDownloadBytesFunc(); internal static X509Certificate2? DownloadCertificate(string uri, TimeSpan downloadTimeout) { @@ -125,11 +125,15 @@ internal static class CertificateAssetDownloader [DynamicDependency("#ctor", "System.Net.Http.SocketsHttpHandler", "System.Net.Http")] [DynamicDependency("#ctor", "System.Net.Http.HttpRequestMessage", "System.Net.Http")] [DynamicDependency("set_PooledConnectionIdleTimeout", "System.Net.Http.SocketsHttpHandler", "System.Net.Http")] + [DynamicDependency("set_AllowAutoRedirect", "System.Net.Http.SocketsHttpHandler", "System.Net.Http")] [DynamicDependency("RequestUri", "System.Net.Http.HttpRequestMessage", "System.Net.Http")] [DynamicDependency("Send", "System.Net.Http.HttpClient", "System.Net.Http")] [DynamicDependency("Content", "System.Net.Http.HttpResponseMessage", "System.Net.Http")] + [DynamicDependency("StatusCode", "System.Net.Http.HttpResponseMessage", "System.Net.Http")] + [DynamicDependency("Headers", "System.Net.Http.HttpResponseMessage", "System.Net.Http")] + [DynamicDependency("Location", "System.Net.Http.Headers.HttpResponseHeaders", "System.Net.Http")] [DynamicDependency("ReadAsStream", "System.Net.Http.HttpContent", "System.Net.Http")] - private static Func? CreateDownloadBytesFunc() + private static Func? CreateDownloadBytesFunc() { try { @@ -142,8 +146,9 @@ internal static class CertificateAssetDownloader Type? httpClientType = Type.GetType("System.Net.Http.HttpClient, System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", throwOnError: false); Type? httpRequestMessageType = Type.GetType("System.Net.Http.HttpRequestMessage, System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", throwOnError: false); Type? httpResponseMessageType = Type.GetType("System.Net.Http.HttpResponseMessage, System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", throwOnError: false); + Type? httpResponseHeadersType = Type.GetType("System.Net.Http.Headers.HttpResponseHeaders, System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", throwOnError: false); Type? httpContentType = Type.GetType("System.Net.Http.HttpContent, System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", throwOnError: false); - if (socketsHttpHandlerType == null || httpClientType == null || httpRequestMessageType == null || httpResponseMessageType == null || httpContentType == null) + if (socketsHttpHandlerType == null || httpClientType == null || httpRequestMessageType == null || httpResponseMessageType == null || httpResponseHeadersType == null || httpContentType == null) { Debug.Fail("Unable to load required type."); return null; @@ -151,11 +156,16 @@ internal static class CertificateAssetDownloader // Get the methods on those types. PropertyInfo? pooledConnectionIdleTimeoutProp = socketsHttpHandlerType.GetProperty("PooledConnectionIdleTimeout"); + PropertyInfo? allowAutoRedirectProp = socketsHttpHandlerType.GetProperty("AllowAutoRedirect"); PropertyInfo? requestUriProp = httpRequestMessageType.GetProperty("RequestUri"); MethodInfo? sendMethod = httpClientType.GetMethod("Send", new Type[] { httpRequestMessageType, typeof(CancellationToken) }); PropertyInfo? responseContentProp = httpResponseMessageType.GetProperty("Content"); + PropertyInfo? responseStatusCodeProp = httpResponseMessageType.GetProperty("StatusCode"); + PropertyInfo? responseHeadersProp = httpResponseMessageType.GetProperty("Headers"); + PropertyInfo? responseHeadersLocationProp = httpResponseHeadersType.GetProperty("Location"); MethodInfo? readAsStreamMethod = httpContentType.GetMethod("ReadAsStream", Type.EmptyTypes); - if (pooledConnectionIdleTimeoutProp == null || requestUriProp == null || sendMethod == null || responseContentProp == null || readAsStreamMethod == null) + if (pooledConnectionIdleTimeoutProp == null || allowAutoRedirectProp == null || requestUriProp == null || sendMethod == null || + responseContentProp == null || responseStatusCodeProp == null || responseHeadersProp == null || responseHeadersLocationProp == null || readAsStreamMethod == null) { Debug.Fail("Unable to load required member."); return null; @@ -163,29 +173,79 @@ internal static class CertificateAssetDownloader // Only keep idle connections around briefly, as a compromise between resource leakage and port exhaustion. const int PooledConnectionIdleTimeoutSeconds = 15; + const int MaxRedirections = 10; // Equivalent of: - // var socketsHttpHandler = new SocketsHttpHandler() { PooledConnectionIdleTimeout = TimeSpan.FromSeconds(PooledConnectionIdleTimeoutSeconds) }; + // var socketsHttpHandler = new SocketsHttpHandler() { + // PooledConnectionIdleTimeout = TimeSpan.FromSeconds(PooledConnectionIdleTimeoutSeconds), + // AllowAutoRedirect = false + // }; // var httpClient = new HttpClient(socketsHttpHandler); object? socketsHttpHandler = Activator.CreateInstance(socketsHttpHandlerType); pooledConnectionIdleTimeoutProp.SetValue(socketsHttpHandler, TimeSpan.FromSeconds(PooledConnectionIdleTimeoutSeconds)); + allowAutoRedirectProp.SetValue(socketsHttpHandler, false); object? httpClient = Activator.CreateInstance(httpClientType, new object?[] { socketsHttpHandler }); - // Return a delegate for getting the byte[] for a uri. This delegate references the HttpClient object and thus - // all accesses will be through that singleton. - return (string uri, CancellationToken cancellationToken) => + return (string uriString, CancellationToken cancellationToken) => { + Uri uri = new Uri(uriString); + + if (!IsAllowedScheme(uri.Scheme)) + { + return null; + } + // Equivalent of: - // HttpResponseMessage resp = httpClient.Send(new HttpRequestMessage() { RequestUri = new Uri(uri) }); - // using Stream responseStream = resp.Content.ReadAsStream(); + // HttpRequestMessage requestMessage = new HttpRequestMessage() { RequestUri = new Uri(uri) }; + // HttpResponseMessage responseMessage = httpClient.Send(requestMessage, cancellationToken); object requestMessage = Activator.CreateInstance(httpRequestMessageType)!; - requestUriProp.SetValue(requestMessage, new Uri(uri)); + requestUriProp.SetValue(requestMessage, uri); object responseMessage = sendMethod.Invoke(httpClient, new object[] { requestMessage, cancellationToken })!; + + int redirections = 0; + Uri? redirectUri; + bool hasRedirect; + while (true) + { + int statusCode = (int)responseStatusCodeProp.GetValue(responseMessage)!; + object responseHeaders = responseHeadersProp.GetValue(responseMessage)!; + Uri? location = (Uri?)responseHeadersLocationProp.GetValue(responseHeaders); + redirectUri = GetUriForRedirect((Uri)requestUriProp.GetValue(requestMessage)!, statusCode, location, out hasRedirect); + if (redirectUri == null) + { + break; + } + + ((IDisposable)responseMessage).Dispose(); + + redirections++; + if (redirections > MaxRedirections) + { + return null; + } + + // Equivalent of: + // requestMessage = new HttpRequestMessage() { RequestUri = redirectUri }; + // requestMessage.RequestUri = redirectUri; + // responseMessage = httpClient.Send(requestMessage, cancellationToken); + requestMessage = Activator.CreateInstance(httpRequestMessageType)!; + requestUriProp.SetValue(requestMessage, redirectUri); + responseMessage = sendMethod.Invoke(httpClient, new object[] { requestMessage, cancellationToken })!; + } + + if (hasRedirect && redirectUri == null) + { + return null; + } + + // Equivalent of: + // using Stream responseStream = resp.Content.ReadAsStream(); object content = responseContentProp.GetValue(responseMessage)!; using Stream responseStream = (Stream)readAsStreamMethod.Invoke(content, null)!; var result = new MemoryStream(); responseStream.CopyTo(result); + ((IDisposable)responseMessage).Dispose(); return result.ToArray(); }; } @@ -195,5 +255,57 @@ internal static class CertificateAssetDownloader return null; } } + + private static Uri? GetUriForRedirect(Uri requestUri, int statusCode, Uri? location, out bool hasRedirect) + { + if (!IsRedirectStatusCode(statusCode)) + { + hasRedirect = false; + return null; + } + + hasRedirect = true; + + if (location == null) + { + return null; + } + + // Ensure the redirect location is an absolute URI. + if (!location.IsAbsoluteUri) + { + location = new Uri(requestUri, location); + } + + // Per https://tools.ietf.org/html/rfc7231#section-7.1.2, a redirect location without a + // fragment should inherit the fragment from the original URI. + string requestFragment = requestUri.Fragment; + if (!string.IsNullOrEmpty(requestFragment)) + { + string redirectFragment = location.Fragment; + if (string.IsNullOrEmpty(redirectFragment)) + { + location = new UriBuilder(location) { Fragment = requestFragment }.Uri; + } + } + + if (!IsAllowedScheme(location.Scheme)) + { + return null; + } + + return location; + } + + private static bool IsRedirectStatusCode(int statusCode) + { + // MultipleChoices (300), Moved (301), Found (302), SeeOther (303), TemporaryRedirect (307), PermanentRedirect (308) + return (statusCode >= 300 && statusCode <= 303) || statusCode == 307 || statusCode == 308; + } + + private static bool IsAllowedScheme(string scheme) + { + return string.Equals(scheme, "http", StringComparison.OrdinalIgnoreCase); + } } } diff --git a/src/libraries/System.Speech/Directory.Build.props b/src/libraries/System.Speech/Directory.Build.props new file mode 100644 index 00000000000000..4e353559b20e9d --- /dev/null +++ b/src/libraries/System.Speech/Directory.Build.props @@ -0,0 +1,12 @@ + + + + 5.0.0 + + 4.0.0.0 + MicrosoftShared + true + + \ No newline at end of file diff --git a/src/libraries/System.Speech/System.Speech.sln b/src/libraries/System.Speech/System.Speech.sln new file mode 100644 index 00000000000000..7da94f631eee09 --- /dev/null +++ b/src/libraries/System.Speech/System.Speech.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30709.18 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Speech", "src\System.Speech.csproj", "{D6377882-BD90-46D6-AC60-83498E4BA2B3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Speech.Tests", "tests\System.Speech.Tests.csproj", "{E26B6065-4016-4385-9AB2-EEBE2C97CEE7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D6377882-BD90-46D6-AC60-83498E4BA2B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D6377882-BD90-46D6-AC60-83498E4BA2B3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D6377882-BD90-46D6-AC60-83498E4BA2B3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D6377882-BD90-46D6-AC60-83498E4BA2B3}.Release|Any CPU.Build.0 = Release|Any CPU + {E26B6065-4016-4385-9AB2-EEBE2C97CEE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E26B6065-4016-4385-9AB2-EEBE2C97CEE7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E26B6065-4016-4385-9AB2-EEBE2C97CEE7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E26B6065-4016-4385-9AB2-EEBE2C97CEE7}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {5BD9DF41-48EC-4FB8-998D-122857C5CA73} + EndGlobalSection +EndGlobal diff --git a/src/libraries/System.Speech/pkg/System.Speech.pkgproj b/src/libraries/System.Speech/pkg/System.Speech.pkgproj new file mode 100644 index 00000000000000..327c69d3d98c81 --- /dev/null +++ b/src/libraries/System.Speech/pkg/System.Speech.pkgproj @@ -0,0 +1,16 @@ + + + + + netcoreapp2.0;net45;uap10.0.16299;$(AllXamarinFrameworks) + + + + true + + + build\netcoreapp2.0\ + + + + diff --git a/src/libraries/System.Speech/pkg/build/System.Speech.targets b/src/libraries/System.Speech/pkg/build/System.Speech.targets new file mode 100644 index 00000000000000..840076be032c83 --- /dev/null +++ b/src/libraries/System.Speech/pkg/build/System.Speech.targets @@ -0,0 +1,7 @@ + + + + + diff --git a/src/libraries/System.Speech/ref/System.Speech.cs b/src/libraries/System.Speech/ref/System.Speech.cs new file mode 100644 index 00000000000000..65fa54c3647476 --- /dev/null +++ b/src/libraries/System.Speech/ref/System.Speech.cs @@ -0,0 +1,1157 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// GenAPI Version: 6.0.3.5205 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ +namespace System.Speech.AudioFormat +{ + public enum AudioBitsPerSample + { + Eight = 8, + Sixteen = 16, + } + public enum AudioChannel + { + Mono = 1, + Stereo = 2, + } + public enum EncodingFormat + { + Pcm = 1, + ALaw = 6, + ULaw = 7, + } + public partial class SpeechAudioFormatInfo + { + public SpeechAudioFormatInfo(int samplesPerSecond, System.Speech.AudioFormat.AudioBitsPerSample bitsPerSample, System.Speech.AudioFormat.AudioChannel channel) { } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public SpeechAudioFormatInfo(System.Speech.AudioFormat.EncodingFormat encodingFormat, int samplesPerSecond, int bitsPerSample, int channelCount, int averageBytesPerSecond, int blockAlign, byte[] formatSpecificData) { } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public int AverageBytesPerSecond { get { throw null; } } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public int BitsPerSample { get { throw null; } } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public int BlockAlign { get { throw null; } } + public int ChannelCount { get { throw null; } } + public System.Speech.AudioFormat.EncodingFormat EncodingFormat { get { throw null; } } + public int SamplesPerSecond { get { throw null; } } + public override bool Equals(object obj) { throw null; } + public byte[] FormatSpecificData() { throw null; } + public override int GetHashCode() { throw null; } + } +} +namespace System.Speech.Recognition +{ + public partial class AudioLevelUpdatedEventArgs : System.EventArgs + { + internal AudioLevelUpdatedEventArgs() { } + public int AudioLevel { get { throw null; } } + } + public enum AudioSignalProblem + { + None = 0, + TooNoisy = 1, + NoSignal = 2, + TooLoud = 3, + TooSoft = 4, + TooFast = 5, + TooSlow = 6, + } + public partial class AudioSignalProblemOccurredEventArgs : System.EventArgs + { + internal AudioSignalProblemOccurredEventArgs() { } + public int AudioLevel { get { throw null; } } + public System.TimeSpan AudioPosition { get { throw null; } } + public System.Speech.Recognition.AudioSignalProblem AudioSignalProblem { get { throw null; } } + public System.TimeSpan RecognizerAudioPosition { get { throw null; } } + } + public enum AudioState + { + Stopped = 0, + Silence = 1, + Speech = 2, + } + public partial class AudioStateChangedEventArgs : System.EventArgs + { + internal AudioStateChangedEventArgs() { } + public System.Speech.Recognition.AudioState AudioState { get { throw null; } } + } + public partial class Choices + { + public Choices() { } + public Choices(params System.Speech.Recognition.GrammarBuilder[] alternateChoices) { } + public Choices(params string[] phrases) { } + public void Add(params System.Speech.Recognition.GrammarBuilder[] alternateChoices) { } + public void Add(params string[] phrases) { } + public System.Speech.Recognition.GrammarBuilder ToGrammarBuilder() { throw null; } + } + public partial class DictationGrammar : System.Speech.Recognition.Grammar + { + public DictationGrammar() { } + public DictationGrammar(string topic) { } + public void SetDictationContext(string precedingText, string subsequentText) { } + } + [System.FlagsAttribute] + public enum DisplayAttributes + { + None = 0, + ZeroTrailingSpaces = 2, + OneTrailingSpace = 4, + TwoTrailingSpaces = 8, + ConsumeLeadingSpaces = 16, + } + public partial class EmulateRecognizeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs + { + internal EmulateRecognizeCompletedEventArgs() : base (default(System.Exception), default(bool), default(object)) { } + public System.Speech.Recognition.RecognitionResult Result { get { throw null; } } + } + public partial class Grammar + { + protected Grammar() { } + public Grammar(System.IO.Stream stream) { } + public Grammar(System.IO.Stream stream, string ruleName) { } + public Grammar(System.IO.Stream stream, string ruleName, object[] parameters) { } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public Grammar(System.IO.Stream stream, string ruleName, System.Uri baseUri) { } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public Grammar(System.IO.Stream stream, string ruleName, System.Uri baseUri, object[] parameters) { } + public Grammar(System.Speech.Recognition.GrammarBuilder builder) { } + public Grammar(System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument) { } + public Grammar(System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName) { } + public Grammar(System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName, object[] parameters) { } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public Grammar(System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName, System.Uri baseUri) { } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public Grammar(System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName, System.Uri baseUri, object[] parameters) { } + public Grammar(string path) { } + public Grammar(string path, string ruleName) { } + public Grammar(string path, string ruleName, object[] parameters) { } + public bool Enabled { get { throw null; } set { } } + protected internal virtual bool IsStg { get { throw null; } } + public bool Loaded { get { throw null; } } + public string Name { get { throw null; } set { } } + public int Priority { get { throw null; } set { } } + protected string ResourceName { get { throw null; } set { } } + public string RuleName { get { throw null; } } + public float Weight { get { throw null; } set { } } + public event System.EventHandler SpeechRecognized { add { } remove { } } + public static System.Speech.Recognition.Grammar LoadLocalizedGrammarFromType(System.Type type, params object[] onInitParameters) { throw null; } + protected void StgInit(object[] parameters) { } + } + public partial class GrammarBuilder + { + public GrammarBuilder() { } + public GrammarBuilder(System.Speech.Recognition.Choices alternateChoices) { } + public GrammarBuilder(System.Speech.Recognition.GrammarBuilder builder, int minRepeat, int maxRepeat) { } + public GrammarBuilder(System.Speech.Recognition.SemanticResultKey key) { } + public GrammarBuilder(System.Speech.Recognition.SemanticResultValue value) { } + public GrammarBuilder(string phrase) { } + public GrammarBuilder(string phrase, int minRepeat, int maxRepeat) { } + public GrammarBuilder(string phrase, System.Speech.Recognition.SubsetMatchingMode subsetMatchingCriteria) { } + public System.Globalization.CultureInfo Culture { get { throw null; } set { } } + public string DebugShowPhrases { get { throw null; } } + public static System.Speech.Recognition.GrammarBuilder Add(System.Speech.Recognition.Choices choices, System.Speech.Recognition.GrammarBuilder builder) { throw null; } + public static System.Speech.Recognition.GrammarBuilder Add(System.Speech.Recognition.GrammarBuilder builder, System.Speech.Recognition.Choices choices) { throw null; } + public static System.Speech.Recognition.GrammarBuilder Add(System.Speech.Recognition.GrammarBuilder builder1, System.Speech.Recognition.GrammarBuilder builder2) { throw null; } + public static System.Speech.Recognition.GrammarBuilder Add(System.Speech.Recognition.GrammarBuilder builder, string phrase) { throw null; } + public static System.Speech.Recognition.GrammarBuilder Add(string phrase, System.Speech.Recognition.GrammarBuilder builder) { throw null; } + public void Append(System.Speech.Recognition.Choices alternateChoices) { } + public void Append(System.Speech.Recognition.GrammarBuilder builder) { } + public void Append(System.Speech.Recognition.GrammarBuilder builder, int minRepeat, int maxRepeat) { } + public void Append(System.Speech.Recognition.SemanticResultKey key) { } + public void Append(System.Speech.Recognition.SemanticResultValue value) { } + public void Append(string phrase) { } + public void Append(string phrase, int minRepeat, int maxRepeat) { } + public void Append(string phrase, System.Speech.Recognition.SubsetMatchingMode subsetMatchingCriteria) { } + public void AppendDictation() { } + public void AppendDictation(string category) { } + public void AppendRuleReference(string path) { } + public void AppendRuleReference(string path, string rule) { } + public void AppendWildcard() { } + public static System.Speech.Recognition.GrammarBuilder operator +(System.Speech.Recognition.Choices choices, System.Speech.Recognition.GrammarBuilder builder) { throw null; } + public static System.Speech.Recognition.GrammarBuilder operator +(System.Speech.Recognition.GrammarBuilder builder, System.Speech.Recognition.Choices choices) { throw null; } + public static System.Speech.Recognition.GrammarBuilder operator +(System.Speech.Recognition.GrammarBuilder builder1, System.Speech.Recognition.GrammarBuilder builder2) { throw null; } + public static System.Speech.Recognition.GrammarBuilder operator +(System.Speech.Recognition.GrammarBuilder builder, string phrase) { throw null; } + public static System.Speech.Recognition.GrammarBuilder operator +(string phrase, System.Speech.Recognition.GrammarBuilder builder) { throw null; } + public static implicit operator System.Speech.Recognition.GrammarBuilder (System.Speech.Recognition.Choices choices) { throw null; } + public static implicit operator System.Speech.Recognition.GrammarBuilder (System.Speech.Recognition.SemanticResultKey semanticKey) { throw null; } + public static implicit operator System.Speech.Recognition.GrammarBuilder (System.Speech.Recognition.SemanticResultValue semanticValue) { throw null; } + public static implicit operator System.Speech.Recognition.GrammarBuilder (string phrase) { throw null; } + } + public partial class LoadGrammarCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs + { + internal LoadGrammarCompletedEventArgs() : base (default(System.Exception), default(bool), default(object)) { } + public System.Speech.Recognition.Grammar Grammar { get { throw null; } } + } + public abstract partial class RecognitionEventArgs : System.EventArgs + { + internal RecognitionEventArgs() { } + public System.Speech.Recognition.RecognitionResult Result { get { throw null; } } + } + public sealed partial class RecognitionResult : System.Speech.Recognition.RecognizedPhrase, System.Runtime.Serialization.ISerializable + { + internal RecognitionResult() { } + public System.Collections.ObjectModel.ReadOnlyCollection Alternates { get { throw null; } } + public System.Speech.Recognition.RecognizedAudio Audio { get { throw null; } } + public System.Speech.Recognition.RecognizedAudio GetAudioForWordRange(System.Speech.Recognition.RecognizedWordUnit firstWord, System.Speech.Recognition.RecognizedWordUnit lastWord) { throw null; } + void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) { } + } + public partial class RecognizeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs + { + internal RecognizeCompletedEventArgs() : base (default(System.Exception), default(bool), default(object)) { } + public System.TimeSpan AudioPosition { get { throw null; } } + public bool BabbleTimeout { get { throw null; } } + public bool InitialSilenceTimeout { get { throw null; } } + public bool InputStreamEnded { get { throw null; } } + public System.Speech.Recognition.RecognitionResult Result { get { throw null; } } + } + public partial class RecognizedAudio + { + internal RecognizedAudio() { } + public System.TimeSpan AudioPosition { get { throw null; } } + public System.TimeSpan Duration { get { throw null; } } + public System.Speech.AudioFormat.SpeechAudioFormatInfo Format { get { throw null; } } + public System.DateTime StartTime { get { throw null; } } + public System.Speech.Recognition.RecognizedAudio GetRange(System.TimeSpan audioPosition, System.TimeSpan duration) { throw null; } + public void WriteToAudioStream(System.IO.Stream outputStream) { } + public void WriteToWaveStream(System.IO.Stream outputStream) { } + } + public partial class RecognizedPhrase + { + internal RecognizedPhrase() { } + public float Confidence { get { throw null; } } + public System.Speech.Recognition.Grammar Grammar { get { throw null; } } + public int HomophoneGroupId { get { throw null; } } + public System.Collections.ObjectModel.ReadOnlyCollection Homophones { get { throw null; } } + public System.Collections.ObjectModel.Collection ReplacementWordUnits { get { throw null; } } + public System.Speech.Recognition.SemanticValue Semantics { get { throw null; } } + public string Text { get { throw null; } } + public System.Collections.ObjectModel.ReadOnlyCollection Words { get { throw null; } } + public System.Xml.XPath.IXPathNavigable ConstructSmlFromSemantics() { throw null; } + } + public partial class RecognizedWordUnit + { + public RecognizedWordUnit(string text, float confidence, string pronunciation, string lexicalForm, System.Speech.Recognition.DisplayAttributes displayAttributes, System.TimeSpan audioPosition, System.TimeSpan audioDuration) { } + public float Confidence { get { throw null; } } + public System.Speech.Recognition.DisplayAttributes DisplayAttributes { get { throw null; } } + public string LexicalForm { get { throw null; } } + public string Pronunciation { get { throw null; } } + public string Text { get { throw null; } } + } + public enum RecognizeMode + { + Single = 0, + Multiple = 1, + } + public partial class RecognizerInfo : System.IDisposable + { + internal RecognizerInfo() { } + public System.Collections.Generic.IDictionary AdditionalInfo { get { throw null; } } + public System.Globalization.CultureInfo Culture { get { throw null; } } + public string Description { get { throw null; } } + public string Id { get { throw null; } } + public string Name { get { throw null; } } + public System.Collections.ObjectModel.ReadOnlyCollection SupportedAudioFormats { get { throw null; } } + public void Dispose() { } + } + public enum RecognizerState + { + Stopped = 0, + Listening = 1, + } + public partial class RecognizerUpdateReachedEventArgs : System.EventArgs + { + internal RecognizerUpdateReachedEventArgs() { } + public System.TimeSpan AudioPosition { get { throw null; } } + public object UserToken { get { throw null; } } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public partial class ReplacementText + { + internal ReplacementText() { } + public int CountOfWords { get { throw null; } } + public System.Speech.Recognition.DisplayAttributes DisplayAttributes { get { throw null; } } + public int FirstWordIndex { get { throw null; } } + public string Text { get { throw null; } } + } + public partial class SemanticResultKey + { + public SemanticResultKey(string semanticResultKey, params System.Speech.Recognition.GrammarBuilder[] builders) { } + public SemanticResultKey(string semanticResultKey, params string[] phrases) { } + public System.Speech.Recognition.GrammarBuilder ToGrammarBuilder() { throw null; } + } + public partial class SemanticResultValue + { + public SemanticResultValue(object value) { } + public SemanticResultValue(System.Speech.Recognition.GrammarBuilder builder, object value) { } + public SemanticResultValue(string phrase, object value) { } + public System.Speech.Recognition.GrammarBuilder ToGrammarBuilder() { throw null; } + } + public sealed partial class SemanticValue : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable + { + public SemanticValue(object value) { } + public SemanticValue(string keyName, object value, float confidence) { } + public float Confidence { get { throw null; } } + public int Count { get { throw null; } } + public System.Speech.Recognition.SemanticValue this[string key] { get { throw null; } set { } } + bool System.Collections.Generic.ICollection>.IsReadOnly { get { throw null; } } + System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Keys { get { throw null; } } + System.Collections.Generic.ICollection System.Collections.Generic.IDictionary.Values { get { throw null; } } + public object Value { get { throw null; } } + public bool Contains(System.Collections.Generic.KeyValuePair item) { throw null; } + public bool ContainsKey(string key) { throw null; } + public override bool Equals(object obj) { throw null; } + public override int GetHashCode() { throw null; } + void System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair key) { } + void System.Collections.Generic.ICollection>.Clear() { } + void System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[] array, int index) { } + bool System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair key) { throw null; } + void System.Collections.Generic.IDictionary.Add(string key, System.Speech.Recognition.SemanticValue value) { } + bool System.Collections.Generic.IDictionary.Remove(string key) { throw null; } + bool System.Collections.Generic.IDictionary.TryGetValue(string key, out System.Speech.Recognition.SemanticValue value) { throw null; } + System.Collections.Generic.IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator() { throw null; } + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; } + } + public partial class SpeechDetectedEventArgs : System.EventArgs + { + internal SpeechDetectedEventArgs() { } + public System.TimeSpan AudioPosition { get { throw null; } } + } + public partial class SpeechHypothesizedEventArgs : System.Speech.Recognition.RecognitionEventArgs + { + internal SpeechHypothesizedEventArgs() { } + } + public partial class SpeechRecognitionEngine : System.IDisposable + { + public SpeechRecognitionEngine() { } + public SpeechRecognitionEngine(System.Globalization.CultureInfo culture) { } + public SpeechRecognitionEngine(System.Speech.Recognition.RecognizerInfo recognizerInfo) { } + public SpeechRecognitionEngine(string recognizerId) { } + public System.Speech.AudioFormat.SpeechAudioFormatInfo AudioFormat { get { throw null; } } + public int AudioLevel { get { throw null; } } + public System.TimeSpan AudioPosition { get { throw null; } } + public System.Speech.Recognition.AudioState AudioState { get { throw null; } } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public System.TimeSpan BabbleTimeout { get { throw null; } set { } } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public System.TimeSpan EndSilenceTimeout { get { throw null; } set { } } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public System.TimeSpan EndSilenceTimeoutAmbiguous { get { throw null; } set { } } + public System.Collections.ObjectModel.ReadOnlyCollection Grammars { get { throw null; } } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public System.TimeSpan InitialSilenceTimeout { get { throw null; } set { } } + public int MaxAlternates { get { throw null; } set { } } + public System.TimeSpan RecognizerAudioPosition { get { throw null; } } + public System.Speech.Recognition.RecognizerInfo RecognizerInfo { get { throw null; } } + public event System.EventHandler AudioLevelUpdated { add { } remove { } } + public event System.EventHandler AudioSignalProblemOccurred { add { } remove { } } + public event System.EventHandler AudioStateChanged { add { } remove { } } + public event System.EventHandler EmulateRecognizeCompleted { add { } remove { } } + public event System.EventHandler LoadGrammarCompleted { add { } remove { } } + public event System.EventHandler RecognizeCompleted { add { } remove { } } + public event System.EventHandler RecognizerUpdateReached { add { } remove { } } + public event System.EventHandler SpeechDetected { add { } remove { } } + public event System.EventHandler SpeechHypothesized { add { } remove { } } + public event System.EventHandler SpeechRecognitionRejected { add { } remove { } } + public event System.EventHandler SpeechRecognized { add { } remove { } } + public void Dispose() { } + protected virtual void Dispose(bool disposing) { } + public System.Speech.Recognition.RecognitionResult EmulateRecognize(System.Speech.Recognition.RecognizedWordUnit[] wordUnits, System.Globalization.CompareOptions compareOptions) { throw null; } + public System.Speech.Recognition.RecognitionResult EmulateRecognize(string inputText) { throw null; } + public System.Speech.Recognition.RecognitionResult EmulateRecognize(string inputText, System.Globalization.CompareOptions compareOptions) { throw null; } + public void EmulateRecognizeAsync(System.Speech.Recognition.RecognizedWordUnit[] wordUnits, System.Globalization.CompareOptions compareOptions) { } + public void EmulateRecognizeAsync(string inputText) { } + public void EmulateRecognizeAsync(string inputText, System.Globalization.CompareOptions compareOptions) { } + public static System.Collections.ObjectModel.ReadOnlyCollection InstalledRecognizers() { throw null; } + public void LoadGrammar(System.Speech.Recognition.Grammar grammar) { } + public void LoadGrammarAsync(System.Speech.Recognition.Grammar grammar) { } + public object QueryRecognizerSetting(string settingName) { throw null; } + public System.Speech.Recognition.RecognitionResult Recognize() { throw null; } + public System.Speech.Recognition.RecognitionResult Recognize(System.TimeSpan initialSilenceTimeout) { throw null; } + public void RecognizeAsync() { } + public void RecognizeAsync(System.Speech.Recognition.RecognizeMode mode) { } + public void RecognizeAsyncCancel() { } + public void RecognizeAsyncStop() { } + public void RequestRecognizerUpdate() { } + public void RequestRecognizerUpdate(object userToken) { } + public void RequestRecognizerUpdate(object userToken, System.TimeSpan audioPositionAheadToRaiseUpdate) { } + public void SetInputToAudioStream(System.IO.Stream audioSource, System.Speech.AudioFormat.SpeechAudioFormatInfo audioFormat) { } + public void SetInputToDefaultAudioDevice() { } + public void SetInputToNull() { } + public void SetInputToWaveFile(string path) { } + public void SetInputToWaveStream(System.IO.Stream audioSource) { } + public void UnloadAllGrammars() { } + public void UnloadGrammar(System.Speech.Recognition.Grammar grammar) { } + public void UpdateRecognizerSetting(string settingName, int updatedValue) { } + public void UpdateRecognizerSetting(string settingName, string updatedValue) { } + } + public partial class SpeechRecognitionRejectedEventArgs : System.Speech.Recognition.RecognitionEventArgs + { + internal SpeechRecognitionRejectedEventArgs() { } + } + public partial class SpeechRecognizedEventArgs : System.Speech.Recognition.RecognitionEventArgs + { + internal SpeechRecognizedEventArgs() { } + } + public partial class SpeechRecognizer : System.IDisposable + { + public SpeechRecognizer() { } + public System.Speech.AudioFormat.SpeechAudioFormatInfo AudioFormat { get { throw null; } } + public int AudioLevel { get { throw null; } } + public System.TimeSpan AudioPosition { get { throw null; } } + public System.Speech.Recognition.AudioState AudioState { get { throw null; } } + public bool Enabled { get { throw null; } set { } } + public System.Collections.ObjectModel.ReadOnlyCollection Grammars { get { throw null; } } + public int MaxAlternates { get { throw null; } set { } } + public bool PauseRecognizerOnRecognition { get { throw null; } set { } } + public System.TimeSpan RecognizerAudioPosition { get { throw null; } } + public System.Speech.Recognition.RecognizerInfo RecognizerInfo { get { throw null; } } + public System.Speech.Recognition.RecognizerState State { get { throw null; } } + public event System.EventHandler AudioLevelUpdated { add { } remove { } } + public event System.EventHandler AudioSignalProblemOccurred { add { } remove { } } + public event System.EventHandler AudioStateChanged { add { } remove { } } + public event System.EventHandler EmulateRecognizeCompleted { add { } remove { } } + public event System.EventHandler LoadGrammarCompleted { add { } remove { } } + public event System.EventHandler RecognizerUpdateReached { add { } remove { } } + public event System.EventHandler SpeechDetected { add { } remove { } } + public event System.EventHandler SpeechHypothesized { add { } remove { } } + public event System.EventHandler SpeechRecognitionRejected { add { } remove { } } + public event System.EventHandler SpeechRecognized { add { } remove { } } + public event System.EventHandler StateChanged { add { } remove { } } + public void Dispose() { } + protected virtual void Dispose(bool disposing) { } + public System.Speech.Recognition.RecognitionResult EmulateRecognize(System.Speech.Recognition.RecognizedWordUnit[] wordUnits, System.Globalization.CompareOptions compareOptions) { throw null; } + public System.Speech.Recognition.RecognitionResult EmulateRecognize(string inputText) { throw null; } + public System.Speech.Recognition.RecognitionResult EmulateRecognize(string inputText, System.Globalization.CompareOptions compareOptions) { throw null; } + public void EmulateRecognizeAsync(System.Speech.Recognition.RecognizedWordUnit[] wordUnits, System.Globalization.CompareOptions compareOptions) { } + public void EmulateRecognizeAsync(string inputText) { } + public void EmulateRecognizeAsync(string inputText, System.Globalization.CompareOptions compareOptions) { } + public void LoadGrammar(System.Speech.Recognition.Grammar grammar) { } + public void LoadGrammarAsync(System.Speech.Recognition.Grammar grammar) { } + public void RequestRecognizerUpdate() { } + public void RequestRecognizerUpdate(object userToken) { } + public void RequestRecognizerUpdate(object userToken, System.TimeSpan audioPositionAheadToRaiseUpdate) { } + public void UnloadAllGrammars() { } + public void UnloadGrammar(System.Speech.Recognition.Grammar grammar) { } + } + public partial class SpeechUI + { + internal SpeechUI() { } + public static bool SendTextFeedback(System.Speech.Recognition.RecognitionResult result, string feedback, bool isSuccessfulAction) { throw null; } + } + public partial class StateChangedEventArgs : System.EventArgs + { + internal StateChangedEventArgs() { } + public System.Speech.Recognition.RecognizerState RecognizerState { get { throw null; } } + } + public enum SubsetMatchingMode + { + Subsequence = 0, + OrderedSubset = 1, + SubsequenceContentRequired = 2, + OrderedSubsetContentRequired = 3, + } +} +namespace System.Speech.Recognition.SrgsGrammar +{ + public partial class SrgsDocument + { + public SrgsDocument() { } + public SrgsDocument(System.Speech.Recognition.GrammarBuilder builder) { } + public SrgsDocument(System.Speech.Recognition.SrgsGrammar.SrgsRule grammarRootRule) { } + public SrgsDocument(string path) { } + public SrgsDocument(System.Xml.XmlReader srgsGrammar) { } + public System.Collections.ObjectModel.Collection AssemblyReferences { get { throw null; } } + public System.Collections.ObjectModel.Collection CodeBehind { get { throw null; } } + public System.Globalization.CultureInfo Culture { get { throw null; } set { } } + public bool Debug { get { throw null; } set { } } + public System.Collections.ObjectModel.Collection ImportNamespaces { get { throw null; } } + public string Language { get { throw null; } set { } } + public System.Speech.Recognition.SrgsGrammar.SrgsGrammarMode Mode { get { throw null; } set { } } + public string Namespace { get { throw null; } set { } } + public System.Speech.Recognition.SrgsGrammar.SrgsPhoneticAlphabet PhoneticAlphabet { get { throw null; } set { } } + public System.Speech.Recognition.SrgsGrammar.SrgsRule Root { get { throw null; } set { } } + public System.Speech.Recognition.SrgsGrammar.SrgsRulesCollection Rules { get { throw null; } } + public string Script { get { throw null; } set { } } + public System.Uri XmlBase { get { throw null; } set { } } + public void WriteSrgs(System.Xml.XmlWriter srgsGrammar) { } + } + public abstract partial class SrgsElement : System.MarshalByRefObject + { + protected SrgsElement() { } + internal abstract string DebuggerDisplayString(); + internal abstract void WriteSrgs(System.Xml.XmlWriter writer); + } + public static partial class SrgsGrammarCompiler + { + public static void Compile(System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsGrammar, System.IO.Stream outputStream) { } + public static void Compile(string inputPath, System.IO.Stream outputStream) { } + public static void Compile(System.Xml.XmlReader reader, System.IO.Stream outputStream) { } + public static void CompileClassLibrary(System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsGrammar, string outputPath, string[] referencedAssemblies, string keyFile) { } + public static void CompileClassLibrary(string[] inputPaths, string outputPath, string[] referencedAssemblies, string keyFile) { } + public static void CompileClassLibrary(System.Xml.XmlReader reader, string outputPath, string[] referencedAssemblies, string keyFile) { } + } + public enum SrgsGrammarMode + { + Voice = 0, + Dtmf = 1, + } + public partial class SrgsItem : System.Speech.Recognition.SrgsGrammar.SrgsElement + { + public SrgsItem() { } + public SrgsItem(int repeatCount) { } + public SrgsItem(int min, int max) { } + public SrgsItem(int min, int max, params System.Speech.Recognition.SrgsGrammar.SrgsElement[] elements) { } + public SrgsItem(int min, int max, string text) { } + public SrgsItem(params System.Speech.Recognition.SrgsGrammar.SrgsElement[] elements) { } + public SrgsItem(string text) { } + public System.Collections.ObjectModel.Collection Elements { get { throw null; } } + public int MaxRepeat { get { throw null; } } + public int MinRepeat { get { throw null; } } + public float RepeatProbability { get { throw null; } set { } } + public float Weight { get { throw null; } set { } } + public void Add(System.Speech.Recognition.SrgsGrammar.SrgsElement element) { } + public void SetRepeat(int count) { } + public void SetRepeat(int minRepeat, int maxRepeat) { } + internal override string DebuggerDisplayString() { throw null; } + internal override void WriteSrgs(System.Xml.XmlWriter writer) { throw null; } + } + public partial class SrgsNameValueTag : System.Speech.Recognition.SrgsGrammar.SrgsElement + { + public SrgsNameValueTag() { } + public SrgsNameValueTag(object value) { } + public SrgsNameValueTag(string name, object value) { } + public string Name { get { throw null; } set { } } + public object Value { get { throw null; } set { } } + internal override string DebuggerDisplayString() { throw null; } + internal override void WriteSrgs(System.Xml.XmlWriter writer) { throw null; } + } + public partial class SrgsOneOf : System.Speech.Recognition.SrgsGrammar.SrgsElement + { + public SrgsOneOf() { } + public SrgsOneOf(params System.Speech.Recognition.SrgsGrammar.SrgsItem[] items) { } + public SrgsOneOf(params string[] items) { } + public System.Collections.ObjectModel.Collection Items { get { throw null; } } + public void Add(System.Speech.Recognition.SrgsGrammar.SrgsItem item) { } + internal override string DebuggerDisplayString() { throw null; } + internal override void WriteSrgs(System.Xml.XmlWriter writer) { throw null; } + } + public enum SrgsPhoneticAlphabet + { + Sapi = 0, + Ipa = 1, + Ups = 2, + } + public partial class SrgsRule + { + public SrgsRule(string id) { } + public SrgsRule(string id, params System.Speech.Recognition.SrgsGrammar.SrgsElement[] elements) { } + public string BaseClass { get { throw null; } set { } } + public System.Collections.ObjectModel.Collection Elements { get { throw null; } } + public string Id { get { throw null; } set { } } + public string OnError { get { throw null; } set { } } + public string OnInit { get { throw null; } set { } } + public string OnParse { get { throw null; } set { } } + public string OnRecognition { get { throw null; } set { } } + public System.Speech.Recognition.SrgsGrammar.SrgsRuleScope Scope { get { throw null; } set { } } + public string Script { get { throw null; } set { } } + public void Add(System.Speech.Recognition.SrgsGrammar.SrgsElement element) { } + } + [System.ComponentModel.ImmutableObjectAttribute(true)] + public partial class SrgsRuleRef : System.Speech.Recognition.SrgsGrammar.SrgsElement + { + public static readonly System.Speech.Recognition.SrgsGrammar.SrgsRuleRef Dictation; + public static readonly System.Speech.Recognition.SrgsGrammar.SrgsRuleRef Garbage; + public static readonly System.Speech.Recognition.SrgsGrammar.SrgsRuleRef MnemonicSpelling; + public static readonly System.Speech.Recognition.SrgsGrammar.SrgsRuleRef Null; + public static readonly System.Speech.Recognition.SrgsGrammar.SrgsRuleRef Void; + public SrgsRuleRef(System.Speech.Recognition.SrgsGrammar.SrgsRule rule) { } + public SrgsRuleRef(System.Speech.Recognition.SrgsGrammar.SrgsRule rule, string semanticKey) { } + public SrgsRuleRef(System.Speech.Recognition.SrgsGrammar.SrgsRule rule, string semanticKey, string parameters) { } + public SrgsRuleRef(System.Uri uri) { } + public SrgsRuleRef(System.Uri uri, string rule) { } + public SrgsRuleRef(System.Uri uri, string rule, string semanticKey) { } + public SrgsRuleRef(System.Uri uri, string rule, string semanticKey, string parameters) { } + public string Params { get { throw null; } } + public string SemanticKey { get { throw null; } } + public System.Uri Uri { get { throw null; } } + internal override string DebuggerDisplayString() { throw null; } + internal override void WriteSrgs(System.Xml.XmlWriter writer) { throw null; } + } + public sealed partial class SrgsRulesCollection : System.Collections.ObjectModel.KeyedCollection + { + public SrgsRulesCollection() { } + public void Add(params System.Speech.Recognition.SrgsGrammar.SrgsRule[] rules) { } + protected override string GetKeyForItem(System.Speech.Recognition.SrgsGrammar.SrgsRule rule) { throw null; } + } + public enum SrgsRuleScope + { + Public = 0, + Private = 1, + } + public partial class SrgsSemanticInterpretationTag : System.Speech.Recognition.SrgsGrammar.SrgsElement + { + public SrgsSemanticInterpretationTag() { } + public SrgsSemanticInterpretationTag(string script) { } + public string Script { get { throw null; } set { } } + internal override string DebuggerDisplayString() { throw null; } + internal override void WriteSrgs(System.Xml.XmlWriter writer) { throw null; } + } + public partial class SrgsSubset : System.Speech.Recognition.SrgsGrammar.SrgsElement + { + public SrgsSubset(string text) { } + public SrgsSubset(string text, System.Speech.Recognition.SubsetMatchingMode matchingMode) { } + public System.Speech.Recognition.SubsetMatchingMode MatchingMode { get { throw null; } set { } } + public string Text { get { throw null; } set { } } + internal override string DebuggerDisplayString() { throw null; } + internal override void WriteSrgs(System.Xml.XmlWriter writer) { throw null; } + } + public partial class SrgsText : System.Speech.Recognition.SrgsGrammar.SrgsElement + { + public SrgsText() { } + public SrgsText(string text) { } + public string Text { get { throw null; } set { } } + internal override string DebuggerDisplayString() { throw null; } + internal override void WriteSrgs(System.Xml.XmlWriter writer) { throw null; } + } + public partial class SrgsToken : System.Speech.Recognition.SrgsGrammar.SrgsElement + { + public SrgsToken(string text) { } + public string Display { get { throw null; } set { } } + public string Pronunciation { get { throw null; } set { } } + public string Text { get { throw null; } set { } } + internal override string DebuggerDisplayString() { throw null; } + internal override void WriteSrgs(System.Xml.XmlWriter writer) { throw null; } + } +} +namespace System.Speech.Synthesis +{ + public partial class BookmarkReachedEventArgs : System.Speech.Synthesis.PromptEventArgs + { + internal BookmarkReachedEventArgs() { } + public System.TimeSpan AudioPosition { get { throw null; } } + public string Bookmark { get { throw null; } } + } + public partial class FilePrompt : System.Speech.Synthesis.Prompt + { + public FilePrompt(string path, System.Speech.Synthesis.SynthesisMediaType media) : base (default(string)) { } + public FilePrompt(System.Uri promptFile, System.Speech.Synthesis.SynthesisMediaType media) : base (default(string)) { } + } + public partial class InstalledVoice + { + internal InstalledVoice() { } + public bool Enabled { get { throw null; } set { } } + public System.Speech.Synthesis.VoiceInfo VoiceInfo { get { throw null; } } + public override bool Equals(object obj) { throw null; } + public override int GetHashCode() { throw null; } + } + public partial class PhonemeReachedEventArgs : System.Speech.Synthesis.PromptEventArgs + { + internal PhonemeReachedEventArgs() { } + public System.TimeSpan AudioPosition { get { throw null; } } + public System.TimeSpan Duration { get { throw null; } } + public System.Speech.Synthesis.SynthesizerEmphasis Emphasis { get { throw null; } } + public string NextPhoneme { get { throw null; } } + public string Phoneme { get { throw null; } } + } + public partial class Prompt + { + public Prompt(System.Speech.Synthesis.PromptBuilder promptBuilder) { } + public Prompt(string textToSpeak) { } + public Prompt(string textToSpeak, System.Speech.Synthesis.SynthesisTextFormat media) { } + public bool IsCompleted { get { throw null; } } + } + public enum PromptBreak + { + None = 0, + ExtraSmall = 1, + Small = 2, + Medium = 3, + Large = 4, + ExtraLarge = 5, + } + public partial class PromptBuilder + { + public PromptBuilder() { } + public PromptBuilder(System.Globalization.CultureInfo culture) { } + public System.Globalization.CultureInfo Culture { get { throw null; } set { } } + public bool IsEmpty { get { throw null; } } + public void AppendAudio(string path) { } + public void AppendAudio(System.Uri audioFile) { } + public void AppendAudio(System.Uri audioFile, string alternateText) { } + public void AppendBookmark(string bookmarkName) { } + public void AppendBreak() { } + public void AppendBreak(System.Speech.Synthesis.PromptBreak strength) { } + public void AppendBreak(System.TimeSpan duration) { } + public void AppendPromptBuilder(System.Speech.Synthesis.PromptBuilder promptBuilder) { } + public void AppendSsml(string path) { } + public void AppendSsml(System.Uri ssmlFile) { } + public void AppendSsml(System.Xml.XmlReader ssmlFile) { } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public void AppendSsmlMarkup(string ssmlMarkup) { } + public void AppendText(string textToSpeak) { } + public void AppendText(string textToSpeak, System.Speech.Synthesis.PromptEmphasis emphasis) { } + public void AppendText(string textToSpeak, System.Speech.Synthesis.PromptRate rate) { } + public void AppendText(string textToSpeak, System.Speech.Synthesis.PromptVolume volume) { } + public void AppendTextWithAlias(string textToSpeak, string substitute) { } + public void AppendTextWithHint(string textToSpeak, System.Speech.Synthesis.SayAs sayAs) { } + public void AppendTextWithHint(string textToSpeak, string sayAs) { } + public void AppendTextWithPronunciation(string textToSpeak, string pronunciation) { } + public void ClearContent() { } + public void EndParagraph() { } + public void EndSentence() { } + public void EndStyle() { } + public void EndVoice() { } + public void StartParagraph() { } + public void StartParagraph(System.Globalization.CultureInfo culture) { } + public void StartSentence() { } + public void StartSentence(System.Globalization.CultureInfo culture) { } + public void StartStyle(System.Speech.Synthesis.PromptStyle style) { } + public void StartVoice(System.Globalization.CultureInfo culture) { } + public void StartVoice(System.Speech.Synthesis.VoiceGender gender) { } + public void StartVoice(System.Speech.Synthesis.VoiceGender gender, System.Speech.Synthesis.VoiceAge age) { } + public void StartVoice(System.Speech.Synthesis.VoiceGender gender, System.Speech.Synthesis.VoiceAge age, int voiceAlternate) { } + public void StartVoice(System.Speech.Synthesis.VoiceInfo voice) { } + public void StartVoice(string name) { } + public string ToXml() { throw null; } + } + public enum PromptEmphasis + { + NotSet = 0, + Strong = 1, + Moderate = 2, + None = 3, + Reduced = 4, + } + public abstract partial class PromptEventArgs : System.ComponentModel.AsyncCompletedEventArgs + { + internal PromptEventArgs() : base (default(System.Exception), default(bool), default(object)) { } + public System.Speech.Synthesis.Prompt Prompt { get { throw null; } } + } + public enum PromptRate + { + NotSet = 0, + ExtraFast = 1, + Fast = 2, + Medium = 3, + Slow = 4, + ExtraSlow = 5, + } + public partial class PromptStyle + { + public PromptStyle() { } + public PromptStyle(System.Speech.Synthesis.PromptEmphasis emphasis) { } + public PromptStyle(System.Speech.Synthesis.PromptRate rate) { } + public PromptStyle(System.Speech.Synthesis.PromptVolume volume) { } + public System.Speech.Synthesis.PromptEmphasis Emphasis { get { throw null; } set { } } + public System.Speech.Synthesis.PromptRate Rate { get { throw null; } set { } } + public System.Speech.Synthesis.PromptVolume Volume { get { throw null; } set { } } + } + public enum PromptVolume + { + NotSet = 0, + Silent = 1, + ExtraSoft = 2, + Soft = 3, + Medium = 4, + Loud = 5, + ExtraLoud = 6, + Default = 7, + } + public enum SayAs + { + SpellOut = 0, + NumberOrdinal = 1, + NumberCardinal = 2, + Date = 3, + DayMonthYear = 4, + MonthDayYear = 5, + YearMonthDay = 6, + YearMonth = 7, + MonthYear = 8, + MonthDay = 9, + DayMonth = 10, + Year = 11, + Month = 12, + Day = 13, + Time = 14, + Time24 = 15, + Time12 = 16, + Telephone = 17, + Text = 18, + } + public partial class SpeakCompletedEventArgs : System.Speech.Synthesis.PromptEventArgs + { + internal SpeakCompletedEventArgs() { } + } + public partial class SpeakProgressEventArgs : System.Speech.Synthesis.PromptEventArgs + { + internal SpeakProgressEventArgs() { } + public System.TimeSpan AudioPosition { get { throw null; } } + public int CharacterCount { get { throw null; } } + public int CharacterPosition { get { throw null; } } + public string Text { get { throw null; } } + } + public partial class SpeakStartedEventArgs : System.Speech.Synthesis.PromptEventArgs + { + internal SpeakStartedEventArgs() { } + } + public sealed partial class SpeechSynthesizer : System.IDisposable + { + public SpeechSynthesizer() { } + public int Rate { get { throw null; } set { } } + public System.Speech.Synthesis.SynthesizerState State { get { throw null; } } + public System.Speech.Synthesis.VoiceInfo Voice { get { throw null; } } + public int Volume { get { throw null; } set { } } + public event System.EventHandler BookmarkReached { add { } remove { } } + public event System.EventHandler PhonemeReached { add { } remove { } } + public event System.EventHandler SpeakCompleted { add { } remove { } } + public event System.EventHandler SpeakProgress { add { } remove { } } + public event System.EventHandler SpeakStarted { add { } remove { } } + public event System.EventHandler StateChanged { add { } remove { } } + public event System.EventHandler VisemeReached { add { } remove { } } + public event System.EventHandler VoiceChange { add { } remove { } } + public void AddLexicon(System.Uri uri, string mediaType) { } + public void Dispose() { } + ~SpeechSynthesizer() { } + public System.Speech.Synthesis.Prompt GetCurrentlySpokenPrompt() { throw null; } + public System.Collections.ObjectModel.ReadOnlyCollection GetInstalledVoices() { throw null; } + public System.Collections.ObjectModel.ReadOnlyCollection GetInstalledVoices(System.Globalization.CultureInfo culture) { throw null; } + public void Pause() { } + public void RemoveLexicon(System.Uri uri) { } + public void Resume() { } + public void SelectVoice(string name) { } + public void SelectVoiceByHints(System.Speech.Synthesis.VoiceGender gender) { } + public void SelectVoiceByHints(System.Speech.Synthesis.VoiceGender gender, System.Speech.Synthesis.VoiceAge age) { } + public void SelectVoiceByHints(System.Speech.Synthesis.VoiceGender gender, System.Speech.Synthesis.VoiceAge age, int voiceAlternate) { } + public void SelectVoiceByHints(System.Speech.Synthesis.VoiceGender gender, System.Speech.Synthesis.VoiceAge age, int voiceAlternate, System.Globalization.CultureInfo culture) { } + public void SetOutputToAudioStream(System.IO.Stream audioDestination, System.Speech.AudioFormat.SpeechAudioFormatInfo formatInfo) { } + public void SetOutputToDefaultAudioDevice() { } + public void SetOutputToNull() { } + public void SetOutputToWaveFile(string path) { } + public void SetOutputToWaveFile(string path, System.Speech.AudioFormat.SpeechAudioFormatInfo formatInfo) { } + public void SetOutputToWaveStream(System.IO.Stream audioDestination) { } + public void Speak(System.Speech.Synthesis.Prompt prompt) { } + public void Speak(System.Speech.Synthesis.PromptBuilder promptBuilder) { } + public void Speak(string textToSpeak) { } + public void SpeakAsync(System.Speech.Synthesis.Prompt prompt) { } + public System.Speech.Synthesis.Prompt SpeakAsync(System.Speech.Synthesis.PromptBuilder promptBuilder) { throw null; } + public System.Speech.Synthesis.Prompt SpeakAsync(string textToSpeak) { throw null; } + public void SpeakAsyncCancel(System.Speech.Synthesis.Prompt prompt) { } + public void SpeakAsyncCancelAll() { } + public void SpeakSsml(string textToSpeak) { } + public System.Speech.Synthesis.Prompt SpeakSsmlAsync(string textToSpeak) { throw null; } + } + public partial class StateChangedEventArgs : System.EventArgs + { + internal StateChangedEventArgs() { } + public System.Speech.Synthesis.SynthesizerState PreviousState { get { throw null; } } + public System.Speech.Synthesis.SynthesizerState State { get { throw null; } } + } + public enum SynthesisMediaType + { + Text = 0, + Ssml = 1, + WaveAudio = 2, + } + public enum SynthesisTextFormat + { + Text = 0, + Ssml = 1, + } + [System.FlagsAttribute] + public enum SynthesizerEmphasis + { + Stressed = 1, + Emphasized = 2, + } + public enum SynthesizerState + { + Ready = 0, + Speaking = 1, + Paused = 2, + } + public partial class VisemeReachedEventArgs : System.Speech.Synthesis.PromptEventArgs + { + internal VisemeReachedEventArgs() { } + public System.TimeSpan AudioPosition { get { throw null; } } + public System.TimeSpan Duration { get { throw null; } } + public System.Speech.Synthesis.SynthesizerEmphasis Emphasis { get { throw null; } } + public int NextViseme { get { throw null; } } + public int Viseme { get { throw null; } } + } + public enum VoiceAge + { + NotSet = 0, + Child = 10, + Teen = 15, + Adult = 30, + Senior = 65, + } + public partial class VoiceChangeEventArgs : System.Speech.Synthesis.PromptEventArgs + { + internal VoiceChangeEventArgs() { } + public System.Speech.Synthesis.VoiceInfo Voice { get { throw null; } } + } + public enum VoiceGender + { + NotSet = 0, + Male = 1, + Female = 2, + Neutral = 3, + } + public partial class VoiceInfo + { + internal VoiceInfo() { } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public System.Collections.Generic.IDictionary AdditionalInfo { get { throw null; } } + public System.Speech.Synthesis.VoiceAge Age { get { throw null; } } + public System.Globalization.CultureInfo Culture { get { throw null; } } + public string Description { get { throw null; } } + public System.Speech.Synthesis.VoiceGender Gender { get { throw null; } } + public string Id { get { throw null; } } + public string Name { get { throw null; } } + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public System.Collections.ObjectModel.ReadOnlyCollection SupportedAudioFormats { get { throw null; } } + public override bool Equals(object obj) { throw null; } + public override int GetHashCode() { throw null; } + } +} +namespace System.Speech.Synthesis.TtsEngine +{ + [System.ComponentModel.ImmutableObjectAttribute(true)] + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public partial struct ContourPoint : System.IEquatable + { + private object _dummy; + private int _dummyPrimitive; + public ContourPoint(float start, float change, System.Speech.Synthesis.TtsEngine.ContourPointChangeType changeType) { throw null; } + public float Change { get { throw null; } } + public System.Speech.Synthesis.TtsEngine.ContourPointChangeType ChangeType { get { throw null; } } + public float Start { get { throw null; } } + public override bool Equals(object obj) { throw null; } + public bool Equals(System.Speech.Synthesis.TtsEngine.ContourPoint other) { throw null; } + public override int GetHashCode() { throw null; } + public static bool operator ==(System.Speech.Synthesis.TtsEngine.ContourPoint point1, System.Speech.Synthesis.TtsEngine.ContourPoint point2) { throw null; } + public static bool operator !=(System.Speech.Synthesis.TtsEngine.ContourPoint point1, System.Speech.Synthesis.TtsEngine.ContourPoint point2) { throw null; } + } + public enum ContourPointChangeType + { + Hz = 0, + Percentage = 1, + } + public enum EmphasisBreak + { + Default = -7, + ExtraStrong = -6, + Strong = -5, + Medium = -4, + Weak = -3, + ExtraWeak = -2, + None = -1, + } + public enum EmphasisWord + { + Default = 0, + Strong = 1, + Moderate = 2, + None = 3, + Reduced = 4, + } + public enum EventParameterType + { + Undefined = 0, + Token = 1, + Object = 2, + Pointer = 3, + String = 4, + } + [System.ComponentModel.ImmutableObjectAttribute(true)] + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public partial struct FragmentState : System.IEquatable + { + private object _dummy; + private int _dummyPrimitive; + public FragmentState(System.Speech.Synthesis.TtsEngine.TtsEngineAction action, int langId, int emphasis, int duration, System.Speech.Synthesis.TtsEngine.SayAs sayAs, System.Speech.Synthesis.TtsEngine.Prosody prosody, char[] phonemes) { throw null; } + public System.Speech.Synthesis.TtsEngine.TtsEngineAction Action { get { throw null; } } + public int Duration { get { throw null; } } + public int Emphasis { get { throw null; } } + public int LangId { get { throw null; } } + public char[] Phoneme { get { throw null; } } + public System.Speech.Synthesis.TtsEngine.Prosody Prosody { get { throw null; } } + public System.Speech.Synthesis.TtsEngine.SayAs SayAs { get { throw null; } } + public override bool Equals(object obj) { throw null; } + public bool Equals(System.Speech.Synthesis.TtsEngine.FragmentState other) { throw null; } + public override int GetHashCode() { throw null; } + public static bool operator ==(System.Speech.Synthesis.TtsEngine.FragmentState state1, System.Speech.Synthesis.TtsEngine.FragmentState state2) { throw null; } + public static bool operator !=(System.Speech.Synthesis.TtsEngine.FragmentState state1, System.Speech.Synthesis.TtsEngine.FragmentState state2) { throw null; } + } + public partial interface ITtsEngineSite + { + int Actions { get; } + int EventInterest { get; } + int Rate { get; } + int Volume { get; } + void AddEvents(System.Speech.Synthesis.TtsEngine.SpeechEventInfo[] events, int count); + void CompleteSkip(int skipped); + System.Speech.Synthesis.TtsEngine.SkipInfo GetSkipInfo(); + System.IO.Stream LoadResource(System.Uri uri, string mediaType); + int Write(System.IntPtr data, int count); + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public partial class Prosody + { + public Prosody() { } + public int Duration { get { throw null; } set { } } + public System.Speech.Synthesis.TtsEngine.ProsodyNumber Pitch { get { throw null; } set { } } + public System.Speech.Synthesis.TtsEngine.ProsodyNumber Range { get { throw null; } set { } } + public System.Speech.Synthesis.TtsEngine.ProsodyNumber Rate { get { throw null; } set { } } + public System.Speech.Synthesis.TtsEngine.ProsodyNumber Volume { get { throw null; } set { } } + public System.Speech.Synthesis.TtsEngine.ContourPoint[] GetContourPoints() { throw null; } + public void SetContourPoints(System.Speech.Synthesis.TtsEngine.ContourPoint[] points) { } + } + [System.ComponentModel.ImmutableObjectAttribute(true)] + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public partial struct ProsodyNumber : System.IEquatable + { + private object _dummy; + private int _dummyPrimitive; + public const int AbsoluteNumber = 2147483647; + public ProsodyNumber(int ssmlAttributeId) { throw null; } + public ProsodyNumber(float number) { throw null; } + public bool IsNumberPercent { get { throw null; } } + public float Number { get { throw null; } } + public int SsmlAttributeId { get { throw null; } } + public System.Speech.Synthesis.TtsEngine.ProsodyUnit Unit { get { throw null; } } + public override bool Equals(object obj) { throw null; } + public bool Equals(System.Speech.Synthesis.TtsEngine.ProsodyNumber other) { throw null; } + public override int GetHashCode() { throw null; } + public static bool operator ==(System.Speech.Synthesis.TtsEngine.ProsodyNumber prosodyNumber1, System.Speech.Synthesis.TtsEngine.ProsodyNumber prosodyNumber2) { throw null; } + public static bool operator !=(System.Speech.Synthesis.TtsEngine.ProsodyNumber prosodyNumber1, System.Speech.Synthesis.TtsEngine.ProsodyNumber prosodyNumber2) { throw null; } + } + public enum ProsodyPitch + { + Default = 0, + ExtraLow = 1, + Low = 2, + Medium = 3, + High = 4, + ExtraHigh = 5, + } + public enum ProsodyRange + { + Default = 0, + ExtraLow = 1, + Low = 2, + Medium = 3, + High = 4, + ExtraHigh = 5, + } + public enum ProsodyRate + { + Default = 0, + ExtraSlow = 1, + Slow = 2, + Medium = 3, + Fast = 4, + ExtraFast = 5, + } + public enum ProsodyUnit + { + Default = 0, + Hz = 1, + Semitone = 2, + } + public enum ProsodyVolume + { + ExtraLoud = -7, + Loud = -6, + Medium = -5, + Soft = -4, + ExtraSoft = -3, + Silent = -2, + Default = -1, + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public partial class SayAs + { + public SayAs() { } + public string Detail { get { throw null; } set { } } + public string Format { get { throw null; } set { } } + public string InterpretAs { get { throw null; } set { } } + } + public partial class SkipInfo + { + public SkipInfo() { } + public int Count { get { throw null; } set { } } + public int Type { get { throw null; } set { } } + } + public enum SpeakOutputFormat + { + WaveFormat = 0, + Text = 1, + } + [System.ComponentModel.ImmutableObjectAttribute(true)] + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public partial struct SpeechEventInfo : System.IEquatable + { + private object _dummy; + private int _dummyPrimitive; + public SpeechEventInfo(short eventId, short parameterType, int param1, System.IntPtr param2) { throw null; } + public short EventId { get { throw null; } } + public int Param1 { get { throw null; } } + public System.IntPtr Param2 { get { throw null; } } + public short ParameterType { get { throw null; } } + public override bool Equals(object obj) { throw null; } + public bool Equals(System.Speech.Synthesis.TtsEngine.SpeechEventInfo other) { throw null; } + public override int GetHashCode() { throw null; } + public static bool operator ==(System.Speech.Synthesis.TtsEngine.SpeechEventInfo event1, System.Speech.Synthesis.TtsEngine.SpeechEventInfo event2) { throw null; } + public static bool operator !=(System.Speech.Synthesis.TtsEngine.SpeechEventInfo event1, System.Speech.Synthesis.TtsEngine.SpeechEventInfo event2) { throw null; } + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public partial class TextFragment + { + public TextFragment() { } + public System.Speech.Synthesis.TtsEngine.FragmentState State { get { throw null; } set { } } + public int TextLength { get { throw null; } set { } } + public int TextOffset { get { throw null; } set { } } + public string TextToSpeak { get { throw null; } set { } } + } + public enum TtsEngineAction + { + Speak = 0, + Silence = 1, + Pronounce = 2, + Bookmark = 3, + SpellOut = 4, + StartSentence = 5, + StartParagraph = 6, + ParseUnknownTag = 7, + } + public abstract partial class TtsEngineSsml + { + protected TtsEngineSsml(string registryKey) { } + public abstract void AddLexicon(System.Uri uri, string mediaType, System.Speech.Synthesis.TtsEngine.ITtsEngineSite site); + public abstract System.IntPtr GetOutputFormat(System.Speech.Synthesis.TtsEngine.SpeakOutputFormat speakOutputFormat, System.IntPtr targetWaveFormat); + public abstract void RemoveLexicon(System.Uri uri, System.Speech.Synthesis.TtsEngine.ITtsEngineSite site); + public abstract void Speak(System.Speech.Synthesis.TtsEngine.TextFragment[] fragment, System.IntPtr waveHeader, System.Speech.Synthesis.TtsEngine.ITtsEngineSite site); + } + public enum TtsEventId + { + StartInputStream = 1, + EndInputStream = 2, + VoiceChange = 3, + Bookmark = 4, + WordBoundary = 5, + Phoneme = 6, + SentenceBoundary = 7, + Viseme = 8, + AudioLevel = 9, + } +} diff --git a/src/libraries/System.Speech/ref/System.Speech.csproj b/src/libraries/System.Speech/ref/System.Speech.csproj new file mode 100644 index 00000000000000..c8543d1332372b --- /dev/null +++ b/src/libraries/System.Speech/ref/System.Speech.csproj @@ -0,0 +1,8 @@ + + + netstandard2.0 + + + + + \ No newline at end of file diff --git a/src/libraries/System.Speech/src/AudioFormat/AudioFormatConverter.cs b/src/libraries/System.Speech/src/AudioFormat/AudioFormatConverter.cs new file mode 100644 index 00000000000000..9911734ec95135 --- /dev/null +++ b/src/libraries/System.Speech/src/AudioFormat/AudioFormatConverter.cs @@ -0,0 +1,300 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Globalization; +using System.Runtime.InteropServices; +using System.Speech.AudioFormat; + +namespace System.Speech.Internal +{ + // Helper class which wraps AudioFormat and handles WaveFormatEx variable sized structure + internal static class AudioFormatConverter + { + #region Internal Methods + + internal static SpeechAudioFormatInfo ToSpeechAudioFormatInfo(IntPtr waveFormatPtr) + { + WaveFormatEx waveFormatEx = (WaveFormatEx)Marshal.PtrToStructure(waveFormatPtr, typeof(WaveFormatEx)); + + byte[] extraData = new byte[waveFormatEx.cbSize]; + IntPtr extraDataPtr = new(waveFormatPtr.ToInt64() + Marshal.SizeOf(waveFormatEx)); + for (int i = 0; i < waveFormatEx.cbSize; i++) + { + extraData[i] = Marshal.ReadByte(extraDataPtr, i); + } + + return new SpeechAudioFormatInfo((EncodingFormat)waveFormatEx.wFormatTag, (int)waveFormatEx.nSamplesPerSec, (short)waveFormatEx.wBitsPerSample, (short)waveFormatEx.nChannels, (int)waveFormatEx.nAvgBytesPerSec, (short)waveFormatEx.nBlockAlign, extraData); + } + + internal static SpeechAudioFormatInfo ToSpeechAudioFormatInfo(string formatString) + { + // Is it normal format? + short streamFormat; + if (short.TryParse(formatString, NumberStyles.None, CultureInfo.InvariantCulture, out streamFormat)) + { + // Now convert enum value into real info + return ConvertFormat((StreamFormat)streamFormat); + } + return null; + } + + #endregion + + #region Private Methods + + /// + /// This method converts the specified stream format into a wave format + /// + private static SpeechAudioFormatInfo ConvertFormat(StreamFormat eFormat) + { + WaveFormatEx waveEx = new(); + byte[] extra = null; + + if (eFormat >= StreamFormat.PCM_8kHz8BitMono && eFormat <= StreamFormat.PCM_48kHz16BitStereo) + { + uint index = (uint)(eFormat - StreamFormat.PCM_8kHz8BitMono); + bool isStereo = (index & 0x1) != 0; + bool is16 = (index & 0x2) != 0; + uint dwKHZ = (index & 0x3c) >> 2; + uint[] adwKHZ = new uint[] { 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }; + waveEx.wFormatTag = (ushort)WaveFormatId.Pcm; + waveEx.nChannels = waveEx.nBlockAlign = (ushort)(isStereo ? 2 : 1); + waveEx.nSamplesPerSec = adwKHZ[dwKHZ]; + waveEx.wBitsPerSample = 8; + if (is16) + { + waveEx.wBitsPerSample *= 2; + waveEx.nBlockAlign *= 2; + } + waveEx.nAvgBytesPerSec = waveEx.nSamplesPerSec * waveEx.nBlockAlign; + } + else if (eFormat == StreamFormat.TrueSpeech_8kHz1BitMono) + { + waveEx.wFormatTag = (ushort)WaveFormatId.TrueSpeech; + waveEx.nChannels = 1; + waveEx.nSamplesPerSec = 8000; + waveEx.nAvgBytesPerSec = 1067; + waveEx.nBlockAlign = 32; + waveEx.wBitsPerSample = 1; + waveEx.cbSize = 32; + extra = new byte[32]; + extra[0] = 1; + extra[2] = 0xF0; + } + else if ((eFormat >= StreamFormat.CCITT_ALaw_8kHzMono) && (eFormat <= StreamFormat.CCITT_ALaw_44kHzStereo)) + { + uint index = (uint)(eFormat - StreamFormat.CCITT_ALaw_8kHzMono); + uint dwKHZ = index / 2; + uint[] adwKHZ = { 8000, 11025, 22050, 44100 }; + bool isStereo = (index & 0x1) != 0; + waveEx.wFormatTag = (ushort)WaveFormatId.Alaw; + waveEx.nChannels = waveEx.nBlockAlign = (ushort)(isStereo ? 2 : 1); + waveEx.nSamplesPerSec = adwKHZ[dwKHZ]; + waveEx.wBitsPerSample = 8; + waveEx.nAvgBytesPerSec = waveEx.nSamplesPerSec * waveEx.nBlockAlign; + } + else if ((eFormat >= StreamFormat.CCITT_uLaw_8kHzMono) && + (eFormat <= StreamFormat.CCITT_uLaw_44kHzStereo)) + { + uint index = (uint)(eFormat - StreamFormat.CCITT_uLaw_8kHzMono); + uint dwKHZ = index / 2; + uint[] adwKHZ = new uint[] { 8000, 11025, 22050, 44100 }; + bool isStereo = (index & 0x1) != 0; + waveEx.wFormatTag = (ushort)WaveFormatId.Mulaw; + waveEx.nChannels = waveEx.nBlockAlign = (ushort)(isStereo ? 2 : 1); + waveEx.nSamplesPerSec = adwKHZ[dwKHZ]; + waveEx.wBitsPerSample = 8; + waveEx.nAvgBytesPerSec = waveEx.nSamplesPerSec * waveEx.nBlockAlign; + } + else if ((eFormat >= StreamFormat.ADPCM_8kHzMono) && + (eFormat <= StreamFormat.ADPCM_44kHzStereo)) + { + //--- Some of these values seem odd. We used what the codec told us. + uint[] adwKHZ = new uint[] { 8000, 11025, 22050, 44100 }; + uint[] BytesPerSec = new uint[] { 4096, 8192, 5644, 11289, 11155, 22311, 22179, 44359 }; + uint[] BlockAlign = new uint[] { 256, 256, 512, 1024 }; + byte[] Extra811 = new byte[32] + { + 0xF4, 0x01, 0x07, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x02, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0xC0, 0x00, 0x40, 0x00, 0xF0, 0x00, 0x00, 0x00, + 0xCC, 0x01, 0x30, 0xFF, 0x88, 0x01, 0x18, 0xFF + }; + + byte[] Extra22 = new byte[32] + { + 0xF4, 0x03, 0x07, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x02, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0xC0, 0x00, 0x40, 0x00, 0xF0, 0x00, 0x00, 0x00, + 0xCC, 0x01, 0x30, 0xFF, 0x88, 0x01, 0x18, 0xFF + }; + + byte[] Extra44 = new byte[32] + { + 0xF4, 0x07, 0x07, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x02, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0xC0, 0x00, 0x40, 0x00, 0xF0, 0x00, 0x00, 0x00, + 0xCC, 0x01, 0x30, 0xFF, 0x88, 0x01, 0x18, 0xFF + }; + + byte[][] Extra = new byte[][] { Extra811, Extra811, Extra22, Extra44 }; + uint index = (uint)(eFormat - StreamFormat.ADPCM_8kHzMono); + uint dwKHZ = index / 2; + bool isStereo = (index & 0x1) != 0; + waveEx.wFormatTag = (ushort)WaveFormatId.AdPcm; + waveEx.nChannels = (ushort)(isStereo ? 2 : 1); + waveEx.nSamplesPerSec = adwKHZ[dwKHZ]; + waveEx.nAvgBytesPerSec = BytesPerSec[index]; + waveEx.nBlockAlign = (ushort)(BlockAlign[dwKHZ] * waveEx.nChannels); + waveEx.wBitsPerSample = 4; + waveEx.cbSize = 32; + extra = (byte[])Extra[dwKHZ].Clone(); + } + else if ((eFormat >= StreamFormat.GSM610_8kHzMono) && + (eFormat <= StreamFormat.GSM610_44kHzMono)) + { + //--- Some of these values seem odd. We used what the codec told us. + uint[] adwKHZ = new uint[] { 8000, 11025, 22050, 44100 }; + uint[] BytesPerSec = new uint[] { 1625, 2239, 4478, 8957 }; + uint index = (uint)(eFormat - StreamFormat.GSM610_8kHzMono); + waveEx.wFormatTag = (ushort)WaveFormatId.Gsm610; + waveEx.nChannels = 1; + waveEx.nSamplesPerSec = adwKHZ[index]; + waveEx.nAvgBytesPerSec = BytesPerSec[index]; + waveEx.nBlockAlign = 65; + waveEx.wBitsPerSample = 0; + waveEx.cbSize = 2; + extra = new byte[2]; + extra[0] = 0x40; + extra[1] = 0x01; + } + else + { + waveEx = null; + switch (eFormat) + { + case StreamFormat.NoAssignedFormat: + break; + + case StreamFormat.Text: + break; + + default: + throw new FormatException(); + } + } + + return waveEx != null ? new SpeechAudioFormatInfo((EncodingFormat)waveEx.wFormatTag, (int)waveEx.nSamplesPerSec, waveEx.wBitsPerSample, waveEx.nChannels, (int)waveEx.nAvgBytesPerSec, waveEx.nBlockAlign, extra) : null; + } + + private enum StreamFormat + { + Default = -1, + NoAssignedFormat = 0, // Similar to GUID_NULL + Text, + NonStandardFormat, // Non-SAPI 5.1 standard format with no WAVEFORMATEX description + ExtendedAudioFormat, // Non-SAPI 5.1 standard format but has WAVEFORMATEX description + // Standard PCM wave formats + PCM_8kHz8BitMono, + PCM_8kHz8BitStereo, + PCM_8kHz16BitMono, + PCM_8kHz16BitStereo, + PCM_11kHz8BitMono, + PCM_11kHz8BitStereo, + PCM_11kHz16BitMono, + PCM_11kHz16BitStereo, + PCM_12kHz8BitMono, + PCM_12kHz8BitStereo, + PCM_12kHz16BitMono, + PCM_12kHz16BitStereo, + PCM_16kHz8BitMono, + PCM_16kHz8BitStereo, + PCM_16kHz16BitMono, + PCM_16kHz16BitStereo, + PCM_22kHz8BitMono, + PCM_22kHz8BitStereo, + PCM_22kHz16BitMono, + PCM_22kHz16BitStereo, + PCM_24kHz8BitMono, + PCM_24kHz8BitStereo, + PCM_24kHz16BitMono, + PCM_24kHz16BitStereo, + PCM_32kHz8BitMono, + PCM_32kHz8BitStereo, + PCM_32kHz16BitMono, + PCM_32kHz16BitStereo, + PCM_44kHz8BitMono, + PCM_44kHz8BitStereo, + PCM_44kHz16BitMono, + PCM_44kHz16BitStereo, + PCM_48kHz8BitMono, + PCM_48kHz8BitStereo, + PCM_48kHz16BitMono, + PCM_48kHz16BitStereo, + // TrueSpeech format + + TrueSpeech_8kHz1BitMono, + // A-Law formats + CCITT_ALaw_8kHzMono, + CCITT_ALaw_8kHzStereo, + CCITT_ALaw_11kHzMono, + CCITT_ALaw_11kHzStereo, + CCITT_ALaw_22kHzMono, + CCITT_ALaw_22kHzStereo, + CCITT_ALaw_44kHzMono, + CCITT_ALaw_44kHzStereo, + // u-Law formats + CCITT_uLaw_8kHzMono, + CCITT_uLaw_8kHzStereo, + CCITT_uLaw_11kHzMono, + CCITT_uLaw_11kHzStereo, + CCITT_uLaw_22kHzMono, + CCITT_uLaw_22kHzStereo, + CCITT_uLaw_44kHzMono, + CCITT_uLaw_44kHzStereo, + // ADPCM formats + ADPCM_8kHzMono, + ADPCM_8kHzStereo, + ADPCM_11kHzMono, + ADPCM_11kHzStereo, + ADPCM_22kHzMono, + ADPCM_22kHzStereo, + ADPCM_44kHzMono, + ADPCM_44kHzStereo, + // GSM 6.10 formats + GSM610_8kHzMono, + GSM610_11kHzMono, + GSM610_22kHzMono, + GSM610_44kHzMono, + NUM_FORMATS + } + + #endregion + + #region Private Type + + private enum WaveFormatId + { + Pcm = 1, + AdPcm = 0x0002, + TrueSpeech = 0x0022, + Alaw = 0x0006, + Mulaw = 0x0007, + Gsm610 = 0x0031 + } + + [StructLayout(LayoutKind.Sequential)] + private class WaveFormatEx + { + public ushort wFormatTag; + public ushort nChannels; + public uint nSamplesPerSec; + public uint nAvgBytesPerSec; + public ushort nBlockAlign; + public ushort wBitsPerSample; + public ushort cbSize; + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/AudioFormat/EncodingFormat.cs b/src/libraries/System.Speech/src/AudioFormat/EncodingFormat.cs new file mode 100644 index 00000000000000..210ce1d313ee01 --- /dev/null +++ b/src/libraries/System.Speech/src/AudioFormat/EncodingFormat.cs @@ -0,0 +1,13 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.AudioFormat +{ + // These enumeration values are the same values used in the WAVEFORMATEX structure used in wave files. + public enum EncodingFormat + { + Pcm = 0x0001, + ALaw = 0x0006, + ULaw = 0x0007 + } +} diff --git a/src/libraries/System.Speech/src/AudioFormat/SpeechAudioFormatInfo.cs b/src/libraries/System.Speech/src/AudioFormat/SpeechAudioFormatInfo.cs new file mode 100644 index 00000000000000..d107b9bf340e71 --- /dev/null +++ b/src/libraries/System.Speech/src/AudioFormat/SpeechAudioFormatInfo.cs @@ -0,0 +1,192 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.ComponentModel; +using System.Speech.Internal.Synthesis; + +namespace System.Speech.AudioFormat +{ + [Serializable] + public class SpeechAudioFormatInfo + { + #region Constructors + + private SpeechAudioFormatInfo(EncodingFormat encodingFormat, int samplesPerSecond, short bitsPerSample, short channelCount, byte[] formatSpecificData) + { + if (encodingFormat == 0) + { + throw new ArgumentException(SR.Get(SRID.CannotUseCustomFormat), nameof(encodingFormat)); + } + if (samplesPerSecond <= 0) + { + throw new ArgumentOutOfRangeException(nameof(samplesPerSecond), SR.Get(SRID.MustBeGreaterThanZero)); + } + if (bitsPerSample <= 0) + { + throw new ArgumentOutOfRangeException(nameof(bitsPerSample), SR.Get(SRID.MustBeGreaterThanZero)); + } + if (channelCount <= 0) + { + throw new ArgumentOutOfRangeException(nameof(channelCount), SR.Get(SRID.MustBeGreaterThanZero)); + } + + _encodingFormat = encodingFormat; + _samplesPerSecond = samplesPerSecond; + _bitsPerSample = bitsPerSample; + _channelCount = channelCount; + if (formatSpecificData == null) + { + _formatSpecificData = Array.Empty(); + } + else + { + _formatSpecificData = (byte[])formatSpecificData.Clone(); + } + + switch (encodingFormat) + { + case EncodingFormat.ALaw: + case EncodingFormat.ULaw: + if (bitsPerSample != 8) + { + throw new ArgumentOutOfRangeException(nameof(bitsPerSample)); + } + if (formatSpecificData != null && formatSpecificData.Length != 0) + { + throw new ArgumentOutOfRangeException(nameof(formatSpecificData)); + } + break; + } + } + [EditorBrowsable(EditorBrowsableState.Advanced)] + public SpeechAudioFormatInfo(EncodingFormat encodingFormat, int samplesPerSecond, int bitsPerSample, int channelCount, int averageBytesPerSecond, int blockAlign, byte[] formatSpecificData) + : this(encodingFormat, samplesPerSecond, (short)bitsPerSample, (short)channelCount, formatSpecificData) + { + // Don't explicitly check these are sensible values - allow flexibility here as some formats may do unexpected things here. + if (averageBytesPerSecond <= 0) + { + throw new ArgumentOutOfRangeException(nameof(averageBytesPerSecond), SR.Get(SRID.MustBeGreaterThanZero)); + } + if (blockAlign <= 0) + { + throw new ArgumentOutOfRangeException(nameof(blockAlign), SR.Get(SRID.MustBeGreaterThanZero)); + } + _averageBytesPerSecond = averageBytesPerSecond; + _blockAlign = (short)blockAlign; + } + public SpeechAudioFormatInfo(int samplesPerSecond, AudioBitsPerSample bitsPerSample, AudioChannel channel) + : this(EncodingFormat.Pcm, samplesPerSecond, (short)bitsPerSample, (short)channel, null) + { + // Don't explicitly check these are sensible values - allow flexibility here as some formats may do unexpected things here. + _blockAlign = (short)(_channelCount * (_bitsPerSample / 8)); + _averageBytesPerSecond = _samplesPerSecond * _blockAlign; + } + + #endregion + + #region Public Properties + [EditorBrowsable(EditorBrowsableState.Advanced)] + public int AverageBytesPerSecond { get { return _averageBytesPerSecond; } } + [EditorBrowsable(EditorBrowsableState.Advanced)] + public int BitsPerSample { get { return _bitsPerSample; } } + [EditorBrowsable(EditorBrowsableState.Advanced)] + public int BlockAlign { get { return _blockAlign; } } + public EncodingFormat EncodingFormat { get { return _encodingFormat; } } + public int ChannelCount { get { return _channelCount; } } + public int SamplesPerSecond { get { return _samplesPerSecond; } } + + #endregion + + #region Public Methods + public byte[] FormatSpecificData() { return (byte[])_formatSpecificData.Clone(); } + public override bool Equals(object obj) + { + SpeechAudioFormatInfo refObj = obj as SpeechAudioFormatInfo; + if (refObj == null) + { + return false; + } + + if (!(_averageBytesPerSecond.Equals(refObj._averageBytesPerSecond) && + _bitsPerSample.Equals(refObj._bitsPerSample) && + _blockAlign.Equals(refObj._blockAlign) && + _encodingFormat.Equals(refObj._encodingFormat) && + _channelCount.Equals(refObj._channelCount) && + _samplesPerSecond.Equals(refObj._samplesPerSecond))) + { + return false; + } + if (_formatSpecificData.Length != refObj._formatSpecificData.Length) + { + return false; + } + for (int i = 0; i < _formatSpecificData.Length; i++) + { + if (_formatSpecificData[i] != refObj._formatSpecificData[i]) + { + return false; + } + } + return true; + } + public override int GetHashCode() + { + return _averageBytesPerSecond.GetHashCode(); + } + + #endregion + + #region Internal Methods + internal byte[] WaveFormat + { + get + { + WAVEFORMATEX wfx = new(); + wfx.wFormatTag = (short)EncodingFormat; + wfx.nChannels = (short)ChannelCount; + wfx.nSamplesPerSec = SamplesPerSecond; + wfx.nAvgBytesPerSec = AverageBytesPerSecond; + wfx.nBlockAlign = (short)BlockAlign; + wfx.wBitsPerSample = (short)BitsPerSample; + wfx.cbSize = (short)FormatSpecificData().Length; + + byte[] abWfx = wfx.ToBytes(); + if (wfx.cbSize > 0) + { + byte[] wfxTemp = new byte[abWfx.Length + wfx.cbSize]; + Array.Copy(abWfx, wfxTemp, abWfx.Length); + Array.Copy(FormatSpecificData(), 0, wfxTemp, abWfx.Length, wfx.cbSize); + abWfx = wfxTemp; + } + return abWfx; + } + } + #endregion + + #region Private Fields + + private int _averageBytesPerSecond; + private short _bitsPerSample; + private short _blockAlign; + private EncodingFormat _encodingFormat; + private short _channelCount; + private int _samplesPerSecond; + private byte[] _formatSpecificData; + + #endregion + } + + #region Public Properties + public enum AudioChannel + { + Mono = 1, + Stereo = 2 + } + public enum AudioBitsPerSample + { + Eight = 8, + Sixteen = 16 + } + + #endregion +} diff --git a/src/libraries/System.Speech/src/Internal/AlphabetConverter.cs b/src/libraries/System.Speech/src/Internal/AlphabetConverter.cs new file mode 100644 index 00000000000000..ee822252c40e2e --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/AlphabetConverter.cs @@ -0,0 +1,342 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections; +using System.Diagnostics; +using System.IO; +using System.Reflection; +using System.Text; +using Microsoft.Win32; + +namespace System.Speech.Internal +{ + internal enum AlphabetType + { + Sapi, Ipa, Ups + } + + /// + /// This class allows conversion between SAPI and IPA phonemes. + /// Objects of this class are not thread safe for modifying state. + /// + internal class AlphabetConverter + { + #region Constructors + + internal AlphabetConverter(int langId) + { + _currentLangId = -1; + SetLanguageId(langId); + } + + #endregion + + #region internal Methods + + /// + /// Convert from SAPI phonemes to IPA phonemes. + /// + /// + /// Return an array of unicode characters each of which represents an IPA phoneme if the SAPI phonemes are valid. + /// Otherwise, return null. + /// + internal char[] SapiToIpa(char[] phonemes) + { + return Convert(phonemes, true); + } + + /// + /// Convert from IPA phonemes to SAPI phonemes. + /// + /// Return an array of unicode characters each of which represents a SAPI phoneme if the IPA phonemes are valid. + /// Otherwise, return null. + internal char[] IpaToSapi(char[] phonemes) + { + return Convert(phonemes, false); + } + + /// + /// Determines whether a given string of SAPI ids can be potentially converted using a single + /// conversion unit, that is, a prefix of some convertible string. + /// + /// The string of SAPI or UPS phoneme ids + /// To indicate whether parameter phonemes is in SAPI or UPS phonemes + internal bool IsPrefix(string phonemes, bool isSapi) + { + if (_phoneMap == null) + return false; + + return _phoneMap.IsPrefix(phonemes, isSapi); + } + + internal bool IsConvertibleUnit(string phonemes, bool isSapi) + { + if (_phoneMap == null) + return false; + + return _phoneMap.ConvertPhoneme(phonemes, isSapi) != null; + } + + internal int SetLanguageId(int langId) + { + if (langId < 0) + { + throw new ArgumentException(SR.Get(SRID.MustBeGreaterThanZero), nameof(langId)); + } + if (langId == _currentLangId) + { + return _currentLangId; + } + + int i; + int oldLangId = _currentLangId; + for (i = 0; i < s_langIds.Length; i++) + { + if (s_langIds[i] == langId) + { + break; + } + } + if (i == s_langIds.Length) + { + //Debug.Fail($"No phoneme map for LCID {langId}, maps exist for {string.Join(',', s_langIds)}\n"); + _currentLangId = langId; + _phoneMap = null; + } + else + { + lock (s_staticLock) + { + if (s_phoneMaps[i] == null) + { + s_phoneMaps[i] = CreateMap(s_resourceNames[i]); + } + _phoneMap = s_phoneMaps[i]; + _currentLangId = langId; + } + } + return oldLangId; + } + #endregion + + #region Private Methods + + private char[] Convert(char[] phonemes, bool isSapi) + { + // If the phoneset of the selected language is UPS anyway, that is phone mapping is unnecessary, + // we return the same phoneme string. But we still need to make a copy. + if (_phoneMap == null || phonemes.Length == 0) + { + return (char[])phonemes.Clone(); + } + + // + // We break the phoneme string into substrings of phonemes, each of which is directly convertible from + // the mapping table. If there is ambiguity, we always choose the largest substring as we go from left + // to right. + // + // In order to do this, we check whether a given substring is a potential prefix of a convertible substring. + // + + StringBuilder result = new(); + int startIndex; // Starting index of a substring being considered + int endIndex; // The ending index of the last convertible substring + string token; // Holds a substring of phonemes that are directly convertible from the mapping table. + string lastConvert; // Holds last convertible substring, starting from startIndex. + + string tempConvert; + string source = new(phonemes); + int i; + + lastConvert = null; + startIndex = i = 0; + endIndex = -1; + + while (i < source.Length) + { + token = source.Substring(startIndex, i - startIndex + 1); + if (_phoneMap.IsPrefix(token, isSapi)) + { + tempConvert = _phoneMap.ConvertPhoneme(token, isSapi); + // Note we may have an empty string for conversion result here + if (tempConvert != null) + { + lastConvert = tempConvert; + endIndex = i; + } + } + else + { + // If we have not had a convertible substring, the input is not convertible. + if (lastConvert == null) + { + break; + } + else + { + // Use the converted substring, and start over from the last convertible position. + result.Append(lastConvert); + i = endIndex; + startIndex = endIndex + 1; + lastConvert = null; + } + } + i++; + } + + if (lastConvert != null && endIndex == phonemes.Length - 1) + { + result.Append(lastConvert); + } + else + { + return null; + } + + return result.ToString().ToCharArray(); + } + + private PhoneMapData CreateMap(string resourceName) + { + Assembly assembly = Assembly.GetAssembly(GetType()); + Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) + { + throw new FileLoadException(SR.Get(SRID.CannotLoadResourceFromManifest, resourceName, assembly.FullName)); + } + return new PhoneMapData(new BufferedStream(stream)); + } + + #endregion + + #region Private Fields + + private int _currentLangId; + private PhoneMapData _phoneMap; + + private static int[] s_langIds = new int[] { 0x804, 0x404, 0x407, 0x409, 0x40A, 0x40C, 0x411 }; + private static string[] s_resourceNames = + new string[] { "upstable_chs.upsmap", "upstable_cht.upsmap", "upstable_deu.upsmap", "upstable_enu.upsmap", + "upstable_esp.upsmap", "upstable_fra.upsmap", "upstable_jpn.upsmap", +}; + private static PhoneMapData[] s_phoneMaps = new PhoneMapData[7]; + private static object s_staticLock = new(); + + #endregion + + #region Private Type + + internal class PhoneMapData + { + private class ConversionUnit + { + public string sapi; + public string ups; + public bool isDefault; + } + + internal PhoneMapData(Stream input) + { + using (BinaryReader reader = new(input, System.Text.Encoding.Unicode)) + { + int size = reader.ReadInt32(); + _convertTable = new ConversionUnit[size]; + int i; + for (i = 0; i < size; i++) + { + _convertTable[i] = new ConversionUnit + { + sapi = ReadPhoneString(reader), + ups = ReadPhoneString(reader), + isDefault = reader.ReadInt32() != 0 ? true : false + }; + } + + _prefixSapiTable = InitializePrefix(true); + _prefixUpsTable = InitializePrefix(false); + } + } + + internal bool IsPrefix(string prefix, bool isSapi) + { + if (isSapi) + { + return _prefixSapiTable.ContainsKey(prefix); + } + else + { + return _prefixUpsTable.ContainsKey(prefix); + } + } + + internal string ConvertPhoneme(string phoneme, bool isSapi) + { + ConversionUnit unit; + if (isSapi) + { + unit = (ConversionUnit)_prefixSapiTable[phoneme]; + } + else + { + unit = (ConversionUnit)_prefixUpsTable[phoneme]; + } + if (unit == null) + { + return null; + } + return isSapi ? unit.ups : unit.sapi; + } + + /// + /// Create a hash table of all possible prefix substrings for each ConversionUnit + /// + /// Creating a SAPI or UPS prefix table + private Hashtable InitializePrefix(bool isSapi) + { + int i, j; + Hashtable prefixTable = Hashtable.Synchronized(new Hashtable()); + string from, key; + for (i = 0; i < _convertTable.Length; i++) + { + if (isSapi) + { + from = _convertTable[i].sapi; + } + else + { + from = _convertTable[i].ups; + } + + for (j = 0; j + 1 < from.Length; j++) + { + key = from.Substring(0, j + 1); + if (!prefixTable.ContainsKey(key)) + { + prefixTable[key] = null; + } + } + + if (_convertTable[i].isDefault || prefixTable[from] == null) + { + prefixTable[from] = _convertTable[i]; + } + } + return prefixTable; + } + + private static string ReadPhoneString(BinaryReader reader) + { + int phoneLength; + char[] phoneString; + phoneLength = reader.ReadInt16() / 2; + phoneString = reader.ReadChars(phoneLength); + return new string(phoneString, 0, phoneLength - 1); + } + + private Hashtable _prefixSapiTable, _prefixUpsTable; + private ConversionUnit[] _convertTable; + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/AsyncSerializedWorker.cs b/src/libraries/System.Speech/src/Internal/AsyncSerializedWorker.cs new file mode 100644 index 00000000000000..5396cd09d6c2e0 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/AsyncSerializedWorker.cs @@ -0,0 +1,282 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections; +using System.ComponentModel; +using System.Text; +using System.Threading; + +namespace System.Speech.Internal +{ + internal interface IAsyncDispatch + { + void Post(object evt); + void Post(object[] evt); + void PostOperation(Delegate callback, params object[] parameters); + } + + internal class AsyncSerializedWorker : IAsyncDispatch + { + #region Constructors + + internal AsyncSerializedWorker(WaitCallback defaultCallback, SynchronizationContext syncContext) + { + _syncContext = syncContext; + _workerPostCallback = new SendOrPostCallback(WorkerProc); + Initialize(defaultCallback); + } + + private void Initialize(WaitCallback defaultCallback) + { + _queue = new Queue(); + _hasPendingPost = false; + _workerCallback = new WaitCallback(WorkerProc); + _defaultCallback = defaultCallback; + _isAsyncMode = true; + _isEnabled = true; + } + + #endregion + + #region Public Methods + + public void Post(object evt) + { + AddItem(new AsyncWorkItem(DefaultCallback, evt)); + } + + public void Post(object[] evt) + { + int i; + lock (_queue.SyncRoot) + { + if (Enabled) + { + for (i = 0; i < evt.Length; i++) + { + AddItem(new AsyncWorkItem(DefaultCallback, evt[i])); + } + } + } + } + + public void PostOperation(Delegate callback, params object[] parameters) + { + AddItem(new AsyncWorkItem(callback, parameters)); + } + + #endregion + + #region Internal Properties and Methods + + internal bool Enabled + { + get + { + lock (_queue.SyncRoot) + { + return _isEnabled; + } + } + set + { + lock (_queue.SyncRoot) + { + _isEnabled = value; + } + } + } + + internal void Purge() + { + lock (_queue.SyncRoot) + { + _queue.Clear(); + } + } + + internal WaitCallback DefaultCallback + { + get + { + lock (_queue.SyncRoot) + { + return _defaultCallback; + } + } + } + + internal AsyncWorkItem NextWorkItem() + { + lock (_queue.SyncRoot) + { + if (_queue.Count == 0) + { + return null; + } + else + { + AsyncWorkItem workItem = (AsyncWorkItem)_queue.Dequeue(); + if (_queue.Count == 0) + { + _hasPendingPost = false; + } + return workItem; + } + } + } + + internal void ConsumeQueue() + { + AsyncWorkItem workItem; + while (null != (workItem = NextWorkItem())) + { + workItem.Invoke(); + } + } + + internal bool AsyncMode + { + get + { + lock (_queue.SyncRoot) + { + return _isAsyncMode; + } + } + set + { + bool notify = false; + lock (_queue.SyncRoot) + { + if (_isAsyncMode != value) + { + _isAsyncMode = value; + if (_queue.Count > 0) + { + notify = true; + } + } + } + + // We need to resume the worker thread if there are post-events to process + if (notify) + { + OnWorkItemPending(); + } + } + } + + // event handler of this event should execute quickly and must not acquire any lock + internal event WaitCallback WorkItemPending; + + #endregion + #region Private/Protected Methods + + private void AddItem(AsyncWorkItem item) + { + bool processing = true; + lock (_queue.SyncRoot) + { + if (Enabled) + { + _queue.Enqueue(item); + if (!_hasPendingPost || !_isAsyncMode) + { + processing = false; + _hasPendingPost = true; + } + } + } + + if (!processing) + { + OnWorkItemPending(); + } + } + + private void WorkerProc(object ignored) + { + AsyncWorkItem workItem; + while (true) + { + lock (_queue.SyncRoot) + { + if (_queue.Count > 0 && _isAsyncMode) + { + workItem = (AsyncWorkItem)_queue.Dequeue(); + } + else + { + if (_queue.Count == 0) + { + _hasPendingPost = false; + } + break; + } + } + + workItem.Invoke(); + } + } + + private void OnWorkItemPending() + { + // No need to lock here + if (_hasPendingPost) + { + if (AsyncMode) + { + if (_syncContext == null) + { + ThreadPool.QueueUserWorkItem(_workerCallback, null); + } + else + { + _syncContext.Post(_workerPostCallback, null); + } + } + else if (WorkItemPending != null) + { + WorkItemPending(null); + } + } + } + + #endregion + + #region Private Fields + + private SynchronizationContext _syncContext; + private SendOrPostCallback _workerPostCallback; + + private Queue _queue; + private bool _hasPendingPost; + private bool _isAsyncMode; + private WaitCallback _workerCallback; + private WaitCallback _defaultCallback; + private bool _isEnabled; + + #endregion + } + + internal class AsyncWorkItem + { + internal AsyncWorkItem(Delegate dynamicCallback, params object[] postData) + { + _dynamicCallback = dynamicCallback; + _postData = postData; + } + + internal void Invoke() + { + if (_dynamicCallback != null) + { + _dynamicCallback.DynamicInvoke(_postData); + } + } + + private Delegate _dynamicCallback; + private object[] _postData; + } +} diff --git a/src/libraries/System.Speech/src/Internal/GrammarBuilding/BuilderElements.cs b/src/libraries/System.Speech/src/Internal/GrammarBuilding/BuilderElements.cs new file mode 100644 index 00000000000000..04947f11aa09c8 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/GrammarBuilding/BuilderElements.cs @@ -0,0 +1,274 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Speech.Internal.SrgsParser; +using System.Speech.Recognition; +using System.Text; + +namespace System.Speech.Internal.GrammarBuilding +{ + [DebuggerDisplay("{DebugSummary}")] + internal abstract class BuilderElements : GrammarBuilderBase + { + #region Constructors + + internal BuilderElements() + { + } + + #endregion + + #region Public Methods + public override bool Equals(object obj) + { + BuilderElements refObj = obj as BuilderElements; + if (refObj == null) + { + return false; + } + + // Easy out if the number of elements do not match + if (refObj.Count != Count || refObj.Items.Count != Items.Count) + { + return false; + } + + // Deep recursive search for equality + for (int i = 0; i < Items.Count; i++) + { + if (!Items[i].Equals(refObj.Items[i])) + { + return false; + } + } + return true; + } + public override int GetHashCode() + { + return base.GetHashCode(); + } + + #endregion + + #region Internal Methods + + /// + /// Optimization for a element tree + /// + protected void Optimize(Collection newRules) + { + // Create an dictionary of [Count of elements, list of elements] + SortedDictionary> dict = new(); + GetDictionaryElements(dict); + + // The dictionary is sorted from the smallest buckets to the largest. + // Revert the order in the keys arrays + int[] keys = new int[dict.Keys.Count]; + + int index = keys.Length - 1; + foreach (int key in dict.Keys) + { + keys[index--] = key; + } + + // Look for each bucket from the largest to the smallest + for (int i = 0; i < keys.Length && keys[i] >= 3; i++) + { + Collection gb = dict[keys[i]]; + for (int j = 0; j < gb.Count; j++) + { + RuleElement newRule = null; + RuleRefElement ruleRef = null; + for (int k = j + 1; k < gb.Count; k++) + { + if (gb[j] != null && gb[j].Equals(gb[k])) + { + BuilderElements current = gb[k]; + BuilderElements parent = current.Parent; + if (current is SemanticKeyElement) + // if current is already a ruleref. There is no need to create a new one + { + // Simply set the ruleref of the current element to the ruleref of the org element. + parent.Items[parent.Items.IndexOf(current)] = gb[j]; + } + else + { + // Create a rule to store the common elements + if (newRule == null) + { + newRule = new RuleElement(current, "_"); + newRules.Add(newRule); + } + + // Create a ruleref and attach the + if (ruleRef == null) + { + ruleRef = new RuleRefElement(newRule); + gb[j].Parent.Items[gb[j].Parent.Items.IndexOf(gb[j])] = ruleRef; + } + parent.Items[current.Parent.Items.IndexOf(current)] = ruleRef; + } + // + current.RemoveDictionaryElements(dict); + gb[k] = null; + } + } + } + } + } + + #endregion + + #region Internal Methods + + internal void Add(string phrase) + { + _items.Add(new GrammarBuilderPhrase(phrase)); + } + + internal void Add(GrammarBuilder builder) + { + foreach (GrammarBuilderBase item in builder.InternalBuilder.Items) + { + _items.Add(item); + } + } + + internal void Add(GrammarBuilderBase item) + { + _items.Add(item); + } + + internal void CloneItems(BuilderElements builders) + { + foreach (GrammarBuilderBase item in builders.Items) + { + _items.Add(item); + } + } + + internal void CreateChildrenElements(IElementFactory elementFactory, IRule parent, IdentifierCollection ruleIds) + { + foreach (GrammarBuilderBase buider in Items) + { + IElement element = buider.CreateElement(elementFactory, parent, parent, ruleIds); + if (element != null) + { + element.PostParse(parent); + elementFactory.AddElement(parent, element); + } + } + } + + internal void CreateChildrenElements(IElementFactory elementFactory, IItem parent, IRule rule, IdentifierCollection ruleIds) + { + foreach (GrammarBuilderBase buider in Items) + { + IElement element = buider.CreateElement(elementFactory, parent, rule, ruleIds); + if (element != null) + { + element.PostParse(parent); + elementFactory.AddElement(parent, element); + } + } + } + + internal override int CalcCount(BuilderElements parent) + { + base.CalcCount(parent); + int c = 1; + foreach (GrammarBuilderBase item in Items) + { + c += item.CalcCount(this); + } + Count = c; + + return c; + } + + #endregion + + #region Internal Properties + + internal List Items + { + get + { + return _items; + } + } + + internal override string DebugSummary + { + get + { + StringBuilder sb = new(); + + foreach (GrammarBuilderBase item in _items) + { + if (sb.Length > 0) + { + sb.Append(' '); + } + sb.Append(item.DebugSummary); + } + return sb.ToString(); + } + } + + #endregion + + #region Private Method + + private void GetDictionaryElements(SortedDictionary> dict) + { + // Recursive search from a matching subtree + foreach (GrammarBuilderBase item in Items) + { + BuilderElements current = item as BuilderElements; + + // Go deeper if the number of children is greater the element to compare against. + if (current != null) + { + if (!dict.ContainsKey(current.Count)) + { + dict.Add(current.Count, new Collection()); + } + dict[current.Count].Add(current); + + current.GetDictionaryElements(dict); + } + } + } + + private void RemoveDictionaryElements(SortedDictionary> dict) + { + // Recursive search from a matching subtree + foreach (GrammarBuilderBase item in Items) + { + BuilderElements current = item as BuilderElements; + + // Go deeper if the number of children is greater the element to compare against. + if (current != null) + { + // Recursively remove all elements + current.RemoveDictionaryElements(dict); + + dict[current.Count].Remove(current); + } + } + } + + #endregion + + #region Private Fields + + // List of builder elements + private readonly List _items = new(); + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/GrammarBuilding/GrammarBuilderBase.cs b/src/libraries/System.Speech/src/Internal/GrammarBuilding/GrammarBuilderBase.cs new file mode 100644 index 00000000000000..bbd16e74a56050 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/GrammarBuilding/GrammarBuilderBase.cs @@ -0,0 +1,91 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Speech.Internal.SrgsParser; + +namespace System.Speech.Internal.GrammarBuilding +{ + + internal abstract class GrammarBuilderBase + { + #region Internal Methods + + internal abstract GrammarBuilderBase Clone(); + + internal abstract IElement CreateElement(IElementFactory elementFactory, IElement parent, IRule rule, IdentifierCollection ruleIds); + + internal virtual int CalcCount(BuilderElements parent) + { + Marked = false; + Parent = parent; + return Count; + } + + #endregion + + #region Internal Properties + + /// + /// Used by the GrammarBuilder optimizer to count the number of children and descendant for + /// an element + /// + internal virtual int Count + { + get + { + return _count; + } + + set + { + _count = value; + } + } + + /// + /// Marker to know if an element has already been visited. + /// + internal virtual bool Marked + { + get + { + return _marker; + } + + set + { + _marker = value; + } + } + + /// + /// Marker to know if an element has already been visited. + /// + internal virtual BuilderElements Parent + { + get + { + return _parent; + } + + set + { + _parent = value; + } + } + + internal abstract string DebugSummary { get; } + + #endregion + + #region Private Fields + + private int _count = 1; + + private bool _marker; + + private BuilderElements _parent; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/GrammarBuilding/GrammarBuilderDictation.cs b/src/libraries/System.Speech/src/Internal/GrammarBuilding/GrammarBuilderDictation.cs new file mode 100644 index 00000000000000..22f025beb7b8d2 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/GrammarBuilding/GrammarBuilderDictation.cs @@ -0,0 +1,94 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Speech.Internal.SrgsParser; + +namespace System.Speech.Internal.GrammarBuilding +{ + internal sealed class GrammarBuilderDictation : GrammarBuilderBase + { + #region Constructors + + internal GrammarBuilderDictation() + : this(null) + { + } + + internal GrammarBuilderDictation(string category) + { + _category = category; + } + + #endregion + + #region Public Methods + public override bool Equals(object obj) + { + GrammarBuilderDictation refObj = obj as GrammarBuilderDictation; + if (refObj == null) + { + return false; + } + return _category == refObj._category; + } + public override int GetHashCode() + { + return _category == null ? 0 : _category.GetHashCode(); + } + + #endregion + + #region Internal Methods + + internal override GrammarBuilderBase Clone() + { + return new GrammarBuilderDictation(_category); + } + + internal override IElement CreateElement(IElementFactory elementFactory, IElement parent, IRule rule, IdentifierCollection ruleIds) + { + // Return the IRuleRef to the dictation grammar + return CreateRuleRefToDictation(elementFactory, parent); + } + + #endregion + + #region Internal Properties + + internal override string DebugSummary + { + get + { + string category = _category != null ? ":" + _category : string.Empty; + return "dictation" + category; + } + } + + #endregion + + #region Private Methods + + private IRuleRef CreateRuleRefToDictation(IElementFactory elementFactory, IElement parent) + { + Uri ruleUri; + if (!string.IsNullOrEmpty(_category) && _category == "spelling") + { + ruleUri = new Uri("grammar:dictation#spelling", UriKind.RelativeOrAbsolute); + } + else + { + ruleUri = new Uri("grammar:dictation", UriKind.RelativeOrAbsolute); + } + + return elementFactory.CreateRuleRef(parent, ruleUri, null, null); + } + + #endregion + + #region Private Fields + + private readonly string _category; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/GrammarBuilding/GrammarBuilderPhrase.cs b/src/libraries/System.Speech/src/Internal/GrammarBuilding/GrammarBuilderPhrase.cs new file mode 100644 index 00000000000000..c0640b2501086e --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/GrammarBuilding/GrammarBuilderPhrase.cs @@ -0,0 +1,133 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; +using System.Speech.Internal.SrgsCompiler; +using System.Speech.Internal.SrgsParser; +using System.Speech.Recognition; + +namespace System.Speech.Internal.GrammarBuilding +{ + [DebuggerDisplay("{DebugSummary}")] + internal sealed class GrammarBuilderPhrase : GrammarBuilderBase + { + #region Constructors + + internal GrammarBuilderPhrase(string phrase) + : this(phrase, false, SubsetMatchingMode.OrderedSubset) + { + } + + internal GrammarBuilderPhrase(string phrase, SubsetMatchingMode subsetMatchingCriteria) + : this(phrase, true, subsetMatchingCriteria) + { + } + + private GrammarBuilderPhrase(string phrase, bool subsetMatching, SubsetMatchingMode subsetMatchingCriteria) + { + _phrase = phrase; + _subsetMatching = subsetMatching; + switch (subsetMatchingCriteria) + { + case SubsetMatchingMode.OrderedSubset: + _matchMode = MatchMode.OrderedSubset; + break; + case SubsetMatchingMode.OrderedSubsetContentRequired: + _matchMode = MatchMode.OrderedSubsetContentRequired; + break; + case SubsetMatchingMode.Subsequence: + _matchMode = MatchMode.Subsequence; + break; + case SubsetMatchingMode.SubsequenceContentRequired: + _matchMode = MatchMode.SubsequenceContentRequired; + break; + } + } + + private GrammarBuilderPhrase(string phrase, bool subsetMatching, MatchMode matchMode) + { + _phrase = phrase; + _subsetMatching = subsetMatching; + _matchMode = matchMode; + } + + #endregion + + #region Public Methods + public override bool Equals(object obj) + { + GrammarBuilderPhrase refObj = obj as GrammarBuilderPhrase; + if (refObj == null) + { + return false; + } + return _phrase == refObj._phrase && _matchMode == refObj._matchMode && _subsetMatching == refObj._subsetMatching; + } + public override int GetHashCode() + { + return _phrase.GetHashCode(); + } + + #endregion + + #region Internal Methods + + internal override GrammarBuilderBase Clone() + { + return new GrammarBuilderPhrase(_phrase, _subsetMatching, _matchMode); + } + + internal override IElement CreateElement(IElementFactory elementFactory, IElement parent, IRule rule, IdentifierCollection ruleIds) + { + return CreatePhraseElement(elementFactory, parent); + } + + #endregion + + #region Internal Properties + + internal override string DebugSummary + { + get + { + return "'" + _phrase + "'"; + } + } + + #endregion + + #region Private Methods + + private IElement CreatePhraseElement(IElementFactory elementFactory, IElement parent) + { + if (_subsetMatching) + { + // Create and return the ISubset representing the current phrase + return elementFactory.CreateSubset(parent, _phrase, _matchMode); + } + else + { + if (elementFactory is SrgsElementCompilerFactory) + { + XmlParser.ParseText(parent, _phrase, null, null, -1f, new CreateTokenCallback(elementFactory.CreateToken)); + } + else + { + // Create and return the IElementText representing the current phrase + return elementFactory.CreateText(parent, _phrase); + } + } + return null; + } + + #endregion + + #region Private Fields + + private readonly string _phrase; + private readonly bool _subsetMatching; + private readonly MatchMode _matchMode; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/GrammarBuilding/GrammarBuilderRuleRef.cs b/src/libraries/System.Speech/src/Internal/GrammarBuilding/GrammarBuilderRuleRef.cs new file mode 100644 index 00000000000000..fafcf539f9ea0c --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/GrammarBuilding/GrammarBuilderRuleRef.cs @@ -0,0 +1,75 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Speech.Internal.SrgsParser; + +namespace System.Speech.Internal.GrammarBuilding +{ + + internal sealed class GrammarBuilderRuleRef : GrammarBuilderBase + { + #region Constructors + + internal GrammarBuilderRuleRef(Uri uri, string rule) + { + _uri = uri.OriginalString + ((rule != null) ? "#" + rule : ""); + } + + private GrammarBuilderRuleRef(string sgrsUri) + { + _uri = sgrsUri; + } + + #endregion + + #region Public Methods + public override bool Equals(object obj) + { + GrammarBuilderRuleRef refObj = obj as GrammarBuilderRuleRef; + if (refObj == null) + { + return false; + } + return _uri == refObj._uri; + } + public override int GetHashCode() + { + return _uri.GetHashCode(); + } + + #endregion + + #region Internal Methods + + internal override GrammarBuilderBase Clone() + { + return new GrammarBuilderRuleRef(_uri); + } + + internal override IElement CreateElement(IElementFactory elementFactory, IElement parent, IRule rule, IdentifierCollection ruleIds) + { + Uri ruleUri = new(_uri, UriKind.RelativeOrAbsolute); + return elementFactory.CreateRuleRef(parent, ruleUri, null, null); + } + + #endregion + + #region Internal Properties + + internal override string DebugSummary + { + get + { + return "#" + _uri; + } + } + + #endregion + + #region Private Fields + + private readonly string _uri; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/GrammarBuilding/GrammarBuilderWildcard.cs b/src/libraries/System.Speech/src/Internal/GrammarBuilding/GrammarBuilderWildcard.cs new file mode 100644 index 00000000000000..8dcde18b5b14b5 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/GrammarBuilding/GrammarBuilderWildcard.cs @@ -0,0 +1,63 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Speech.Internal.SrgsParser; + +namespace System.Speech.Internal.GrammarBuilding +{ + + internal sealed class GrammarBuilderWildcard : GrammarBuilderBase + { + #region Constructors + + internal GrammarBuilderWildcard() + { + } + + #endregion + + #region Public Methods + public override bool Equals(object obj) + { + GrammarBuilderWildcard refObj = obj as GrammarBuilderWildcard; + return refObj != null; + } + public override int GetHashCode() + { + return base.GetHashCode(); + } + + #endregion + + #region Internal Methods + + internal override GrammarBuilderBase Clone() + { + return new GrammarBuilderWildcard(); + } + + internal override IElement CreateElement(IElementFactory elementFactory, IElement parent, IRule rule, IdentifierCollection ruleIds) + { + // Return a ruleref to Garbage + IRuleRef ruleRef = elementFactory.Garbage; + + elementFactory.InitSpecialRuleRef(parent, ruleRef); + + return ruleRef; + } + + #endregion + + #region Internal Properties + + internal override string DebugSummary + { + get + { + return "*"; + } + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/GrammarBuilding/IdentifierCollection.cs b/src/libraries/System.Speech/src/Internal/GrammarBuilding/IdentifierCollection.cs new file mode 100644 index 00000000000000..8fe91e5bf8d243 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/GrammarBuilding/IdentifierCollection.cs @@ -0,0 +1,52 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; + +namespace System.Speech.Internal.GrammarBuilding +{ + + internal class IdentifierCollection + { + #region Constructors + + internal IdentifierCollection() + { + _identifiers = new List(); + CreateNewIdentifier("_"); + } + + #endregion + + #region Internal Methods + + internal string CreateNewIdentifier(string id) + { + if (!_identifiers.Contains(id)) + { + _identifiers.Add(id); + return id; + } + else + { + string newId; + int i = 1; + do + { + newId = id + i; + i++; + } while (_identifiers.Contains(newId)); + _identifiers.Add(newId); + return newId; + } + } + + #endregion + + #region Protected Fields + + protected List _identifiers; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/GrammarBuilding/ItemElement.cs b/src/libraries/System.Speech/src/Internal/GrammarBuilding/ItemElement.cs new file mode 100644 index 00000000000000..32fd275c0e1d3a --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/GrammarBuilding/ItemElement.cs @@ -0,0 +1,107 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Diagnostics; +using System.Speech.Internal.SrgsParser; +using System.Speech.Recognition; + +namespace System.Speech.Internal.GrammarBuilding +{ + [DebuggerDisplay("{DebugSummary}")] + internal sealed class ItemElement : BuilderElements + { + #region Constructors + + internal ItemElement(GrammarBuilderBase builder) + : this(builder, 1, 1) + { + } + + internal ItemElement(int minRepeat, int maxRepeat) + : this((GrammarBuilderBase)null, minRepeat, maxRepeat) + { + } + + internal ItemElement(GrammarBuilderBase builder, int minRepeat, int maxRepeat) + { + if (builder != null) + { + Add(builder); + } + _minRepeat = minRepeat; + _maxRepeat = maxRepeat; + } + + internal ItemElement(List builders, int minRepeat, int maxRepeat) + { + foreach (GrammarBuilderBase builder in builders) + { + Items.Add(builder); + } + _minRepeat = minRepeat; + _maxRepeat = maxRepeat; + } + + internal ItemElement(GrammarBuilder builders) + { + foreach (GrammarBuilderBase builder in builders.InternalBuilder.Items) + { + Items.Add(builder); + } + } + + #endregion + + #region Public Methods + public override bool Equals(object obj) + { + ItemElement refObj = obj as ItemElement; + if (refObj == null) + { + return false; + } + if (!base.Equals(obj)) + { + return false; + } + return _minRepeat == refObj._minRepeat && _maxRepeat == refObj._maxRepeat; + } + public override int GetHashCode() + { + return base.GetHashCode(); + } + + #endregion + + #region Internal Methods + + internal override GrammarBuilderBase Clone() + { + ItemElement item = new(_minRepeat, _maxRepeat); + item.CloneItems(this); + return item; + } + + internal override IElement CreateElement(IElementFactory elementFactory, IElement parent, IRule rule, IdentifierCollection ruleIds) + { + // Create and return the real item (the item including the grammar) + // for the current grammar + IItem item = elementFactory.CreateItem(parent, rule, _minRepeat, _maxRepeat, 0.5f, 1f); + + // Create the children elements + CreateChildrenElements(elementFactory, item, rule, ruleIds); + + return item; + } + + #endregion + + #region Private Fields + + private readonly int _minRepeat = 1; + private readonly int _maxRepeat = 1; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/GrammarBuilding/OneOfElement.cs b/src/libraries/System.Speech/src/Internal/GrammarBuilding/OneOfElement.cs new file mode 100644 index 00000000000000..8045b2e59e8aca --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/GrammarBuilding/OneOfElement.cs @@ -0,0 +1,73 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; +using System.Speech.Internal.SrgsParser; +using System.Text; + +namespace System.Speech.Internal.GrammarBuilding +{ + [DebuggerDisplay("{DebugSummary}")] + internal sealed class OneOfElement : BuilderElements + { + #region Constructors + + internal OneOfElement() + { + } + + #endregion + + #region Internal Methods + + internal override GrammarBuilderBase Clone() + { + OneOfElement oneOf = new(); + oneOf.CloneItems(this); + return oneOf; + } + + internal override IElement CreateElement(IElementFactory elementFactory, IElement parent, IRule rule, IdentifierCollection ruleIds) + { + // Create and return the IOneOf representing the current object + IOneOf oneOf = elementFactory.CreateOneOf(parent, rule); + foreach (GrammarBuilderBase item in Items) + { + ItemElement newItem = item as ItemElement; + if (newItem == null) + { + newItem = new ItemElement(item); + } + + IItem element = (IItem)newItem.CreateElement(elementFactory, oneOf, rule, ruleIds); + element.PostParse(oneOf); + elementFactory.AddItem(oneOf, element); + } + return oneOf; + } + + #endregion + + #region Internal Properties + + internal override string DebugSummary + { + get + { + StringBuilder sb = new(); + + foreach (GrammarBuilderBase item in Items) + { + if (sb.Length > 0) + { + sb.Append(','); + } + sb.Append(item.DebugSummary); + } + return "[" + sb.ToString() + "]"; + } + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/GrammarBuilding/RuleElement.cs b/src/libraries/System.Speech/src/Internal/GrammarBuilding/RuleElement.cs new file mode 100644 index 00000000000000..7fd7699e9aeb6e --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/GrammarBuilding/RuleElement.cs @@ -0,0 +1,121 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Speech.Internal.SrgsParser; + +namespace System.Speech.Internal.GrammarBuilding +{ + + internal sealed class RuleElement : BuilderElements + { + #region Constructors + + internal RuleElement(string name) + { + _name = name; + } + + internal RuleElement(GrammarBuilderBase builder, string name) + : this(name) + { + Add(builder); + } + + #endregion + + #region Public Methods + public override bool Equals(object obj) + { + RuleElement refObj = obj as RuleElement; + if (refObj == null) + { + return false; + } + if (!base.Equals(obj)) + { + return false; + } + return _name == refObj._name; + } + + public override int GetHashCode() + { + return base.GetHashCode(); + } + + #endregion + + #region Internal Methods + + internal override GrammarBuilderBase Clone() + { + RuleElement rule = new(_name); + rule.CloneItems(this); + return rule; + } + + internal override IElement CreateElement(IElementFactory elementFactory, IElement parent, IRule rule, IdentifierCollection ruleIds) + { + if (_rule == null) + { + IGrammar grammar = elementFactory.Grammar; + + // Create the rule + _ruleName = ruleIds.CreateNewIdentifier(Name); + + _rule = grammar.CreateRule(_ruleName, RulePublic.False, RuleDynamic.NotSet, false); + + // Create the children elements + CreateChildrenElements(elementFactory, _rule, ruleIds); + + _rule.PostParse(grammar); + } + return _rule; + } + + internal override int CalcCount(BuilderElements parent) + { + // clear any existing value + _rule = null; + return base.CalcCount(parent); + } + + #endregion + + #region Internal Properties + + internal override string DebugSummary + { + get + { + return _name + "=" + base.DebugSummary; + } + } + + internal string Name + { + get + { + return _name; + } + } + + internal string RuleName + { + get + { + return _ruleName; + } + } + + #endregion + + #region Private Fields + + private readonly string _name; + private string _ruleName; + private IRule _rule; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/GrammarBuilding/RuleRefElement.cs b/src/libraries/System.Speech/src/Internal/GrammarBuilding/RuleRefElement.cs new file mode 100644 index 00000000000000..532c05501bf412 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/GrammarBuilding/RuleRefElement.cs @@ -0,0 +1,96 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; +using System.Speech.Internal.SrgsParser; + +namespace System.Speech.Internal.GrammarBuilding +{ + [DebuggerDisplay("{DebugSummary}")] + internal sealed class RuleRefElement : GrammarBuilderBase + { + #region Constructors + + internal RuleRefElement(RuleElement rule) + { + _rule = rule; + } + + internal RuleRefElement(RuleElement rule, string semanticKey) + { + _rule = rule; + _semanticKey = semanticKey; + } + + #endregion + + #region Public Methods + public override bool Equals(object obj) + { + RuleRefElement refObj = obj as RuleRefElement; + if (refObj == null) + { + return false; + } + return _semanticKey == refObj._semanticKey && _rule.Equals(refObj._rule); + } + public override int GetHashCode() + { + return base.GetHashCode(); + } + + #endregion + + #region Internal Methods + + internal void Add(GrammarBuilderBase item) + { + _rule.Add(item); + } + + internal override GrammarBuilderBase Clone() + { + return new RuleRefElement(_rule, _semanticKey); + } + + internal void CloneItems(RuleRefElement builders) + { + _rule.CloneItems(builders._rule); + } + + internal override IElement CreateElement(IElementFactory elementFactory, IElement parent, IRule rule, IdentifierCollection ruleIds) + { + // Create the new rule and add the reference to the item + return elementFactory.CreateRuleRef(parent, new Uri("#" + Rule.RuleName, UriKind.Relative), _semanticKey, null); + } + + #endregion + + #region Internal Properties + + internal RuleElement Rule + { + get + { + return _rule; + } + } + + internal override string DebugSummary + { + get + { + return "#" + Rule.Name + (_semanticKey != null ? ":" + _semanticKey : ""); + } + } + + #endregion + + #region Private Fields + + private readonly RuleElement _rule; + private readonly string _semanticKey; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/GrammarBuilding/SemanticKeyElement.cs b/src/libraries/System.Speech/src/Internal/GrammarBuilding/SemanticKeyElement.cs new file mode 100644 index 00000000000000..5e94f17d96a433 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/GrammarBuilding/SemanticKeyElement.cs @@ -0,0 +1,102 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Speech.Internal.SrgsParser; +using System.Speech.Recognition; + +namespace System.Speech.Internal.GrammarBuilding +{ + + internal sealed class SemanticKeyElement : BuilderElements + { + #region Constructors + + internal SemanticKeyElement(string semanticKey) + { + _semanticKey = semanticKey; + RuleElement rule = new(semanticKey); + _ruleRef = new RuleRefElement(rule, _semanticKey); + Items.Add(rule); + Items.Add(_ruleRef); + } + + #endregion + + #region Public Methods + public override bool Equals(object obj) + { + SemanticKeyElement refObj = obj as SemanticKeyElement; + if (refObj == null) + { + return false; + } + if (!base.Equals(obj)) + { + return false; + } + // No need to check for the equality on _ruleRef. The children are in the Items, not the underlying rule + return _semanticKey == refObj._semanticKey; + } + + public override int GetHashCode() + { + return base.GetHashCode(); + } + + #endregion + + #region Internal Methods + + internal new void Add(string phrase) + { + _ruleRef.Add(new GrammarBuilderPhrase(phrase)); + } + + internal new void Add(GrammarBuilder builder) + { + foreach (GrammarBuilderBase item in builder.InternalBuilder.Items) + { + _ruleRef.Add(item); + } + } + + internal override GrammarBuilderBase Clone() + { + SemanticKeyElement semanticKeyElement = new(_semanticKey); + semanticKeyElement._ruleRef.CloneItems(_ruleRef); + return semanticKeyElement; + } + + internal override IElement CreateElement(IElementFactory elementFactory, IElement parent, IRule rule, IdentifierCollection ruleIds) + { + // Create the rule associated with this key + _ruleRef.Rule.CreateElement(elementFactory, parent, rule, ruleIds); + + // Create the ruleRef + IElement ruleRef = _ruleRef.CreateElement(elementFactory, parent, rule, ruleIds); + + return ruleRef; + } + + #endregion + + #region Internal Properties + + internal override string DebugSummary + { + get + { + return _ruleRef.Rule.DebugSummary; + } + } + + #endregion + + #region Private Fields + + private readonly string _semanticKey; + private readonly RuleRefElement _ruleRef; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/GrammarBuilding/TagElement.cs b/src/libraries/System.Speech/src/Internal/GrammarBuilding/TagElement.cs new file mode 100644 index 00000000000000..1f199e608b1995 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/GrammarBuilding/TagElement.cs @@ -0,0 +1,111 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; +using System.Speech.Internal.SrgsParser; +using System.Speech.Recognition; + +namespace System.Speech.Internal.GrammarBuilding +{ + [DebuggerDisplay("{DebugSummary}")] + internal sealed class TagElement : BuilderElements + { + #region Constructors + + internal TagElement(object value) + { + _value = value; + } + + internal TagElement(GrammarBuilderBase builder, object value) + : this(value) + { + Add(builder); + } + + internal TagElement(GrammarBuilder builder, object value) + : this(value) + { + Add(builder); + } + + #endregion + + #region Public Methods + public override bool Equals(object obj) + { + TagElement refObj = obj as TagElement; + if (refObj == null) + { + return false; + } + if (!base.Equals(obj)) + { + return false; + } + return _value.Equals(refObj._value); + } + + public override int GetHashCode() + { + return base.GetHashCode(); + } + + #endregion + + #region Internal Methods + + internal override GrammarBuilderBase Clone() + { + TagElement tag = new(_value); + tag.CloneItems(this); + return tag; + } + + internal override IElement CreateElement(IElementFactory elementFactory, IElement parent, IRule rule, IdentifierCollection ruleIds) + { + // Create the children elements + IItem item = parent as IItem; + if (item != null) + { + CreateChildrenElements(elementFactory, item, rule, ruleIds); + } + else + { + if (parent == rule) + { + CreateChildrenElements(elementFactory, rule, ruleIds); + } + else + { + System.Diagnostics.Debug.Assert(false); + } + } + + // Create the tag element at the end only if there were some children + IPropertyTag tag = elementFactory.CreatePropertyTag(parent); + tag.NameValue(parent, null, _value); + return tag; + } + + #endregion + + #region Internal Properties + + internal override string DebugSummary + { + get + { + return base.DebugSummary + " {" + _value + "}"; + } + } + + #endregion + + #region Private Fields + + private readonly object _value; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/HGlobalSafeHandle.cs b/src/libraries/System.Speech/src/Internal/HGlobalSafeHandle.cs new file mode 100644 index 00000000000000..d7a0ddbd3ce11b --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/HGlobalSafeHandle.cs @@ -0,0 +1,101 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; + +namespace System.Speech.Internal +{ + /// + /// Encapsulate SafeHandle for Win32 Memory Handles + /// + internal sealed class HGlobalSafeHandle : SafeHandle + { + #region Constructors + + internal HGlobalSafeHandle() : base(IntPtr.Zero, true) + { + } + + // This destructor will run only if the Dispose method + // does not get called. + ~HGlobalSafeHandle() + { + Dispose(false); + } + + protected override void Dispose(bool disposing) + { + ReleaseHandle(); + base.Dispose(disposing); + } + + #endregion + + #region internal Methods + + internal IntPtr Buffer(int size) + { + if (size > _bufferSize) + { + if (_bufferSize == 0) + { + SetHandle(Marshal.AllocHGlobal(size)); + } + else + { + SetHandle(Marshal.ReAllocHGlobal(handle, (IntPtr)size)); + } + + GC.AddMemoryPressure(size - _bufferSize); + _bufferSize = size; + } + + return handle; + } + + /// + /// True if the no memory is allocated + /// + public override bool IsInvalid + { + get + { + return handle == IntPtr.Zero; + } + } + + #endregion + + #region Protected Methods + + /// + /// Releases the Win32 Memory handle + /// + protected override bool ReleaseHandle() + { + if (handle != IntPtr.Zero) + { + // Reset the extra information given to the GC + if (_bufferSize > 0) + { + GC.RemoveMemoryPressure(_bufferSize); + _bufferSize = 0; + } + + Marshal.FreeHGlobal(handle); + handle = IntPtr.Zero; + return true; + } + + return false; + } + + #endregion + + #region Private Fields + + private int _bufferSize; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/Helpers.cs b/src/libraries/System.Speech/src/Internal/Helpers.cs new file mode 100644 index 00000000000000..85b567434faca4 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Helpers.cs @@ -0,0 +1,115 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Globalization; +using System.IO; + +namespace System.Speech.Internal +{ + internal static class Helpers + { + #region Internal Methods + + // Disable parameter validation check + + // Throws exception if the specified Rule does not have a valid Id. + internal static void ThrowIfEmptyOrNull(string s, string paramName) + { + if (string.IsNullOrEmpty(s)) + { + if (s == null) + { + throw new ArgumentNullException(paramName); + } + else + { + throw new ArgumentException(SR.Get(SRID.StringCanNotBeEmpty, paramName), paramName); + } + } + } + + // Throws exception if the specified Rule does not have a valid Id. + internal static void ThrowIfNull(object value, string paramName) + { + if (value == null) + { + throw new ArgumentNullException(paramName); + } + } + + internal static bool CompareInvariantCulture(CultureInfo culture1, CultureInfo culture2) + { + // If perfect match easy + if (culture1.Equals(culture2)) + { + return true; + } + + // Compare the Neutral culture + while (!culture1.IsNeutralCulture) + { + culture1 = culture1.Parent; + } + while (!culture2.IsNeutralCulture) + { + culture2 = culture2.Parent; + } + return culture1.Equals(culture2); + } + + // Copy the input cfg to the output. + // Streams point to the start of the data on entry and to the end on exit + internal static void CopyStream(Stream inputStream, Stream outputStream, int bytesToCopy) + { + // Copy using an intermediate buffer of a reasonable size. + int bufferSize = bytesToCopy > 4096 ? 4096 : bytesToCopy; + byte[] buffer = new byte[bufferSize]; + int bytesRead; + while (bytesToCopy > 0) + { + bytesRead = inputStream.Read(buffer, 0, bufferSize); + if (bytesRead <= 0) + { + throw new EndOfStreamException(SR.Get(SRID.StreamEndedUnexpectedly)); + } + outputStream.Write(buffer, 0, bytesRead); + bytesToCopy -= bytesRead; + } + } + + // Copy the input cfg to the output. + // inputStream points to the start of the data on entry and to the end on exit + internal static byte[] ReadStreamToByteArray(Stream inputStream, int bytesToCopy) + { + byte[] outputArray = new byte[bytesToCopy]; + BlockingRead(inputStream, outputArray, 0, bytesToCopy); + return outputArray; + } + + internal static void BlockingRead(Stream stream, byte[] buffer, int offset, int count) + { + // Stream is not like IStream - it will block until some data is available but not necessarily all of it. + while (count > 0) + { + int read = stream.Read(buffer, offset, count); + if (read <= 0) // End of stream + { + throw new EndOfStreamException(); + } + count -= read; + offset += read; + } + } + + #endregion + + #region Internal fields + + internal static readonly char[] _achTrimChars = new char[] { ' ', '\t', '\n', '\r' }; + + // Size of a char (avoid to use the marshal class + internal const int _sizeOfChar = 2; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/ObjectToken/ObjectToken.cs b/src/libraries/System.Speech/src/Internal/ObjectToken/ObjectToken.cs new file mode 100644 index 00000000000000..1d38e938bbdd77 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/ObjectToken/ObjectToken.cs @@ -0,0 +1,334 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; +using System.Globalization; +using System.IO; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Speech.Internal.SapiInterop; + +namespace System.Speech.Internal.ObjectTokens +{ + [DebuggerDisplay("{Name}")] + internal class ObjectToken : RegistryDataKey, ISpObjectToken + { + #region Constructors + + protected ObjectToken(ISpObjectToken sapiObjectToken, bool disposeSapiToken) + : base(sapiObjectToken) + { + if (sapiObjectToken == null) + { + throw new ArgumentNullException(nameof(sapiObjectToken)); + } + + _sapiObjectToken = sapiObjectToken; + _disposeSapiObjectToken = disposeSapiToken; + } + + /// + /// Creates a ObjectToken from an already-existing ISpObjectToken. + /// Assumes the token was created through enumeration, thus should not be disposed by us. + /// + /// ObjectToken object + internal static ObjectToken Open(ISpObjectToken sapiObjectToken) + { + return new ObjectToken(sapiObjectToken, false); + } + + /// + /// Creates a new ObjectToken from a category + /// Unlike the other Open overload, this one creates a new SAPI object, so Dispose must be called if + /// you are creating ObjectTokens with this function. + /// + /// ObjectToken object + internal static ObjectToken Open(string sCategoryId, string sTokenId, bool fCreateIfNotExist) + { + ISpObjectToken sapiObjectToken = (ISpObjectToken)new SpObjectToken(); + + try + { + sapiObjectToken.SetId(sCategoryId, sTokenId, fCreateIfNotExist); + } + catch (Exception) + { + Marshal.ReleaseComObject(sapiObjectToken); + return null; + } + + return new ObjectToken(sapiObjectToken, true); + } + + protected override void Dispose(bool disposing) + { + try + { + if (disposing) + { + if (_disposeSapiObjectToken == true && _sapiObjectToken != null) + { + Marshal.ReleaseComObject(_sapiObjectToken); + _sapiObjectToken = null; + } + if (_attributes != null) + { + _attributes.Dispose(); + _attributes = null; + } + } + } + finally + { + base.Dispose(disposing); + } + } + + #endregion + + #region public Methods + + /// + /// Tests whether two AutomationIdentifier objects are equivalent + /// + public override bool Equals(object obj) + { + ObjectToken token = obj as ObjectToken; + return token != null && string.Compare(Id, token.Id, StringComparison.OrdinalIgnoreCase) == 0; + } + + /// + /// Overrides Object.GetHashCode() + /// + public override int GetHashCode() + { + return Id.GetHashCode(); + } + + #endregion + + #region Internal Properties + + internal RegistryDataKey Attributes + { + get + { + return _attributes != null ? _attributes : (_attributes = OpenKey("Attributes")); + } + } + + internal ISpObjectToken SAPIToken + { + get + { + return _sapiObjectToken; + } + } + + /// + /// Returns the Age from a voice token + /// + internal string Age + { + get + { + string age; + if (Attributes == null || !Attributes.TryGetString("Age", out age)) + { + age = string.Empty; + } + return age; + } + } + + /// + /// Returns the gender + /// + internal string Gender + { + get + { + string gender; + if (Attributes == null || !Attributes.TryGetString("Gender", out gender)) + { + gender = string.Empty; + } + return gender; + } + } + + /// + /// Returns the Name for the voice + /// Look first in the Name attribute, if not available then get the default string + /// + internal string TokenName() + { + string name = string.Empty; + if (Attributes != null) + { + Attributes.TryGetString("Name", out name); + + if (string.IsNullOrEmpty(name)) + { + TryGetString(null, out name); + } + } + return name; + } + + /// + /// Returns the Culture defined in the Language field for a token + /// + internal CultureInfo Culture + { + get + { + CultureInfo culture = null; + string langId; + if (Attributes.TryGetString("Language", out langId)) + { + culture = SapiAttributeParser.GetCultureInfoFromLanguageString(langId); + } + return culture; + } + } + + /// + /// Returns the Culture defined in the Language field for a token + /// + internal string Description + { + get + { + string description = string.Empty; + string sCultureId = string.Format(CultureInfo.InvariantCulture, "{0:x}", CultureInfo.CurrentUICulture.LCID); + if (!TryGetString(sCultureId, out description)) + { + TryGetString(null, out description); + } + return description; + } + } + + #endregion + + #region internal Methods + + #region ISpObjectToken Implementation + + public void SetId([MarshalAs(UnmanagedType.LPWStr)] string pszCategoryId, [MarshalAs(UnmanagedType.LPWStr)] string pszTokenId, [MarshalAs(UnmanagedType.Bool)] bool fCreateIfNotExist) + { + throw new NotImplementedException(); + } + + public void GetId([MarshalAs(UnmanagedType.LPWStr)] out IntPtr ppszCoMemTokenId) + { + ppszCoMemTokenId = Marshal.StringToCoTaskMemUni(Id); + } + + public void Slot15() { throw new NotImplementedException(); } // void GetCategory(out ISpObjectTokenCategory ppTokenCategory); + public void Slot16() { throw new NotImplementedException(); } // void CreateInstance(object pUnkOuter, UInt32 dwClsContext, ref Guid riid, ref IntPtr ppvObject); + public void Slot17() { throw new NotImplementedException(); } // void GetStorageFileName(ref Guid clsidCaller, [MarshalAs(UnmanagedType.LPWStr)] string pszValueName, [MarshalAs(UnmanagedType.LPWStr)] string pszFileNameSpecifier, UInt32 nFolder, [MarshalAs(UnmanagedType.LPWStr)] out string ppszFilePath); + public void Slot18() { throw new NotImplementedException(); } // void RemoveStorageFileName(ref Guid clsidCaller, [MarshalAs(UnmanagedType.LPWStr)] string pszKeyName, int fDeleteFile); + public void Slot19() { throw new NotImplementedException(); } // void Remove(ref Guid pclsidCaller); + public void Slot20() { throw new NotImplementedException(); } // void IsUISupported([MarshalAs(UnmanagedType.LPWStr)] string pszTypeOfUI, IntPtr pvExtraData, UInt32 cbExtraData, object punkObject, ref Int32 pfSupported); + public void Slot21() { throw new NotImplementedException(); } // void DisplayUI(UInt32 hWndParent, [MarshalAs(UnmanagedType.LPWStr)] string pszTitle, [MarshalAs(UnmanagedType.LPWStr)] string pszTypeOfUI, IntPtr pvExtraData, UInt32 cbExtraData, object punkObject); + public void MatchesAttributes([MarshalAs(UnmanagedType.LPWStr)] string pszAttributes, [MarshalAs(UnmanagedType.Bool)] out bool pfMatches) { throw new NotImplementedException(); } + + #endregion + + /// + /// Check if the token supports the attributes list given in. The + /// attributes list has the same format as the required attributes given to + /// SpEnumTokens. + /// + internal bool MatchesAttributes(string[] sAttributes) + { + bool fMatch = true; + + for (int iAttribute = 0; iAttribute < sAttributes.Length; iAttribute++) + { + string s = sAttributes[iAttribute]; + fMatch &= HasValue(s) || (Attributes != null && Attributes.HasValue(s)); + if (!fMatch) + { + break; + } + } + return fMatch; + } + + internal T CreateObjectFromToken(string name) + { + T instanceValue = default(T); + string clsid; + + if (!TryGetString(name, out clsid)) + { + throw new ArgumentException(SR.Get(SRID.TokenCannotCreateInstance)); + } + + try + { + // Application Class Id + Type type = Type.GetTypeFromCLSID(new Guid(clsid)); + + // Create the object instance + instanceValue = (T)Activator.CreateInstance(type); + + // Initialize the instance + ISpObjectWithToken objectWithToken = instanceValue as ISpObjectWithToken; + if (objectWithToken != null) + { + int hresult = objectWithToken.SetObjectToken(this); + if (hresult < 0) + { + throw new ArgumentException(SR.Get(SRID.TokenCannotCreateInstance)); + } + } + else + { + Debug.Fail("Cannot query for interface " + typeof(ISpObjectWithToken).GUID + " from COM class " + clsid); + } + } + catch (Exception e) + { + if (e is MissingMethodException || e is TypeLoadException || e is FileLoadException || e is FileNotFoundException || e is MethodAccessException || e is MemberAccessException || e is TargetInvocationException || e is InvalidComObjectException || e is NotSupportedException || e is FormatException) + { + throw new ArgumentException(SR.Get(SRID.TokenCannotCreateInstance)); + } + throw; + } + return instanceValue; + } + + #endregion + + #region private Methods + + #endregion + + #region Private Types + + //--- ISpObjectWithToken ---------------------------------------------------- + [ComImport, Guid("5B559F40-E952-11D2-BB91-00C04F8EE6C0"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + private interface ISpObjectWithToken + { + [PreserveSig] + int SetObjectToken(ISpObjectToken pToken); + [PreserveSig] + int GetObjectToken(IntPtr ppToken); + } + + #endregion + #region private Fields + + private ISpObjectToken _sapiObjectToken; + + private bool _disposeSapiObjectToken; + + private RegistryDataKey _attributes; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/ObjectToken/ObjectTokenCategory.cs b/src/libraries/System.Speech/src/Internal/ObjectToken/ObjectTokenCategory.cs new file mode 100644 index 00000000000000..e78160f17e78e7 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/ObjectToken/ObjectTokenCategory.cs @@ -0,0 +1,103 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Runtime.InteropServices; +using System.Speech.Internal.SapiInterop; + +namespace System.Speech.Internal.ObjectTokens +{ + internal class ObjectTokenCategory : RegistryDataKey, IEnumerable + { + #region Constructors + + protected ObjectTokenCategory(string keyId, RegistryDataKey key) + : base(keyId, key) + { + } + + internal static ObjectTokenCategory Create(string sCategoryId) + { + RegistryDataKey key = RegistryDataKey.Open(sCategoryId, true); + return new ObjectTokenCategory(sCategoryId, key); + } + + #endregion + + #region internal Methods + + internal ObjectToken OpenToken(string keyName) + { + // Check if the token is for a voice + string tokenName = keyName; + if (!string.IsNullOrEmpty(tokenName) && tokenName.IndexOf("HKEY_", StringComparison.Ordinal) != 0) + { + tokenName = string.Format(CultureInfo.InvariantCulture, @"{0}\Tokens\{1}", Id, tokenName); + } + + return ObjectToken.Open(null, tokenName, false); + } + + internal IList FindMatchingTokens(string requiredAttributes, string optionalAttributes) + { + IList objectTokenList = new List(); + ISpObjectTokenCategory category = null; + IEnumSpObjectTokens enumTokens = null; + + try + { + // Note - enumerated tokens should not be torn down/disposed by us (see SpInitTokenList in spuihelp.h) + category = (ISpObjectTokenCategory)new SpObjectTokenCategory(); + category.SetId(_sKeyId, false); + category.EnumTokens(requiredAttributes, optionalAttributes, out enumTokens); + + uint tokenCount; + enumTokens.GetCount(out tokenCount); + for (uint index = 0; index < tokenCount; ++index) + { + ISpObjectToken spObjectToken = null; + + enumTokens.Item(index, out spObjectToken); + ObjectToken objectToken = ObjectToken.Open(spObjectToken); + objectTokenList.Add(objectToken); + } + } + finally + { + if (enumTokens != null) + { + Marshal.ReleaseComObject(enumTokens); + } + if (category != null) + { + Marshal.ReleaseComObject(category); + } + } + + return objectTokenList; + } + + #region IEnumerable implementation + + IEnumerator IEnumerable.GetEnumerator() + { + IList objectTokenList = FindMatchingTokens(null, null); + + foreach (ObjectToken objectToken in objectTokenList) + { + yield return objectToken; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)this).GetEnumerator(); + } + + #endregion + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/ObjectToken/RegistryDataKey.cs b/src/libraries/System.Speech/src/Internal/ObjectToken/RegistryDataKey.cs new file mode 100644 index 00000000000000..0f58c5b99dbb0b --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/ObjectToken/RegistryDataKey.cs @@ -0,0 +1,539 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.Speech.Internal.SapiInterop; +using Microsoft.Win32; +using Microsoft.Win32.SafeHandles; + +namespace System.Speech.Internal.ObjectTokens +{ + [DebuggerDisplay("{Name}")] + internal class RegistryDataKey : ISpDataKey, IEnumerable, IDisposable + { + #region Constructors + + protected RegistryDataKey(string fullPath, SafeRegistryHandle regHandle) + { + ISpRegDataKey regKey = (ISpRegDataKey)new SpDataKey(); + SAPIErrorCodes hresult = (SAPIErrorCodes)regKey.SetKey(regHandle, false); + regHandle?.Close(); + if ((hresult != SAPIErrorCodes.S_OK) && (hresult != SAPIErrorCodes.SPERR_ALREADY_INITIALIZED)) + { + throw new InvalidOperationException(); + } + + _sapiRegKey = regKey; + _sKeyId = fullPath; + _disposeSapiKey = true; + } + + protected RegistryDataKey(string fullPath, RegistryKey managedRegKey) : + this(fullPath, managedRegKey.Handle) + { + } + + protected RegistryDataKey(string fullPath, RegistryDataKey copyKey) + { + this._sKeyId = fullPath; + this._sapiRegKey = copyKey._sapiRegKey; + this._disposeSapiKey = copyKey._disposeSapiKey; + } + + protected RegistryDataKey(string fullPath, ISpDataKey copyKey, bool shouldDispose) + { + this._sKeyId = fullPath; + this._sapiRegKey = copyKey; + this._disposeSapiKey = shouldDispose; + } + + protected RegistryDataKey(ISpObjectToken sapiToken) : + this(GetTokenIdFromToken(sapiToken), sapiToken, false) + { + } + + internal static RegistryDataKey Open(string registryPath, bool fCreateIfNotExist) + { + // Sanity check + if (string.IsNullOrEmpty(registryPath)) + { + return null; + } + + // If the last character is a '\', get rid of it + registryPath = registryPath.Trim(new char[] { '\\' }); + + string rootPath = GetFirstKeyAndParseRemainder(ref registryPath); + + // Get the native registry handle and subkey path + SafeRegistryHandle regHandle = RootHKEYFromRegPath(rootPath); + + // If there's no root, we can't do anything. + if (regHandle == null || regHandle.IsInvalid) + { + return null; + } + + RegistryDataKey rootKey = new(rootPath, regHandle); + + // If the path was only a root, we can directly return the key; otherwise, + // we need to open a subkey and return that. + if (string.IsNullOrEmpty(registryPath)) + { + return rootKey; + } + else + { + RegistryDataKey subKey = OpenSubKey(rootKey, registryPath, fCreateIfNotExist); + return subKey; + } + } + + internal static RegistryDataKey Create(string keyId, RegistryKey hkey) + { + return new RegistryDataKey(keyId, hkey); + } + + private static RegistryDataKey OpenSubKey(RegistryDataKey baseKey, string registryPath, bool createIfNotExist) + { + if (string.IsNullOrEmpty(registryPath) || null == baseKey) + { + return null; + } + + string nextKeyPath = GetFirstKeyAndParseRemainder(ref registryPath); + + RegistryDataKey nextKey = createIfNotExist ? baseKey.CreateKey(nextKeyPath) : baseKey.OpenKey(nextKeyPath); + + if (string.IsNullOrEmpty(registryPath)) + { + return nextKey; + } + else + { + RegistryDataKey recursiveKey = OpenSubKey(nextKey, registryPath, createIfNotExist); + return recursiveKey; + } + } + + private static string GetTokenIdFromToken(ISpObjectToken sapiToken) + { + IntPtr sapiTokenId = IntPtr.Zero; + string tokenId; + + try + { + sapiToken.GetId(out sapiTokenId); + tokenId = Marshal.PtrToStringUni(sapiTokenId); + } + finally + { + Marshal.FreeCoTaskMem(sapiTokenId); + } + + return tokenId; + } + + /// + /// Needed by IEnumerable + /// + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + #endregion + + #region internal Methods + + #region ISpDataKey Implementation + + // ISpDataKey Methods + + /// + /// Writes the specified binary data to the registry. + /// + [PreserveSig] + public int SetData( + [MarshalAs(UnmanagedType.LPWStr)] string valueName, + [MarshalAs(UnmanagedType.SysUInt)] uint cbData, + [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] byte[] data) + { + return _sapiRegKey.SetData(valueName, cbData, data); + } + + /// + /// Reads the specified binary data from the registry. + /// + [PreserveSig] + public int GetData( + [MarshalAs(UnmanagedType.LPWStr)] string valueName, + [MarshalAs(UnmanagedType.SysUInt)] ref uint pcbData, + [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1), Out] byte[] data) + { + return _sapiRegKey.GetData(valueName, ref pcbData, data); + } + + /// + /// Writes the specified string value from the registry. If valueName + /// is NULL then the default value of the registry key is read. + /// + [PreserveSig] + public int SetStringValue( + [MarshalAs(UnmanagedType.LPWStr)] string valueName, + [MarshalAs(UnmanagedType.LPWStr)] string value) + { + return _sapiRegKey.SetStringValue(valueName, value); + } + + /// + /// Reads the specified string value to the registry. If valueName is + /// NULL then the default value of the registry key is read. + /// + [PreserveSig] + public int GetStringValue( + [MarshalAs(UnmanagedType.LPWStr)] string valueName, + [MarshalAs(UnmanagedType.LPWStr)] out string value) + { + return _sapiRegKey.GetStringValue(valueName, out value); + } + + /// + /// Writes the specified DWORD to the registry. + /// + [PreserveSig] + public int SetDWORD( + [MarshalAs(UnmanagedType.LPWStr)] string valueName, + [MarshalAs(UnmanagedType.SysUInt)] uint value) + { + return _sapiRegKey.SetDWORD(valueName, value); + } + + /// + /// Reads the specified DWORD from the registry. + /// + [PreserveSig] + public int GetDWORD([MarshalAs(UnmanagedType.LPWStr)] string valueName, ref uint pdwValue) + { + return _sapiRegKey.GetDWORD(valueName, ref pdwValue); + } + + /// + /// Opens a sub-key and returns a new object which supports SpDataKey + /// for the specified sub-key. + /// + [PreserveSig] + public int OpenKey([MarshalAs(UnmanagedType.LPWStr)] string subKeyName, out ISpDataKey ppSubKey) + { + return _sapiRegKey.OpenKey(subKeyName, out ppSubKey); + } + + /// + /// Creates a sub-key and returns a new object which supports SpDataKey + /// for the specified sub-key. + /// + [PreserveSig] + public int CreateKey([MarshalAs(UnmanagedType.LPWStr)] string subKeyName, out ISpDataKey ppSubKey) + { + return _sapiRegKey.CreateKey(subKeyName, out ppSubKey); + } + + /// + /// Deletes the specified key. + /// + [PreserveSig] + public int DeleteKey([MarshalAs(UnmanagedType.LPWStr)] string subKeyName) + { + return _sapiRegKey.DeleteKey(subKeyName); + } + + /// + /// Deletes the specified value from the key. + /// + [PreserveSig] + public int DeleteValue([MarshalAs(UnmanagedType.LPWStr)] string valueName) + { + return _sapiRegKey.DeleteValue(valueName); + } + + /// + /// Retrieve a key name by index + /// + [PreserveSig] + public int EnumKeys(uint index, [MarshalAs(UnmanagedType.LPWStr)] out string ppszSubKeyName) + { + return _sapiRegKey.EnumKeys(index, out ppszSubKeyName); + } + + /// + /// Retrieves a key value by index + /// + [PreserveSig] + public int EnumValues(uint index, [MarshalAs(UnmanagedType.LPWStr)] out string valueName) + { + return _sapiRegKey.EnumValues(index, out valueName); + } + + #endregion + + /// + /// Full path and name for the key + /// + internal string Id + { + get + { + return _sKeyId; + } + } + + /// + /// Key Name (no path) + /// + internal string Name + { + get + { + int iPosSlash = _sKeyId.LastIndexOf('\\'); + return _sKeyId.Substring(iPosSlash + 1); + } + } + + // Disable parameter validation check + + /// + /// Reads the specified string value to the registry. If valueName is + /// NULL then the default value of the registry key is read. + /// + internal bool TryGetString(string valueName, out string value) + { + if (null == valueName) + { + valueName = string.Empty; + } + + return 0 == GetStringValue(valueName, out value); + } + + /// + /// Opens a sub-key and returns a new object which supports SpDataKey + /// for the specified sub-key. + /// + internal bool HasValue(string valueName) + { + string unusedString; + uint unusedUint = 0; + byte[] unusedBytes = Array.Empty(); + + return ( + 0 == _sapiRegKey.GetStringValue(valueName, out unusedString) || + 0 == _sapiRegKey.GetDWORD(valueName, ref unusedUint) || + 0 == _sapiRegKey.GetData(valueName, ref unusedUint, unusedBytes)); + } + + /// + /// Reads the specified DWORD from the registry. + /// + internal bool TryGetDWORD(string valueName, ref uint value) + { + if (string.IsNullOrEmpty(valueName)) + { + return false; + } + + return 0 == _sapiRegKey.GetDWORD(valueName, ref value); + } + + /// + /// Opens a sub-key and returns a new object which supports SpDataKey + /// for the specified sub-key. + /// + internal RegistryDataKey OpenKey(string keyName) + { + Helpers.ThrowIfEmptyOrNull(keyName, nameof(keyName)); + + ISpDataKey sapiSubKey; + if (0 != _sapiRegKey.OpenKey(keyName, out sapiSubKey)) + { + return null; + } + else + { + return new RegistryDataKey(_sKeyId + @"\" + keyName, sapiSubKey, true); + } + } + + /// + /// Creates a sub-key and returns a new object which supports SpDataKey + /// for the specified sub-key. + /// + internal RegistryDataKey CreateKey(string keyName) + { + Helpers.ThrowIfEmptyOrNull(keyName, nameof(keyName)); + + ISpDataKey sapiSubKey; + + if (0 != _sapiRegKey.CreateKey(keyName, out sapiSubKey)) + { + return null; + } + else + { + return new RegistryDataKey(_sKeyId + @"\" + keyName, sapiSubKey, true); + } + } + + /// + /// returns the name for all the values in this registry entry + /// + internal string[] GetValueNames() + { + List valueNames = new(); + + string valueName; + + for (uint i = 0; 0 == _sapiRegKey.EnumValues(i, out valueName); i++) + { + valueNames.Add(valueName); + } + + return valueNames.ToArray(); + } + + #region IEnumerable implementation + + IEnumerator IEnumerable.GetEnumerator() + { + string childKeyName = string.Empty; + + for (uint i = 0; 0 == _sapiRegKey.EnumKeys(i, out childKeyName); i++) + { + yield return this.CreateKey(childKeyName); + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)this).GetEnumerator(); + } + + #endregion + + #endregion + + #region Protected Methods + protected virtual void Dispose(bool disposing) + { + if (disposing && _sapiRegKey != null && _disposeSapiKey) + { + Marshal.ReleaseComObject(_sapiRegKey); + _sapiRegKey = null; + } + } + + #endregion + + #region Internal Fields + + internal string _sKeyId; + + internal ISpDataKey _sapiRegKey; + + internal bool _disposeSapiKey; + + #endregion + + #region Private Methods + + private static SafeRegistryHandle RootHKEYFromRegPath(string rootPath) + { + RegistryKey rootKey = RegKeyFromRootPath(rootPath); + + if (null == rootKey) + { + return null; + } + + return rootKey.Handle; + } + + private static string GetFirstKeyAndParseRemainder(ref string registryPath) + { + int index = registryPath.IndexOf('\\'); + + string firstKey; + + if (index >= 0) + { + firstKey = registryPath.Substring(0, index); + registryPath = registryPath.Substring(index + 1, registryPath.Length - index - 1); + } + else + { + firstKey = registryPath; + registryPath = string.Empty; + } + + return firstKey; + } + + private static RegistryKey RegKeyFromRootPath(string rootPath) + { + RegistryKey[] roots = new RegistryKey[] { + Registry.ClassesRoot, + Registry.LocalMachine, + Registry.CurrentUser, + Registry.CurrentConfig + }; + + foreach (RegistryKey key in roots) + { + if (key.Name.Equals(rootPath, StringComparison.OrdinalIgnoreCase)) + { + return key; + } + } + + return null; + } + + #endregion + + #region private Types + + internal enum SAPIErrorCodes + { + STG_E_FILENOTFOUND = -2147287038, // 0x80030002 + SPERR_ALREADY_INITIALIZED = -2147201022, // 0x80045002 + SPERR_UNSUPPORTED_FORMAT = -2147201021, // 0x80045003 + SPERR_DEVICE_BUSY = -2147201018, // 0x80045006 + SPERR_DEVICE_NOT_SUPPORTED = -2147201017, // 0x80045007 + SPERR_DEVICE_NOT_ENABLED = -2147201016, // 0x80045008 + SPERR_NO_DRIVER = -2147201015, // 0x80045009 + SPERR_TOO_MANY_GRAMMARS = -2147200990, // 0x80045022 + SPERR_INVALID_IMPORT = -2147200988, // 0x80045024 + SPERR_AUDIO_BUFFER_OVERFLOW = -2147200977, // 0x8004502F + SPERR_NO_AUDIO_DATA = -2147200976, // 0x80045030 + SPERR_NO_MORE_ITEMS = -2147200967, // 0x80045039 + SPERR_NOT_FOUND = -2147200966, // 0x8004503A + SPERR_GENERIC_MMSYS_ERROR = -2147200964, // 0x8004503C + SPERR_NOT_TOPLEVEL_RULE = -2147200940, // 0x80045054 + SPERR_NOT_ACTIVE_SESSION = -2147200925, // 0x80045063 + SPERR_SML_GENERATION_FAIL = -2147200921, // 0x80045067 + SPERR_SHARED_ENGINE_DISABLED = -2147200906, // 0x80045076 + SPERR_RECOGNIZER_NOT_FOUND = -2147200905, // 0x80045077 + SPERR_AUDIO_NOT_FOUND = -2147200904, // 0x80045078 + S_OK = 0, // 0x00000000 + S_FALSE = 1, // 0x00000001 + E_INVALIDARG = -2147024809, // 0x80070057 + SP_NO_RULES_TO_ACTIVATE = 282747, // 0x0004507B + ERROR_MORE_DATA = 0x50EA, + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/ObjectToken/SAPICategories.cs b/src/libraries/System.Speech/src/Internal/ObjectToken/SAPICategories.cs new file mode 100644 index 00000000000000..057ded55c2ff1d --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/ObjectToken/SAPICategories.cs @@ -0,0 +1,329 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Globalization; +using System.Speech.Internal.Synthesis; +using Microsoft.Win32; + +namespace System.Speech.Internal.ObjectTokens +{ + internal static class SAPICategories + { + #region internal Methods + + internal static ObjectToken DefaultToken(string category) + { + Helpers.ThrowIfEmptyOrNull(category, nameof(category)); + + ObjectToken token = null; + // Try first to get the preferred token for the current user + token = DefaultToken(@"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\" + category, _defaultTokenIdValueName); + + // IF failed try to get it for the local machine + if (token == null) + { + token = DefaultToken(SpeechRegistryKey + category, _defaultTokenIdValueName); + } + + return token; + } + + /// + /// Retrieve the Multimedia device ID. If the entry 'DefaultTokenId' is defined in the registry + /// under 'HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\AudioOutput' then a multimedia device is looked + /// for with this token. Otherwise, picks the default WAVE_MAPPER is returned. + /// + internal static int DefaultDeviceOut() + { + int device = -1; + using (ObjectTokenCategory tokenCategory = ObjectTokenCategory.Create(@"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\AudioOutput")) + { + if (tokenCategory != null) + { + string deviceName; + if (tokenCategory.TryGetString(_defaultTokenIdValueName, out deviceName)) + { + int pos = deviceName.IndexOf('\\'); + if (pos > 0 && pos < deviceName.Length) + { + using (RegistryDataKey deviceKey = RegistryDataKey.Create(deviceName.Substring(pos + 1), Registry.LocalMachine)) + { + if (deviceKey != null) + { + device = AudioDeviceOut.GetDevicedId(deviceKey.Name); + } + } + } + } + } + } + + return device; + } + + #endregion + + private const string SpeechRegistryKey = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\"; + + internal const string CurrentUserVoices = @"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\Voices"; + + #region internal Fields + + internal const string Recognizers = SpeechRegistryKey + "Recognizers"; + internal const string Voices = SpeechRegistryKey + "Voices"; + + internal const string AudioIn = SpeechRegistryKey + "AudioInput"; + + #endregion + + #region Private Methods + + private static ObjectToken DefaultToken(string category, string defaultTokenIdValueName) + { + ObjectToken token = GetPreference(category, defaultTokenIdValueName); + + if (token != null) + { + // Now do special check to see if we have another token from the same vendor with a + // more recent version - if so use that. + + // First lets change the category to LOCAL_MACHINE + using (ObjectTokenCategory tokenCategory = ObjectTokenCategory.Create(category)) + { + if (tokenCategory != null) + { + if (token != null) + { + foreach (ObjectToken tokenSeed in (IEnumerable)tokenCategory) + { + token = GetHighestTokenVersion(token, tokenSeed, s_asVersionDefault); + } + } + else + { + // If there wasn't a default, just pick one with the proper culture + string[] sCultureId = new string[] { string.Format(CultureInfo.InvariantCulture, "{0:x}", CultureInfo.CurrentUICulture.LCID) }; + + foreach (ObjectToken tokenSeed in (IEnumerable)tokenCategory) + { + if (tokenSeed.MatchesAttributes(sCultureId)) + { + token = tokenSeed; + break; + } + } + + // Still nothing, picks the first one + if (token == null) + { + foreach (ObjectToken tokenSeed in (IEnumerable)tokenCategory) + { + token = tokenSeed; + break; + } + } + } + } + } + } + + return token; + } + + /// + /// Try to get the preferred token for a category + /// + private static ObjectToken GetPreference(string category, string defaultLocation) + { + ObjectToken token = null; + + using (ObjectTokenCategory tokenCategory = ObjectTokenCategory.Create(category)) + { + if (tokenCategory != null) + { + string sToken; + if (tokenCategory.TryGetString(defaultLocation, out sToken)) + { + token = tokenCategory.OpenToken(sToken); + } + } + } + return token; + } + + /// + /// Takes two tokens and compares them using version info. + /// Note only tokens that match on Vendor, ProductLine, Language get compared, the pfDidCompare flag indicates this + /// + private static int CompareTokenVersions(ObjectToken token1, ObjectToken token2, out bool pfDidCompare) + { + pfDidCompare = false; + + RegistryDataKey attributes1 = null; + RegistryDataKey attributes2 = null; + attributes1 = token1.Attributes; + attributes2 = token2.Attributes; + + // get vendor, version, language, product line for token 1 + if (attributes1 != null) + { + string vendor1; + string productLine1; + string version1; + string language1; + attributes1.TryGetString("Vendor", out vendor1); + attributes1.TryGetString("ProductLine", out productLine1); + attributes1.TryGetString("Version", out version1); + attributes1.TryGetString("Language", out language1); + + // get vendor, version, language, product line for token 2 + if (attributes2 != null) + { + string vendor2; + string productLine2; + string version2; + string language2; + attributes2.TryGetString("Vendor", out vendor2); + attributes2.TryGetString("ProductLine", out productLine2); + attributes2.TryGetString("Version", out version2); + attributes2.TryGetString("Language", out language2); + + if (((string.IsNullOrEmpty(vendor1) && string.IsNullOrEmpty(vendor2)) || (!string.IsNullOrEmpty(vendor1) && !string.IsNullOrEmpty(vendor2) && vendor1 == vendor2)) && + ((string.IsNullOrEmpty(productLine1) && string.IsNullOrEmpty(productLine2)) || (!string.IsNullOrEmpty(productLine1) && !string.IsNullOrEmpty(productLine2) && productLine1 == productLine2)) && + ((string.IsNullOrEmpty(language1) && string.IsNullOrEmpty(language2)) || (!string.IsNullOrEmpty(language1) && !string.IsNullOrEmpty(language2) && language1 == language2))) + { + pfDidCompare = true; + return CompareVersions(version1, version2); + } + else + { + return -1; + } + } + else + { + return 1; + } + } + else + { + return -1; + } + } + + /// + /// Takes two version number strings and compares them. + /// If V1 or V2 invalid format then the valid string is returned as being greater. + /// + private static int CompareVersions(string sV1, string sV2) + { + ushort[] v1 = new ushort[4]; + ushort[] v2 = new ushort[4]; + + bool fV1OK = ParseVersion(sV1, v1); + bool fV2OK = ParseVersion(sV2, v2); + + if (!fV1OK && !fV2OK) + { + return 0; + } + else if (fV1OK && !fV2OK) + { + return 1; + } + else if (!fV1OK && fV2OK) + { + return -1; + } + else + { + for (int ul = 0; ul < 4; ul++) + { + if (v1[ul] > v2[ul]) + { + return 1; + } + else if (v1[ul] < v2[ul]) + { + return -1; + } + } + } + + return 0; + } + + /// + /// Takes a version number string, checks it is valid, and fills the four + /// values in the Version array. Valid version stings are "a[.b[.c[.d]]]", + /// where a,b,c,d are +ve integers, 0 . 9999. If b,c,d are missing those + /// version values are set as zero. + /// + private static bool ParseVersion(string s, ushort[] Version) + { + bool fIsValid = true; + Version[0] = Version[1] = Version[2] = Version[3] = 0; + + if (string.IsNullOrEmpty(s)) + { + fIsValid = false; + } + else + { + int iPosPrev = 0; + for (int i = 0; i < 4 && iPosPrev < s.Length; i++) + { + int iPosDot = s.IndexOf('.', iPosPrev); + + // read +ve integer + string sInteger = s.Substring(iPosPrev, iPosDot); + ushort val; + + if (!ushort.TryParse(sInteger, out val) || val > 9999) + { + fIsValid = false; + break; + } + Version[i] = val; + + iPosPrev = iPosDot + 1; + } + + if (fIsValid && iPosPrev != s.Length) + { + fIsValid = false; + } + } + return fIsValid; + } + + private static ObjectToken GetHighestTokenVersion(ObjectToken token, ObjectToken tokenSeed, string[] criterias) + { + // if override and higher version - new preferred. + bool fOverride = tokenSeed.MatchesAttributes(criterias); + + if (fOverride) + { + bool fDidCompare; + int lRes = CompareTokenVersions(tokenSeed, token, out fDidCompare); + + if (fDidCompare && lRes > 0) + { + token = tokenSeed; + } + } + return token; + } + + #endregion + + #region private Fields + + private const string _defaultTokenIdValueName = "DefaultTokenId"; + + private static readonly string[] s_asVersionDefault = new string[] { "VersionDefault" }; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/PhonemeConverter.cs b/src/libraries/System.Speech/src/Internal/PhonemeConverter.cs new file mode 100644 index 00000000000000..8196685d9b78ad --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/PhonemeConverter.cs @@ -0,0 +1,280 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Text; + +namespace System.Speech.Internal +{ + internal sealed class PhonemeConverter + { + #region Constructors + + private PhonemeConverter(PhoneMap phoneMap) + { + _phoneMap = phoneMap; + } + + #endregion + + #region Internal methods + + /// + /// Returns the cached version of the universal phone converter. + /// + internal static PhonemeConverter UpsConverter + { + get + { + return s_upsConverter; + } + } + + /// + /// Convert a pronunciation string to code points + /// + internal static string ConvertPronToId(string pronunciation, int lcid) + { + PhonemeConverter phoneConv = UpsConverter; + foreach (PhoneMap phoneMap in s_phoneMaps) + { + if (phoneMap._lcid == lcid) + { + phoneConv = new PhonemeConverter(phoneMap); + } + } + + string phonemes = phoneConv.ConvertPronToId(pronunciation); + if (string.IsNullOrEmpty(phonemes)) + { + throw new FormatException(SR.Get(SRID.EmptyPronunciationString)); + } + return phonemes; + } + + /// + /// Convert an internal phone string to Id code string + /// The internal phones are space separated and may have a space + /// at the end. + /// + internal string ConvertPronToId(string sPhone) // Internal phone string + { + // remove the white spaces + sPhone = sPhone.Trim(Helpers._achTrimChars); + + // Empty Phoneme string + if (string.IsNullOrEmpty(sPhone)) + { + return string.Empty; + } + + int iPos = 0, iPosNext; + int cLen = sPhone.Length; + StringBuilder pidArray = new(cLen); + PhoneId phoneIdRef = new(); + + while (iPos < cLen) + { + iPosNext = sPhone.IndexOf(' ', iPos + 1); + if (iPosNext < 0) + { + iPosNext = cLen; + } + + string sCur = sPhone.Substring(iPos, iPosNext - iPos); + string sCurUpper = sCur.ToUpperInvariant(); + + // Search for this phone + phoneIdRef._phone = sCurUpper; + int index = Array.BinarySearch(_phoneMap._phoneIds, phoneIdRef, phoneIdRef); + if (index >= 0) + { + foreach (char ch in _phoneMap._phoneIds[index]._cp) + { + pidArray.Append(ch); + } + } + else + { + // phoneme not found error out + throw new FormatException(SR.Get(SRID.InvalidPhoneme, sCur)); + } + + iPos = iPosNext; + + // skip over the spaces + while (iPos < cLen && sPhone[iPos] == ' ') + { + iPos++; + } + } + + return pidArray.ToString(); + } /* CSpPhoneConverter::PhoneToId */ + + internal static void ValidateUpsIds(string ids) + { + ValidateUpsIds(ids.ToCharArray()); + } + + internal static void ValidateUpsIds(char[] ids) + { + foreach (char id in ids) + { + if (Array.BinarySearch(s_updIds, id) < 0) + { + throw new FormatException(SR.Get(SRID.InvalidPhoneme, id)); + } + } + } + + #endregion + + #region Private Methods + + /// + /// Builds the Phoneme maps from the compressed form. + /// + private static PhoneMap[] DecompressPhoneMaps(PhoneMapCompressed[] pmComps) + { + PhoneMap[] phoneMaps = new PhoneMap[pmComps.Length]; + + // Build the phoneme maps + for (int i = 0; i < pmComps.Length; i++) + { + PhoneMapCompressed pmCompressed = pmComps[i]; + PhoneMap pm = phoneMaps[i] = new PhoneMap(); + pm._lcid = pmCompressed._lcid; + pm._phoneIds = new PhoneId[pmCompressed._count]; + + int posPhone = 0; + int posCp = 0; + for (int j = 0; j < pm._phoneIds.Length; j++) + { + pm._phoneIds[j] = new PhoneId(); + // Count the number of chars in the phoneme string + int lastPhone; + int multi_phones = 0; + for (lastPhone = posPhone; pmCompressed._phones[lastPhone] != 0; lastPhone++) + { + // All phoneme code points are assumed to be of length == 1 + // if the length is greater, then a marker of -1 is set for each additional code points + if (pmCompressed._phones[lastPhone] == unchecked((byte)-1)) + { + multi_phones++; + } + } + + // Build the phoneme string + int strLen = lastPhone - posPhone - multi_phones; + char[] phone = new char[strLen]; + for (int l = 0; l < strLen; l++) + { + phone[l] = (char)pmCompressed._phones[posPhone++]; + } + + // Update the index for the next phoneme string + posPhone += multi_phones + 1; + + // Copy the code points for this phoneme + pm._phoneIds[j]._phone = new string(phone); + pm._phoneIds[j]._cp = new char[multi_phones + 1]; + for (int l = 0; l < pm._phoneIds[j]._cp.Length; l++) + { + pm._phoneIds[j]._cp[l] = pmCompressed._cps[posCp++]; + } + } + + // Ensure that the table is built properly + System.Diagnostics.Debug.Assert(posPhone == pmCompressed._phones.Length); + System.Diagnostics.Debug.Assert(posCp == pmCompressed._cps.Length); + } + return phoneMaps; + } + + // Do not delete generation of the phone conversion table from the registry entries + + #endregion + + #region Private Fields + + private PhoneMap _phoneMap; + + private static PhoneMapCompressed[] s_phoneMapsCompressed = new PhoneMapCompressed[] + { + new PhoneMapCompressed ( 0x0, 207, new byte [] {46, 0, 95, 33, 0, 95, 38, 0, 95, 44, 0, 95, 46, 0, 95, 63, 0, 95, 94, 0, 95, 124, 0, 95, 124, 124, 0, 95, 83, 0, 43, 0, 65, 0, 65, 65, 0, 65, 68, 86, 0, 65, 69, 0, 65, 69, 88, 0, 65, 72, 0, 65, 73, 255, 255, 0, 65, 78, 255, 0, 65, 79, 0, 65, 79, 69, 0, 65, 79, 88, 255, 255, 0, 65, 80, 73, 0, 65, 83, 80, 0, 65, 84, 82, 0, 65, 85, 255, 255, 0, 65, 88, 0, 65, 88, 82, 0, 66, 0, 66, 66, 0, 66, 72, 0, 66, 73, 77, 0, 66, 86, 65, 0, 66, 86, 68, 0, 67, 0, 67, 67, 255, 255, 0, 67, 67, 50, 0, 67, 67, 75, 0, 67, 69, 78, 0, 67, 72, 255, 255, 0, 67, 72, 50, 0, 67, 74, 0, 67, 84, 0, 67, 86, 68, 0, 68, 0, 68, 69, 78, 0, 68, 72, 0, 68, 73, 77, 0, 68, 82, 0, 68, 88, 0, 68, 88, 82, 0, 68, 90, 255, 255, 0, 68, 90, 50, 0, 69, 0, 69, 72, 0, 69, 72, 88, 255, 255, 0, 69, 73, 255, 255, 0, 69, 74, 67, 0, 69, 78, 255, 0, 69, 82, 0, 69, 82, 82, 0, 69, 83, 72, 0, 69, 84, 0, 69, 85, 0, 69, 88, 0, 69, 90, 72, 0, 70, 0, 71, 0, 71, 50, 0, 71, 65, 0, 71, 72, 0, 71, 73, 77, 0, 71, 76, 0, 71, 84, 0, 72, 0, 72, 71, 0, 72, 72, 0, 72, 76, 71, 0, 72, 90, 0, 73, 0, 73, 72, 0, 73, 88, 0, 73, 89, 88, 255, 255, 0, 74, 0, 74, 67, 255, 255, 0, 74, 67, 50, 0, 74, 68, 0, 74, 72, 255, 255, 0, 74, 72, 50, 0, 74, 73, 77, 0, 74, 74, 255, 255, 0, 75, 0, 76, 0, 76, 65, 66, 0, 76, 65, 77, 0, 76, 65, 82, 0, 76, 67, 75, 0, 76, 67, 75, 50, 0, 76, 71, 0, 76, 72, 0, 76, 74, 0, 76, 76, 65, 0, 76, 78, 71, 0, 76, 79, 87, 0, 76, 82, 0, 76, 82, 68, 0, 76, 83, 72, 0, 76, 84, 0, 77, 0, 77, 67, 78, 0, 77, 70, 0, 77, 82, 68, 0, 78, 0, 78, 65, 82, 0, 78, 65, 83, 0, 78, 67, 75, 0, 78, 67, 75, 50, 0, 78, 67, 75, 51, 0, 78, 71, 0, 78, 74, 0, 78, 82, 0, 78, 83, 82, 0, 78, 83, 89, 0, 79, 0, 79, 69, 0, 79, 69, 78, 255, 0, 79, 73, 255, 255, 0, 79, 78, 255, 0, 79, 85, 0, 79, 87, 88, 255, 255, 0, 79, 88, 0, 80, 0, 80, 65, 76, 0, 80, 67, 75, 0, 80, 70, 255, 255, 0, 80, 72, 0, 80, 72, 82, 0, 81, 0, 81, 68, 0, 81, 72, 0, 81, 73, 77, 0, 81, 78, 0, 81, 79, 77, 0, 81, 81, 0, 81, 84, 0, 82, 0, 82, 65, 0, 82, 65, 73, 0, 82, 69, 84, 0, 82, 72, 0, 82, 72, 79, 0, 82, 72, 90, 0, 82, 82, 0, 82, 84, 69, 0, 82, 84, 82, 0, 83, 0, 83, 49, 0, 83, 50, 0, 83, 67, 0, 83, 72, 0, 83, 72, 67, 0, 83, 72, 88, 0, 83, 82, 0, 83, 89, 76, 0, 84, 0, 84, 45, 0, 84, 43, 0, 84, 61, 0, 84, 49, 0, 84, 50, 0, 84, 51, 0, 84, 52, 0, 84, 53, 0, 84, 67, 75, 0, 84, 67, 75, 50, 0, 84, 72, 0, 84, 82, 0, 84, 83, 255, 255, 0, 84, 83, 50, 0, 84, 83, 82, 255, 255, 0, 85, 0, 85, 72, 0, 85, 82, 0, 85, 85, 0, 85, 87, 88, 255, 255, 0, 85, 89, 88, 255, 255, 0, 86, 0, 86, 65, 0, 86, 67, 68, 0, 86, 69, 76, 0, 86, 76, 83, 0, 86, 80, 72, 0, 86, 83, 76, 0, 87, 0, 87, 72, 0, 87, 74, 0, 88, 0, 88, 83, 72, 0, 88, 83, 84, 0, 89, 0, 89, 72, 0, 89, 88, 0, 90, 0, 90, 67, 0, 90, 72, 0, 90, 72, 74, 0, 90, 82, 0}, new char [] {(char) 46, (char) 1, (char) 2, (char) 3, (char) 8600, (char) 8599, (char) 8255, (char) 124, (char) 8214, (char) 4, (char) 865, (char) 97, (char) 593, (char) 799, (char) 230, (char) 592, (char) 652, (char) 97, (char) 865, (char) 105, (char) 97, (char) 771, (char) 596, (char) 630, (char) 596, (char) 865, (char) 601, (char) 826, (char) 688, (char) 792, (char) 97, (char) 865, (char) 650, (char) 601, (char) 602, (char) 98, (char) 665, (char) 946, (char) 595, (char) 689, (char) 804, (char) 231, (char) 1856, (char) 865, (char) 597, (char) 680, (char) 450, (char) 776, (char) 116, (char) 865, (char) 643, (char) 679, (char) 669, (char) 99, (char) 816, (char) 100, (char) 810, (char) 240, (char) 599, (char) 598, (char) 638, (char) 637, (char) 100, (char) 865, (char) 122, (char) 675, (char) 101, (char) 603, (char) 603, (char) 865, (char) 601, (char) 101, (char) 865, (char) 105, (char) 700, (char) 101, (char) 771, (char) 604, (char) 605, (char) 668, (char) 673, (char) 248, (char) 600, (char) 674, (char) 102, (char) 103, (char) 609, (char) 624, (char) 611, (char) 608, (char) 671, (char) 660, (char) 104, (char) 661, (char) 295, (char) 721, (char) 614, (char) 105, (char) 618, (char) 616, (char) 105, (char) 865, (char) 601, (char) 106, (char) 100, (char) 865, (char) 657, (char) 677, (char) 607, (char) 100, (char) 865, (char) 658, (char) 676, (char) 644, (char) 106, (char) 865, (char) 106, (char) 107, (char) 108, (char) 695, (char) 827, (char) 737, (char) 449, (char) 662, (char) 619, (char) 622, (char) 654, (char) 828, (char) 720, (char) 798, (char) 621, (char) 796, (char) 620, (char) 634, (char) 109, (char) 829, (char) 625, (char) 825, (char) 110, (char) 794, (char) 771, (char) 33, (char) 451, (char) 663, (char) 331, (char) 626, (char) 627, (char) 8319, (char) 815, (char) 111, (char) 339, (char) 339, (char) 771, (char) 596, (char) 865, (char) 105, (char) 111, (char) 771, (char) 612, (char) 111, (char) 865, (char) 601, (char) 629, (char) 112, (char) 690, (char) 664, (char) 112, (char) 865, (char) 102, (char) 632, (char) 740, (char) 594, (char) 610, (char) 967, (char) 667, (char) 628, (char) 672, (char) 640, (char) 113, (char) 635, (char) 633, (char) 797, (char) 817, (char) 641, (char) 734, (char) 692, (char) 114, (char) 800, (char) 793, (char) 115, (char) 712, (char) 716, (char) 597, (char) 643, (char) 646, (char) 615, (char) 642, (char) 809, (char) 116, (char) 8595, (char) 8593, (char) 8594, (char) 783, (char) 768, (char) 772, (char) 769, (char) 779, (char) 448, (char) 647, (char) 952, (char) 648, (char) 116, (char) 865, (char) 115, (char) 678, (char) 116, (char) 865, (char) 642, (char) 117, (char) 650, (char) 606, (char) 623, (char) 117, (char) 865, (char) 601, (char) 121, (char) 865, (char) 601, (char) 118, (char) 651, (char) 812, (char) 736, (char) 778, (char) 820, (char) 805, (char) 119, (char) 653, (char) 613, (char) 120, (char) 728, (char) 774, (char) 121, (char) 655, (char) 649, (char) 122, (char) 657, (char) 658, (char) 659, (char) 656}), + new PhoneMapCompressed ( 0x404, 52, new byte [] {48, 48, 50, 49, 0, 48, 48, 50, 54, 0, 48, 48, 50, 65, 0, 48, 48, 50, 66, 0, 48, 48, 50, 67, 0, 48, 48, 50, 68, 0, 48, 48, 50, 69, 0, 48, 48, 51, 70, 0, 48, 48, 53, 70, 0, 48, 50, 67, 55, 0, 48, 50, 67, 57, 0, 48, 50, 67, 65, 0, 48, 50, 67, 66, 0, 48, 50, 68, 57, 0, 51, 48, 48, 48, 0, 51, 49, 48, 53, 0, 51, 49, 48, 54, 0, 51, 49, 48, 55, 0, 51, 49, 48, 56, 0, 51, 49, 48, 57, 0, 51, 49, 48, 65, 0, 51, 49, 48, 66, 0, 51, 49, 48, 67, 0, 51, 49, 48, 68, 0, 51, 49, 48, 69, 0, 51, 49, 48, 70, 0, 51, 49, 49, 48, 0, 51, 49, 49, 49, 0, 51, 49, 49, 50, 0, 51, 49, 49, 51, 0, 51, 49, 49, 52, 0, 51, 49, 49, 53, 0, 51, 49, 49, 54, 0, 51, 49, 49, 55, 0, 51, 49, 49, 56, 0, 51, 49, 49, 57, 0, 51, 49, 49, 65, 0, 51, 49, 49, 66, 0, 51, 49, 49, 67, 0, 51, 49, 49, 68, 0, 51, 49, 49, 69, 0, 51, 49, 49, 70, 0, 51, 49, 50, 48, 0, 51, 49, 50, 49, 0, 51, 49, 50, 50, 0, 51, 49, 50, 51, 0, 51, 49, 50, 52, 0, 51, 49, 50, 53, 0, 51, 49, 50, 54, 0, 51, 49, 50, 55, 0, 51, 49, 50, 56, 0, 51, 49, 50, 57, 0}, new char [] {(char) 33, (char) 38, (char) 42, (char) 43, (char) 44, (char) 45, (char) 46, (char) 63, (char) 95, (char) 711, (char) 713, (char) 714, (char) 715, (char) 729, (char) 12288, (char) 12549, (char) 12550, (char) 12551, (char) 12552, (char) 12553, (char) 12554, (char) 12555, (char) 12556, (char) 12557, (char) 12558, (char) 12559, (char) 12560, (char) 12561, (char) 12562, (char) 12563, (char) 12564, (char) 12565, (char) 12566, (char) 12567, (char) 12568, (char) 12569, (char) 12570, (char) 12571, (char) 12572, (char) 12573, (char) 12574, (char) 12575, (char) 12576, (char) 12577, (char) 12578, (char) 12579, (char) 12580, (char) 12581, (char) 12582, (char) 12583, (char) 12584, (char) 12585}), + new PhoneMapCompressed ( 0x407, 53, new byte [] {45, 0, 33, 0, 38, 0, 44, 0, 46, 0, 58, 0, 63, 0, 94, 0, 95, 0, 126, 0, 49, 0, 50, 0, 65, 0, 65, 87, 0, 65, 88, 0, 65, 89, 0, 66, 0, 67, 72, 0, 68, 0, 69, 72, 0, 69, 85, 0, 69, 89, 0, 70, 0, 71, 0, 72, 0, 73, 72, 0, 73, 89, 0, 74, 72, 0, 75, 0, 76, 0, 77, 0, 78, 0, 78, 71, 0, 79, 69, 0, 79, 72, 0, 79, 87, 0, 79, 89, 0, 80, 0, 80, 70, 0, 82, 0, 83, 0, 83, 72, 0, 84, 0, 84, 83, 0, 85, 69, 0, 85, 72, 0, 85, 87, 0, 85, 89, 0, 86, 0, 88, 0, 89, 0, 90, 0, 90, 72, 0}, new char [] {(char) 1, (char) 2, (char) 3, (char) 4, (char) 5, (char) 12, (char) 6, (char) 8, (char) 7, (char) 11, (char) 9, (char) 10, (char) 13, (char) 14, (char) 15, (char) 16, (char) 17, (char) 19, (char) 18, (char) 20, (char) 21, (char) 22, (char) 23, (char) 24, (char) 25, (char) 26, (char) 27, (char) 28, (char) 29, (char) 30, (char) 31, (char) 32, (char) 33, (char) 34, (char) 35, (char) 36, (char) 37, (char) 38, (char) 39, (char) 40, (char) 41, (char) 42, (char) 43, (char) 44, (char) 45, (char) 46, (char) 47, (char) 48, (char) 49, (char) 50, (char) 51, (char) 52, (char) 53}), + new PhoneMapCompressed ( 0x409, 49, new byte [] {45, 0, 33, 0, 38, 0, 44, 0, 46, 0, 63, 0, 95, 0, 49, 0, 50, 0, 65, 65, 0, 65, 69, 0, 65, 72, 0, 65, 79, 0, 65, 87, 0, 65, 88, 0, 65, 89, 0, 66, 0, 67, 72, 0, 68, 0, 68, 72, 0, 69, 72, 0, 69, 82, 0, 69, 89, 0, 70, 0, 71, 0, 72, 0, 73, 72, 0, 73, 89, 0, 74, 72, 0, 75, 0, 76, 0, 77, 0, 78, 0, 78, 71, 0, 79, 87, 0, 79, 89, 0, 80, 0, 82, 0, 83, 0, 83, 72, 0, 84, 0, 84, 72, 0, 85, 72, 0, 85, 87, 0, 86, 0, 87, 0, 89, 0, 90, 0, 90, 72, 0}, new char [] {(char) 1, (char) 2, (char) 3, (char) 4, (char) 5, (char) 6, (char) 7, (char) 8, (char) 9, (char) 10, (char) 11, (char) 12, (char) 13, (char) 14, (char) 15, (char) 16, (char) 17, (char) 18, (char) 19, (char) 20, (char) 21, (char) 22, (char) 23, (char) 24, (char) 25, (char) 26, (char) 27, (char) 28, (char) 29, (char) 30, (char) 31, (char) 32, (char) 33, (char) 34, (char) 35, (char) 36, (char) 37, (char) 38, (char) 39, (char) 40, (char) 41, (char) 42, (char) 43, (char) 44, (char) 45, (char) 46, (char) 47, (char) 48, (char) 49}), + new PhoneMapCompressed ( 0x40A, 35, new byte [] {45, 0, 33, 0, 38, 0, 44, 0, 46, 0, 63, 0, 95, 0, 49, 0, 50, 0, 65, 0, 66, 0, 67, 72, 0, 68, 0, 69, 0, 70, 0, 71, 0, 73, 0, 74, 0, 74, 74, 0, 75, 0, 76, 0, 76, 76, 0, 77, 0, 78, 0, 78, 74, 0, 79, 0, 80, 0, 82, 0, 82, 82, 0, 83, 0, 84, 0, 84, 72, 0, 85, 0, 87, 0, 88, 0}, new char [] {(char) 1, (char) 2, (char) 3, (char) 4, (char) 5, (char) 6, (char) 7, (char) 8, (char) 9, (char) 10, (char) 18, (char) 21, (char) 16, (char) 11, (char) 23, (char) 20, (char) 12, (char) 33, (char) 22, (char) 19, (char) 29, (char) 30, (char) 26, (char) 27, (char) 28, (char) 13, (char) 17, (char) 31, (char) 32, (char) 24, (char) 15, (char) 35, (char) 14, (char) 34, (char) 25}), + new PhoneMapCompressed ( 0x40C, 42, new byte [] {45, 0, 33, 0, 38, 0, 44, 0, 46, 0, 63, 0, 95, 0, 126, 0, 49, 0, 65, 0, 65, 65, 0, 65, 88, 0, 66, 0, 68, 0, 69, 72, 0, 69, 85, 0, 69, 89, 0, 70, 0, 71, 0, 72, 89, 0, 73, 89, 0, 75, 0, 76, 0, 77, 0, 78, 0, 78, 71, 0, 78, 74, 0, 79, 69, 0, 79, 72, 0, 79, 87, 0, 80, 0, 82, 0, 83, 0, 83, 72, 0, 84, 0, 85, 87, 0, 85, 89, 0, 86, 0, 87, 0, 89, 0, 90, 0, 90, 72, 0}, new char [] {(char) 1, (char) 2, (char) 3, (char) 4, (char) 5, (char) 6, (char) 7, (char) 9, (char) 8, (char) 11, (char) 10, (char) 13, (char) 14, (char) 15, (char) 16, (char) 30, (char) 17, (char) 18, (char) 19, (char) 20, (char) 22, (char) 23, (char) 24, (char) 25, (char) 26, (char) 27, (char) 28, (char) 29, (char) 12, (char) 31, (char) 32, (char) 33, (char) 34, (char) 35, (char) 36, (char) 37, (char) 21, (char) 38, (char) 39, (char) 40, (char) 41, (char) 42}), + new PhoneMapCompressed ( 0x411, 102, new byte [] {48, 48, 50, 49, 0, 48, 48, 50, 55, 0, 48, 48, 50, 66, 0, 48, 48, 50, 69, 0, 48, 48, 51, 70, 0, 48, 48, 53, 70, 0, 48, 48, 55, 67, 0, 51, 48, 57, 67, 0, 51, 48, 65, 49, 0, 51, 48, 65, 50, 0, 51, 48, 65, 51, 0, 51, 48, 65, 52, 0, 51, 48, 65, 53, 0, 51, 48, 65, 54, 0, 51, 48, 65, 55, 0, 51, 48, 65, 56, 0, 51, 48, 65, 57, 0, 51, 48, 65, 65, 0, 51, 48, 65, 66, 0, 51, 48, 65, 67, 0, 51, 48, 65, 68, 0, 51, 48, 65, 69, 0, 51, 48, 65, 70, 0, 51, 48, 66, 48, 0, 51, 48, 66, 49, 0, 51, 48, 66, 50, 0, 51, 48, 66, 51, 0, 51, 48, 66, 52, 0, 51, 48, 66, 53, 0, 51, 48, 66, 54, 0, 51, 48, 66, 55, 0, 51, 48, 66, 56, 0, 51, 48, 66, 57, 0, 51, 48, 66, 65, 0, 51, 48, 66, 66, 0, 51, 48, 66, 67, 0, 51, 48, 66, 68, 0, 51, 48, 66, 69, 0, 51, 48, 66, 70, 0, 51, 48, 67, 48, 0, 51, 48, 67, 49, 0, 51, 48, 67, 50, 0, 51, 48, 67, 51, 0, 51, 48, 67, 52, 0, 51, 48, 67, 53, 0, 51, 48, 67, 54, 0, 51, 48, 67, 55, 0, 51, 48, 67, 56, 0, 51, 48, 67, 57, 0, 51, 48, 67, 65, 0, 51, 48, 67, 66, 0, 51, 48, 67, 67, 0, 51, 48, 67, 68, 0, 51, 48, 67, 69, 0, 51, 48, 67, 70, 0, 51, 48, 68, 48, 0, 51, 48, 68, 49, 0, 51, 48, 68, 50, 0, 51, 48, 68, 51, 0, 51, 48, 68, 52, 0, 51, 48, 68, 53, 0, 51, 48, 68, 54, 0, 51, 48, 68, 55, 0, 51, 48, 68, 56, 0, 51, 48, 68, 57, 0, 51, 48, 68, 65, 0, 51, 48, 68, 66, 0, 51, 48, 68, 67, 0, 51, 48, 68, 68, 0, 51, 48, 68, 69, 0, 51, 48, 68, 70, 0, 51, 48, 69, 48, 0, 51, 48, 69, 49, 0, 51, 48, 69, 50, 0, 51, 48, 69, 51, 0, 51, 48, 69, 52, 0, 51, 48, 69, 53, 0, 51, 48, 69, 54, 0, 51, 48, 69, 55, 0, 51, 48, 69, 56, 0, 51, 48, 69, 57, 0, 51, 48, 69, 65, 0, 51, 48, 69, 66, 0, 51, 48, 69, 67, 0, 51, 48, 69, 68, 0, 51, 48, 69, 69, 0, 51, 48, 69, 70, 0, 51, 48, 70, 48, 0, 51, 48, 70, 49, 0, 51, 48, 70, 50, 0, 51, 48, 70, 51, 0, 51, 48, 70, 52, 0, 51, 48, 70, 53, 0, 51, 48, 70, 54, 0, 51, 48, 70, 55, 0, 51, 48, 70, 56, 0, 51, 48, 70, 57, 0, 51, 48, 70, 65, 0, 51, 48, 70, 66, 0, 51, 48, 70, 67, 0, 51, 48, 70, 68, 0, 51, 48, 70, 69, 0}, new char [] {(char) 33, (char) 39, (char) 43, (char) 46, (char) 63, (char) 95, (char) 124, (char) 12444, (char) 12449, (char) 12450, (char) 12451, (char) 12452, (char) 12453, (char) 12454, (char) 12455, (char) 12456, (char) 12457, (char) 12458, (char) 12459, (char) 12460, (char) 12461, (char) 12462, (char) 12463, (char) 12464, (char) 12465, (char) 12466, (char) 12467, (char) 12468, (char) 12469, (char) 12470, (char) 12471, (char) 12472, (char) 12473, (char) 12474, (char) 12475, (char) 12476, (char) 12477, (char) 12478, (char) 12479, (char) 12480, (char) 12481, (char) 12482, (char) 12483, (char) 12484, (char) 12485, (char) 12486, (char) 12487, (char) 12488, (char) 12489, (char) 12490, (char) 12491, (char) 12492, (char) 12493, (char) 12494, (char) 12495, (char) 12496, (char) 12497, (char) 12498, (char) 12499, (char) 12500, (char) 12501, (char) 12502, (char) 12503, (char) 12504, (char) 12505, (char) 12506, (char) 12507, (char) 12508, (char) 12509, (char) 12510, (char) 12511, (char) 12512, (char) 12513, (char) 12514, (char) 12515, (char) 12516, (char) 12517, (char) 12518, (char) 12519, (char) 12520, (char) 12521, (char) 12522, (char) 12523, (char) 12524, (char) 12525, (char) 12526, (char) 12527, (char) 12528, (char) 12529, (char) 12530, (char) 12531, (char) 12532, (char) 12533, (char) 12534, (char) 12535, (char) 12536, (char) 12537, (char) 12538, (char) 12539, (char) 12540, (char) 12541, (char) 12542}), + new PhoneMapCompressed ( 0x804, 422, new byte [] {45, 0, 33, 0, 38, 0, 42, 0, 44, 0, 46, 0, 63, 0, 95, 0, 43, 0, 49, 0, 50, 0, 51, 0, 52, 0, 53, 0, 65, 0, 65, 73, 0, 65, 78, 0, 65, 78, 71, 0, 65, 79, 0, 66, 65, 0, 66, 65, 73, 0, 66, 65, 78, 0, 66, 65, 78, 71, 0, 66, 65, 79, 0, 66, 69, 73, 0, 66, 69, 78, 0, 66, 69, 78, 71, 0, 66, 73, 0, 66, 73, 65, 78, 0, 66, 73, 65, 79, 0, 66, 73, 69, 0, 66, 73, 78, 0, 66, 73, 78, 71, 0, 66, 79, 0, 66, 85, 0, 67, 65, 0, 67, 65, 73, 0, 67, 65, 78, 0, 67, 65, 78, 71, 0, 67, 65, 79, 0, 67, 69, 0, 67, 69, 78, 0, 67, 69, 78, 71, 0, 67, 72, 65, 0, 67, 72, 65, 73, 0, 67, 72, 65, 78, 0, 67, 72, 65, 78, 71, 0, 67, 72, 65, 79, 0, 67, 72, 69, 0, 67, 72, 69, 78, 0, 67, 72, 69, 78, 71, 0, 67, 72, 73, 0, 67, 72, 79, 78, 71, 0, 67, 72, 79, 85, 0, 67, 72, 85, 0, 67, 72, 85, 65, 73, 0, 67, 72, 85, 65, 78, 0, 67, 72, 85, 65, 78, 71, 0, 67, 72, 85, 73, 0, 67, 72, 85, 78, 0, 67, 72, 85, 79, 0, 67, 73, 0, 67, 79, 78, 71, 0, 67, 79, 85, 0, 67, 85, 0, 67, 85, 65, 78, 0, 67, 85, 73, 0, 67, 85, 78, 0, 67, 85, 79, 0, 68, 65, 0, 68, 65, 73, 0, 68, 65, 78, 0, 68, 65, 78, 71, 0, 68, 65, 79, 0, 68, 69, 0, 68, 69, 73, 0, 68, 69, 78, 0, 68, 69, 78, 71, 0, 68, 73, 0, 68, 73, 65, 0, 68, 73, 65, 78, 0, 68, 73, 65, 79, 0, 68, 73, 69, 0, 68, 73, 78, 71, 0, 68, 73, 85, 0, 68, 79, 78, 71, 0, 68, 79, 85, 0, 68, 85, 0, 68, 85, 65, 78, 0, 68, 85, 73, 0, 68, 85, 78, 0, 68, 85, 79, 0, 69, 0, 69, 73, 0, 69, 78, 0, 69, 82, 0, 70, 65, 0, 70, 65, 78, 0, 70, 65, 78, 71, 0, 70, 69, 73, 0, 70, 69, 78, 0, 70, 69, 78, 71, 0, 70, 79, 0, 70, 79, 85, 0, 70, 85, 0, 71, 65, 0, 71, 65, 73, 0, 71, 65, 78, 0, 71, 65, 78, 71, 0, 71, 65, 79, 0, 71, 69, 0, 71, 69, 73, 0, 71, 69, 78, 0, 71, 69, 78, 71, 0, 71, 79, 78, 71, 0, 71, 79, 85, 0, 71, 85, 0, 71, 85, 65, 0, 71, 85, 65, 73, 0, 71, 85, 65, 78, 0, 71, 85, 65, 78, 71, 0, 71, 85, 73, 0, 71, 85, 78, 0, 71, 85, 79, 0, 72, 65, 0, 72, 65, 73, 0, 72, 65, 78, 0, 72, 65, 78, 71, 0, 72, 65, 79, 0, 72, 69, 0, 72, 69, 73, 0, 72, 69, 78, 0, 72, 69, 78, 71, 0, 72, 79, 78, 71, 0, 72, 79, 85, 0, 72, 85, 0, 72, 85, 65, 0, 72, 85, 65, 73, 0, 72, 85, 65, 78, 0, 72, 85, 65, 78, 71, 0, 72, 85, 73, 0, 72, 85, 78, 0, 72, 85, 79, 0, 74, 73, 0, 74, 73, 65, 0, 74, 73, 65, 78, 0, 74, 73, 65, 78, 71, 0, 74, 73, 65, 79, 0, 74, 73, 69, 0, 74, 73, 78, 0, 74, 73, 78, 71, 0, 74, 73, 79, 78, 71, 0, 74, 73, 85, 0, 74, 85, 0, 74, 85, 65, 78, 0, 74, 85, 69, 0, 74, 85, 78, 0, 75, 65, 0, 75, 65, 73, 0, 75, 65, 78, 0, 75, 65, 78, 71, 0, 75, 65, 79, 0, 75, 69, 0, 75, 69, 73, 0, 75, 69, 78, 0, 75, 69, 78, 71, 0, 75, 79, 78, 71, 0, 75, 79, 85, 0, 75, 85, 0, 75, 85, 65, 0, 75, 85, 65, 73, 0, 75, 85, 65, 78, 0, 75, 85, 65, 78, 71, 0, 75, 85, 73, 0, 75, 85, 78, 0, 75, 85, 79, 0, 76, 65, 0, 76, 65, 73, 0, 76, 65, 78, 0, 76, 65, 78, 71, 0, 76, 65, 79, 0, 76, 69, 0, 76, 69, 73, 0, 76, 69, 78, 71, 0, 76, 73, 0, 76, 73, 65, 0, 76, 73, 65, 78, 0, 76, 73, 65, 78, 71, 0, 76, 73, 65, 79, 0, 76, 73, 69, 0, 76, 73, 78, 0, 76, 73, 78, 71, 0, 76, 73, 85, 0, 76, 79, 0, 76, 79, 78, 71, 0, 76, 79, 85, 0, 76, 85, 0, 76, 85, 65, 78, 0, 76, 85, 69, 0, 76, 85, 78, 0, 76, 85, 79, 0, 76, 86, 0, 77, 65, 0, 77, 65, 73, 0, 77, 65, 78, 0, 77, 65, 78, 71, 0, 77, 65, 79, 0, 77, 69, 0, 77, 69, 73, 0, 77, 69, 78, 0, 77, 69, 78, 71, 0, 77, 73, 0, 77, 73, 65, 78, 0, 77, 73, 65, 79, 0, 77, 73, 69, 0, 77, 73, 78, 0, 77, 73, 78, 71, 0, 77, 73, 85, 0, 77, 79, 0, 77, 79, 85, 0, 77, 85, 0, 78, 65, 0, 78, 65, 73, 0, 78, 65, 78, 0, 78, 65, 78, 71, 0, 78, 65, 79, 0, 78, 69, 0, 78, 69, 73, 0, 78, 69, 78, 0, 78, 69, 78, 71, 0, 78, 73, 0, 78, 73, 65, 78, 0, 78, 73, 65, 78, 71, 0, 78, 73, 65, 79, 0, 78, 73, 69, 0, 78, 73, 78, 0, 78, 73, 78, 71, 0, 78, 73, 85, 0, 78, 79, 78, 71, 0, 78, 79, 85, 0, 78, 85, 0, 78, 85, 65, 78, 0, 78, 85, 69, 0, 78, 85, 79, 0, 78, 86, 0, 79, 0, 79, 85, 0, 80, 65, 0, 80, 65, 73, 0, 80, 65, 78, 0, 80, 65, 78, 71, 0, 80, 65, 79, 0, 80, 69, 73, 0, 80, 69, 78, 0, 80, 69, 78, 71, 0, 80, 73, 0, 80, 73, 65, 78, 0, 80, 73, 65, 79, 0, 80, 73, 69, 0, 80, 73, 78, 0, 80, 73, 78, 71, 0, 80, 79, 0, 80, 79, 85, 0, 80, 85, 0, 81, 73, 0, 81, 73, 65, 0, 81, 73, 65, 78, 0, 81, 73, 65, 78, 71, 0, 81, 73, 65, 79, 0, 81, 73, 69, 0, 81, 73, 78, 0, 81, 73, 78, 71, 0, 81, 73, 79, 78, 71, 0, 81, 73, 85, 0, 81, 85, 0, 81, 85, 65, 78, 0, 81, 85, 69, 0, 81, 85, 78, 0, 82, 65, 78, 0, 82, 65, 78, 71, 0, 82, 65, 79, 0, 82, 69, 0, 82, 69, 78, 0, 82, 69, 78, 71, 0, 82, 73, 0, 82, 79, 78, 71, 0, 82, 79, 85, 0, 82, 85, 0, 82, 85, 65, 78, 0, 82, 85, 73, 0, 82, 85, 78, 0, 82, 85, 79, 0, 83, 65, 0, 83, 65, 73, 0, 83, 65, 78, 0, 83, 65, 78, 71, 0, 83, 65, 79, 0, 83, 69, 0, 83, 69, 78, 0, 83, 69, 78, 71, 0, 83, 72, 65, 0, 83, 72, 65, 73, 0, 83, 72, 65, 78, 0, 83, 72, 65, 78, 71, 0, 83, 72, 65, 79, 0, 83, 72, 69, 0, 83, 72, 69, 73, 0, 83, 72, 69, 78, 0, 83, 72, 69, 78, 71, 0, 83, 72, 73, 0, 83, 72, 79, 85, 0, 83, 72, 85, 0, 83, 72, 85, 65, 0, 83, 72, 85, 65, 73, 0, 83, 72, 85, 65, 78, 0, 83, 72, 85, 65, 78, 71, 0, 83, 72, 85, 73, 0, 83, 72, 85, 78, 0, 83, 72, 85, 79, 0, 83, 73, 0, 83, 79, 78, 71, 0, 83, 79, 85, 0, 83, 85, 0, 83, 85, 65, 78, 0, 83, 85, 73, 0, 83, 85, 78, 0, 83, 85, 79, 0, 84, 65, 0, 84, 65, 73, 0, 84, 65, 78, 0, 84, 65, 78, 71, 0, 84, 65, 79, 0, 84, 69, 0, 84, 69, 73, 0, 84, 69, 78, 71, 0, 84, 73, 0, 84, 73, 65, 78, 0, 84, 73, 65, 79, 0, 84, 73, 69, 0, 84, 73, 78, 71, 0, 84, 79, 78, 71, 0, 84, 79, 85, 0, 84, 85, 0, 84, 85, 65, 78, 0, 84, 85, 73, 0, 84, 85, 78, 0, 84, 85, 79, 0, 87, 65, 0, 87, 65, 73, 0, 87, 65, 78, 0, 87, 65, 78, 71, 0, 87, 69, 73, 0, 87, 69, 78, 0, 87, 69, 78, 71, 0, 87, 79, 0, 87, 85, 0, 88, 73, 0, 88, 73, 65, 0, 88, 73, 65, 78, 0, 88, 73, 65, 78, 71, 0, 88, 73, 65, 79, 0, 88, 73, 69, 0, 88, 73, 78, 0, 88, 73, 78, 71, 0, 88, 73, 79, 78, 71, 0, 88, 73, 85, 0, 88, 85, 0, 88, 85, 65, 78, 0, 88, 85, 69, 0, 88, 85, 78, 0, 89, 65, 0, 89, 65, 78, 0, 89, 65, 78, 71, 0, 89, 65, 79, 0, 89, 69, 0, 89, 73, 0, 89, 73, 78, 0, 89, 73, 78, 71, 0, 89, 79, 0, 89, 79, 78, 71, 0, 89, 79, 85, 0, 89, 85, 0, 89, 85, 65, 78, 0, 89, 85, 69, 0, 89, 85, 78, 0, 90, 65, 0, 90, 65, 73, 0, 90, 65, 78, 0, 90, 65, 78, 71, 0, 90, 65, 79, 0, 90, 69, 0, 90, 69, 73, 0, 90, 69, 78, 0, 90, 69, 78, 71, 0, 90, 72, 65, 0, 90, 72, 65, 73, 0, 90, 72, 65, 78, 0, 90, 72, 65, 78, 71, 0, 90, 72, 65, 79, 0, 90, 72, 69, 0, 90, 72, 69, 73, 0, 90, 72, 69, 78, 0, 90, 72, 69, 78, 71, 0, 90, 72, 73, 0, 90, 72, 79, 78, 71, 0, 90, 72, 79, 85, 0, 90, 72, 85, 0, 90, 72, 85, 65, 0, 90, 72, 85, 65, 73, 0, 90, 72, 85, 65, 78, 0, 90, 72, 85, 65, 78, 71, 0, 90, 72, 85, 73, 0, 90, 72, 85, 78, 0, 90, 72, 85, 79, 0, 90, 73, 0, 90, 79, 78, 71, 0, 90, 79, 85, 0, 90, 85, 0, 90, 85, 65, 78, 0, 90, 85, 73, 0, 90, 85, 78, 0, 90, 85, 79, 0}, new char [] {(char) 1, (char) 2, (char) 3, (char) 9, (char) 4, (char) 5, (char) 6, (char) 7, (char) 8, (char) 10, (char) 11, (char) 12, (char) 13, (char) 14, (char) 15, (char) 16, (char) 17, (char) 18, (char) 19, (char) 20, (char) 21, (char) 22, (char) 23, (char) 24, (char) 25, (char) 26, (char) 27, (char) 28, (char) 29, (char) 30, (char) 31, (char) 32, (char) 33, (char) 34, (char) 35, (char) 36, (char) 37, (char) 38, (char) 39, (char) 40, (char) 41, (char) 42, (char) 43, (char) 44, (char) 45, (char) 46, (char) 47, (char) 48, (char) 49, (char) 50, (char) 51, (char) 52, (char) 53, (char) 54, (char) 55, (char) 56, (char) 57, (char) 58, (char) 59, (char) 60, (char) 61, (char) 62, (char) 63, (char) 64, (char) 65, (char) 66, (char) 67, (char) 68, (char) 69, (char) 70, (char) 71, (char) 72, (char) 73, (char) 74, (char) 75, (char) 76, (char) 77, (char) 78, (char) 79, (char) 80, (char) 81, (char) 82, (char) 83, (char) 84, (char) 85, (char) 86, (char) 87, (char) 88, (char) 89, (char) 90, (char) 91, (char) 92, (char) 93, (char) 94, (char) 95, (char) 96, (char) 97, (char) 98, (char) 99, (char) 100, (char) 101, (char) 102, (char) 103, (char) 104, (char) 105, (char) 106, (char) 107, (char) 108, (char) 109, (char) 110, (char) 111, (char) 112, (char) 113, (char) 114, (char) 115, (char) 116, (char) 117, (char) 118, (char) 119, (char) 120, (char) 121, (char) 122, (char) 123, (char) 124, (char) 125, (char) 126, (char) 127, (char) 128, (char) 129, (char) 130, (char) 131, (char) 132, (char) 133, (char) 134, (char) 135, (char) 136, (char) 137, (char) 138, (char) 139, (char) 140, (char) 141, (char) 142, (char) 143, (char) 144, (char) 145, (char) 146, (char) 147, (char) 148, (char) 149, (char) 150, (char) 151, (char) 152, (char) 153, (char) 154, (char) 155, (char) 156, (char) 157, (char) 158, (char) 159, (char) 160, (char) 161, (char) 162, (char) 163, (char) 164, (char) 165, (char) 166, (char) 167, (char) 168, (char) 169, (char) 170, (char) 171, (char) 172, (char) 173, (char) 174, (char) 175, (char) 176, (char) 177, (char) 178, (char) 179, (char) 180, (char) 181, (char) 182, (char) 183, (char) 184, (char) 185, (char) 186, (char) 187, (char) 188, (char) 189, (char) 190, (char) 191, (char) 192, (char) 193, (char) 194, (char) 195, (char) 196, (char) 197, (char) 198, (char) 199, (char) 200, (char) 201, (char) 202, (char) 203, (char) 204, (char) 205, (char) 206, (char) 207, (char) 208, (char) 209, (char) 210, (char) 211, (char) 212, (char) 213, (char) 214, (char) 215, (char) 216, (char) 217, (char) 218, (char) 219, (char) 220, (char) 221, (char) 222, (char) 223, (char) 224, (char) 225, (char) 226, (char) 227, (char) 228, (char) 229, (char) 230, (char) 231, (char) 232, (char) 233, (char) 234, (char) 235, (char) 236, (char) 237, (char) 238, (char) 239, (char) 240, (char) 241, (char) 242, (char) 243, (char) 244, (char) 245, (char) 246, (char) 247, (char) 248, (char) 249, (char) 250, (char) 251, (char) 252, (char) 253, (char) 254, (char) 255, (char) 256, (char) 257, (char) 258, (char) 259, (char) 260, (char) 261, (char) 262, (char) 263, (char) 264, (char) 265, (char) 266, (char) 267, (char) 268, (char) 269, (char) 270, (char) 271, (char) 272, (char) 273, (char) 274, (char) 275, (char) 276, (char) 277, (char) 278, (char) 279, (char) 280, (char) 281, (char) 282, (char) 283, (char) 284, (char) 285, (char) 286, (char) 287, (char) 288, (char) 289, (char) 290, (char) 291, (char) 292, (char) 293, (char) 294, (char) 295, (char) 296, (char) 297, (char) 298, (char) 299, (char) 300, (char) 301, (char) 302, (char) 303, (char) 304, (char) 305, (char) 306, (char) 307, (char) 308, (char) 309, (char) 310, (char) 311, (char) 312, (char) 313, (char) 314, (char) 315, (char) 316, (char) 317, (char) 318, (char) 319, (char) 320, (char) 321, (char) 322, (char) 323, (char) 324, (char) 325, (char) 326, (char) 327, (char) 328, (char) 329, (char) 330, (char) 331, (char) 332, (char) 333, (char) 334, (char) 335, (char) 336, (char) 337, (char) 338, (char) 339, (char) 340, (char) 341, (char) 342, (char) 343, (char) 344, (char) 345, (char) 346, (char) 347, (char) 348, (char) 349, (char) 350, (char) 351, (char) 352, (char) 353, (char) 354, (char) 355, (char) 356, (char) 357, (char) 358, (char) 359, (char) 360, (char) 361, (char) 362, (char) 363, (char) 364, (char) 365, (char) 366, (char) 367, (char) 368, (char) 369, (char) 370, (char) 371, (char) 372, (char) 373, (char) 374, (char) 375, (char) 376, (char) 377, (char) 378, (char) 379, (char) 380, (char) 381, (char) 382, (char) 383, (char) 384, (char) 385, (char) 386, (char) 387, (char) 388, (char) 389, (char) 390, (char) 391, (char) 392, (char) 393, (char) 394, (char) 395, (char) 396, (char) 397, (char) 398, (char) 399, (char) 400, (char) 401, (char) 402, (char) 403, (char) 404, (char) 405, (char) 406, (char) 407, (char) 408, (char) 409, (char) 410, (char) 411, (char) 412, (char) 413, (char) 414, (char) 415, (char) 416, (char) 417, (char) 418, (char) 419, (char) 420, (char) 421, (char) 422}), + }; + + private static readonly PhoneMap[] s_phoneMaps = DecompressPhoneMaps(s_phoneMapsCompressed); + + private static char[] s_updIds = new char[] { (char)1, (char)2, (char)3, (char)4, (char)33, (char)46, (char)97, (char)98, (char)99, (char)100, (char)101, (char)102, (char)103, (char)104, (char)105, (char)106, (char)107, (char)108, (char)109, (char)110, (char)111, (char)112, (char)113, (char)114, (char)115, (char)116, (char)117, (char)118, (char)119, (char)120, (char)121, (char)122, (char)124, (char)230, (char)231, (char)240, (char)248, (char)295, (char)331, (char)339, (char)448, (char)449, (char)450, (char)451, (char)592, (char)593, (char)594, (char)595, (char)596, (char)597, (char)598, (char)599, (char)600, (char)601, (char)602, (char)603, (char)604, (char)605, (char)606, (char)607, (char)608, (char)609, (char)610, (char)611, (char)612, (char)613, (char)614, (char)615, (char)616, (char)618, (char)619, (char)620, (char)621, (char)622, (char)623, (char)624, (char)625, (char)626, (char)627, (char)628, (char)629, (char)630, (char)632, (char)633, (char)634, (char)635, (char)637, (char)638, (char)640, (char)641, (char)642, (char)643, (char)644, (char)646, (char)647, (char)648, (char)649, (char)650, (char)651, (char)652, (char)653, (char)654, (char)655, (char)656, (char)657, (char)658, (char)659, (char)660, (char)661, (char)662, (char)663, (char)664, (char)665, (char)667, (char)668, (char)669, (char)671, (char)672, (char)673, (char)674, (char)675, (char)676, (char)677, (char)678, (char)679, (char)680, (char)688, (char)689, (char)690, (char)692, (char)695, (char)700, (char)712, (char)716, (char)720, (char)721, (char)728, (char)734, (char)736, (char)737, (char)740, (char)768, (char)769, (char)771, (char)772, (char)774, (char)776, (char)778, (char)779, (char)783, (char)792, (char)793, (char)794, (char)796, (char)797, (char)798, (char)799, (char)800, (char)804, (char)805, (char)809, (char)810, (char)812, (char)815, (char)816, (char)817, (char)820, (char)825, (char)826, (char)827, (char)828, (char)829, (char)865, (char)946, (char)952, (char)967, (char)1856, (char)8214, (char)8255, (char)8319, (char)8593, (char)8594, (char)8595, (char)8599, (char)8600 }; + + private static readonly PhonemeConverter s_upsConverter = new(s_phoneMaps[0]); + + #endregion + + #region Private Types + + private class PhoneMap + { + internal PhoneMap() { } + + internal int _lcid; + internal PhoneId[] _phoneIds; + } + + private class PhoneId : IComparer + { + internal PhoneId() { } + + internal string _phone; + internal char[] _cp; + + int IComparer.Compare(PhoneId x, PhoneId y) + { + return string.Compare(x._phone, y._phone, StringComparison.CurrentCulture); + } + } + + /// + /// Compressed version for the phone map so that the size for the pronunciation table is small in the dll. + /// A single large arrays of bytes (ASCII) is used to store the 'pron' string. Each string is zero terminated. + /// A single large array of char is used to store the code point for the 'pron' string. Each binary array for the pron by default + /// has a length of 1 character. If the length is greater than 1, then the 'pron' string is appended with -1 values, one per extra code + /// point. + /// + private class PhoneMapCompressed + { + internal PhoneMapCompressed() { } + + internal PhoneMapCompressed(int lcid, int count, byte[] phoneIds, char[] cps) + { + _lcid = lcid; + _count = count; + _phones = phoneIds; + _cps = cps; + } + + // Language Id + internal int _lcid; + + // Number of phonemes + internal int _count; + + // Array of zero terminated ASCII strings + internal byte[] _phones; + + // Array of code points for the 'pron'. By default each code point for a 'pron' is 1 char long, unless the 'pron' string is prepended with -1 + internal char[] _cps; + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/RedBlackList.cs b/src/libraries/System.Speech/src/Internal/RedBlackList.cs new file mode 100644 index 00000000000000..65d7e114a82549 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/RedBlackList.cs @@ -0,0 +1,728 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Text; + +namespace System.Speech.Internal +{ + /// + /// Sorted List using the Red-Black algorithm + /// + internal abstract class RedBlackList : IEnumerable + { + #region Constructors + + internal RedBlackList() + { + } + + #endregion + + #region Internal Methods + + internal void Add(object key) + { +#if DEBUG + if (_root != null && _root._inEnumaration) + { + throw new InvalidOperationException(); + } +#endif + TreeNode node = new(key); + node.IsRed = true; + InsertNode(_root, node); + FixUpInsertion(node); + + _root = FindRoot(node); + } + + internal void Remove(object key) + { +#if DEBUG + if (_root != null && _root._inEnumaration) + { + throw new InvalidOperationException(); + } +#endif + TreeNode node = FindItem(_root, key); + if (node == null) + { + throw new KeyNotFoundException(); + } + TreeNode nodeRemoved = DeleteNode(node); + FixUpRemoval(nodeRemoved); + + if (nodeRemoved == _root) + { + if (_root.Left != null) + { + _root = FindRoot(_root.Left); + } + else if (_root.Right != null) + { + _root = FindRoot(_root.Right); + } + else + { + _root = null; + } + } + else + { + _root = FindRoot(_root); + } + } + + public IEnumerator GetEnumerator() + { + return new MyEnumerator(_root); + } + + #endregion + + #region Internal Properties + + internal bool IsEmpty + { + get + { + return _root == null; + } + } + + internal bool CountIsOne + { + get + { + return _root != null && _root.Left == null && _root.Right == null; + } + } + + internal bool ContainsMoreThanOneItem + { + get + { + return _root != null && (_root.Right != null || _root.Left != null); + } + } + + internal object First + { + get + { + if (_root == null) + { + // We don't expect First to be called on empty graphs + System.Diagnostics.Debug.Assert(false); + return null; + } + // Set the current pointer to the last element + return FindMinSubTree(_root).Key; + } + } + + #endregion + + #region Protected Methods + + protected abstract int CompareTo(object object1, object object2); + + #endregion + + #region Private Methods + + #region Implement utility operations on Tree + + private static TreeNode GetUncle(TreeNode node) + { + if (node.Parent == node.Parent.Parent.Left) + { + return node.Parent.Parent.Right; + } + else + { + return node.Parent.Parent.Left; + } + } + + private static TreeNode GetSibling(TreeNode node, TreeNode parent) + { + if (node == parent.Left) + { + return parent.Right; + } + else + { + return parent.Left; + } + } + + private static NodeColor GetColor(TreeNode node) + { + return node == null ? NodeColor.BLACK : (node.IsRed ? NodeColor.RED : NodeColor.BLACK); + } + + private static void SetColor(TreeNode node, NodeColor color) + { + if (node != null) + { + node.IsRed = (color == NodeColor.RED); + } + else + { + Debug.Assert(color == NodeColor.BLACK); + } + } + + private static void TakeParent(TreeNode node, TreeNode newNode) + { + if (node.Parent == null) + { + if (newNode != null) + { + newNode.Parent = null; + } + } + else if (node.Parent.Left == node) + { + node.Parent.Left = newNode; + } + else if (node.Parent.Right == node) + { + node.Parent.Right = newNode; + } + else + { + throw new InvalidOperationException(); + } + } + + private static TreeNode RotateLeft(TreeNode node) + { + TreeNode newNode = node.Right; + node.Right = newNode.Left; + TakeParent(node, newNode); + newNode.Left = node; + return newNode; + } + + private static TreeNode RotateRight(TreeNode node) + { + TreeNode newNode = node.Left; + node.Left = newNode.Right; + TakeParent(node, newNode); + newNode.Right = node; + + return newNode; + } + + private static TreeNode FindMinSubTree(TreeNode node) + { + while (node.Left != null) + { + node = node.Left; + } + return node; + } + + private static TreeNode FindSuccessor(TreeNode node) + { + if (node.Right == null) + { + while (node.Parent != null && node.Parent.Left != node) + { + node = node.Parent; + } + + return node.Parent == null ? null : node.Parent; + } + else + { + return FindMinSubTree(node.Right); + } + } + + // Return the actual node that is deleted + private static TreeNode DeleteNode(TreeNode node) + { + if (node.Right == null) + { + TakeParent(node, node.Left); + + return node; + } + else if (node.Left == null) + { + TakeParent(node, node.Right); + + return node; + } + else + { + TreeNode successor = FindSuccessor(node); + Debug.Assert(successor != null && successor.Left == null); + node.CopyNode(successor); + TakeParent(successor, successor.Right); + return successor; + } + } + + #endregion Implement utility operations on Tree + + // Return the root of the new subtree + private TreeNode InsertNode(TreeNode node, TreeNode newNode) + { + if (node == null) + { + return newNode; + } + + int diff = CompareTo(newNode.Key, node.Key); + + if (diff < 0) + { + node.Left = InsertNode(node.Left, newNode); + } + else + { + node.Right = InsertNode(node.Right, newNode); + } + + return node; + } + + private TreeNode FindItem(TreeNode node, object key) + { + if (node == null) + { + return null; + } + int diff = CompareTo(key, node.Key); + if (diff == 0) + { + return node; + } + else if (diff < 0) + { + return FindItem(node.Left, key); + } + else + { + return FindItem(node.Right, key); + } + } + + private TreeNode FindRoot(TreeNode node) + { + while (node.Parent != null) + { + node = node.Parent; + } + return node; + } + + private void FixUpInsertion(TreeNode node) + { + FixInsertCase1(node); + } + + private void FixInsertCase1(TreeNode node) + { + Debug.Assert(node.IsRed); + + if (node.Parent == null) + { + node.IsRed = false; + } + else + { + FixInsertCase2(node); + } + } + private void FixInsertCase2(TreeNode node) + { + if (GetColor(node.Parent) == NodeColor.BLACK) + { + return; // Tree is still valid. + } + + // Now, its parent is RED, so it must have an uncle since its parent is not root. + // Also, its grandparent must be BLACK. + Debug.Assert(GetColor(node.Parent.Parent) == NodeColor.BLACK); + TreeNode uncle = GetUncle(node); + + if (GetColor(uncle) == NodeColor.RED) + { + SetColor(node.Parent, NodeColor.BLACK); + SetColor(uncle, NodeColor.BLACK); + SetColor(node.Parent.Parent, NodeColor.RED); + FixInsertCase1(node.Parent.Parent); // Move recursively up + } + else + { + FixInsertCase3(node); + } + } + + private void FixInsertCase3(TreeNode node) + { + // + // Now it's RED, parent is RED, uncle is BLACK, + // We want to rotate so that its uncle is on the opposite side + if (node == node.Parent.Right && node.Parent == node.Parent.Parent.Left) + { + RotateLeft(node.Parent); + node = node.Left; + } + else if (node == node.Parent.Left && node.Parent == node.Parent.Parent.Right) + { + RotateRight(node.Parent); + node = node.Right; + } + FixInsertCase4(node); + } + + private void FixInsertCase4(TreeNode node) + { + // + // Must follow case 3, here we are finally done! + // + + SetColor(node.Parent, NodeColor.BLACK); + SetColor(node.Parent.Parent, NodeColor.RED); + if (node == node.Parent.Left) + { + Debug.Assert(node.Parent == node.Parent.Parent.Left); // From case 3 + RotateRight(node.Parent.Parent); + } + else + { + Debug.Assert(node.Parent == node.Parent.Parent.Right); // From case 3 + RotateLeft(node.Parent.Parent); + } + } + + private static void FixUpRemoval(TreeNode node) + { + // This node must have at most 1 child + Debug.Assert(node.Left == null || node.Right == null); + + TreeNode onlyChild = node.Left == null ? node.Right : node.Left; + + // This node should have been deleted already, and the child has replaced the this node. + Debug.Assert(node.Parent == null || node.Parent.Left == onlyChild || node.Parent.Right == onlyChild); + Debug.Assert(onlyChild == null || onlyChild.Parent == node.Parent); + + // + // If the node removed was red, all properties still hold. + // Otherwise, we need fix up. + // + + if (GetColor(node) == NodeColor.BLACK) + { + if (GetColor(onlyChild) == NodeColor.RED) + { + SetColor(onlyChild, NodeColor.BLACK); + } + else if (node.Parent == null) // if we remove a root node, nothing has changed. + { + return; + } + else + { + // + // Note that onlyChild could be null. + // The deleted node and its only child are BLACK, and there is a real parent, therefore, + // the total black height was at least 2 (excluding the real parent), thus the sibling subtree also has a black height of at least 2 + // + FixRemovalCase2(GetSibling(onlyChild, node.Parent)); + } + } + } + + private static void FixRemovalCase1(TreeNode node) + { + Debug.Assert(GetColor(node) == NodeColor.BLACK); + if (node.Parent == null) + { + return; + } + else + { + FixRemovalCase2(GetSibling(node, node.Parent)); + } + } + + private static void FixRemovalCase2(TreeNode sibling) + { + Debug.Assert(sibling != null); + if (GetColor(sibling) == NodeColor.RED) + { + Debug.Assert(sibling.Left != null && sibling.Right != null); + TreeNode parent = sibling.Parent; + // the parent must be black + SetColor(parent, NodeColor.RED); + SetColor(sibling, NodeColor.BLACK); + + if (sibling == parent.Right) + { + RotateLeft(sibling.Parent); + // new sibling was the old sibling left child, and must be non-leaf black + sibling = parent.Right; + } + else + { + RotateRight(sibling.Parent); + // new sibling was the old sibling right child, and must be non-leaf black + sibling = parent.Left; + } + } + + // Now the sibling will be a BLACK non-leaf. + FixRemovalCase3(sibling); + } + + private static void FixRemovalCase3(TreeNode sibling) + { + if (GetColor(sibling.Parent) == NodeColor.BLACK && + GetColor(sibling) == NodeColor.BLACK && + GetColor(sibling.Left) == NodeColor.BLACK && + GetColor(sibling.Right) == NodeColor.BLACK) + { + SetColor(sibling, NodeColor.RED); + FixRemovalCase1(sibling.Parent); + } + else + { + FixRemovalCase4(sibling); + } + } + + private static void FixRemovalCase4(TreeNode sibling) + { + if (GetColor(sibling.Parent) == NodeColor.RED && + GetColor(sibling) == NodeColor.BLACK && + GetColor(sibling.Left) == NodeColor.BLACK && + GetColor(sibling.Right) == NodeColor.BLACK) + { + SetColor(sibling, NodeColor.RED); + SetColor(sibling.Parent, NodeColor.BLACK); + } + else + { + FixRemovalCase5(sibling); + } + } + + private static void FixRemovalCase5(TreeNode sibling) + { + if (sibling == sibling.Parent.Right && + GetColor(sibling) == NodeColor.BLACK && + GetColor(sibling.Left) == NodeColor.RED && + GetColor(sibling.Right) == NodeColor.BLACK) + { + SetColor(sibling, NodeColor.RED); + SetColor(sibling.Left, NodeColor.BLACK); + RotateRight(sibling); + sibling = sibling.Parent; + } + else if (sibling == sibling.Parent.Left && + GetColor(sibling) == NodeColor.BLACK && + GetColor(sibling.Right) == NodeColor.RED && + GetColor(sibling.Left) == NodeColor.BLACK) + { + SetColor(sibling, NodeColor.RED); + SetColor(sibling.Right, NodeColor.BLACK); + RotateLeft(sibling); + sibling = sibling.Parent; + } + FixRemovalCase6(sibling); + } + + private static void FixRemovalCase6(TreeNode sibling) + { + Debug.Assert(GetColor(sibling) == NodeColor.BLACK); + + SetColor(sibling, GetColor(sibling.Parent)); + SetColor(sibling.Parent, NodeColor.BLACK); + if (sibling == sibling.Parent.Right) + { + Debug.Assert(GetColor(sibling.Right) == NodeColor.RED); + SetColor(sibling.Right, NodeColor.BLACK); + RotateLeft(sibling.Parent); + } + else + { + Debug.Assert(GetColor(sibling.Left) == NodeColor.RED); + SetColor(sibling.Left, NodeColor.BLACK); + RotateRight(sibling.Parent); + } + } + + #endregion + + #region Private Fields + + private TreeNode _root; + + #endregion + + #region Private Types + + private class MyEnumerator : IEnumerator + { + internal MyEnumerator(TreeNode node) + { + _root = node; + } + + public object Current + { + get + { + if (_node == null) + { + throw new InvalidOperationException(); + } + + return _node.Key; + } + } + + public bool MoveNext() + { + if (!_moved) + { + _node = _root != null ? FindMinSubTree(_root) : null; + _moved = true; +#if DEBUG + if (_root != null) + { + _root._inEnumaration = true; + } +#endif + } + else + { + _node = _node != null ? FindSuccessor(_node) : null; + } +#if DEBUG + if (_root != null) + { + _root._inEnumaration = _node != null; + } +#endif + return _node != null; + } + + public void Reset() + { + _moved = false; + _node = null; + } + + private TreeNode _node; + private TreeNode _root; + private bool _moved; + } + +#if DEBUG + [DebuggerDisplay("{((System.Speech.Internal.SrgsCompiler.Arc)Key).ToString ()}")] +#endif + private class TreeNode + { + internal TreeNode(object key) + { + _key = key; + } + + internal TreeNode Left + { + get + { + return _leftChild; + } + set + { + _leftChild = value; + if (_leftChild != null) + { + _leftChild._parent = this; + } + } + } + + internal TreeNode Right + { + get + { + return _rightChild; + } + set + { + _rightChild = value; + if (_rightChild != null) + { + _rightChild._parent = this; + } + } + } + + internal TreeNode Parent + { + get + { + return _parent; + } + set + { + _parent = value; + } + } + + internal bool IsRed + { + get + { + return _isRed; + } + set + { + _isRed = value; + } + } + + internal object Key + { + get + { + return _key; + } + } + + internal void CopyNode(TreeNode from) + { + _key = from._key; + } + +#if DEBUG + internal bool _inEnumaration; +#endif + private object _key; + private bool _isRed; + + private TreeNode _leftChild, _rightChild, _parent; + } + + private enum NodeColor + { + BLACK = 0, + RED = 1 + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/ResourceLoader.cs b/src/libraries/System.Speech/src/Internal/ResourceLoader.cs new file mode 100644 index 00000000000000..f565249184be6d --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/ResourceLoader.cs @@ -0,0 +1,114 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.IO; +using System.Net; + +namespace System.Speech.Internal +{ + internal class ResourceLoader + { + #region Internal Methods + + /// + /// Load a file either from a local network or from the Internet. + /// + internal Stream LoadFile(Uri uri, out string mimeType, out Uri baseUri, out string localPath) + { + localPath = null; + + { + Stream stream = null; + + // Check for a local file + if (!uri.IsAbsoluteUri || uri.IsFile) + { + // Local file + string file = uri.IsAbsoluteUri ? uri.LocalPath : uri.OriginalString; + try + { + stream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read); + } + catch + { + if (Directory.Exists(file)) + { + throw new InvalidOperationException(SR.Get(SRID.CannotReadFromDirectory, file)); + } + throw; + } + baseUri = null; + } + else + { + try + { + // http:// Load the data from the web + stream = DownloadData(uri, out baseUri); + } + catch (WebException e) + { + throw new IOException(e.Message, e); + } + } + mimeType = null; + return stream; + } + } + + /// + /// Release a file from a cache if any + /// + internal void UnloadFile(string localPath) + { + } + + internal Stream LoadFile(Uri uri, out string localPath, out Uri redirectedUri) + { + string mediaTypeUnused; + return LoadFile(uri, out mediaTypeUnused, out redirectedUri, out localPath); + } + + #endregion + + #region Private Methods + + /// + /// Download data from the web. + /// Set the redirectUri as the location of the file could be redirected in ASP pages. + /// + private static Stream DownloadData(Uri uri, out Uri redirectedUri) + { +#pragma warning disable SYSLIB0014 + // Create a request for the URL. + WebRequest request = WebRequest.Create(uri); + + // If required by the server, set the credentials. + request.Credentials = CredentialCache.DefaultCredentials; + + // Get the response. + using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) + { + // Get the stream containing content returned by the server. + using (Stream dataStream = response.GetResponseStream()) + { + redirectedUri = response.ResponseUri; + + // http:// Load the data from the web + using (WebClient client = new()) + { + client.UseDefaultCredentials = true; + return new MemoryStream(client.DownloadData(redirectedUri)); + } + } + } +#pragma warning restore SYSLIB0014 + } + + #endregion + + #region Private Fields + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SapiAttributeParser.cs b/src/libraries/System.Speech/src/Internal/SapiAttributeParser.cs new file mode 100644 index 00000000000000..5052208312d78d --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SapiAttributeParser.cs @@ -0,0 +1,57 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Globalization; +using System.Speech.AudioFormat; + +namespace System.Speech.Internal +{ + internal static class SapiAttributeParser + { + #region Internal Methods + + internal static CultureInfo GetCultureInfoFromLanguageString(string valueString) + { + string[] strings = valueString.Split(';'); + + string langStringTrim = strings[0].Trim(); + + if (!string.IsNullOrEmpty(langStringTrim)) + { + try + { + return new CultureInfo(int.Parse(langStringTrim, NumberStyles.HexNumber, CultureInfo.InvariantCulture), false); + } + catch (ArgumentException) + { + return null; // If we have an invalid language id ignore it. Otherwise enumerating recognizers or voices would fail. + } + } + + return null; + } + + internal static List GetAudioFormatsFromString(string valueString) + { + List formatList = new(); + string[] strings = valueString.Split(';'); + + for (int i = 0; i < strings.Length; i++) + { + string formatString = strings[i].Trim(); + if (!string.IsNullOrEmpty(formatString)) + { + SpeechAudioFormatInfo formatInfo = AudioFormatConverter.ToSpeechAudioFormatInfo(formatString); + if (formatInfo != null) // Skip cases where a Guid is used. + { + formatList.Add(formatInfo); + } + } + } + return formatList; + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SapiInterop/EventNotify.cs b/src/libraries/System.Speech/src/Internal/SapiInterop/EventNotify.cs new file mode 100644 index 00000000000000..d52a2b9bf69315 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SapiInterop/EventNotify.cs @@ -0,0 +1,121 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Speech.AudioFormat; +using System.Threading; + +namespace System.Speech.Internal.SapiInterop +{ + internal class SpNotifySink : ISpNotifySink + { + public SpNotifySink(EventNotify eventNotify) + { + _eventNotifyReference = new WeakReference(eventNotify); + } + + void ISpNotifySink.Notify() + { + EventNotify eventNotify = (EventNotify)_eventNotifyReference.Target; + if (eventNotify != null) + { + ThreadPool.QueueUserWorkItem(new WaitCallback(eventNotify.SendNotification)); + } + } + + private WeakReference _eventNotifyReference; + } + /// Dispatches events from ISpEventSource to DispatchEventDelegate on a thread + /// compatible with the application model of the thread that created this object. + internal class EventNotify + { + #region Constructors + + internal EventNotify(ISpEventSource sapiEventSource, IAsyncDispatch dispatcher, bool additionalSapiFeatures) + { + // Remember event source + _sapiEventSourceReference = new WeakReference(sapiEventSource); + + _dispatcher = dispatcher; + _additionalSapiFeatures = additionalSapiFeatures; + + // Start listening to events from sapiEventSource. + _notifySink = new SpNotifySink(this); + sapiEventSource.SetNotifySink(_notifySink); + } + + #endregion Constructors + + #region Internal Methods + + // Finalizer is not required since ISpEventSource and AsyncOperation both implement appropriate finalizers. + internal void Dispose() + { + lock (this) + { + // Since we are explicitly calling Dispose(), sapiEventSource (RCW) will normally be alive. + // If Dispose() is called from a finalizer this may not be the case so check for null. + if (_sapiEventSourceReference != null) + { + ISpEventSource sapiEventSource = (ISpEventSource)_sapiEventSourceReference.Target; + if (sapiEventSource != null) + { + // Stop listening to events from sapiEventSource. + sapiEventSource.SetNotifySink(null); + _notifySink = null; + } + } + _sapiEventSourceReference = null; + } + } + + internal void SendNotification(object ignored) + { + lock (this) + { + // Call dispatchEventDelegate for each SAPI event currently queued. + if (_sapiEventSourceReference != null) + { + ISpEventSource sapiEventSource = (ISpEventSource)_sapiEventSourceReference.Target; + if (sapiEventSource != null) + { + List speechEvents = new(); + SpeechEvent speechEvent; + while (null != (speechEvent = SpeechEvent.TryCreateSpeechEvent(sapiEventSource, _additionalSapiFeatures, _audioFormat))) + { + speechEvents.Add(speechEvent); + } + _dispatcher.Post(speechEvents.ToArray()); + } + } + } + } + + #endregion Methods + + #region Internal Properties + + internal SpeechAudioFormatInfo AudioFormat + { + set + { + _audioFormat = value; + } + } + + #endregion Methods + + #region Private Methods + + #endregion + + #region Private Fields + + private IAsyncDispatch _dispatcher; + private WeakReference _sapiEventSourceReference; + private bool _additionalSapiFeatures; + private SpeechAudioFormatInfo _audioFormat; + private ISpNotifySink _notifySink; + #endregion Private Fields + } +} diff --git a/src/libraries/System.Speech/src/Internal/SapiInterop/SapiEventInterop.cs b/src/libraries/System.Speech/src/Internal/SapiInterop/SapiEventInterop.cs new file mode 100644 index 00000000000000..610c9c508c020c --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SapiInterop/SapiEventInterop.cs @@ -0,0 +1,144 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; + +namespace System.Speech.Internal.SapiInterop +{ + [StructLayout(LayoutKind.Sequential)] + internal struct SPEVENT + { + public SPEVENTENUM eEventId; + public SPEVENTLPARAMTYPE elParamType; + public uint ulStreamNum; + public ulong ullAudioStreamOffset; + public IntPtr wParam; // Always just a numeric type - contains no unmanaged resources so does not need special clean-up. + public IntPtr lParam; // Can be a numeric type, or pointer to string or object. Use SafeSapiLParamHandle to cleanup. + } + + [StructLayout(LayoutKind.Sequential)] + internal struct SPEVENTEX + { + public SPEVENTENUM eEventId; + public SPEVENTLPARAMTYPE elParamType; + public uint ulStreamNum; + public ulong ullAudioStreamOffset; + public IntPtr wParam; // Always just a numeric type - contains no unmanaged resources so does not need special clean-up. + public IntPtr lParam; // Can be a numeric type, or pointer to string or object. Use SafeSapiLParamHandle to cleanup. + public ulong ullAudioTimeOffset; + } + + internal enum SPEVENTENUM : ushort + { + SPEI_UNDEFINED = 0, + + // TTS engine + SPEI_START_INPUT_STREAM = 1, + SPEI_END_INPUT_STREAM = 2, + SPEI_VOICE_CHANGE = 3, // LPARAM_IS_TOKEN + SPEI_TTS_BOOKMARK = 4, // LPARAM_IS_STRING + SPEI_WORD_BOUNDARY = 5, + SPEI_PHONEME = 6, + SPEI_SENTENCE_BOUNDARY = 7, + SPEI_VISEME = 8, + SPEI_TTS_AUDIO_LEVEL = 9, // wParam contains current output audio level + + // TTS engine vendors use these reserved bits + SPEI_TTS_PRIVATE = 15, + SPEI_MIN_TTS = 1, + SPEI_MAX_TTS = 15, + + // Speech Recognition + SPEI_END_SR_STREAM = 34, // LPARAM contains HRESULT, WPARAM contains flags (SPESF_xxx) + SPEI_SOUND_START = 35, + SPEI_SOUND_END = 36, + SPEI_PHRASE_START = 37, + SPEI_RECOGNITION = 38, + SPEI_HYPOTHESIS = 39, + SPEI_SR_BOOKMARK = 40, + SPEI_PROPERTY_NUM_CHANGE = 41, // LPARAM points to a string, WPARAM is the attrib value + SPEI_PROPERTY_STRING_CHANGE = 42, // LPARAM pointer to buffer. Two concatenated null terminated strings. + SPEI_FALSE_RECOGNITION = 43, // apparent speech with no valid recognition + SPEI_INTERFERENCE = 44, // LPARAM is any combination of SPINTERFERENCE flags + SPEI_REQUEST_UI = 45, // LPARAM is string. + SPEI_RECO_STATE_CHANGE = 46, // wParam contains new reco state + SPEI_ADAPTATION = 47, // we are now ready to accept the adaptation buffer + SPEI_START_SR_STREAM = 48, + SPEI_RECO_OTHER_CONTEXT = 49, // Phrase finished and recognized, but for other context + SPEI_SR_AUDIO_LEVEL = 50, // wParam contains current input audio level + SPEI_SR_RETAINEDAUDIO = 51, + SPEI_SR_PRIVATE = 52, + SPEI_ACTIVE_CATEGORY_CHANGED = 53, // LPARAM is a pointer to the new active category + SPEI_TEXTFEEDBACK = 54, // LPARAM is a pointer to FILETIME + FeedbackText + SPEI_RECOGNITION_ALL = 55, + SPEI_BARGE_IN = 56, + + // SPEI_MIN_SR = 34, + // SPEI_MAX_SR = 56, + SPEI_RESERVED1 = 30, // do not use + SPEI_RESERVED2 = 33, // do not use + SPEI_RESERVED3 = 63 // do not use + } + + [ComImport, Guid("5EFF4AEF-8487-11D2-961C-00C04F8EE628"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpNotifySource + { + // ISpNotifySource Methods + void SetNotifySink(ISpNotifySink pNotifySink); + void SetNotifyWindowMessage(uint hWnd, uint Msg, IntPtr wParam, IntPtr lParam); + void Slot3(); // void SetNotifyCallbackFunction(ref IntPtr pfnCallback, IntPtr wParam, IntPtr lParam); + void Slot4(); // void SetNotifyCallbackInterface(ref IntPtr pSpCallback, IntPtr wParam, IntPtr lParam); + void Slot5(); // void SetNotifyWin32Event(); + [PreserveSig] + int WaitForNotifyEvent(uint dwMilliseconds); + void Slot7(); // IntPtr GetNotifyEventHandle(); + } + + [ComImport, Guid("BE7A9CCE-5F9E-11D2-960F-00C04F8EE628"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpEventSource : ISpNotifySource + { + // ISpNotifySource Methods + new void SetNotifySink(ISpNotifySink pNotifySink); + new void SetNotifyWindowMessage(uint hWnd, uint Msg, IntPtr wParam, IntPtr lParam); + new void Slot3(); // void SetNotifyCallbackFunction(ref IntPtr pfnCallback, IntPtr wParam, IntPtr lParam); + new void Slot4(); // void SetNotifyCallbackInterface(ref IntPtr pSpCallback, IntPtr wParam, IntPtr lParam); + new void Slot5(); // void SetNotifyWin32Event(); + [PreserveSig] + new int WaitForNotifyEvent(uint dwMilliseconds); + new void Slot7(); // IntPtr GetNotifyEventHandle(); + + // ISpEventSource Methods + void SetInterest(ulong ullEventInterest, ulong ullQueuedInterest); + void GetEvents(uint ulCount, out SPEVENT pEventArray, out uint pulFetched); + void Slot10(); // void GetInfo(out SPEVENTSOURCEINFO pInfo); + } + + [ComImport, Guid("2373A435-6A4B-429e-A6AC-D4231A61975B"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpEventSource2 : ISpEventSource + { + // ISpNotifySource Methods + new void SetNotifySink(ISpNotifySink pNotifySink); + new void SetNotifyWindowMessage(uint hWnd, uint Msg, IntPtr wParam, IntPtr lParam); + new void Slot3(); // void SetNotifyCallbackFunction(ref IntPtr pfnCallback, IntPtr wParam, IntPtr lParam); + new void Slot4(); // void SetNotifyCallbackInterface(ref IntPtr pSpCallback, IntPtr wParam, IntPtr lParam); + new void Slot5(); // void SetNotifyWin32Event(); + [PreserveSig] + new int WaitForNotifyEvent(uint dwMilliseconds); + new void Slot7(); // IntPtr GetNotifyEventHandle(); + + // ISpEventSource Methods + new void SetInterest(ulong ullEventInterest, ulong ullQueuedInterest); + new void GetEvents(uint ulCount, out SPEVENT pEventArray, out uint pulFetched); + new void Slot10(); // void GetInfo(out SPEVENTSOURCEINFO pInfo); + + // ISpEventSource2 Methods + void GetEventsEx(uint ulCount, out SPEVENTEX pEventArray, out uint pulFetched); + } + + [ComImport, Guid("259684DC-37C3-11D2-9603-00C04F8EE628"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpNotifySink + { + // ISpNotifySink Methods + void Notify(); + } +} diff --git a/src/libraries/System.Speech/src/Internal/SapiInterop/SapiGrammar.cs b/src/libraries/System.Speech/src/Internal/SapiInterop/SapiGrammar.cs new file mode 100644 index 00000000000000..290af3331d561f --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SapiInterop/SapiGrammar.cs @@ -0,0 +1,118 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; + +namespace System.Speech.Internal.SapiInterop +{ + internal class SapiGrammar : IDisposable + { + #region Constructors + + internal SapiGrammar(ISpRecoGrammar sapiGrammar, SapiProxy thread) + { + _sapiGrammar = sapiGrammar; + _sapiProxy = thread; + } + + public void Dispose() + { + if (!_disposed) + { + Marshal.ReleaseComObject(_sapiGrammar); + GC.SuppressFinalize(this); + _disposed = true; + } + } + + #endregion + + #region Internal Methods + + internal void SetGrammarState(SPGRAMMARSTATE state) + { + _sapiProxy.Invoke2(delegate { _sapiGrammar.SetGrammarState(state); }); + } + + internal void SetWordSequenceData(string text, SPTEXTSELECTIONINFO info) + { + SPTEXTSELECTIONINFO selectionInfo = info; + _sapiProxy.Invoke2(delegate { _sapiGrammar.SetWordSequenceData(text, (uint)text.Length, ref selectionInfo); }); + } + + internal void LoadCmdFromMemory(IntPtr grammar, SPLOADOPTIONS options) + { + _sapiProxy.Invoke2(delegate { _sapiGrammar.LoadCmdFromMemory(grammar, options); }); + } + + internal void LoadDictation(string pszTopicName, SPLOADOPTIONS options) + { + _sapiProxy.Invoke2(delegate { _sapiGrammar.LoadDictation(pszTopicName, options); }); + } + + internal SAPIErrorCodes SetDictationState(SPRULESTATE state) + { + return (SAPIErrorCodes)_sapiProxy.Invoke(delegate { return _sapiGrammar.SetDictationState(state); }); + } + + internal SAPIErrorCodes SetRuleState(string name, SPRULESTATE state) + { + return (SAPIErrorCodes)_sapiProxy.Invoke(delegate { return _sapiGrammar.SetRuleState(name, IntPtr.Zero, state); }); + } + + /* + * The Set of methods are only available with SAPI 5.3. There is no need then to use the SAPI proxy to switch + * the call to an MTA thread. + * + */ + internal void SetGrammarLoader(ISpGrammarResourceLoader resourceLoader) + { + SpRecoGrammar2.SetGrammarLoader(resourceLoader); + } + + internal void LoadCmdFromMemory2(IntPtr grammar, SPLOADOPTIONS options, string sharingUri, string baseUri) + { + SpRecoGrammar2.LoadCmdFromMemory2(grammar, options, sharingUri, baseUri); + } + + internal void SetRulePriority(string name, uint id, int priority) + { + SpRecoGrammar2.SetRulePriority(name, id, priority); + } + internal void SetRuleWeight(string name, uint id, float weight) + { + SpRecoGrammar2.SetRuleWeight(name, id, weight); + } + internal void SetDictationWeight(float weight) + { + SpRecoGrammar2.SetDictationWeight(weight); + } + + #endregion + + #region Internal Properties + + internal ISpRecoGrammar2 SpRecoGrammar2 + { + get + { + if (_sapiGrammar2 == null) + { + _sapiGrammar2 = (ISpRecoGrammar2)_sapiGrammar; + } + return _sapiGrammar2; + } + } + + #endregion + + #region Private Methods + + private ISpRecoGrammar2 _sapiGrammar2; + private ISpRecoGrammar _sapiGrammar; + private SapiProxy _sapiProxy; + private bool _disposed; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SapiInterop/SapiInterop.cs b/src/libraries/System.Speech/src/Internal/SapiInterop/SapiInterop.cs new file mode 100644 index 00000000000000..fd6c5a1d6b7ad8 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SapiInterop/SapiInterop.cs @@ -0,0 +1,287 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; +using Microsoft.Win32.SafeHandles; + +namespace System.Speech.Internal.SapiInterop +{ + #region Enum + + // See sperror.h + internal enum SAPIErrorCodes + { + S_OK = 0, // 0x00000000 + S_FALSE = 1, // 0x00000001 + SP_NO_RULE_ACTIVE = 0x00045055, + SP_NO_RULES_TO_ACTIVATE = 282747, // 0x0004507B + + S_LIMIT_REACHED = 0x0004507F, + + E_FAIL = -2147467259, // 0x80004005 + SP_NO_PARSE_FOUND = 0x0004502c, + SP_WORD_EXISTS_WITHOUT_PRONUNCIATION = 0x00045037, // 282679 + + SPERR_FIRST = -2147201023, // 0x80045001 == SPERR_UNINITIALIZED + SPERR_LAST = -2147200877, // 0x80045093 == SPERR_VOICE_NOT_FOUND + + STG_E_FILENOTFOUND = -2147287038, // 0x80030002 + CLASS_E_CLASSNOTAVAILABLE = -2147221231, // 0x80040111 + REGDB_E_CLASSNOTREG = -2147221164, // 0x80040154 + SPERR_UNSUPPORTED_FORMAT = -2147201021, // 0x80045003 + SPERR_UNSUPPORTED_PHONEME = -2147200902, // 0x8004507A + SPERR_VOICE_NOT_FOUND = -2147200877, // 0x80045093 + SPERR_NOT_IN_LEX = -2147200999, // 0x80045019 + SPERR_TOO_MANY_GRAMMARS = -2147200990, // 0x80045022 + SPERR_INVALID_IMPORT = -2147200988, // 0x80045024 + SPERR_STREAM_CLOSED = -2147200968, // 0x80045038 + SPERR_NO_MORE_ITEMS = -2147200967, // 0x80045039 + SPERR_NOT_FOUND = -2147200966, // 0x8004503A + SPERR_NOT_TOPLEVEL_RULE = -2147200940, // 0x80045054 + SPERR_SHARED_ENGINE_DISABLED = -2147200906, // 0x80045076 + SPERR_RECOGNIZER_NOT_FOUND = -2147200905, // 0x80045077 + SPERR_AUDIO_NOT_FOUND = -2147200904, // 0x80045078 + SPERR_NOT_SUPPORTED_FOR_INPROC_RECOGNIZER = -2147200893, // 0x80045083 + SPERR_LEX_INVALID_DATA = -2147200891, // 0x80045085 + SPERR_CFG_INVALID_DATA = -2147200890 // 0x80045086 + } + + #endregion Enum + + #region SAPI constants + + internal static class SapiConstants + { + internal const string SPPROP_RESPONSE_SPEED = "ResponseSpeed"; + internal const string SPPROP_COMPLEX_RESPONSE_SPEED = "ComplexResponseSpeed"; + internal const string SPPROP_CFG_CONFIDENCE_REJECTION_THRESHOLD = "CFGConfidenceRejectionThreshold"; + + internal const uint SPDF_ALL = 0xff; + + // Throws exception if the specified Rule does not have a valid Id. + internal static SRID SapiErrorCode2SRID(SAPIErrorCodes code) + { + if (code >= SAPIErrorCodes.SPERR_FIRST && code <= SAPIErrorCodes.SPERR_LAST) + { + return (SRID)((int)SRID.SapiErrorUninitialized + (code - SAPIErrorCodes.SPERR_FIRST)); + } + else + { + switch (code) + { + case SAPIErrorCodes.SP_NO_RULE_ACTIVE: + return SRID.SapiErrorNoRuleActive; + + case SAPIErrorCodes.SP_NO_RULES_TO_ACTIVATE: + return SRID.SapiErrorNoRulesToActivate; + + case SAPIErrorCodes.SP_NO_PARSE_FOUND: + return SRID.NoParseFound; + + case SAPIErrorCodes.S_FALSE: + return SRID.UnexpectedError; + + default: + return (SRID)unchecked(-1); + } + } + } + } + + #endregion + + #region Interface + + [ComImport, Guid("14056589-E16C-11D2-BB90-00C04F8EE6C0"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpObjectToken : ISpDataKey + { + // ISpDataKey Methods + [PreserveSig] + new int SetData([MarshalAs(UnmanagedType.LPWStr)] string pszValueName, uint cbData, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] byte[] pData); + [PreserveSig] + new int GetData([MarshalAs(UnmanagedType.LPWStr)] string pszValueName, ref uint pcbData, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1), Out] byte[] pData); + [PreserveSig] + new int SetStringValue([MarshalAs(UnmanagedType.LPWStr)] string pszValueName, [MarshalAs(UnmanagedType.LPWStr)] string pszValue); + [PreserveSig] + new int GetStringValue([MarshalAs(UnmanagedType.LPWStr)] string pszValueName, [MarshalAs(UnmanagedType.LPWStr)] out string ppszValue); + [PreserveSig] + new int SetDWORD([MarshalAs(UnmanagedType.LPWStr)] string pszValueName, uint dwValue); + [PreserveSig] + new int GetDWORD([MarshalAs(UnmanagedType.LPWStr)] string pszValueName, ref uint pdwValue); + [PreserveSig] + new int OpenKey([MarshalAs(UnmanagedType.LPWStr)] string pszSubKeyName, out ISpDataKey ppSubKey); + [PreserveSig] + new int CreateKey([MarshalAs(UnmanagedType.LPWStr)] string pszSubKey, out ISpDataKey ppSubKey); + [PreserveSig] + new int DeleteKey([MarshalAs(UnmanagedType.LPWStr)] string pszSubKey); + [PreserveSig] + new int DeleteValue([MarshalAs(UnmanagedType.LPWStr)] string pszValueName); + [PreserveSig] + new int EnumKeys(uint Index, [MarshalAs(UnmanagedType.LPWStr)] out string ppszSubKeyName); + [PreserveSig] + new int EnumValues(uint Index, [MarshalAs(UnmanagedType.LPWStr)] out string ppszValueName); + + // ISpObjectToken Methods + void SetId([MarshalAs(UnmanagedType.LPWStr)] string pszCategoryId, [MarshalAs(UnmanagedType.LPWStr)] string pszTokenId, [MarshalAs(UnmanagedType.Bool)] bool fCreateIfNotExist); + void GetId(out IntPtr ppszCoMemTokenId); + void Slot15(); // void GetCategory(out ISpObjectTokenCategory ppTokenCategory); + void Slot16(); // void CreateInstance(object pUnkOuter, UInt32 dwClsContext, ref Guid riid, ref IntPtr ppvObject); + void Slot17(); // void GetStorageFileName(ref Guid clsidCaller, [MarshalAs(UnmanagedType.LPWStr)] string pszValueName, [MarshalAs(UnmanagedType.LPWStr)] string pszFileNameSpecifier, UInt32 nFolder, [MarshalAs(UnmanagedType.LPWStr)] out string ppszFilePath); + void Slot18(); // void RemoveStorageFileName(ref Guid clsidCaller, [MarshalAs(UnmanagedType.LPWStr)] string pszKeyName, int fDeleteFile); + void Slot19(); // void Remove(ref Guid pclsidCaller); + void Slot20(); // void IsUISupported([MarshalAs(UnmanagedType.LPWStr)] string pszTypeOfUI, IntPtr pvExtraData, UInt32 cbExtraData, object punkObject, ref Int32 pfSupported); + void Slot21(); // void DisplayUI(UInt32 hWndParent, [MarshalAs(UnmanagedType.LPWStr)] string pszTitle, [MarshalAs(UnmanagedType.LPWStr)] string pszTypeOfUI, IntPtr pvExtraData, UInt32 cbExtraData, object punkObject); + void MatchesAttributes([MarshalAs(UnmanagedType.LPWStr)] string pszAttributes, [MarshalAs(UnmanagedType.Bool)] out bool pfMatches); + } + + //--- ISpObjectWithToken ---------------------------------------------------- + [ComImport, Guid("5B559F40-E952-11D2-BB91-00C04F8EE6C0"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpObjectWithToken + { + [PreserveSig] + int SetObjectToken(ISpObjectToken pToken); + [PreserveSig] + int GetObjectToken(out ISpObjectToken ppToken); + }; + + [ComImport, Guid("14056581-E16C-11D2-BB90-00C04F8EE6C0"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpDataKey + { + // ISpDataKey Methods + [PreserveSig] + int SetData([MarshalAs(UnmanagedType.LPWStr)] string valueName, uint cbData, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] byte[] data); + [PreserveSig] + int GetData([MarshalAs(UnmanagedType.LPWStr)] string valueName, ref uint pcbData, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1), Out] byte[] data); + [PreserveSig] + int SetStringValue([MarshalAs(UnmanagedType.LPWStr)] string valueName, [MarshalAs(UnmanagedType.LPWStr)] string value); + [PreserveSig] + int GetStringValue([MarshalAs(UnmanagedType.LPWStr)] string valueName, [MarshalAs(UnmanagedType.LPWStr)] out string value); + [PreserveSig] + int SetDWORD([MarshalAs(UnmanagedType.LPWStr)] string valueName, uint dwValue); + [PreserveSig] + int GetDWORD([MarshalAs(UnmanagedType.LPWStr)] string valueName, ref uint pdwValue); + [PreserveSig] + int OpenKey([MarshalAs(UnmanagedType.LPWStr)] string subKeyName, out ISpDataKey ppSubKey); + [PreserveSig] + int CreateKey([MarshalAs(UnmanagedType.LPWStr)] string subKey, out ISpDataKey ppSubKey); + [PreserveSig] + int DeleteKey([MarshalAs(UnmanagedType.LPWStr)] string subKey); + [PreserveSig] + int DeleteValue([MarshalAs(UnmanagedType.LPWStr)] string valueName); + [PreserveSig] + int EnumKeys(uint index, [MarshalAs(UnmanagedType.LPWStr)] out string ppszSubKeyName); + [PreserveSig] + int EnumValues(uint index, [MarshalAs(UnmanagedType.LPWStr)] out string valueName); + } + + [ComImport, Guid("92A66E2B-C830-4149-83DF-6FC2BA1E7A5B"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpRegDataKey : ISpDataKey + { + // ISpDataKey Methods + [PreserveSig] + new int SetData([MarshalAs(UnmanagedType.LPWStr)] string valueName, uint cbData, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] byte[] data); + [PreserveSig] + new int GetData([MarshalAs(UnmanagedType.LPWStr)] string valueName, ref uint pcbData, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1), Out] byte[] data); + [PreserveSig] + new int SetStringValue([MarshalAs(UnmanagedType.LPWStr)] string valueName, [MarshalAs(UnmanagedType.LPWStr)] string value); + [PreserveSig] + new int GetStringValue([MarshalAs(UnmanagedType.LPWStr)] string pszValueName, [MarshalAs(UnmanagedType.LPWStr)] out string ppszValue); + [PreserveSig] + new int SetDWORD([MarshalAs(UnmanagedType.LPWStr)] string valueName, uint dwValue); + [PreserveSig] + new int GetDWORD([MarshalAs(UnmanagedType.LPWStr)] string pszValueName, ref uint pdwValue); + [PreserveSig] + new int OpenKey([MarshalAs(UnmanagedType.LPWStr)] string pszSubKeyName, out ISpDataKey ppSubKey); + [PreserveSig] + new int CreateKey([MarshalAs(UnmanagedType.LPWStr)] string subKey, out ISpDataKey ppSubKey); + [PreserveSig] + new int DeleteKey([MarshalAs(UnmanagedType.LPWStr)] string subKey); + [PreserveSig] + new int DeleteValue([MarshalAs(UnmanagedType.LPWStr)] string valueName); + [PreserveSig] + new int EnumKeys(uint index, [MarshalAs(UnmanagedType.LPWStr)] out string ppszSubKeyName); + [PreserveSig] + new int EnumValues(uint Index, [MarshalAs(UnmanagedType.LPWStr)] out string ppszValueName); + + // ISpRegDataKey Method + [PreserveSig] + int SetKey(SafeRegistryHandle hkey, bool fReadOnly); + } + + [ComImport, Guid("2D3D3845-39AF-4850-BBF9-40B49780011D"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpObjectTokenCategory : ISpDataKey + { + // ISpDataKey Methods + [PreserveSig] + new int SetData([MarshalAs(UnmanagedType.LPWStr)] string valueName, uint cbData, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] byte[] data); + [PreserveSig] + new int GetData([MarshalAs(UnmanagedType.LPWStr)] string valueName, ref uint pcbData, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1), Out] byte[] data); + [PreserveSig] + new int SetStringValue([MarshalAs(UnmanagedType.LPWStr)] string valueName, [MarshalAs(UnmanagedType.LPWStr)] string value); + [PreserveSig] + new void GetStringValue([MarshalAs(UnmanagedType.LPWStr)] string pszValueName, [MarshalAs(UnmanagedType.LPWStr)] out string ppszValue); + [PreserveSig] + new int SetDWORD([MarshalAs(UnmanagedType.LPWStr)] string valueName, uint dwValue); + [PreserveSig] + new int GetDWORD([MarshalAs(UnmanagedType.LPWStr)] string pszValueName, ref uint pdwValue); + [PreserveSig] + new int OpenKey([MarshalAs(UnmanagedType.LPWStr)] string pszSubKeyName, out ISpDataKey ppSubKey); + [PreserveSig] + new int CreateKey([MarshalAs(UnmanagedType.LPWStr)] string subKey, out ISpDataKey ppSubKey); + [PreserveSig] + new int DeleteKey([MarshalAs(UnmanagedType.LPWStr)] string subKey); + [PreserveSig] + new int DeleteValue([MarshalAs(UnmanagedType.LPWStr)] string valueName); + [PreserveSig] + new int EnumKeys(uint index, [MarshalAs(UnmanagedType.LPWStr)] out string ppszSubKeyName); + [PreserveSig] + new int EnumValues(uint Index, [MarshalAs(UnmanagedType.LPWStr)] out string ppszValueName); + + // ISpObjectTokenCategory Methods + void SetId([MarshalAs(UnmanagedType.LPWStr)] string pszCategoryId, [MarshalAs(UnmanagedType.Bool)] bool fCreateIfNotExist); + void GetId([MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemCategoryId); + void Slot14(); // void GetDataKey(System.Speech.Internal.SPDATAKEYLOCATION spdkl, out ISpDataKey ppDataKey); + void EnumTokens([MarshalAs(UnmanagedType.LPWStr)] string pzsReqAttribs, [MarshalAs(UnmanagedType.LPWStr)] string pszOptAttribs, out IEnumSpObjectTokens ppEnum); + void Slot16(); // void SetDefaultTokenId([MarshalAs(UnmanagedType.LPWStr)] string pszTokenId); + void GetDefaultTokenId([MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemTokenId); + } + + [ComImport, Guid("06B64F9E-7FDA-11D2-B4F2-00C04F797396"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface IEnumSpObjectTokens + { + void Slot1(); // void Next(UInt32 celt, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0), Out] ISpObjectToken[] pelt, out UInt32 pceltFetched); + void Slot2(); // void Skip(UInt32 celt); + void Slot3(); // void Reset(); + void Slot4(); // void Clone(out IEnumSpObjectTokens ppEnum); + void Item(uint Index, out ISpObjectToken ppToken); + void GetCount(out uint pCount); + } + + [ComImport, Guid("B2745EFD-42CE-48CA-81F1-A96E02538A90"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpPhoneticAlphabetSelection + { + void IsAlphabetUPS([MarshalAs(UnmanagedType.Bool)] out bool pfIsUPS); + void SetAlphabetToUPS([MarshalAs(UnmanagedType.Bool)] bool fForceUPS); + } + + [ComImport, Guid("EF411752-3736-4CB4-9C8C-8EF4CCB58EFE")] + internal class SpObjectToken { } + + [ComImport, Guid("A910187F-0C7A-45AC-92CC-59EDAFB77B53")] + internal class SpObjectTokenCategory { } + + [ComImport, Guid("D9F6EE60-58C9-458B-88E1-2F908FD7F87C")] + internal class SpDataKey { } + + #endregion + + #region Utility Class + + internal static class SAPIGuids + { + internal static readonly Guid SPDFID_WaveFormatEx = new("C31ADBAE-527F-4ff5-A230-F62BB61FF70C"); + internal static readonly Guid SPDFID_Text = new("7CEEF9F9-3D13-11d2-9EE7-00C04F797396"); + } + + #endregion +} diff --git a/src/libraries/System.Speech/src/Internal/SapiInterop/SapiProxy.cs b/src/libraries/System.Speech/src/Internal/SapiInterop/SapiProxy.cs new file mode 100644 index 00000000000000..c7a72696382895 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SapiInterop/SapiProxy.cs @@ -0,0 +1,278 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.ExceptionServices; +using System.Runtime.InteropServices; +using System.Threading; + +namespace System.Speech.Internal.SapiInterop +{ + internal abstract class SapiProxy : IDisposable + { + #region Constructors + + public virtual void Dispose() + { + GC.SuppressFinalize(this); + } + + #endregion + + #region Internal Methods + + internal abstract object Invoke(ObjectDelegate pfn); + internal abstract void Invoke2(VoidDelegate pfn); + + #endregion + + #region Internal Properties + + internal ISpRecognizer Recognizer + { + get + { + return _recognizer; + } + } + + internal ISpRecognizer2 Recognizer2 + { + get + { + if (_recognizer2 == null) + { + _recognizer2 = (ISpRecognizer2)_recognizer; + } + return _recognizer2; + } + } + + internal ISpeechRecognizer SapiSpeechRecognizer + { + get + { + if (_speechRecognizer == null) + { + _speechRecognizer = (ISpeechRecognizer)_recognizer; + } + return _speechRecognizer; + } + } + + #endregion + + #region Protected Fields + + protected ISpeechRecognizer _speechRecognizer; + protected ISpRecognizer2 _recognizer2; + protected ISpRecognizer _recognizer; + + #endregion + + #region Protected Fields + + internal class PassThrough : SapiProxy, IDisposable + { + #region Constructors + + internal PassThrough(ISpRecognizer recognizer) + { + _recognizer = recognizer; + } + + ~PassThrough() + { + Dispose(false); + } + public override void Dispose() + { + try + { + Dispose(true); + } + finally + { + base.Dispose(); + } + } + + #endregion + + #region Internal Methods + + internal override object Invoke(ObjectDelegate pfn) + { + return pfn.Invoke(); + } + + internal override void Invoke2(VoidDelegate pfn) + { + pfn.Invoke(); + } + + #endregion + + #region Private Methods + + private void Dispose(bool disposing) + { + _recognizer2 = null; + _speechRecognizer = null; + Marshal.ReleaseComObject(_recognizer); + } + + #endregion + } + +#pragma warning disable 56500 // Remove all the catch all statements warnings used by the interop layer + + internal class MTAThread : SapiProxy, IDisposable + { + #region Constructors + + internal MTAThread(SapiRecognizer.RecognizerType type) + { + _mta = new Thread(new ThreadStart(SapiMTAThread)); + if (!_mta.TrySetApartmentState(ApartmentState.MTA)) + { + throw new InvalidOperationException(); + } + _mta.IsBackground = true; + _mta.Start(); + + if (type == SapiRecognizer.RecognizerType.InProc) + { + Invoke2(delegate { _recognizer = (ISpRecognizer)new SpInprocRecognizer(); }); + } + else + { + Invoke2(delegate { _recognizer = (ISpRecognizer)new SpSharedRecognizer(); }); + } + } + + ~MTAThread() + { + Dispose(false); + } + + public override void Dispose() + { + try + { + Dispose(true); + } + finally + { + base.Dispose(); + } + } + + #endregion + + #region Internal Methods + + internal override object Invoke(ObjectDelegate pfn) + { + lock (this) + { + _doit = pfn; + _process.Set(); + _done.WaitOne(); + if (_exception == null) + { + return _result; + } + else + { + ExceptionDispatchInfo.Throw(_exception); + return null; + } + } + } + + internal override void Invoke2(VoidDelegate pfn) + { + lock (this) + { + _doit2 = pfn; + _process.Set(); + _done.WaitOne(); + if (_exception != null) + { + ExceptionDispatchInfo.Throw(_exception); + } + } + } + + #endregion + + #region Private Methods + + private void Dispose(bool disposing) + { + lock (this) + { + _recognizer2 = null; + _speechRecognizer = null; + Invoke2(delegate { Marshal.ReleaseComObject(_recognizer); }); + ((IDisposable)_process).Dispose(); + ((IDisposable)_done).Dispose(); + } + base.Dispose(); + } + + private void SapiMTAThread() + { + while (true) + { + try + { + _process.WaitOne(); + _exception = null; + if (_doit != null) + { + _result = _doit.Invoke(); + _doit = null; + } + else + { + _doit2.Invoke(); + _doit2 = null; + } + } + catch (Exception e) + { + _exception = e; + } + try + { + _done.Set(); + } + catch (ObjectDisposedException) + { + break; + } + } + } + + #endregion + + #region Private Fields + + private Thread _mta; + private AutoResetEvent _process = new(false); + private AutoResetEvent _done = new(false); + private ObjectDelegate _doit; + private VoidDelegate _doit2; + private object _result; + private Exception _exception; + + #endregion + } + + internal delegate object ObjectDelegate(); + internal delegate void VoidDelegate(); + } + + #endregion +} diff --git a/src/libraries/System.Speech/src/Internal/SapiInterop/SapiRecoContext.cs b/src/libraries/System.Speech/src/Internal/SapiInterop/SapiRecoContext.cs new file mode 100644 index 00000000000000..19c895c9d3bcdc --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SapiInterop/SapiRecoContext.cs @@ -0,0 +1,95 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; + +namespace System.Speech.Internal.SapiInterop +{ + internal class SapiRecoContext : IDisposable + { + #region Constructors + + // This constructor must be called in the context of the background proxy if any + internal SapiRecoContext(ISpRecoContext recoContext, SapiProxy proxy) + { + _recoContext = recoContext; + _proxy = proxy; + } + + public void Dispose() + { + if (!_disposed) + { + // Called from the client proxy + _proxy.Invoke2(delegate { Marshal.ReleaseComObject(_recoContext); }); + _disposed = true; + } + GC.SuppressFinalize(this); + } + + #endregion + + #region Internal Methods + + internal void SetInterest(ulong eventInterest, ulong queuedInterest) + { + _proxy.Invoke2(delegate { _recoContext.SetInterest(eventInterest, queuedInterest); }); + } + + internal SapiGrammar CreateGrammar(ulong id) + { + ISpRecoGrammar sapiGrammar; + return (SapiGrammar)_proxy.Invoke(delegate { _recoContext.CreateGrammar(id, out sapiGrammar); return new SapiGrammar(sapiGrammar, _proxy); }); + } + + internal void SetMaxAlternates(uint count) + { + _proxy.Invoke2(delegate { _recoContext.SetMaxAlternates(count); }); + } + + internal void SetAudioOptions(SPAUDIOOPTIONS options, IntPtr audioFormatId, IntPtr waveFormatEx) + { + _proxy.Invoke2(delegate { _recoContext.SetAudioOptions(options, audioFormatId, waveFormatEx); }); + } + + internal void Bookmark(SPBOOKMARKOPTIONS options, ulong position, IntPtr lparam) + { + _proxy.Invoke2(delegate { _recoContext.Bookmark(options, position, lparam); }); + } + + internal void Resume() + { + _proxy.Invoke2(delegate { _recoContext.Resume(0); }); + } + + internal void SetContextState(SPCONTEXTSTATE state) + { + _proxy.Invoke2(delegate { _recoContext.SetContextState(state); }); + } + + internal EventNotify CreateEventNotify(AsyncSerializedWorker asyncWorker, bool supportsSapi53) + { + return (EventNotify)_proxy.Invoke(delegate { return new EventNotify(_recoContext, asyncWorker, supportsSapi53); }); + } + + internal void DisposeEventNotify(EventNotify eventNotify) + { + _proxy.Invoke2(delegate { eventNotify.Dispose(); }); + } + + internal void SetGrammarOptions(SPGRAMMAROPTIONS options) + { + _proxy.Invoke2(delegate { ((ISpRecoContext2)_recoContext).SetGrammarOptions(options); }); + } + + #endregion + + #region Private Fields + + private ISpRecoContext _recoContext; + private SapiProxy _proxy; + private bool _disposed; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SapiInterop/SapiRecoInterop.cs b/src/libraries/System.Speech/src/Internal/SapiInterop/SapiRecoInterop.cs new file mode 100644 index 00000000000000..2c91bbd961b307 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SapiInterop/SapiRecoInterop.cs @@ -0,0 +1,1053 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Globalization; +using System.Runtime.InteropServices; +using System.Runtime.InteropServices.ComTypes; +using System.Speech.Recognition; + +namespace System.Speech.Internal.SapiInterop +{ + #region Enum + + internal enum SPRECOSTATE + { + SPRST_INACTIVE = 0x00000000, + SPRST_ACTIVE = 0x00000001, + SPRST_ACTIVE_ALWAYS = 0x00000002, + SPRST_INACTIVE_WITH_PURGE = 0x00000003, + SPRST_NUM_STATES = 0x00000004 + } + + internal enum SPLOADOPTIONS + { + SPLO_STATIC = 0x00000000, + SPLO_DYNAMIC = 0x00000001 + } + + internal enum SPRULESTATE + { + SPRS_INACTIVE = 0x00000000, + SPRS_ACTIVE = 0x00000001, + SPRS_ACTIVE_WITH_AUTO_PAUSE = 0x00000003, + SPRS_ACTIVE_USER_DELIMITED = 0x00000004 + } + + internal enum SPGRAMMAROPTIONS + { + SPGO_SAPI = 0x00000001, + SPGO_SRGS = 0x00000002, + SPGO_UPS = 0x00000004, + SPGO_SRGS_MSS_SCRIPT = 0x0008, + SPGO_FILE = 0x00000010, + SPGO_HTTP = 0x00000020, + SPGO_RES = 0x00000040, + SPGO_OBJECT = 0x00000080, + SPGO_SRGS_W3C_SCRIPT = 0x100, + SPGO_SRGS_STG_SCRIPT = 0x200, + + SPGO_SRGS_SCRIPT = SPGO_SRGS | SPGO_SRGS_MSS_SCRIPT | SPGO_SRGS_W3C_SCRIPT | SPGO_SRGS_STG_SCRIPT, + SPGO_DEFAULT = SPGO_SAPI | SPGO_SRGS | SPGO_FILE | SPGO_HTTP | SPGO_RES | SPGO_OBJECT, + SPGO_ALL = SPGO_SAPI | SPGO_SRGS | SPGO_SRGS_SCRIPT | SPGO_FILE | SPGO_HTTP | SPGO_RES | SPGO_OBJECT + } + + internal enum SPSTREAMFORMATTYPE + { + SPWF_INPUT = 0x00000000, + SPWF_SRENGINE = 0x00000001 + } + + [Flags] + internal enum SpeechEmulationCompareFlags + { + SECFIgnoreCase = 0x00000001, + SECFIgnoreKanaType = 0x00010000, + SECFIgnoreWidth = 0x00020000, + SECFNoSpecialChars = 0x20000000, + SECFEmulateResult = 0x40000000, + SECFDefault = SECFIgnoreCase | SECFIgnoreKanaType | SECFIgnoreWidth + } + + [Flags] + internal enum SPADAPTATIONSETTINGS + { + SPADS_Default = 0x0000, + SPADS_CurrentRecognizer = 0x0001, + SPADS_RecoProfile = 0x0002, + SPADS_Immediate = 0x0004, + SPADS_Reset = 0x0008 + } + + internal enum SPADAPTATIONRELEVANCE + { + SPAR_Unknown = 0, + SPAR_Low = 1, + SPAR_Medium = 2, + SPAR_High = 3 + } + + [Flags] + internal enum SPRECOEVENTFLAGS + { + SPREF_AutoPause = 0x0001, + SPREF_Emulated = 0x0002, + SPREF_SMLTimeout = 0x0004, + SPREF_ExtendableParse = 0x0008, + SPREF_ReSent = 0x0010, + SPREF_Hypothesis = 0x0020, + SPREF_FalseRecognition = 0x0040 + } + + [Flags] + internal enum SPBOOKMARKOPTIONS + { + SPBO_NONE = 0x0000, + SPBO_PAUSE = 0x0001, + SPBO_AHEAD = 0x0002, + SPBO_TIME_UNITS = 0x0004 + } + + internal enum SPAUDIOOPTIONS + { + SPAO_NONE = 0, + SPAO_RETAIN_AUDIO = 1 + } + + [Flags] + internal enum SPENDSRSTREAMFLAGS + { + SPESF_NONE = 0x00, + SPESF_STREAM_RELEASED = 0x01, + SPESF_EMULATED = 0x02 + }; + + [Flags] + internal enum SPCOMMITFLAGS + { + SPCF_NONE = 0x00, + SPCF_ADD_TO_USER_LEXICON = 0x01, + SPCF_DEFINITE_CORRECTION = 0x02 + }; + + internal enum SPAUDIOSTATE + { + SPAS_CLOSED = 0, + SPAS_STOP = 1, + SPAS_PAUSE = 2, + SPAS_RUN = 3 + } + + internal enum SPXMLRESULTOPTIONS + { + SPXRO_SML = 0x00000000, + SPXRO_Alternates_SML = 0x00000001 + } + + internal enum SPCONTEXTSTATE + { + SPCS_DISABLED = 0, + SPCS_ENABLED = 1 + } + + internal enum SPINTERFERENCE + { + SPINTERFERENCE_NONE = 0, + SPINTERFERENCE_NOISE = 1, + SPINTERFERENCE_NOSIGNAL = 2, + SPINTERFERENCE_TOOLOUD = 3, + SPINTERFERENCE_TOOQUIET = 4, + SPINTERFERENCE_TOOFAST = 5, + SPINTERFERENCE_TOOSLOW = 6 + } + + internal enum SPGRAMMARSTATE + { + SPGS_DISABLED = 0, + SPGS_ENABLED = 1, + SPGS_EXCLUSIVE = 3 + } + + [Flags] + internal enum SPRESULTALPHABET + { + SPRA_NONE = 0, + SPRA_APP_UPS = 0x0001, + SPRA_ENGINE_UPS = 0x0002 + } + + #endregion + + #region Structure + + /// Note: This structure doesn't exist in SAPI.idl but is related to SPPHRASEALT. + /// We use it to map memory contained in the serialized result (instead of reading sequentially) + [StructLayout(LayoutKind.Sequential)] + internal class SPSERIALIZEDPHRASEALT + { + internal uint ulStartElementInParent; + internal uint cElementsInParent; + internal uint cElementsInAlternate; + internal uint cbAltExtra; + } + + [StructLayout(LayoutKind.Sequential)] + [Serializable] + internal struct FILETIME + { + internal uint dwLowDateTime; + internal uint dwHighDateTime; + } + + [StructLayout(LayoutKind.Sequential)] + [Serializable] + internal struct SPRECORESULTTIMES + { + internal FILETIME ftStreamTime; + internal ulong ullLength; + internal uint dwTickCount; + internal ulong ullStart; + } + + internal struct SPTEXTSELECTIONINFO + { + internal uint ulStartActiveOffset; + internal uint cchActiveChars; + internal uint ulStartSelection; + internal uint cchSelection; + + internal SPTEXTSELECTIONINFO(uint ulStartActiveOffset, uint cchActiveChars, + uint ulStartSelection, uint cchSelection) + { + this.ulStartActiveOffset = ulStartActiveOffset; + this.cchActiveChars = cchActiveChars; + this.ulStartSelection = ulStartSelection; + this.cchSelection = cchSelection; + } + } + + [StructLayout(LayoutKind.Sequential)] + internal struct SPAUDIOSTATUS + { + internal int cbFreeBuffSpace; + internal uint cbNonBlockingIO; + internal SPAUDIOSTATE State; + internal ulong CurSeekPos; + internal ulong CurDevicePos; + internal uint dwAudioLevel; + internal uint dwReserved2; + } + + [StructLayout(LayoutKind.Sequential)] + internal struct SPRECOGNIZERSTATUS + { + internal SPAUDIOSTATUS AudioStatus; + internal ulong ullRecognitionStreamPos; + internal uint ulStreamNumber; + internal uint ulNumActive; + internal Guid clsidEngine; + internal uint cLangIDs; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)] // SP_MAX_LANGIDS + internal short[] aLangID; + internal ulong ullRecognitionStreamTime; + } + + [StructLayout(LayoutKind.Sequential)] + internal struct SPRECOCONTEXTSTATUS + { + internal SPINTERFERENCE eInterference; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 255)] + internal short[] szRequestTypeOfUI; // Can't really be marshaled as a string directly + internal uint dwReserved1; + internal uint dwReserved2; + } + + [StructLayout(LayoutKind.Sequential)] + internal class SPSEMANTICERRORINFO + { + internal uint ulLineNumber; + internal uint pszScriptLineOffset; + internal uint pszSourceOffset; + internal uint pszDescriptionOffset; + internal int hrResultCode; + } + + [StructLayout(LayoutKind.Sequential)] + internal struct SPSERIALIZEDRESULT + { + internal uint ulSerializedSize; // Count in bytes (including this ULONG) of the entire phrase + } + + // Serialized result header from versions of SAPI prior to 5.3. + [StructLayout(LayoutKind.Sequential)] + [Serializable] + internal class SPRESULTHEADER_Sapi51 + { + internal uint ulSerializedSize; // This MUST be the first field to line up with SPSERIALIZEDRESULT + internal uint cbHeaderSize; // This must be sizeof(SPRESULTHEADER), or sizeof(SPRESULTHEADER_Sapi51) on SAPI 5.1. + internal Guid clsidEngine; // CLSID clsidEngine; + internal Guid clsidAlternates; // CLSID clsidAlternates; + internal uint ulStreamNum; + internal ulong ullStreamPosStart; + internal ulong ullStreamPosEnd; + internal uint ulPhraseDataSize; // byte size of all the phrase structure + internal uint ulPhraseOffset; // offset to phrase + internal uint ulPhraseAltDataSize; // byte size of all the phrase alt structures combined + internal uint ulPhraseAltOffset; // offset to phrase + internal uint ulNumPhraseAlts; // Number of alts in array + internal uint ulRetainedDataSize; // byte size of audio data + internal uint ulRetainedOffset; // offset to audio data in this phrase blob + internal uint ulDriverDataSize; // byte size of driver specific data + internal uint ulDriverDataOffset; // offset to driver specific data + internal float fTimePerByte; // Conversion factor from engine stream size to time. + internal float fInputScaleFactor; // Conversion factor from engine stream size to input stream size. + internal SPRECORESULTTIMES times; // time info of result + } + + // The SAPI 5.3 result header added extra fields. + [StructLayout(LayoutKind.Sequential)] + [Serializable] + internal class SPRESULTHEADER + { + internal SPRESULTHEADER() + { + } + + internal SPRESULTHEADER(SPRESULTHEADER_Sapi51 source) + { + ulSerializedSize = source.ulSerializedSize; + cbHeaderSize = source.cbHeaderSize; + clsidEngine = source.clsidEngine; + clsidAlternates = source.clsidAlternates; + ulStreamNum = source.ulStreamNum; + ullStreamPosStart = source.ullStreamPosStart; + ullStreamPosEnd = source.ullStreamPosEnd; + ulPhraseDataSize = source.ulPhraseDataSize; + ulPhraseOffset = source.ulPhraseOffset; + ulPhraseAltDataSize = source.ulPhraseAltDataSize; + ulPhraseAltOffset = source.ulPhraseAltOffset; + ulNumPhraseAlts = source.ulNumPhraseAlts; + ulRetainedDataSize = source.ulRetainedDataSize; + ulRetainedOffset = source.ulRetainedOffset; + ulDriverDataSize = source.ulDriverDataSize; + ulDriverDataOffset = source.ulDriverDataOffset; + fTimePerByte = source.fTimePerByte; + fInputScaleFactor = source.fInputScaleFactor; + times = source.times; + } + + internal void Validate() + { + ValidateOffsetAndLength(0, cbHeaderSize); + ValidateOffsetAndLength(ulPhraseOffset, ulPhraseDataSize); + ValidateOffsetAndLength(ulPhraseAltOffset, ulPhraseAltDataSize); + ValidateOffsetAndLength(ulRetainedOffset, ulRetainedDataSize); + ValidateOffsetAndLength(ulDriverDataOffset, ulDriverDataSize); + } + + // Duplicate all the fields of SPRESULTHEADER_Sapi51 - Marshal.PtrToStructure seems to need these to be defined again. + internal uint ulSerializedSize; + internal uint cbHeaderSize; + internal Guid clsidEngine; + internal Guid clsidAlternates; + internal uint ulStreamNum; + internal ulong ullStreamPosStart; + internal ulong ullStreamPosEnd; + internal uint ulPhraseDataSize; + internal uint ulPhraseOffset; + internal uint ulPhraseAltDataSize; + internal uint ulPhraseAltOffset; + internal uint ulNumPhraseAlts; + internal uint ulRetainedDataSize; + internal uint ulRetainedOffset; + internal uint ulDriverDataSize; + internal uint ulDriverDataOffset; + internal float fTimePerByte; + internal float fInputScaleFactor; + internal SPRECORESULTTIMES times; + + private void ValidateOffsetAndLength(uint offset, uint length) + { + if (offset + length > ulSerializedSize) + { + throw new FormatException(SR.Get(SRID.ResultInvalidFormat)); + } + } + internal uint fAlphabet; + // Not present in SAPI 5.1 results; on SAPI 5.without IPA this is set to zero, with IPA it will indicate + // the alphabet of pronunciations the result + } + + // Serialized phrase header from versions of SAPI prior to 5.2. + [StructLayout(LayoutKind.Sequential)] + internal class SPSERIALIZEDPHRASE_Sapi51 + { + internal uint ulSerializedSize; // This MUST be the first field to line up with SPSERIALIZEDPHRASE + internal uint cbSize; // size of just this structure within the serialized block header") + internal ushort LangID; + internal ushort wHomophoneGroupId; + internal ulong ullGrammarID; + internal ulong ftStartTime; + internal ulong ullAudioStreamPosition; + internal uint ulAudioSizeBytes; + internal uint ulRetainedSizeBytes; + internal uint ulAudioSizeTime; + internal SPSERIALIZEDPHRASERULE Rule; + internal uint PropertiesOffset; + internal uint ElementsOffset; + internal uint cReplacements; + internal uint ReplacementsOffset; + internal Guid SREngineID; + internal uint ulSREnginePrivateDataSize; + internal uint SREnginePrivateDataOffset; + } + + [StructLayout(LayoutKind.Sequential)] + [Serializable] + internal class SPPHRASE + { + internal uint cbSize; // Size of structure + internal ushort LangID; + internal ushort wReserved; + internal ulong ullGrammarID; + internal ulong ftStartTime; + internal ulong ullAudioStreamPosition; + internal uint ulAudioSizeBytes; + internal uint ulRetainedSizeBytes; + internal uint ulAudioSizeTime; // In 100ns units + internal SPPHRASERULE Rule; + internal IntPtr pProperties; + internal IntPtr pElements; + internal uint cReplacements; + internal IntPtr pReplacements; + internal Guid SREngineID; + internal uint ulSREnginePrivateDataSize; + internal IntPtr pSREnginePrivateData; + + /// + /// Helper function used to create a new phrase object from a + /// test string. Each word in the string is converted to a phrase element. + /// This is useful to create a phrase to pass to the EmulateRecognition method. + /// + internal static ISpPhrase CreatePhraseFromText(string phrase, CultureInfo culture, out GCHandle[] memHandles, out IntPtr coMem) + { + string[] words = phrase.Split(Array.Empty(), StringSplitOptions.RemoveEmptyEntries); + RecognizedWordUnit[] wordUnits = new RecognizedWordUnit[words.Length]; + for (int i = 0; i < wordUnits.Length; i++) + { + wordUnits[i] = new RecognizedWordUnit(null, 1.0f, null, words[i], DisplayAttributes.OneTrailingSpace, TimeSpan.Zero, TimeSpan.Zero); + } + return CreatePhraseFromWordUnits(wordUnits, culture, out memHandles, out coMem); + } + + /// + /// Helper function used to create a new phrase object from a + /// test string. Each word in the string is converted to a phrase element. + /// This is useful to create a phrase to pass to the EmulateRecognition method. + /// + internal static ISpPhrase CreatePhraseFromWordUnits(RecognizedWordUnit[] words, CultureInfo culture, out GCHandle[] memHandles, out IntPtr coMem) + { + SPPHRASEELEMENT[] elements = new SPPHRASEELEMENT[words.Length]; + + // build the unmanaged interop layer + int size = Marshal.SizeOf(typeof(SPPHRASEELEMENT)); + List handles = new(); + + coMem = Marshal.AllocCoTaskMem(size * elements.Length); + try + { + for (int i = 0; i < words.Length; i++) + { + RecognizedWordUnit word = words[i]; + elements[i] = new SPPHRASEELEMENT + { + // display + confidence + bDisplayAttributes = RecognizedWordUnit.DisplayAttributesToSapiAttributes(word.DisplayAttributes == DisplayAttributes.None ? DisplayAttributes.OneTrailingSpace : word.DisplayAttributes), + SREngineConfidence = word.Confidence, + + // Timing information + ulAudioTimeOffset = unchecked((uint)(word._audioPosition.Ticks * 10000 / TimeSpan.TicksPerMillisecond)), + ulAudioSizeTime = unchecked((uint)(word._audioDuration.Ticks * 10000 / TimeSpan.TicksPerMillisecond)) + }; + + // DLP information + if (word.Text != null) + { + GCHandle handle = GCHandle.Alloc(word.Text, GCHandleType.Pinned); + handles.Add(handle); + elements[i].pszDisplayText = handle.AddrOfPinnedObject(); + } + + if (word.Text == null || word.LexicalForm != word.Text) + { + GCHandle handle = GCHandle.Alloc(word.LexicalForm, GCHandleType.Pinned); + handles.Add(handle); + elements[i].pszLexicalForm = handle.AddrOfPinnedObject(); + } + else + { + elements[i].pszLexicalForm = elements[i].pszDisplayText; + } + + if (!string.IsNullOrEmpty(word.Pronunciation)) + { + GCHandle handle = GCHandle.Alloc(word.Pronunciation, GCHandleType.Pinned); + handles.Add(handle); + elements[i].pszPronunciation = handle.AddrOfPinnedObject(); + } + + Marshal.StructureToPtr(elements[i], new IntPtr((long)coMem + size * i), false); + } + } + finally + { + memHandles = handles.ToArray(); + } + + SPPHRASE spPhrase = new(); + spPhrase.cbSize = (uint)Marshal.SizeOf(spPhrase.GetType()); + spPhrase.LangID = (ushort)culture.LCID; + spPhrase.Rule = new SPPHRASERULE + { + ulCountOfElements = (uint)words.Length + }; + + spPhrase.pElements = coMem; + + // Initialized the phrase + SpPhraseBuilder phraseBuilder = new(); + ((ISpPhraseBuilder)phraseBuilder).InitFromPhrase(spPhrase); + + return (ISpPhrase)phraseBuilder; + } + } + + [StructLayout(LayoutKind.Sequential)] + [Serializable] + internal class SPPHRASERULE + { + [MarshalAs(UnmanagedType.LPWStr)] + internal string pszName; + internal uint ulId; + internal uint ulFirstElement; + internal uint ulCountOfElements; + internal IntPtr pNextSibling; + internal IntPtr pFirstChild; + internal float SREngineConfidence; + internal byte Confidence; + } + + [StructLayout(LayoutKind.Sequential)] + [Serializable] + internal class SPPHRASEELEMENT + { + internal uint ulAudioTimeOffset; + internal uint ulAudioSizeTime; // In 100ns units + internal uint ulAudioStreamOffset; + internal uint ulAudioSizeBytes; + internal uint ulRetainedStreamOffset; + internal uint ulRetainedSizeBytes; + internal IntPtr pszDisplayText; + internal IntPtr pszLexicalForm; + internal IntPtr pszPronunciation; + internal byte bDisplayAttributes; + internal byte RequiredConfidence; + internal byte ActualConfidence; + internal byte Reserved; + internal float SREngineConfidence; + } + + // The SAPI 5.2 & 5.3 result header added extra fields. + [StructLayout(LayoutKind.Sequential)] + [Serializable] + internal class SPSERIALIZEDPHRASE + { + internal SPSERIALIZEDPHRASE() + { } + + internal SPSERIALIZEDPHRASE(SPSERIALIZEDPHRASE_Sapi51 source) + { + ulSerializedSize = source.ulSerializedSize; + cbSize = source.cbSize; + LangID = source.LangID; + wHomophoneGroupId = source.wHomophoneGroupId; + ullGrammarID = source.ullGrammarID; + ftStartTime = source.ftStartTime; + ullAudioStreamPosition = source.ullAudioStreamPosition; + ulAudioSizeBytes = source.ulAudioSizeBytes; + ulRetainedSizeBytes = source.ulRetainedSizeBytes; + ulAudioSizeTime = source.ulAudioSizeTime; + Rule = source.Rule; + PropertiesOffset = source.PropertiesOffset; + ElementsOffset = source.ElementsOffset; + cReplacements = source.cReplacements; + ReplacementsOffset = source.ReplacementsOffset; + SREngineID = source.SREngineID; + ulSREnginePrivateDataSize = source.ulSREnginePrivateDataSize; + SREnginePrivateDataOffset = source.SREnginePrivateDataOffset; + } + + // Duplicate all the fields of SPSERIALIZEDPHRASE_Sapi51 - Marshal.PtrToStructure seems to need these to be defined again. + internal uint ulSerializedSize; + internal uint cbSize; + internal ushort LangID; + internal ushort wHomophoneGroupId; + internal ulong ullGrammarID; + internal ulong ftStartTime; + internal ulong ullAudioStreamPosition; + internal uint ulAudioSizeBytes; + internal uint ulRetainedSizeBytes; + internal uint ulAudioSizeTime; + internal SPSERIALIZEDPHRASERULE Rule; + internal uint PropertiesOffset; + internal uint ElementsOffset; + internal uint cReplacements; + internal uint ReplacementsOffset; + internal Guid SREngineID; + internal uint ulSREnginePrivateDataSize; + internal uint SREnginePrivateDataOffset; + + internal uint SMLOffset; // Not present in SAPI 5.1 results. + internal uint SemanticErrorInfoOffset; // Not present in SAPI 5.1 results. + } + + [StructLayout(LayoutKind.Sequential)] + [Serializable] + internal class SPSERIALIZEDPHRASERULE + { + internal uint pszNameOffset; + internal uint ulId; + internal uint ulFirstElement; + internal uint ulCountOfElements; + internal uint NextSiblingOffset; + internal uint FirstChildOffset; + internal float SREngineConfidence; + internal sbyte Confidence; + } + + [StructLayout(LayoutKind.Sequential)] + internal class SPSERIALIZEDPHRASEELEMENT + { + internal uint ulAudioTimeOffset; + internal uint ulAudioSizeTime; // In 100ns units + internal uint ulAudioStreamOffset; + internal uint ulAudioSizeBytes; + internal uint ulRetainedStreamOffset; + internal uint ulRetainedSizeBytes; + internal uint pszDisplayTextOffset; + internal uint pszLexicalFormOffset; + internal uint pszPronunciationOffset; + internal byte bDisplayAttributes; + internal char RequiredConfidence; + internal char ActualConfidence; + internal byte Reserved; + internal float SREngineConfidence; + } + + [StructLayout(LayoutKind.Sequential)] + internal class SPSERIALIZEDPHRASEPROPERTY + { + internal uint pszNameOffset; + internal uint ulId; + internal uint pszValueOffset; + internal ushort vValue; // sizeof unsigned short + internal ulong SpVariantSubset; // sizeof DOUBLE + internal uint ulFirstElement; + internal uint ulCountOfElements; + internal uint pNextSiblingOffset; + internal uint pFirstChildOffset; + internal float SREngineConfidence; + internal sbyte Confidence; + } + + [StructLayout(LayoutKind.Sequential)] + internal class SPPHRASEREPLACEMENT + { + internal byte bDisplayAttributes; + internal uint pszReplacementText; + internal uint ulFirstElement; + internal uint ulCountOfElements; + } + + [StructLayout(LayoutKind.Sequential)] + internal class SPWAVEFORMATEX + { + public uint cbUsed; + public Guid Guid; + public ushort wFormatTag; + public ushort nChannels; + public uint nSamplesPerSec; + public uint nAvgBytesPerSec; + public ushort nBlockAlign; + public ushort wBitsPerSample; + public ushort cbSize; + } + + #endregion + + #region Interface + + [ComImport, Guid("8137828F-591A-4A42-BE58-49EA7EBAAC68"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpGrammarBuilder + { + // ISpGrammarBuilder Methods + void Slot1(); // void ResetGrammar(UInt16 NewLanguage); + void Slot2(); // void GetRule([MarshalAs(UnmanagedType.LPWStr)] string pszRuleName, UInt32 dwRuleId, UInt32 dwAttributes, [MarshalAs(UnmanagedType.Bool)] bool fCreateIfNotExist, out IntPtr phInitialState); + void Slot3(); // void ClearRule(IntPtr hState); + void Slot4(); // void CreateNewState(IntPtr hState, out IntPtr phState); + void Slot5(); // void AddWordTransition(IntPtr hFromState, IntPtr hToState, [MarshalAs(UnmanagedType.LPWStr)] string psz, [MarshalAs(UnmanagedType.LPWStr)] string pszSeparators, SPGRAMMARWORDTYPE eWordType, float Weight, ref SPPROPERTYINFO pPropInfo); + void Slot6(); // void AddRuleTransition(IntPtr hFromState, IntPtr hToState, IntPtr hRule, float Weight, ref SPPROPERTYINFO pPropInfo); + void Slot7(); // void AddResource(IntPtr hRuleState, [MarshalAs(UnmanagedType.LPWStr)] string pszResourceName, [MarshalAs(UnmanagedType.LPWStr)] string pszResourceValue); + void Slot8(); // void Commit(UInt32 dwReserved); + } + + [ComImport, Guid("2177DB29-7F45-47D0-8554-067E91C80502"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpRecoGrammar : ISpGrammarBuilder + { + // ISpGrammarBuilder Methods + new void Slot1(); // void ResetGrammar(UInt16 NewLanguage); + new void Slot2(); // void GetRule([MarshalAs(UnmanagedType.LPWStr)] string pszRuleName, UInt32 dwRuleId, UInt32 dwAttributes, [MarshalAs(UnmanagedType.Bool)] bool fCreateIfNotExist, out IntPtr phInitialState); + new void Slot3(); // void ClearRule(IntPtr hState); + new void Slot4(); // void CreateNewState(IntPtr hState, out IntPtr phState); + new void Slot5(); // void AddWordTransition(IntPtr hFromState, IntPtr hToState, [MarshalAs(UnmanagedType.LPWStr)] string psz, [MarshalAs(UnmanagedType.LPWStr)] string pszSeparators, SPGRAMMARWORDTYPE eWordType, float Weight, ref SPPROPERTYINFO pPropInfo); + new void Slot6(); // void AddRuleTransition(IntPtr hFromState, IntPtr hToState, IntPtr hRule, float Weight, ref SPPROPERTYINFO pPropInfo); + new void Slot7(); // void AddResource(IntPtr hRuleState, [MarshalAs(UnmanagedType.LPWStr)] string pszResourceName, [MarshalAs(UnmanagedType.LPWStr)] string pszResourceValue); + new void Slot8(); // void Commit(UInt32 dwReserved); + + // ISpRecoGrammar Methods + void Slot9(); // void GetGrammarId(out UInt64 pullGrammarId); + void Slot10(); // void GetRecoContext(out ISpRecoContext ppRecoCtxt); + void LoadCmdFromFile([MarshalAs(UnmanagedType.LPWStr)] string pszFileName, SPLOADOPTIONS Options); + void Slot12(); // void LoadCmdFromObject(ref Guid rcid, string pszGrammarName, SPLOADOPTIONS Options); + void Slot13(); // void LoadCmdFromResource(IntPtr hModule, string pszResourceName, string pszResourceType, UInt16 wLanguage, SPLOADOPTIONS Options); + void LoadCmdFromMemory(IntPtr pGrammar, SPLOADOPTIONS Options); + void Slot15(); // void LoadCmdFromProprietaryGrammar(ref Guid rguidParam, string pszStringParam, IntPtr pvDataPrarm, UInt32 cbDataSize, SPLOADOPTIONS Options); + [PreserveSig] + int SetRuleState([MarshalAs(UnmanagedType.LPWStr)] string pszName, IntPtr pReserved, SPRULESTATE NewState); + void Slot17(); // void SetRuleIdState(UInt32 ulRuleId, SPRULESTATE NewState); + void LoadDictation([MarshalAs(UnmanagedType.LPWStr)] string pszTopicName, SPLOADOPTIONS Options); + void Slot19(); // void UnloadDictation(); + [PreserveSig] + int SetDictationState(SPRULESTATE NewState); + void SetWordSequenceData([MarshalAs(UnmanagedType.LPWStr)] string pText, uint cchText, ref SPTEXTSELECTIONINFO pInfo); + void SetTextSelection(ref SPTEXTSELECTIONINFO pInfo); + void Slot23(); // void IsPronounceable(string pszWord, out SPWORDPRONOUNCEABLE pWordPronounceable); + void SetGrammarState(SPGRAMMARSTATE eGrammarState); + void Slot25(); // void SaveCmd(IStream pStream, IntPtr ppszCoMemErrorText); + void Slot26(); // void GetGrammarState(out SPGRAMMARSTATE peGrammarState); + } + + [ComImport, Guid("4B37BC9E-9ED6-44a3-93D3-18F022B79EC3"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpRecoGrammar2 + { + void GetRules(out IntPtr ppCoMemRules, out uint puNumRules); + void LoadCmdFromFile2([MarshalAs(UnmanagedType.LPWStr)] string pszFileName, SPLOADOPTIONS Options, [MarshalAs(UnmanagedType.LPWStr)] string pszSharingUri, [MarshalAs(UnmanagedType.LPWStr)] string pszBaseUri); + void LoadCmdFromMemory2(IntPtr pGrammar, SPLOADOPTIONS Options, [MarshalAs(UnmanagedType.LPWStr)] string pszSharingUri, [MarshalAs(UnmanagedType.LPWStr)] string pszBaseUri); + void SetRulePriority([MarshalAs(UnmanagedType.LPWStr)] string pszRuleName, uint ulRuleId, int nRulePriority); + void SetRuleWeight([MarshalAs(UnmanagedType.LPWStr)] string pszRuleName, uint ulRuleId, float flWeight); + void SetDictationWeight(float flWeight); + void SetGrammarLoader(ISpGrammarResourceLoader pLoader); + void Slot2(); //HRESULT SetSMLSecurityManager([in] IInternetSecurityManager* pSMLSecurityManager); + } + + [ComImport, Guid("F740A62F-7C15-489E-8234-940A33D9272D"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpRecoContext : ISpEventSource + { + // ISpNotifySource Methods + new void SetNotifySink(ISpNotifySink pNotifySink); + new void SetNotifyWindowMessage(uint hWnd, uint Msg, IntPtr wParam, IntPtr lParam); + new void Slot3(); // void SetNotifyCallbackFunction(ref IntPtr pfnCallback, IntPtr wParam, IntPtr lParam); + new void Slot4(); // void SetNotifyCallbackInterface(ref IntPtr pSpCallback, IntPtr wParam, IntPtr lParam); + new void Slot5(); // void SetNotifyWin32Event(); + [PreserveSig] + new int WaitForNotifyEvent(uint dwMilliseconds); + new void Slot7(); // IntPtr GetNotifyEventHandle(); + + // ISpEventSource Methods + new void SetInterest(ulong ullEventInterest, ulong ullQueuedInterest); + new void GetEvents(uint ulCount, out SPEVENT pEventArray, out uint pulFetched); + new void Slot10(); // void GetInfo(out SPEVENTSOURCEINFO pInfo); + + // ISpRecoContext Methods + void GetRecognizer(out ISpRecognizer ppRecognizer); + void CreateGrammar(ulong ullGrammarID, out ISpRecoGrammar ppGrammar); + void GetStatus(out SPRECOCONTEXTSTATUS pStatus); + void GetMaxAlternates(out uint pcAlternates); + void SetMaxAlternates(uint cAlternates); + void SetAudioOptions(SPAUDIOOPTIONS Options, IntPtr pAudioFormatId, IntPtr pWaveFormatEx); + void Slot17(); // void GetAudioOptions(out SPAUDIOOPTIONS pOptions, out Guid pAudioFormatId, out IntPtr ppCoMemWFEX); + void Slot18(); // void DeserializeResult(ref SPSERIALIZEDRESULT pSerializedResult, out ISpRecoResult ppResult); + void Bookmark(SPBOOKMARKOPTIONS Options, ulong ullStreamPosition, IntPtr lparamEvent); + void Slot20(); // void SetAdaptationData([MarshalAs(UnmanagedType.LPWStr)] string pAdaptationData, UInt32 cch); + void Pause(uint dwReserved); + void Resume(uint dwReserved); + void Slot23(); // void SetVoice (ISpVoice pVoice, [MarshalAs (UnmanagedType.Bool)] bool fAllowFormatChanges); + void Slot24(); // void GetVoice(out ISpVoice ppVoice); + void Slot25(); // void SetVoicePurgeEvent(UInt64 ullEventInterest); + void Slot26(); // void GetVoicePurgeEvent(out UInt64 pullEventInterest); + void SetContextState(SPCONTEXTSTATE eContextState); + void Slot28(); // void GetContextState(out SPCONTEXTSTATE peContextState); + } + + [ComImport, Guid("BEAD311C-52FF-437f-9464-6B21054CA73D"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpRecoContext2 + { + // ISpRecoContext2 Methods + void SetGrammarOptions(SPGRAMMAROPTIONS eGrammarOptions); + void Slot2(); // void GetGrammarOptions(out SPGRAMMAROPTIONS peGrammarOptions); + void SetAdaptationData2([MarshalAs(UnmanagedType.LPWStr)] string pAdaptationData, uint cch, [MarshalAs(UnmanagedType.LPWStr)] string pTopicName, SPADAPTATIONSETTINGS eSettings, SPADAPTATIONRELEVANCE eRelevance); + } + + [ComImport, Guid("5B4FB971-B115-4DE1-AD97-E482E3BF6EE4"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpProperties + { + // ISpProperties Methods + [PreserveSig] + int SetPropertyNum([MarshalAs(UnmanagedType.LPWStr)] string pName, int lValue); + [PreserveSig] + int GetPropertyNum([MarshalAs(UnmanagedType.LPWStr)] string pName, out int plValue); + [PreserveSig] + int SetPropertyString([MarshalAs(UnmanagedType.LPWStr)] string pName, [MarshalAs(UnmanagedType.LPWStr)] string pValue); + [PreserveSig] + int GetPropertyString([MarshalAs(UnmanagedType.LPWStr)] string pName, [MarshalAs(UnmanagedType.LPWStr)] out string ppCoMemValue); + } + + [ComImport, Guid("C2B5F241-DAA0-4507-9E16-5A1EAA2B7A5C"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpRecognizer : ISpProperties + { + // ISpProperties Methods + [PreserveSig] + new int SetPropertyNum([MarshalAs(UnmanagedType.LPWStr)] string pName, int lValue); + [PreserveSig] + new int GetPropertyNum([MarshalAs(UnmanagedType.LPWStr)] string pName, out int plValue); + [PreserveSig] + new int SetPropertyString([MarshalAs(UnmanagedType.LPWStr)] string pName, [MarshalAs(UnmanagedType.LPWStr)] string pValue); + [PreserveSig] + new int GetPropertyString([MarshalAs(UnmanagedType.LPWStr)] string pName, [MarshalAs(UnmanagedType.LPWStr)] out string ppCoMemValue); + + // ISpRecognizer Methods + void SetRecognizer(ISpObjectToken pRecognizer); + void GetRecognizer(out ISpObjectToken ppRecognizer); + void SetInput([MarshalAs(UnmanagedType.IUnknown)] object pUnkInput, [MarshalAs(UnmanagedType.Bool)] bool fAllowFormatChanges); + void Slot8(); // void GetInputObjectToken(out ISpObjectToken ppToken); + void Slot9(); // void GetInputStream(out ISpStreamFormat ppStream); + void CreateRecoContext(out ISpRecoContext ppNewCtxt); + void Slot11();//void GetRecoProfile(out ISpObjectToken ppToken); + void Slot12(); // void SetRecoProfile(ISpObjectToken pToken); + void Slot13(); // void IsSharedInstance(); + void GetRecoState(out SPRECOSTATE pState); + void SetRecoState(SPRECOSTATE NewState); + void GetStatus(out SPRECOGNIZERSTATUS pStatus); + void GetFormat(SPSTREAMFORMATTYPE WaveFormatType, out Guid pFormatId, out IntPtr ppCoMemWFEX); + void IsUISupported([MarshalAs(UnmanagedType.LPWStr)] string pszTypeOfUI, IntPtr pvExtraData, uint cbExtraData, [MarshalAs(UnmanagedType.Bool)] out bool pfSupported); + [PreserveSig] + int DisplayUI(IntPtr hWndParent, [MarshalAs(UnmanagedType.LPWStr)] string pszTitle, [MarshalAs(UnmanagedType.LPWStr)] string pszTypeOfUI, IntPtr pvExtraData, uint cbExtraData); + [PreserveSig] + int EmulateRecognition(ISpPhrase pPhrase); + } + + [ComImport, Guid("8FC6D974-C81E-4098-93C5-0147F61ED4D3"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpRecognizer2 + { + // ISpRecognizer2 Methods + [PreserveSig] + int EmulateRecognitionEx(ISpPhrase pPhrase, uint dwCompareFlags); + void SetTrainingState(bool fDoingTraining, bool fAdaptFromTrainingData); + void ResetAcousticModelAdaptation(); + } + + [ComImport, Guid("2D5F1C0C-BD75-4b08-9478-3B11FEA2586C")] + internal interface ISpeechRecognizer + { + // ISpeechRecognizer Methods + object Slot1 { get; set; } // [DispId(1)] SpObjectToken Recognizer { set; get; } + object Slot2 { get; set; } // [DispId(2)] bool AllowAudioInputFormatChangesOnNextSet { set; get; } + object Slot3 { get; set; } // [DispId(3)] SpObjectToken AudioInput { set; get; } + object Slot4 { get; set; } // [DispId(4)] ISpeechBaseStream AudioInputStream { set; get; } + object Slot5 { get; } // [DispId(5)] bool IsShared { get; } + object Slot6 { get; set; } // [DispId(8)] SpObjectToken Profile { set; get; } + object Slot7 { get; set; } // [DispId(6)] SpeechRecognizerState State { set; get; } + object Slot8 { get; } // [DispId(7)] ISpeechRecognizerStatus Status { get; } + [DispId(9)] + [PreserveSig] + int EmulateRecognition(object TextElements, ref object ElementDisplayAttributes, int LanguageId); + void Slot10(); // [DispId(10)] ISpeechRecoContext CreateRecoContext(); + void Slot11(); // [DispId(11)] SpAudioFormat GetFormat(SpeechFormatType Type); + void Slot12(); // [DispId(12)] bool SetPropertyNumber(string Name, Int32 Value); + void Slot13(); // [DispId(13)] bool GetPropertyNumber(string Name, out Int32 Value); + void Slot14(); // [DispId(14)] bool SetPropertyString(string Name, string Value); + void Slot15(); // [DispId(15)] bool GetPropertyString(string Name, out string Value); + void Slot16(); // [DispId(16)] bool IsUISupported(string TypeOfUI, ref Object ExtraData); + void Slot17(); // [DispId(17)] void DisplayUI(Int32 hWndParent, string Title, string TypeOfUI, ref Object ExtraData); + void Slot18(); // [DispId(18)] ISpeechObjectTokens GetRecognizers(string RequiredAttributes, string OptionalAttributes); + void Slot19(); // [DispId(19)] ISpeechObjectTokens GetAudioInputs(string RequiredAttributes, string OptionalAttributes); + void Slot20(); // [DispId(20)] ISpeechObjectTokens GetProfiles(string RequiredAttributes, string OptionalAttributes); + } + + [ComImport, Guid("1A5C0354-B621-4b5a-8791-D306ED379E53"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpPhrase + { + // ISpPhrase Methods + void GetPhrase(out IntPtr ppCoMemPhrase); + void GetSerializedPhrase(out IntPtr ppCoMemPhrase); + void GetText(uint ulStart, uint ulCount, [MarshalAs(UnmanagedType.Bool)] bool fUseTextReplacements, [MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemText, out byte pbDisplayAttributes); + void Discard(uint dwValueTypes); + } + + [ComImport, Guid("20B053BE-E235-43cd-9A2A-8D17A48B7842"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpRecoResult : ISpPhrase + { + // ISpPhrase Methods + new void GetPhrase(out IntPtr ppCoMemPhrase); + new void GetSerializedPhrase(out IntPtr ppCoMemPhrase); + new void GetText(uint ulStart, uint ulCount, [MarshalAs(UnmanagedType.Bool)] bool fUseTextReplacements, [MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemText, out byte pbDisplayAttributes); + new void Discard(uint dwValueTypes); + + // ISpRecoResult Methods + void Slot5(); // void GetResultTimes(out SPRECORESULTTIMES pTimes); + void GetAlternates(int ulStartElement, int cElements, int ulRequestCount, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2), Out] IntPtr[] ppPhrases, out int pcPhrasesReturned); + void GetAudio(uint ulStartElement, uint cElements, out ISpStreamFormat ppStream); + void Slot8(); // void SpeakAudio(UInt32 ulStartElement, UInt32 cElements, UInt32 dwFlags, out UInt32 pulStreamNumber); + void Serialize(out IntPtr ppCoMemSerializedResult); + void Slot10(); // void ScaleAudio(ref Guid pAudioFormatId, IntPtr pWaveFormatEx); + void Slot11(); // void GetRecoContext(out ISpRecoContext ppRecoContext); + } + + [ComImport, Guid("8FCEBC98-4E49-4067-9C6C-D86A0E092E3D"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpPhraseAlt : ISpPhrase + { + // ISpPhrase Methods + new void GetPhrase(out IntPtr ppCoMemPhrase); + new void GetSerializedPhrase(out IntPtr ppCoMemPhrase); + new void GetText(uint ulStart, uint ulCount, [MarshalAs(UnmanagedType.Bool)] bool fUseTextReplacements, [MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemText, out byte pbDisplayAttributes); + new void Discard(uint dwValueTypes); + + // ISpPhraseAlt Methods + void GetAltInfo(out ISpPhrase ppParent, out uint pulStartElementInParent, out uint pcElementsInParent, out uint pcElementsInAlt); + void Commit(); + } + + [ComImport, Guid("27CAC6C4-88F2-41f2-8817-0C95E59F1E6E"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpRecoResult2 : ISpRecoResult + { + // ISpPhrase Methods + new void GetPhrase(out IntPtr ppCoMemPhrase); + new void GetSerializedPhrase(out IntPtr ppCoMemPhrase); + new void GetText(uint ulStart, uint ulCount, [MarshalAs(UnmanagedType.Bool)] bool fUseTextReplacements, [MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemText, out byte pbDisplayAttributes); + new void Discard(uint dwValueTypes); + + // ISpRecoResult Methods + new void Slot5(); // new void GetResultTimes(out SPRECORESULTTIMES pTimes); + new void GetAlternates(int ulStartElement, int cElements, int ulRequestCount, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2), Out] IntPtr[] ppPhrases, out int pcPhrasesReturned); + new void GetAudio(uint ulStartElement, uint cElements, out ISpStreamFormat ppStream); + new void Slot8(); // void SpeakAudio(UInt32 ulStartElement, UInt32 cElements, UInt32 dwFlags, out UInt32 pulStreamNumber); + new void Serialize(out IntPtr ppCoMemSerializedResult); + new void Slot10(); // void ScaleAudio(ref Guid pAudioFormatId, IntPtr pWaveFormatEx); + new void Slot11(); // void GetRecoContext(out ISpRecoContext ppRecoContext); + + // ISpRecoResult2 Methods + void CommitAlternate(ISpPhraseAlt pPhraseAlt, out ISpRecoResult ppNewResult); + void CommitText(uint ulStartElement, uint ulCountOfElements, [MarshalAs(UnmanagedType.LPWStr)] string pszCorrectedData, SPCOMMITFLAGS commitFlags); + void SetTextFeedback([MarshalAs(UnmanagedType.LPWStr)] string pszFeedback, [MarshalAs(UnmanagedType.Bool)] bool fSuccessful); + } + + [ComImport, Guid("AE39362B-45A8-4074-9B9E-CCF49AA2D0B6"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpXMLRecoResult : ISpRecoResult + { + // ISpPhrase Methods + new void GetPhrase(out IntPtr ppCoMemPhrase); + new void GetSerializedPhrase(out IntPtr ppCoMemPhrase); + new void GetText(uint ulStart, uint ulCount, [MarshalAs(UnmanagedType.Bool)] bool fUseTextReplacements, [MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemText, out byte pbDisplayAttributes); + new void Discard(uint dwValueTypes); + + // ISpRecoResult Methods + new void Slot5(); // new void GetResultTimes(out SPRECORESULTTIMES pTimes); + new void GetAlternates(int ulStartElement, int cElements, int ulRequestCount, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2), Out] IntPtr[] ppPhrases, out int pcPhrasesReturned); + new void GetAudio(uint ulStartElement, uint cElements, out ISpStreamFormat ppStream); + new void Slot8(); // void SpeakAudio(UInt32 ulStartElement, UInt32 cElements, UInt32 dwFlags, out UInt32 pulStreamNumber); + new void Serialize(out IntPtr ppCoMemSerializedResult); + new void Slot10(); // void ScaleAudio(ref Guid pAudioFormatId, IntPtr pWaveFormatEx); + new void Slot11(); // void GetRecoContext(out ISpRecoContext ppRecoContext); + + // ISpXMLRecoResult Methods + void GetXMLResult([MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemXMLResult, SPXMLRESULTOPTIONS Options); + void GetXMLErrorInfo(out SPSEMANTICERRORINFO pSemanticErrorInfo); + } + + [ComImport, Guid("F264DA52-E457-4696-B856-A737B717AF79"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpPhraseEx : ISpPhrase + { + // ISpPhrase Methods + new void GetPhrase(out IntPtr ppCoMemPhrase); + new void GetSerializedPhrase(out IntPtr ppCoMemPhrase); + new void GetText(uint ulStart, uint ulCount, [MarshalAs(UnmanagedType.Bool)] bool fUseTextReplacements, [MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemText, out byte pbDisplayAttributes); + new void Discard(uint dwValueTypes); + + // ISpPhraseEx Methods + void GetXMLResult([MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemXMLResult, SPXMLRESULTOPTIONS Options); + void GetXMLErrorInfo(out SPSEMANTICERRORINFO pSemanticErrorInfo); + void Slot7(); // void GetAudio(UInt32 ulStartElement, UInt32 cElements, out ISpStreamFormat ppStream); + } + + [ComImport, Guid("C8D7C7E2-0DDE-44b7-AFE3-B0C991FBEB5E"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpDisplayAlternates + { + void GetDisplayAlternates(IntPtr pPhrase, uint cRequestCount, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2), Out] IntPtr[] ppCoMemPhrases, out uint pcPhrasesReturned); + } + + /// + /// Resource Loader interface definition + /// + [ComImport, Guid("B9AC5783-FCD0-4b21-B119-B4F8DA8FD2C3")] + internal interface ISpGrammarResourceLoader + { + /// + /// Load some data + /// + [PreserveSig] + int LoadResource(string bstrResourceUri, bool fAlwaysReload, out IStream pStream, ref string pbstrMIMEType, ref short pfModified, ref string pbstrRedirectUrl); + + /// + /// Converts the resourcePath to a location in the file cache and returns a reference into the + /// cache + /// + string GetLocalCopy(Uri resourcePath, out string mimeType, out Uri redirectUrl); + + /// + /// Mark an entry in the file cache as unused. + /// + void ReleaseLocalCopy(string path); + } + + [ComImport, Guid("88A3342A-0BED-4834-922B-88D43173162F"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpPhraseBuilder : ISpPhrase + { + // ISpPhrase Methods + new void GetPhrase(out IntPtr ppCoMemPhrase); + new void GetSerializedPhrase(out IntPtr ppCoMemPhrase); + new void GetText(uint ulStart, uint ulCount, [MarshalAs(UnmanagedType.Bool)] bool fUseTextReplacements, [MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemText, out byte pbDisplayAttributes); + new void Discard(uint dwValueTypes); + + void InitFromPhrase(SPPHRASE pPhrase); + void Slot6(); // InitFromSerializedPhrase(const SPSERIALIZEDPHRASE * pPhrase); + void Slot7(); // AddElements(ULONG cElements, const SPPHRASEELEMENT *pElement); + void Slot8(); // AddRules(const SPPHRASERULEHANDLE hParent, const SPPHRASERULE * pRule, SPPHRASERULEHANDLE * phNewRule); + void Slot9(); // AddProperties(const SPPHRASEPROPERTYHANDLE hParent, const SPPHRASEPROPERTY * pProperty, SPPHRASEPROPERTYHANDLE * phNewProperty); + void Slot10(); // AddReplacements(ULONG cReplacements, const SPPHRASEREPLACEMENT * pReplacements); + }; + + #endregion + + #region Class + + [ComImport, Guid("3BEE4890-4FE9-4A37-8C1E-5E7E12791C1F")] + internal class SpSharedRecognizer { } + + [ComImport, Guid("41B89B6B-9399-11D2-9623-00C04F8EE628")] + internal class SpInprocRecognizer { } + + [ComImport, Guid("777B6BBD-2FF2-11D3-88FE-00C04F8EF9B5")] + internal class SpPhraseBuilder { } + + #endregion Class +} diff --git a/src/libraries/System.Speech/src/Internal/SapiInterop/SapiRecognizer.cs b/src/libraries/System.Speech/src/Internal/SapiInterop/SapiRecognizer.cs new file mode 100644 index 00000000000000..8fc8c603997417 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SapiInterop/SapiRecognizer.cs @@ -0,0 +1,263 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Speech.Internal.ObjectTokens; +using System.Speech.Recognition; + +namespace System.Speech.Internal.SapiInterop +{ + internal class SapiRecognizer : IDisposable + { + #region Constructors + + internal SapiRecognizer(RecognizerType type) + { + ISpRecognizer recognizer; + try + { + if (type == RecognizerType.InProc) + { + recognizer = (ISpRecognizer)new SpInprocRecognizer(); + } + else + { + recognizer = (ISpRecognizer)new SpSharedRecognizer(); + } + _isSap53 = recognizer is ISpRecognizer2; + } + catch (COMException e) + { + throw RecognizerBase.ExceptionFromSapiCreateRecognizerError(e); + } + + // Back out if the recognizer we have SAPI 5.1 + if (!IsSapi53 && System.Threading.Thread.CurrentThread.GetApartmentState() == System.Threading.ApartmentState.STA) + { + // must be recreated on a different thread + Marshal.ReleaseComObject(recognizer); + _proxy = new SapiProxy.MTAThread(type); + } + else + { + _proxy = new SapiProxy.PassThrough(recognizer); + } + } + + public void Dispose() + { + if (!_disposed) + { + _proxy.Dispose(); + _disposed = true; + } + GC.SuppressFinalize(this); + } + + #endregion + + #region Internal Methods + + // ISpProperties Methods + internal void SetPropertyNum(string name, int value) + { + _proxy.Invoke2(delegate { SetProperty(_proxy.Recognizer, name, value); }); + } + + internal int GetPropertyNum(string name) + { + return (int)_proxy.Invoke(delegate { return GetProperty(_proxy.Recognizer, name, true); }); + } + internal void SetPropertyString(string name, string value) + { + _proxy.Invoke2(delegate { SetProperty(_proxy.Recognizer, name, value); }); + } + + internal string GetPropertyString(string name) + { + return (string)_proxy.Invoke(delegate { return GetProperty(_proxy.Recognizer, name, false); }); + } + + // ISpRecognizer Methods + internal void SetRecognizer(ISpObjectToken recognizer) + { + try + { + _proxy.Invoke2(delegate { _proxy.Recognizer.SetRecognizer(recognizer); }); + } + catch (InvalidCastException) + { + // The Interop layer maps the SAPI error that an interface cannot by QI to an Invalid cast exception + // Map the InvalidCastException + throw new PlatformNotSupportedException(SR.Get(SRID.NotSupportedWithThisVersionOfSAPI)); + } + } + + internal RecognizerInfo GetRecognizerInfo() + { + ISpObjectToken sapiObjectToken; + return (RecognizerInfo)_proxy.Invoke(delegate + { + RecognizerInfo recognizerInfo; + _proxy.Recognizer.GetRecognizer(out sapiObjectToken); + + IntPtr sapiTokenId; + try + { + sapiObjectToken.GetId(out sapiTokenId); + string tokenId = Marshal.PtrToStringUni(sapiTokenId); + recognizerInfo = RecognizerInfo.Create(ObjectToken.Open(null, tokenId, false)); + if (recognizerInfo == null) + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerNotFound)); + } + Marshal.FreeCoTaskMem(sapiTokenId); + } + finally + { + Marshal.ReleaseComObject(sapiObjectToken); + } + + return recognizerInfo; + }); + } + + internal void SetInput(object input, bool allowFormatChanges) + { + _proxy.Invoke2(delegate { _proxy.Recognizer.SetInput(input, allowFormatChanges); }); + } + + internal SapiRecoContext CreateRecoContext() + { + ISpRecoContext context; + return (SapiRecoContext)_proxy.Invoke(delegate { _proxy.Recognizer.CreateRecoContext(out context); return new SapiRecoContext(context, _proxy); }); + } + + internal SPRECOSTATE GetRecoState() + { + SPRECOSTATE state; + return (SPRECOSTATE)_proxy.Invoke(delegate { _proxy.Recognizer.GetRecoState(out state); return state; }); + } + + internal void SetRecoState(SPRECOSTATE state) + { + _proxy.Invoke2(delegate { _proxy.Recognizer.SetRecoState(state); }); + } + + internal SPRECOGNIZERSTATUS GetStatus() + { + SPRECOGNIZERSTATUS status; + return (SPRECOGNIZERSTATUS)_proxy.Invoke(delegate { _proxy.Recognizer.GetStatus(out status); return status; }); + } + + internal IntPtr GetFormat(SPSTREAMFORMATTYPE WaveFormatType) + { + return (IntPtr)_proxy.Invoke(delegate + { + Guid formatId; + IntPtr ppCoMemWFEX; + _proxy.Recognizer.GetFormat(WaveFormatType, out formatId, out ppCoMemWFEX); return ppCoMemWFEX; + }); + } + + internal SAPIErrorCodes EmulateRecognition(string phrase) + { + object displayAttributes = " "; // Passing a null object here doesn't work because EmulateRecognition doesn't handle VT_EMPTY + return (SAPIErrorCodes)_proxy.Invoke(delegate { return _proxy.SapiSpeechRecognizer.EmulateRecognition(phrase, ref displayAttributes, 0); }); + } + + internal SAPIErrorCodes EmulateRecognition(ISpPhrase iSpPhrase, uint dwCompareFlags) + { + return (SAPIErrorCodes)_proxy.Invoke(delegate { return _proxy.Recognizer2.EmulateRecognitionEx(iSpPhrase, dwCompareFlags); }); + } + + #endregion + + #region Internal Properties + + internal bool IsSapi53 + { + get + { + return _isSap53; + } + } + + #endregion + + #region Internal Types + + internal enum RecognizerType + { + InProc, + Shared + } + + #endregion + + #region Private Methods + + private static void SetProperty(ISpRecognizer sapiRecognizer, string name, object value) + { + SAPIErrorCodes errorCode; + + if (value is int) + { + errorCode = (SAPIErrorCodes)sapiRecognizer.SetPropertyNum(name, (int)value); + } + else + { + errorCode = (SAPIErrorCodes)sapiRecognizer.SetPropertyString(name, (string)value); + } + + if (errorCode == SAPIErrorCodes.S_FALSE) + { + throw new KeyNotFoundException(SR.Get(SRID.RecognizerSettingNotSupported)); + } + else if (errorCode < SAPIErrorCodes.S_OK) + { + throw RecognizerBase.ExceptionFromSapiCreateRecognizerError(new COMException(SR.Get(SRID.RecognizerSettingUpdateError), (int)errorCode)); + } + } + + private static object GetProperty(ISpRecognizer sapiRecognizer, string name, bool integer) + { + SAPIErrorCodes errorCode; + object result = null; + + if (integer) + { + int value; + errorCode = (SAPIErrorCodes)sapiRecognizer.GetPropertyNum(name, out value); + result = value; + } + else + { + string value; + errorCode = (SAPIErrorCodes)sapiRecognizer.GetPropertyString(name, out value); + result = value; + } + + if (errorCode == SAPIErrorCodes.S_FALSE) + { + throw new KeyNotFoundException(SR.Get(SRID.RecognizerSettingNotSupported)); + } + else if (errorCode < SAPIErrorCodes.S_OK) + { + throw RecognizerBase.ExceptionFromSapiCreateRecognizerError(new COMException(SR.Get(SRID.RecognizerSettingUpdateError), (int)errorCode)); + } + return result; + } + + #endregion + + #region Private Fields + + private SapiProxy _proxy; + private bool _disposed; + private bool _isSap53; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SapiInterop/SapiStreamInterop.cs b/src/libraries/System.Speech/src/Internal/SapiInterop/SapiStreamInterop.cs new file mode 100644 index 00000000000000..2da4b823f9fe61 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SapiInterop/SapiStreamInterop.cs @@ -0,0 +1,71 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; +using System.Runtime.InteropServices.ComTypes; +using STATSTG = System.Runtime.InteropServices.ComTypes.STATSTG; + +namespace System.Speech.Internal.SapiInterop +{ + #region enum + + internal enum SPFILEMODE + { + SPFM_OPEN_READONLY = 0, + SPFM_CREATE_ALWAYS = 3 + } + + #endregion Enum + + #region Interface + + [ComImport, Guid("BED530BE-2606-4F4D-A1C0-54C5CDA5566F"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpStreamFormat : IStream + { + // ISequentialStream Methods + new void Read([MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1), Out] byte[] pv, int cb, IntPtr pcbRead); + new void Write([MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] byte[] pv, int cb, IntPtr pcbWritten); + + // IStream Methods + new void Seek(long dlibMove, int dwOrigin, IntPtr plibNewPosition); + new void SetSize(long libNewSize); + new void CopyTo(IStream pstm, long cb, IntPtr pcbRead, IntPtr pcbWritten); + new void Commit(int grfCommitFlags); + new void Revert(); + new void LockRegion(long libOffset, long cb, int dwLockType); + new void UnlockRegion(long libOffset, long cb, int dwLockType); + new void Stat(out STATSTG pstatstg, int grfStatFlag); + new void Clone(out IStream ppstm); + + // ISpStreamFormat Methods + void GetFormat(out Guid pguidFormatId, out IntPtr ppCoMemWaveFormatEx); + } + + [ComImport, Guid("BED530BE-2606-4F4D-A1C0-54C5CDA5566F"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpStream : ISpStreamFormat + { + // ISequentialStream Methods + new void Read([MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1), Out] byte[] pv, int cb, IntPtr pcbRead); + new void Write([MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] byte[] pv, int cb, IntPtr pcbWritten); + // IStream Methods + new void Seek(long dlibMove, int dwOrigin, IntPtr plibNewPosition); + new void SetSize(long libNewSize); + new void CopyTo(IStream pstm, long cb, IntPtr pcbRead, IntPtr pcbWritten); + new void Commit(int grfCommitFlags); + new void Revert(); + new void LockRegion(long libOffset, long cb, int dwLockType); + new void UnlockRegion(long libOffset, long cb, int dwLockType); + new void Stat(out STATSTG pstatstg, int grfStatFlag); + new void Clone(out IStream ppstm); + // ISpStreamFormat Methods + new void GetFormat(out Guid pguidFormatId, out IntPtr ppCoMemWaveFormatEx); + + // ISpStream Methods + void SetBaseStream(IStream pStream, ref Guid rguidFormat, IntPtr pWaveFormatEx); + void Slot14(); // void GetBaseStream(IStream ** ppStream); + void BindToFile(string pszFileName, SPFILEMODE eMode, ref Guid pFormatId, IntPtr pWaveFormatEx, ulong ullEventInterest); + void Close(); + } + + #endregion +} diff --git a/src/libraries/System.Speech/src/Internal/SapiInterop/SpAudioStreamWrapper.cs b/src/libraries/System.Speech/src/Internal/SapiInterop/SpAudioStreamWrapper.cs new file mode 100644 index 00000000000000..106bc98c61e34d --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SapiInterop/SpAudioStreamWrapper.cs @@ -0,0 +1,181 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.IO; +using System.Runtime.InteropServices; +using System.Speech.AudioFormat; +using System.Speech.Internal.Synthesis; + +namespace System.Speech.Internal.SapiInterop +{ + internal class SpAudioStreamWrapper : SpStreamWrapper, ISpStreamFormat + { + #region Constructors + + internal SpAudioStreamWrapper(Stream stream, SpeechAudioFormatInfo audioFormat) : base(stream) + { + // Assume PCM to start with + _formatType = SAPIGuids.SPDFID_WaveFormatEx; + + if (audioFormat != null) + { + WAVEFORMATEX wfx = new(); + wfx.wFormatTag = (short)audioFormat.EncodingFormat; + wfx.nChannels = (short)audioFormat.ChannelCount; + wfx.nSamplesPerSec = audioFormat.SamplesPerSecond; + wfx.nAvgBytesPerSec = audioFormat.AverageBytesPerSecond; + wfx.nBlockAlign = (short)audioFormat.BlockAlign; + wfx.wBitsPerSample = (short)audioFormat.BitsPerSample; + wfx.cbSize = (short)audioFormat.FormatSpecificData().Length; + + _wfx = wfx.ToBytes(); + if (wfx.cbSize == 0) + { + byte[] wfxTemp = new byte[_wfx.Length + wfx.cbSize]; + Array.Copy(_wfx, wfxTemp, _wfx.Length); + Array.Copy(audioFormat.FormatSpecificData(), 0, wfxTemp, _wfx.Length, wfx.cbSize); + _wfx = wfxTemp; + } + } + else + { + try + { + GetStreamOffsets(stream); + } + catch (IOException) + { + throw new FormatException(SR.Get(SRID.SynthesizerInvalidWaveFile)); + } + } + } + + #endregion + + #region public Methods + + #region ISpStreamFormat interface implementation + + void ISpStreamFormat.GetFormat(out Guid guid, out IntPtr format) + { + guid = _formatType; + format = Marshal.AllocCoTaskMem(_wfx.Length); + Marshal.Copy(_wfx, 0, format, _wfx.Length); + } + + #endregion + + #endregion + + #region Internal Methods + +#pragma warning disable 56518 // The Binary reader cannot be disposed or it would close the underlying stream + + /// + /// Builds the + /// + internal void GetStreamOffsets(Stream stream) + { + BinaryReader br = new(stream); + // Read the riff Header + RIFFHDR riff = new(); + + riff._id = br.ReadUInt32(); + riff._len = br.ReadInt32(); + riff._type = br.ReadUInt32(); + + if (riff._id != RIFF_MARKER && riff._type != WAVE_MARKER) + { + throw new FormatException(); + } + + BLOCKHDR block = new(); + block._id = br.ReadUInt32(); + block._len = br.ReadInt32(); + + if (block._id != FMT_MARKER) + { + throw new FormatException(); + } + + // If the format is of type WAVEFORMAT then fake a cbByte with a length of zero + _wfx = br.ReadBytes(block._len); + + // Hardcode the value of the size for the structure element + // as the C# compiler pads the structure to the closest 4 or 8 bytes + if (block._len == 16) + { + byte[] wfxTemp = new byte[18]; + Array.Copy(_wfx, wfxTemp, 16); + _wfx = wfxTemp; + } + + while (true) + { + DATAHDR dataHdr = new(); + + // check for the end of file (+8 for the 2 DWORD) + if (stream.Position + 8 >= stream.Length) + { + break; + } + dataHdr._id = br.ReadUInt32(); + dataHdr._len = br.ReadInt32(); + + // Is this the WAVE data? + if (dataHdr._id == DATA_MARKER) + { + _endOfStreamPosition = stream.Position + dataHdr._len; + break; + } + else + { + // Skip this RIFF fragment. + stream.Seek(dataHdr._len, SeekOrigin.Current); + } + } + } + +#pragma warning restore 56518 // The Binary reader cannot be disposed or it would close the underlying stream + + #endregion + + #region Private Types + + private const uint RIFF_MARKER = 0x46464952; + private const uint WAVE_MARKER = 0x45564157; + private const uint FMT_MARKER = 0x20746d66; + private const uint DATA_MARKER = 0x61746164; + + [StructLayout(LayoutKind.Sequential)] + private struct RIFFHDR + { + internal uint _id; + internal int _len; /* file length less header */ + internal uint _type; /* should be "WAVE" */ + } + + [StructLayout(LayoutKind.Sequential)] + private struct BLOCKHDR + { + internal uint _id; /* should be "fmt " or "data" */ + internal int _len; /* block size less header */ + }; + + [StructLayout(LayoutKind.Sequential)] + private struct DATAHDR + { + internal uint _id; /* should be "fmt " or "data" */ + internal int _len; /* block size less header */ + } + + #endregion + + #region Private Fields + + private byte[] _wfx; + private Guid _formatType; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SapiInterop/SpStreamWrapper.cs b/src/libraries/System.Speech/src/Internal/SapiInterop/SpStreamWrapper.cs new file mode 100644 index 00000000000000..fb39f446114977 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SapiInterop/SpStreamWrapper.cs @@ -0,0 +1,118 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.IO; +using System.Runtime.InteropServices; +using System.Runtime.InteropServices.ComTypes; +using STATSTG = System.Runtime.InteropServices.ComTypes.STATSTG; + +namespace System.Speech.Internal.SapiInterop +{ + internal class SpStreamWrapper : IStream, IDisposable + { + #region Constructors + + internal SpStreamWrapper(Stream stream) + { + _stream = stream; + _endOfStreamPosition = stream.Length; + } + + public void Dispose() + { + _stream.Dispose(); + GC.SuppressFinalize(this); + } + + #endregion + + #region public Methods + + #region ISpStreamFormat interface implementation + + public void Read(byte[] pv, int cb, IntPtr pcbRead) + { + if (_endOfStreamPosition >= 0 && _stream.Position + cb > _endOfStreamPosition) + { + cb = (int)(_endOfStreamPosition - _stream.Position); + } + + int read = 0; + try + { + read = _stream.Read(pv, 0, cb); + } + catch (EndOfStreamException) + { + read = 0; + } + + if (pcbRead != IntPtr.Zero) + { + Marshal.WriteIntPtr(pcbRead, new IntPtr(read)); + } + } + + public void Write(byte[] pv, int cb, IntPtr pcbWritten) + { + throw new NotSupportedException(); + } + + public void Seek(long offset, int seekOrigin, IntPtr plibNewPosition) + { + _stream.Seek(offset, (SeekOrigin)seekOrigin); + + if (plibNewPosition != IntPtr.Zero) + { + Marshal.WriteIntPtr(plibNewPosition, new IntPtr(_stream.Position)); + } + } + public void SetSize(long libNewSize) + { + throw new NotSupportedException(); + } + public void CopyTo(IStream pstm, long cb, IntPtr pcbRead, IntPtr pcbWritten) + { + throw new NotSupportedException(); + } + public void Commit(int grfCommitFlags) + { + _stream.Flush(); + } + public void Revert() + { + throw new NotSupportedException(); + } + public void LockRegion(long libOffset, long cb, int dwLockType) + { + throw new NotSupportedException(); + } + public void UnlockRegion(long libOffset, long cb, int dwLockType) + { + throw new NotSupportedException(); + } + public void Stat(out STATSTG pstatstg, int grfStatFlag) + { + pstatstg = new STATSTG + { + cbSize = _stream.Length + }; + } + + public void Clone(out IStream ppstm) + { + throw new NotSupportedException(); + } + + #endregion + + #endregion + + #region Private Fields + + private Stream _stream; + protected long _endOfStreamPosition = -1; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SapiInterop/SpeechEvent.cs b/src/libraries/System.Speech/src/Internal/SapiInterop/SpeechEvent.cs new file mode 100644 index 00000000000000..0758126ec01531 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SapiInterop/SpeechEvent.cs @@ -0,0 +1,172 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; +using System.Speech.AudioFormat; + +namespace System.Speech.Internal.SapiInterop +{ + // Internal helper class that wraps a SAPI event structure. + // A new instance is created by calling SpeechEvent.TryCreateSpeechEvent + // Disposing this class will dispose all unmanaged memory. + internal class SpeechEvent : IDisposable + { + #region Constructors + + private SpeechEvent(SPEVENTENUM eEventId, SPEVENTLPARAMTYPE elParamType, + ulong ullAudioStreamOffset, IntPtr wParam, IntPtr lParam) + { + // We make a copy of the SPEVENTEX data but that's okay because the lParam will only be deleted once. + _eventId = eEventId; + _paramType = elParamType; + _audioStreamOffset = ullAudioStreamOffset; + _wParam = (ulong)wParam.ToInt64(); + _lParam = (ulong)lParam; + + // Let the GC know if we have a unmanaged object with a given size + if (_paramType == SPEVENTLPARAMTYPE.SPET_LPARAM_IS_POINTER || _paramType == SPEVENTLPARAMTYPE.SPET_LPARAM_IS_STRING) + { + GC.AddMemoryPressure(_sizeMemoryPressure = Marshal.SizeOf(_lParam)); + } + } + + private SpeechEvent(SPEVENT sapiEvent, SpeechAudioFormatInfo audioFormat) + : this(sapiEvent.eEventId, sapiEvent.elParamType, sapiEvent.ullAudioStreamOffset, sapiEvent.wParam, sapiEvent.lParam) + { + if (audioFormat == null || audioFormat.EncodingFormat == 0) + { + _audioPosition = TimeSpan.Zero; + } + else + { + _audioPosition = audioFormat.AverageBytesPerSecond > 0 ? new TimeSpan((long)((sapiEvent.ullAudioStreamOffset * TimeSpan.TicksPerSecond) / (ulong)audioFormat.AverageBytesPerSecond)) : TimeSpan.Zero; + } + } + + private SpeechEvent(SPEVENTEX sapiEventEx) : this(sapiEventEx.eEventId, sapiEventEx.elParamType, sapiEventEx.ullAudioStreamOffset, sapiEventEx.wParam, sapiEventEx.lParam) + { + _audioPosition = new TimeSpan((long)sapiEventEx.ullAudioTimeOffset); + } + + ~SpeechEvent() + { + Dispose(); + } + + public void Dispose() + { + // General code to free event data + if (_lParam != 0) + { + if (_paramType == SPEVENTLPARAMTYPE.SPET_LPARAM_IS_TOKEN || _paramType == SPEVENTLPARAMTYPE.SPET_LPARAM_IS_OBJECT) + { + Marshal.Release((IntPtr)_lParam); + } + else + { + if (_paramType == SPEVENTLPARAMTYPE.SPET_LPARAM_IS_POINTER || _paramType == SPEVENTLPARAMTYPE.SPET_LPARAM_IS_STRING) + { + Marshal.FreeCoTaskMem((IntPtr)_lParam); + } + } + + // Update the GC + if (_sizeMemoryPressure > 0) + { + GC.RemoveMemoryPressure(_sizeMemoryPressure); + _sizeMemoryPressure = 0; + } + + // Mark the object as being freed + _lParam = 0; + } + GC.SuppressFinalize(this); + } + + #endregion + + #region Internal Methods + + // This tries to get an event from the ISpEventSource. + // If there are no events queued then null is returned. + // Otherwise a new SpeechEvent is created and returned. + internal static SpeechEvent TryCreateSpeechEvent(ISpEventSource sapiEventSource, bool additionalSapiFeatures, SpeechAudioFormatInfo audioFormat) + { + uint fetched; + SpeechEvent speechEvent = null; + if (additionalSapiFeatures) + { + SPEVENTEX sapiEventEx; + ((ISpEventSource2)sapiEventSource).GetEventsEx(1, out sapiEventEx, out fetched); + if (fetched == 1) + { + speechEvent = new SpeechEvent(sapiEventEx); + } + } + else + { + SPEVENT sapiEvent; + sapiEventSource.GetEvents(1, out sapiEvent, out fetched); + if (fetched == 1) + { + speechEvent = new SpeechEvent(sapiEvent, audioFormat); + } + } + + return speechEvent; + } + + #endregion + + #region Internal Properties + + internal SPEVENTENUM EventId + { + get { return _eventId; } + } + internal ulong AudioStreamOffset + { + get { return _audioStreamOffset; } + } + + // The WParam is returned as a 64-bit value since unmanaged wParam is always 32 or 64 depending on architecture. + // This is always some kind of numeric value in SAPI - it is never a pointer that needs to freed. + internal ulong WParam + { + get { return _wParam; } + } + + internal ulong LParam + { + get { return _lParam; } + } + + internal TimeSpan AudioPosition + { + get { return _audioPosition; } + } + + #endregion + + #region Private Fields + + private SPEVENTENUM _eventId; + private SPEVENTLPARAMTYPE _paramType; + private ulong _audioStreamOffset; + private ulong _wParam; + private ulong _lParam; + private TimeSpan _audioPosition; + private int _sizeMemoryPressure; + + #endregion + } + + internal enum SPEVENTLPARAMTYPE : ushort + { + SPET_LPARAM_IS_UNDEFINED = 0x0000, + SPET_LPARAM_IS_TOKEN = 0x0001, + SPET_LPARAM_IS_OBJECT = 0x0002, + SPET_LPARAM_IS_POINTER = 0x0003, + SPET_LPARAM_IS_STRING = 0x0004 + } +} diff --git a/src/libraries/System.Speech/src/Internal/SeekableReadStream.cs b/src/libraries/System.Speech/src/Internal/SeekableReadStream.cs new file mode 100644 index 00000000000000..31a6a99d6ed180 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SeekableReadStream.cs @@ -0,0 +1,245 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; + +namespace System.Speech.Internal +{ +#pragma warning disable 56528 // Override of Dispose(bool) not needed as base stream should not be closed. + + // Class that is used to wrap a stream that does not support Seek into one that does. + // While CacheDataForSeeking is true then Read data is buffered so that Seeking can be done later back into the buffer. + // The Read call will first use the buffer and then the actual data once the buffer is read. + // After CacheDataForSeeking is set to false data can be read from the buffer but no more Seeking can be done. + internal class SeekableReadStream : Stream + { + #region Constructors + + internal SeekableReadStream(Stream baseStream) + { + Debug.Assert(baseStream.CanRead); + + _canSeek = baseStream.CanSeek; // If the stream is already seekable then don't need to do anything special + _baseStream = baseStream; + } + + #endregion + + #region Internal Properties + + internal bool CacheDataForSeeking + { + set + { + // Currently we can switch the caching off, but not back on again. Not needed for current scenarios. + Debug.Assert(!value || _cacheDataForSeeking); + _cacheDataForSeeking = value; + } + } + + public override bool CanRead + { + get { return true; } + } + + public override bool CanSeek + { + get + { + // Can do seeking only if we are caching data or underlying stream supports it. + return (_canSeek || _cacheDataForSeeking); + } + } + + public override bool CanWrite + { + get { return false; } + } + + public override long Length + { + // Non Seekable streams may not implement this, but we don't have much choice as we can't calculate the Stream length any other way. + get { return _baseStream.Length; } + } + + public override long Position + { + get + { + if (_canSeek) + { + // Delegate to underlying Stream: + return _baseStream.Position; + } + else + { + return _virtualPosition; + } + } + set + { + if (_canSeek) + { + // Delegate to underlying Stream: + _baseStream.Position = value; + } + else if (value != _virtualPosition) + { + if (value < 0) + { + throw new ArgumentOutOfRangeException(nameof(value), SR.Get(SRID.MustBeGreaterThanZero)); + } + // We can't check the length here so you can Seek beyond the end of the Stream. This will error later though. + + if (_cacheDataForSeeking) + { + if (value < _buffer.Count) + { + // We're moving within the already buffered data so just move the position: + _virtualPosition = value; + } + else + { + // We're moving beyond current position. + // Thus Read the new data and buffer it. + + // Read until at new position: + long bytesToReadLong = value - _buffer.Count; + if (bytesToReadLong > int.MaxValue) + { + throw new NotSupportedException(SR.Get(SRID.SeekNotSupported)); + } + byte[] readBuffer = new byte[bytesToReadLong]; + Helpers.BlockingRead(_baseStream, readBuffer, 0, (int)bytesToReadLong); + + // Copy from readBuffer into cache: + _buffer.AddRange(readBuffer); + _virtualPosition = value; + } + } + else + { + // No longer caching data so we can't seek around. + // Limited cases of this could be supported if needed. + throw new NotSupportedException(SR.Get(SRID.SeekNotSupported)); + } + } + } + } + + #endregion + + #region Internal Methods + + public override int Read(byte[] buffer, int offset, int count) + { + if (_canSeek) + { + // Delegate to underlying Stream: + return _baseStream.Read(buffer, offset, count); + } + else + { + int bytesRead = 0; + if (_virtualPosition < _buffer.Count) + { + // if new position inside buffer then read until at end of buffer + int toCopy = (int)(_buffer.Count - _virtualPosition); + if (toCopy > count) + { + toCopy = count; + } + _buffer.CopyTo((int)_virtualPosition, buffer, offset, toCopy); + count -= toCopy; + _virtualPosition += toCopy; + offset += toCopy; + bytesRead += toCopy; + if (!_cacheDataForSeeking && _virtualPosition >= _buffer.Count) + { + // Used up all the buffer, free. + _buffer.Clear(); + } + } + if (count > 0) + { + // Still data to Read so read it from the base Stream: + int localBytesRead = _baseStream.Read(buffer, offset, count); + bytesRead += localBytesRead; + _virtualPosition += localBytesRead; + if (_cacheDataForSeeking) + { + // if caching then extend Stream. + _buffer.Capacity += localBytesRead; + // Copy from buffer + offset for bytesRead + for (int i = 0; i < localBytesRead; i++) + { + _buffer.Add(buffer[offset + i]); + } + } + // Even if we didn't read every requested byte we can return - that's the contract on Stream.Read. + } + return bytesRead; + } + } + + public override long Seek(long offset, SeekOrigin origin) + { + long position; + + checked // Check for integer overflow + { + switch (origin) + { + case SeekOrigin.Begin: + position = offset; + break; + + case SeekOrigin.Current: + position = Position + offset; + break; + + case SeekOrigin.End: + position = Length + offset; + break; + + default: + throw new ArgumentException(SR.Get(SRID.EnumInvalid, "SeekOrigin"), nameof(origin)); + } + } + + Position = position; // Actually update position, checks for out of range + return position; + } + + public override void SetLength(long value) + { + throw new NotSupportedException(SR.Get(SRID.SeekNotSupported)); + } + + public override void Write(byte[] buffer, int offset, int count) + { + throw new NotSupportedException(SR.Get(SRID.StreamMustBeWriteable)); + } + + public override void Flush() + { + _baseStream.Flush(); + } + + #endregion + + #region Private Fields + + private long _virtualPosition; + private List _buffer = new(); // Data cached from start of stream onwards. + + private Stream _baseStream; + private bool _cacheDataForSeeking = true; + private bool _canSeek; + + #endregion + } +#pragma warning restore 56528 +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/AppDomainGrammarProxy.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/AppDomainGrammarProxy.cs new file mode 100644 index 00000000000000..c514d9aa7040f9 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/AppDomainGrammarProxy.cs @@ -0,0 +1,316 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#region Using directives + +using System.Globalization; +using System.Reflection; +using System.Speech.Recognition.SrgsGrammar; +using System.Text; + +#endregion + +#pragma warning disable 56500 // Remove all the catch all statements warnings used by the interop layer + +namespace System.Speech.Internal.SrgsCompiler +{ + internal class AppDomainGrammarProxy : MarshalByRefObject + { + internal SrgsRule[] OnInit(string method, object[] parameters, string onInitParameters, out Exception exceptionThrown) + { + exceptionThrown = null; + try + { + // If the onInitParameters are provided as a string, get the values as an array of value. + if (!string.IsNullOrEmpty(onInitParameters)) + { + parameters = MatchInitParameters(method, onInitParameters, _rule, _rule); + } + + // Find the constructor to call - there could be several + Type[] types = new Type[parameters != null ? parameters.Length : 0]; + + if (parameters != null) + { + for (int i = 0; i < parameters.Length; i++) + { + types[i] = parameters[i].GetType(); + } + } + + MethodInfo onInit = _grammarType.GetMethod(method, types); + + // If somehow we failed to find a constructor, let the system handle it + if (onInit == null) + { + throw new InvalidOperationException(SR.Get(SRID.ArgumentMismatch)); + } + + SrgsRule[] extraRules = null; + if (onInit != null) + { + extraRules = (SrgsRule[])onInit.Invoke(_grammar, parameters); + } + return extraRules; + } + catch (Exception e) + { + exceptionThrown = e; + return null; + } + } + + internal object OnRecognition(string method, object[] parameters, out Exception exceptionThrown) + { + exceptionThrown = null; + try + { + MethodInfo onRecognition = _grammarType.GetMethod(method, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + + // Execute the parse routine + return onRecognition.Invoke(_grammar, parameters); + } + catch (Exception e) + { + exceptionThrown = e; + } + return null; + } + + internal object OnParse(string rule, string method, object[] parameters, out Exception exceptionThrown) + { + exceptionThrown = null; + try + { + MethodInfo onParse; + System.Speech.Recognition.Grammar grammar; + GetRuleInstance(rule, method, out onParse, out grammar); + + // Execute the parse routine + return onParse.Invoke(grammar, parameters); + } + catch (Exception e) + { + exceptionThrown = e; + return null; + } + } + + internal void OnError(string rule, string method, object[] parameters, out Exception exceptionThrown) + { + exceptionThrown = null; + try + { + MethodInfo onError; + System.Speech.Recognition.Grammar grammar; + GetRuleInstance(rule, method, out onError, out grammar); + + // Execute the parse routine + onError.Invoke(grammar, parameters); + } + catch (Exception e) + { + exceptionThrown = e; + } + } + + internal void Init(string rule, byte[] il, byte[] pdb) + { + _assembly = Assembly.Load(il, pdb); + + // Get the grammar class carrying the .NET Semantics code + _grammarType = GetTypeForRule(_assembly, rule); + + // Something is Wrong if the grammar class cannot be found + if (_grammarType == null) + { + throw new FormatException(SR.Get(SRID.RecognizerRuleNotFoundStream, rule)); + } + _rule = rule; + try + { + _grammar = (System.Speech.Recognition.Grammar)_assembly.CreateInstance(_grammarType.FullName); + } + catch (MissingMemberException) + { + throw new ArgumentException(SR.Get(SRID.RuleScriptInvalidParameters, _grammarType.FullName, rule), nameof(rule)); + } + } + + private void GetRuleInstance(string rule, string method, out MethodInfo onParse, out System.Speech.Recognition.Grammar grammar) + { + Type ruleClass = rule == _rule ? _grammarType : GetTypeForRule(_assembly, rule); + if (ruleClass == null || !ruleClass.IsSubclassOf(typeof(System.Speech.Recognition.Grammar))) + { + throw new FormatException(SR.Get(SRID.RecognizerInvalidBinaryGrammar)); + } + + try + { + grammar = ruleClass == _grammarType ? _grammar : (System.Speech.Recognition.Grammar)_assembly.CreateInstance(ruleClass.FullName); + } + catch (MissingMemberException) + { + throw new ArgumentException(SR.Get(SRID.RuleScriptInvalidParameters, ruleClass.FullName, rule), nameof(rule)); + } + onParse = grammar.MethodInfo(method); + } + + private static Type GetTypeForRule(Assembly assembly, string rule) + { + Type[] types = assembly.GetTypes(); + for (int iType = 0; iType < types.Length; iType++) + { + Type type = types[iType]; + if (type.Name == rule && type.IsPublic && type.IsSubclassOf(typeof(System.Speech.Recognition.Grammar))) + { + return type; + } + } + return null; + } + + /// + /// Construct a list of parameters from a sapi:params string. + /// + private object[] MatchInitParameters(string method, string onInitParameters, string grammar, string rule) + { + MethodInfo[] mis = _grammarType.GetMethods(); + + NameValuePair[] pairs = ParseInitParams(onInitParameters); + object[] values = new object[pairs.Length]; + bool foundConstructor = false; + for (int iCtor = 0; iCtor < mis.Length && !foundConstructor; iCtor++) + { + if (mis[iCtor].Name != method) + { + continue; + } + ParameterInfo[] paramInfo = mis[iCtor].GetParameters(); + + // Check if enough parameters are provided. + if (paramInfo.Length > pairs.Length) + { + continue; + } + foundConstructor = true; + for (int i = 0; i < pairs.Length && foundConstructor; i++) + { + NameValuePair pair = pairs[i]; + + // anonymous + if (pair._name == null) + { + values[i] = pair._value; + } + else + { + bool foundParameter = false; + for (int j = 0; j < paramInfo.Length; j++) + { + if (paramInfo[j].Name == pair._name) + { + values[j] = ParseValue(paramInfo[j].ParameterType, pair._value); + foundParameter = true; + break; + } + } + if (!foundParameter) + { + foundConstructor = false; + } + } + } + } + if (!foundConstructor) + { + throw new FormatException(SR.Get(SRID.CantFindAConstructor, grammar, rule, FormatConstructorParameters(mis, method))); + } + return values; + } + + /// + /// Parse the value for a type from a string to a strong type. + /// If the type does not support the Parse method then the operation fails. + /// + private static object ParseValue(Type type, string value) + { + if (type == typeof(string)) + { + return value; + } + return type.InvokeMember("Parse", BindingFlags.InvokeMethod, null, null, new object[] { value }, CultureInfo.InvariantCulture); + } + + /// + /// Returns the list of the possible parameter names and type for a grammar + /// + private static string FormatConstructorParameters(MethodInfo[] cis, string method) + { + StringBuilder sb = new(); + for (int iCtor = 0; iCtor < cis.Length; iCtor++) + { + if (cis[iCtor].Name == method) + { + sb.Append(sb.Length > 0 ? " or sapi:parms=\"" : "sapi:parms=\""); + ParameterInfo[] pis = cis[iCtor].GetParameters(); + for (int i = 0; i < pis.Length; i++) + { + if (i > 0) + { + sb.Append(';'); + } + ParameterInfo pi = pis[i]; + sb.Append(pi.Name); + sb.Append(':'); + sb.Append(pi.ParameterType.Name); + } + sb.Append('"'); + } + } + return sb.ToString(); + } + + /// + /// Split the init parameter strings into an array of name/values + /// The format must be "name:value". If the ':' then parameter is anonymous. + /// + private static NameValuePair[] ParseInitParams(string initParameters) + { + string[] parameters = initParameters.Split(new char[] { ';' }, StringSplitOptions.None); + NameValuePair[] pairs = new NameValuePair[parameters.Length]; + + for (int i = 0; i < parameters.Length; i++) + { + string parameter = parameters[i]; + int posColon = parameter.IndexOf(':'); + if (posColon >= 0) + { + pairs[i]._name = parameter.Substring(0, posColon); + pairs[i]._value = parameter.Substring(posColon + 1); + } + else + { + pairs[i]._value = parameter; + } + } + return pairs; + } + +#pragma warning disable 56524 // Arclist does not hold on any resources + + private System.Speech.Recognition.Grammar _grammar; + +#pragma warning restore 56524 // Arclist does not hold on any resources + + private Assembly _assembly; + private string _rule; + private Type _grammarType; + + private struct NameValuePair + { + internal string _name; + internal string _value; + } + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/Arc.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/Arc.cs new file mode 100644 index 00000000000000..bedc7164ca8a3a --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/Arc.cs @@ -0,0 +1,875 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Globalization; +using System.Runtime.InteropServices; +using System.Speech.Internal.SrgsParser; +using System.Text; + +namespace System.Speech.Internal.SrgsCompiler +{ +#if DEBUG + [DebuggerDisplay("{ToString ()}")] +#endif + internal class Arc : IComparer, IComparable + { + #region Constructors + + internal Arc() + { + } + + internal Arc(Arc arc) + : this() + { + _start = arc._start; + _end = arc._end; + _iWord = arc._iWord; + _flWeight = arc._flWeight; + _confidence = arc._confidence; + _ruleRef = arc._ruleRef; + _specialTransitionIndex = arc._specialTransitionIndex; + _iSerialize = arc._iSerialize; + _matchMode = arc._matchMode; +#if DEBUG + _fCheckingForExitPath = arc._fCheckingForExitPath; + _be = arc._be; +#endif + } + + internal Arc(Arc arc, State start, State end) + : this(arc) + { + _start = start; + _end = end; + } + + internal Arc(Arc arc, State start, State end, int wordId) + : this(arc, start, end) + { + _iWord = wordId; + } + + internal Arc(string sWord, Rule ruleRef, StringBlob words, float flWeight, int confidence, Rule specialRule, MatchMode matchMode, ref bool fNeedWeightTable) + : this(sWord, ruleRef, words, flWeight, confidence, specialRule, s_serializeToken++, matchMode, ref fNeedWeightTable) + { + } + + private Arc(string sWord, Rule ruleRef, StringBlob words, float flWeight, int confidence, Rule specialRule, uint iSerialize, MatchMode matchMode, ref bool fNeedWeightTable) + : this(0, flWeight, confidence, 0, matchMode, ref fNeedWeightTable) + { + _ruleRef = ruleRef; + _iSerialize = iSerialize; + + if (ruleRef == null) + { + if (specialRule != null) + { + _specialTransitionIndex = (specialRule == CfgGrammar.SPRULETRANS_WILDCARD) ? CfgGrammar.SPWILDCARDTRANSITION : (specialRule == CfgGrammar.SPRULETRANS_DICTATION) ? CfgGrammar.SPDICTATIONTRANSITION : CfgGrammar.SPTEXTBUFFERTRANSITION; + } + else + { + words.Add(sWord, out _iWord); + } + } + } + + internal Arc(int iWord, float flWeight, int confidence, int ulSpecialTransitionIndex, MatchMode matchMode, ref bool fNeedWeightTable) + : this() + { + _confidence = confidence; + _iWord = iWord; + _flWeight = flWeight; + _matchMode = matchMode; + _iSerialize = s_serializeToken++; + + if (!flWeight.Equals(CfgGrammar.DEFAULT_WEIGHT)) + { + fNeedWeightTable |= true; + } + + _specialTransitionIndex = ulSpecialTransitionIndex; + } + + #endregion + + #region internal Methods + + #region IComparable Interface implementation + + public int CompareTo(Arc obj1) + { + return Compare(this, obj1); + } + + int IComparer.Compare(Arc obj1, Arc obj2) + { + return Compare(obj1, obj2); + } + + private int Compare(Arc obj1, Arc obj2) + { + if (obj1 == obj2) + return 0; + + if (obj1 == null) + return -1; + + if (obj2 == null) + return 1; + + Arc arc1 = obj1; + Arc arc2 = obj2; + int diff = arc1.SortRank() - arc2.SortRank(); + diff = diff != 0 ? diff : (int)arc1._iSerialize - (int)arc2._iSerialize; + + System.Diagnostics.Debug.Assert(diff != 0); + return diff; + } + + internal static int CompareContent(Arc arc1, Arc arc2) + { + // Compare arcs based on IndexOfWord, IsRuleRef, SpecialTransitionIndex, Optional, and RequiredConfidence. + // SemanticTag, StartState, EndState, Weight, and SerializeIndex are not factors. + if (arc1._iWord != arc2._iWord) + return arc1._iWord - arc2._iWord; + else + { + if (arc1._ruleRef != null || arc2._ruleRef != null || ((arc1._specialTransitionIndex - arc2._specialTransitionIndex) + (arc1._confidence - arc2._confidence) != 0)) + { + int diff = 0; + if (arc1._ruleRef != null || arc2._ruleRef != null) + { + if (arc1._ruleRef != null && arc2._ruleRef == null) + { + diff = -1; + } + else if (arc1._ruleRef == null && arc2._ruleRef != null) + { + diff = 1; + } + else + { + diff = string.Compare(arc1._ruleRef.Name, arc2._ruleRef.Name, StringComparison.CurrentCulture); + } + } + + if (diff != 0) + return diff; + else if (arc1._specialTransitionIndex != arc2._specialTransitionIndex) + return arc1._specialTransitionIndex - arc2._specialTransitionIndex; + else if (arc1._confidence != arc2._confidence) + return arc1._confidence - arc2._confidence; + } + // An identical match + return 0; + } + } + + internal static int CompareContentForKey(Arc arc1, Arc arc2) + { + int diff = CompareContent(arc1, arc2); + if (diff == 0) + { + return (int)arc1._iSerialize - (int)arc2._iSerialize; + } + return diff; + } + + #endregion + + internal float Serialize(StreamMarshaler streamBuffer, bool isLast, uint arcIndex) + { + CfgArc A = new(); + + A.LastArc = isLast; + A.HasSemanticTag = SemanticTagCount > 0; + A.NextStartArcIndex = (uint)(_end != null ? _end.SerializeId : 0); + if (_ruleRef != null) + { + A.RuleRef = true; + A.TransitionIndex = (uint)_ruleRef._iSerialize; //_pFirstState.SerializeId; + } + else + { + A.RuleRef = false; + if (_specialTransitionIndex != 0) + { + A.TransitionIndex = (uint)_specialTransitionIndex; + } + else + { + A.TransitionIndex = (uint)_iWord; + } + } + + A.LowConfRequired = (_confidence < 0); + A.HighConfRequired = (_confidence > 0); + A.MatchMode = (uint)_matchMode; + + // For new arcs SerializeId is INFINITE so we set it correctly here. + // For existing states we preserve the index from loading, + // unless new states have been added in, in which case the arc index, + // and hence the transition id have changed. There is a workaround in ReloadCmd + // to invalidate rules in this case. + _iSerialize = arcIndex; + + streamBuffer.WriteStream(A); + return _flWeight; + } + + internal static float SerializeExtraEpsilonWithTag(StreamMarshaler streamBuffer, Arc arc, bool isLast, uint arcIndex) + { + CfgArc A = new(); + + A.LastArc = isLast; + A.HasSemanticTag = true; + A.NextStartArcIndex = arcIndex; + A.TransitionIndex = 0; + + A.LowConfRequired = false; + A.HighConfRequired = false; + A.MatchMode = (uint)arc._matchMode; + + streamBuffer.WriteStream(A); + return arc._flWeight; + } + + internal void SetArcIndexForTag(int iArc, uint iArcOffset, bool tagsCannotSpanOverMultipleArcs) + { + _startTags[iArc]._cfgTag.StartArcIndex = iArcOffset; + _startTags[iArc]._cfgTag.ArcIndex = iArcOffset; + if (tagsCannotSpanOverMultipleArcs) + { + _startTags[iArc]._cfgTag.EndArcIndex = iArcOffset; + } + } + + internal void SetEndArcIndexForTags() + { + if (_endTags != null) + { + foreach (Tag tag in _endTags) + { + tag._cfgTag.EndArcIndex = _iSerialize; + } + } + } + + /// + /// Compare the contents and number of output arcs from the start state. + /// The comparison is done by Arc content, number of arcs at then and the id for the last arc + /// + internal static int CompareForDuplicateInputTransitions(Arc arc1, Arc arc2) + { + int iContentCompare = Arc.CompareContent(arc1, arc2); + + if (iContentCompare != 0) + { + return iContentCompare; + } + + // Compare by arc Id + return (int)(arc1._start != null ? arc1._start.Id : 0) - (int)(arc2._start != null ? arc2._start.Id : 0); + } + + /// + /// Compare the contents and number of input arcs to the end state. + /// The comparison is done by Arc content, number of arcs at then and the id for the last arc + /// + internal static int CompareForDuplicateOutputTransitions(Arc arc1, Arc arc2) + { + // Compare content and number of other input transitions to the end state. + int iContentCompare = Arc.CompareContent(arc1, arc2); + + if (iContentCompare != 0) + { + return iContentCompare; + } + + // Compare by arc Id + return (int)(arc1._end != null ? arc1._end.Id : 0) - (int)(arc2._end != null ? arc2._end.Id : 0); + } + + /// + /// Compare the contents and start/end states of two arcs. + /// + internal static int CompareIdenticalTransitions(Arc arc1, Arc arc2) + { + // Same start arc + int diff = (int)(arc1._start != null ? arc1._start.Id : 0) - (int)(arc2._start != null ? arc2._start.Id : 0); + if (diff == 0) + { + // Same end arc + if ((diff = (int)(arc1._end != null ? arc1._end.Id : 0) - (int)(arc2._end != null ? arc2._end.Id : 0)) == 0) + { + // Same tag + diff = arc1.SameTags(arc2) ? 0 : 1; + } + } + return diff; + } + + internal void AddStartTag(Tag tag) + { + if (_startTags == null) + { + _startTags = new Collection(); + } + _startTags.Add(tag); + } + + internal void AddEndTag(Tag tag) + { + if (_endTags == null) + { + _endTags = new Collection(); + } + _endTags.Add(tag); + } + + internal void ClearTags() + { + _startTags = null; + _endTags = null; + } + + internal static void CopyTags(Arc src, Arc dest, Direction move) + { + // Copy the start tags if any + if (src._startTags != null) + { + // if dest has not tags just move the collection + if (dest._startTags == null) + { + dest._startTags = src._startTags; + } + else + { + if (move == Direction.Right) + { + for (int i = 0; i < src._startTags.Count; i++) + { + dest._startTags.Insert(i, src._startTags[i]); + } + } + else + { + // if dest has tags add the ones from the source to the existing ones + foreach (Tag tag in src._startTags) + { + dest._startTags.Add(tag); + } + } + } + } + + // Copy the end tags if any + if (src._endTags != null) + { + // if dest has not tags just move the collection + if (dest._endTags == null) + { + dest._endTags = src._endTags; + } + else + { + if (move == Direction.Right) + { + for (int i = 0; i < src._endTags.Count; i++) + { + dest._endTags.Insert(i, src._endTags[i]); + } + } + else + { + // if dest has tags add the ones from the source to the existing ones + foreach (Tag tag in src._endTags) + { + dest._endTags.Add(tag); + } + } + } + } + + // No tags src associated with the 'src' anymore + src._startTags = src._endTags = null; + } + + internal void CloneTags(Arc arc, List _tags, Dictionary endArcs, Backend be) + { + if (arc._startTags != null) + { + if (_startTags == null) + { + _startTags = new Collection(); + } + foreach (Tag tag in arc._startTags) + { + Tag newTag = new(tag); + _tags.Add(newTag); + _startTags.Add(newTag); + endArcs.Add(tag, newTag); +#if DEBUG + newTag._be = be; +#endif + if (be != null) + { + int idTagName; + newTag._cfgTag._nameOffset = be.Symbols.Add(tag._be.Symbols.FromOffset(tag._cfgTag._nameOffset), out idTagName); +#pragma warning disable 0618 // VarEnum is obsolete + if (tag._cfgTag._valueOffset != 0 && tag._cfgTag.PropVariantType == System.Runtime.InteropServices.VarEnum.VT_EMPTY) + { + newTag._cfgTag._valueOffset = be.Symbols.Add(tag._be.Symbols.FromOffset(tag._cfgTag._valueOffset), out idTagName); + } +#pragma warning restore 0618 + } + } + } + + if (arc._endTags != null) + { + if (_endTags == null) + { + _endTags = new Collection(); + } + foreach (Tag tag in arc._endTags) + { + Tag newTag = endArcs[tag]; + _endTags.Add(newTag); + endArcs.Remove(tag); + } + } + } + + internal bool SameTags(Arc arc) + { + // no tags ok + bool same = _startTags == null && arc._startTags == null; + + // Compare each tag if not null + if (!same && _startTags != null && arc._startTags != null && _startTags.Count == arc._startTags.Count) + { + same = true; + for (int i = 0; i < _startTags.Count; i++) + { + same &= _startTags[i] == arc._startTags[i]; + } + } + + // Compare end tags if the start tags are equal + if (same) + { + same = _endTags == null && arc._endTags == null; + + // Compare each tag if not null + if (!same && _endTags != null && arc._endTags != null && _endTags.Count == arc._endTags.Count) + { + same = true; + for (int i = 0; i < _endTags.Count; i++) + { + same &= _endTags[i] == arc._endTags[i]; + } + } + } + return same; + } + + internal void ConnectStates() + { + if (_end != null) + { + _end.InArcs.Add(this); + } + + if (_start != null) + { + _start.OutArcs.Add(this); + } + } + + /// + /// Is the arc an epsilon transition? + /// + internal bool IsEpsilonTransition + { + get + { + return (_ruleRef == null) && // Not a ruleref + (_specialTransitionIndex == 0) && // Not a special transition (wildcard, dictation, ...) + (_iWord == 0); // Not a word + } + } + + /// + /// Is this arc an arc without attached properties? + /// + /// Is this arc an arc without attached properties? + internal bool IsPropertylessTransition + { + get + { + // Does not own semantic property & No tag references + return _startTags == null && _endTags == null; + } + } + +#if DEBUG + + public override string ToString() + { + return (_start != null ? "#" + _start.Id.ToString(CultureInfo.InvariantCulture) : "") + " <- " + DebuggerDisplayTags() + " -> " + (_end != null ? "#" + _end.Id.ToString(CultureInfo.InvariantCulture) : ""); + } + + internal string DebuggerDisplayTags() + { + StringBuilder sb = new(); + if (_iWord == 0 && (_ruleRef != null || _specialTransitionIndex != 0)) + { + sb.Append('<'); + if (_ruleRef != null) + { + sb.Append(_ruleRef.Name); + } + else + { + switch (_specialTransitionIndex) + { + case CfgGrammar.SPWILDCARDTRANSITION: + sb.Append("GARBAGE"); + break; + + case CfgGrammar.SPTEXTBUFFERTRANSITION: + sb.Append("TEXTBUFFER"); + break; + + case CfgGrammar.SPDICTATIONTRANSITION: + sb.Append("DICTATION"); + break; + } + } + sb.Append('>'); + } + else + { + sb.Append('\''); + sb.Append(_iWord == 0 ? new string(new char[] { (char)0x3b5 }) : _be != null ? _be.Words[_iWord] : _iWord.ToString(CultureInfo.InvariantCulture)); + sb.Append('\''); + } + + if (_startTags != null || _endTags != null) + { + // Check if the tags are the same + bool same = _startTags != null && _endTags != null && _endTags.Count == _startTags.Count; + + // Compare each tag if not null + for (int i = 0; same && i < _endTags.Count; i++) + { + same &= _startTags[i] == _endTags[i]; + } + + sb.Append(" ("); + if (_startTags != null) + { + bool first = true; + foreach (Tag tag in _startTags) + { + if (!first) + { + sb.Append('|'); + } + sb.Append(GetSemanticTag(tag)); + first = false; + } + } + else + { + sb.Append('-'); + } + if (!same) + { + sb.Append(','); + if (_endTags != null) + { + bool first = true; + foreach (Tag tag in _endTags) + { + if (!first) + { + sb.Append('|'); + } + sb.Append(GetSemanticTag(tag)); + first = false; + } + } + else + { + sb.Append('-'); + } + } + sb.Append(')'); + } + return sb.ToString(); + } + +#endif + + #endregion + + #region internal Properties + + internal int SemanticTagCount + { + get + { + return _startTags == null ? 0 : _startTags.Count; + } + } + + internal State Start + { + get + { + return _start; + } + set + { + if (value != _start) + { + if (_start != null) + { + _start.OutArcs.Remove(this); + } + _start = value; + if (_start != null) + { + _start.OutArcs.Add(this); + } + } + } + } + + internal State End + { + get + { + return _end; + } + set + { + // If no change, then do nothing + if (value != _end) + { + if (_end != null) + { + _end.InArcs.Remove(this); + } + _end = value; + if (_end != null) + { + _end.InArcs.Add(this); + } + } + } + } + + internal int WordId + { + get + { + return _iWord; + } + } + + internal Rule RuleRef + { + get + { + return _ruleRef; + } + set + { + if ((_start != null && !_start.OutArcs.IsEmpty) || (_end != null && !_end.InArcs.IsEmpty)) + { + throw new InvalidOperationException(); + } + _ruleRef = value; + } + } + + internal float Weight + { + get + { + return _flWeight; + } + set + { + _flWeight = value; + } + } + + internal int SpecialTransitionIndex + { + get + { + return _specialTransitionIndex; + } + } + +#if DEBUG + internal bool CheckingForExitPath + { + get + { + return _fCheckingForExitPath; + } + set + { + _fCheckingForExitPath = value; + } + } + + internal Backend Backend + { + set + { + _be = value; + } + } +#endif + #endregion + + #region private Methods + +#if DEBUG + private string GetSemanticTag(Tag tag) + { + StringBuilder sb = new(); + string value; + string tagName = GetSemanticValue(tag._cfgTag, _be.Symbols, out value); + if (tagName != "SemanticKey") + { + if (tagName != "=") + { + sb.Append(tagName); + sb.Append('='); + } + sb.Append(value); + } + else + { + sb.Append('['); + sb.Append(value); + sb.Append(']'); + } + return sb.ToString(); + } + + private static string GetSemanticValue(CfgSemanticTag tag, StringBlob symbols, out string value) + { +#pragma warning disable 0618 // VarEnum is obsolete + switch (tag.PropVariantType) + { + case VarEnum.VT_EMPTY: + value = tag._valueOffset > 0 ? symbols.FromOffset(tag._valueOffset) : tag._valueOffset.ToString(CultureInfo.InvariantCulture); + break; + + case VarEnum.VT_I4: + case VarEnum.VT_UI4: + value = tag._varInt.ToString(CultureInfo.InvariantCulture); + break; + + case VarEnum.VT_R8: + value = tag._varDouble.ToString(CultureInfo.InvariantCulture); + break; + + case VarEnum.VT_BOOL: + value = tag._varInt == 0 ? "false" : "true"; + break; + + default: + value = "Unknown property type"; + break; + } +#pragma warning restore 0618 + + return tag._nameOffset > 0 ? symbols.FromOffset(tag._nameOffset) : tag._nameOffset.ToString(CultureInfo.InvariantCulture); ; + } +#endif + + // Sort arcs in a state based on type, and then on index. + // Arcs loaded from a file have their index preserved where possible. New dynamic states have index == INFINITE, + private int SortRank() + { + int ret = 0; + + if (_ruleRef != null) + ret = 0x1000000 + _ruleRef._cfgRule._nameOffset; // It's a rule - Place 2nd in list + + if (_iWord != 0) + ret += 0x2000000 + _iWord;// It's a word - Place last in list + + if (_specialTransitionIndex != 0) + ret += 0x3000000; // It's a special transition (dictation, text buffer, or wildcard) + + return ret; // It's an epsilon -- We're first + } + + #endregion + + #region Private Fields + + // Transition start state + private State _start; + + // Transition end state (or NULL for final state) + private State _end; + + // Either word index or pRule but not both + private int _iWord; + + // Rule ref + private Rule _ruleRef; + + // If != 0 then transition to dictation, text buffer, or wildcard + private int _specialTransitionIndex; + + private float _flWeight; + + // current matching mode + private MatchMode _matchMode; + + private int _confidence; + + // Index of arc in table when serialized. Recreated when we reload grammar. + + private uint _iSerialize; + + // If non-null then has semantic tag associated with this + private Collection _startTags; + private Collection _endTags; + + private static uint s_serializeToken = 1; + +#if DEBUG + // This is where the TransitionId comes from in engine interfaces. + private bool _fCheckingForExitPath; + private Backend _be; +#endif + + #endregion + } + + #region private Methods + + internal enum Direction + { + Right, + Left + } + #endregion +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/ArcList.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/ArcList.cs new file mode 100644 index 00000000000000..849969d55b8b63 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/ArcList.cs @@ -0,0 +1,92 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Diagnostics; + +namespace System.Speech.Internal.SrgsCompiler +{ +#if DEBUG + [DebuggerDisplay("Count #{Count}")] + [DebuggerTypeProxy(typeof(ArcListDebugDisplay))] +#endif + internal class ArcList : RedBlackList + { + #region Internal Methods + + /// + /// Build a List with all the arcs + /// + internal List ToList() + { + List collection = new(); + foreach (Arc arc in this) + { + collection.Add(arc); + } + return collection; + } + + protected override int CompareTo(object arc1, object arc2) + { + return Arc.CompareContentForKey((Arc)arc1, (Arc)arc2); + } + + #endregion + + #region Internal Properties + + internal new Arc First + { + get + { + return (Arc)base.First; + } + } + + #endregion + + #region Private Members + +#if DEBUG + private int Count + { + get + { + int count = 0; + foreach (Arc arc in this) + { + count++; + } + return count; + } + } + + // Used by the debugger display attribute + private class ArcListDebugDisplay + { + public ArcListDebugDisplay(ArcList item) + { + _item = item; + } + [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] + public Arc[] AKeys + { + get + { + Arc[] item = new Arc[_item.Count]; + int i = 0; + foreach (Arc arc in _item) + { + item[i++] = arc; + } + return item; + } + } + + private ArcList _item; + } +#endif + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/BackEnd.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/BackEnd.cs new file mode 100644 index 00000000000000..a68dd999c7c50e --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/BackEnd.cs @@ -0,0 +1,1394 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Globalization; +using System.Runtime.InteropServices; +using System.Speech.Internal.SrgsParser; +using System.Text; + +namespace System.Speech.Internal.SrgsCompiler +{ + internal sealed partial class Backend + { + #region Constructors + + internal Backend() + { + _words = new StringBlob(); + _symbols = new StringBlob(); + } + + internal Backend(StreamMarshaler streamHelper) + { + InitFromBinaryGrammar(streamHelper); + } + + #endregion + + #region Internal Methods + + /// + /// Optimizes the grammar network by removing the epsilon states and merging + /// duplicate transitions. + /// + internal void Optimize() + { + _states.Optimize(); + + // Most likely, there will be an arc with a weight != 1. So we need a weight table. + _fNeedWeightTable = true; + } + + /// + /// Performs consistency checks of the grammar structure, creates the + /// serialized format and either saves it to the stream provided by SetSaveOptions, + /// or reloads it into the CFG engine. + /// + internal void Commit(StreamMarshaler streamBuffer) + { + // For debugging purpose, assert if the position is not it is assumed it should be + // Keep the start position in the stream + long startStreamPostion = streamBuffer.Stream.Position; + + // put all states State into a sorted array by rule parent index and serialized index + List sortedStates = new(_states); + + // Release the memory for the original list of states + _states = null; + + sortedStates.Sort(); + + // Validate the grammar + ValidateAndTagRules(); + CheckLeftRecursion(sortedStates); + + // Include null terminator + int cBasePath = _basePath != null ? _basePath.Length + 1 : 0; + float[] pWeights; + int cArcs; + + // Add the top level semantic interpretation tag + // This should be set as the first symbol in the symbol string blog since it must hold on a 16 bits value. + int semanticInterpretationGlobals = 0; + if (_globalTags.Count > 0) + { + StringBuilder sb = new(); + foreach (string s in _globalTags) + { + sb.Append(s); + } + _symbols.Add(sb.ToString(), out semanticInterpretationGlobals); + semanticInterpretationGlobals = _symbols.OffsetFromId(semanticInterpretationGlobals); + if (semanticInterpretationGlobals > ushort.MaxValue) + { + throw new OverflowException(SR.Get(SRID.TooManyRulesWithSemanticsGlobals)); + } + } + + // Write the method names as symbols + foreach (ScriptRef script in _scriptRefs) + { + _symbols.Add(script._sMethod, out script._idSymbol); + } + // get the header + CfgGrammar.CfgSerializedHeader header = BuildHeader(sortedStates, cBasePath, unchecked((ushort)semanticInterpretationGlobals), out cArcs, out pWeights); + streamBuffer.WriteStream(header); + + // + // For the string blobs, we must explicitly report I/O error since the blobs don't + // use the error log facility. + // + System.Diagnostics.Debug.Assert(streamBuffer.Stream.Position - startStreamPostion == header.pszWords); + streamBuffer.WriteArrayChar(_words.SerializeData(), _words.SerializeSize()); + + System.Diagnostics.Debug.Assert(streamBuffer.Stream.Position - startStreamPostion == header.pszSymbols); + streamBuffer.WriteArrayChar(_symbols.SerializeData(), _symbols.SerializeSize()); + + System.Diagnostics.Debug.Assert(streamBuffer.Stream.Position - startStreamPostion == header.pRules); + foreach (Rule rule in _rules) + { + rule.Serialize(streamBuffer); + } + + if (cBasePath > 0) + { + streamBuffer.WriteArrayChar(_basePath.ToCharArray(), _basePath.Length); + + // Add a zero to be compatible with SAPI 5 + System.Diagnostics.Debug.Assert(_basePath.Length + 1 == cBasePath); + streamBuffer.WriteArrayChar(s_achZero, 1); + + // Zero-pad to align following structures + streamBuffer.WriteArray(s_abZero3, cBasePath * Helpers._sizeOfChar & 3); + } + + // + // Write a dummy 0 index state entry + // + CfgArc dummyArc = new(); + + System.Diagnostics.Debug.Assert(streamBuffer.Stream.Position - startStreamPostion == header.pArcs); + streamBuffer.WriteStream(dummyArc); + + int ulWeightOffset = 1; + uint arcOffset = 1; + + bool semanticInterpretation = (GrammarOptions & GrammarOptions.MssV1) == GrammarOptions.MssV1; + foreach (State state in sortedStates) + { + state.SerializeStateEntries(streamBuffer, semanticInterpretation, pWeights, ref arcOffset, ref ulWeightOffset); + } + + System.Diagnostics.Debug.Assert(streamBuffer.Stream.Position - startStreamPostion == header.pWeights); + if (_fNeedWeightTable) + { + streamBuffer.WriteArray(pWeights, cArcs); + } + + System.Diagnostics.Debug.Assert(streamBuffer.Stream.Position - startStreamPostion == header.tags); + if (!semanticInterpretation) + { + foreach (State state in sortedStates) + { + state.SetEndArcIndexForTags(); + } + } + + // Remove the orphaned arcs + // This could happen in the case of a + for (int i = _tags.Count - 1; i >= 0; i--) + { + // When arc are created the index is set to zero. This value changes during serialization + // if an arc references it + if (_tags[i]._cfgTag.ArcIndex == 0) + { + _tags.RemoveAt(i); + } + } + // Sort the _tags array by ArcIndex + _tags.Sort(); + + // Write the _tags array + foreach (Tag tag in _tags) + { + tag.Serialize(streamBuffer); + } + + // Write the script references and the IL write after the header so getting it for the grammar + // Does not require a seek to the end of the file + System.Diagnostics.Debug.Assert(header.pScripts == 0 || streamBuffer.Stream.Position - startStreamPostion == header.pScripts); + foreach (ScriptRef script in _scriptRefs) + { + script.Serialize(_symbols, streamBuffer); + } + + // Write the assembly bits + // (Not supported on this platform) + } + + /// + /// Description: + /// Combine the current data in a grammar with one coming from a CFG + /// + internal static Backend CombineGrammar(string ruleName, Backend org, Backend extra) + { + Backend be = new(); + be._fLoadedFromBinary = true; + be._fNeedWeightTable = org._fNeedWeightTable; + be._grammarMode = org._grammarMode; + be._grammarOptions = org._grammarOptions; + + // Hash source state to destination state + Dictionary srcToDestHash = new(); + + // Find the rule + foreach (Rule orgRule in org._rules) + { + if (orgRule.Name == ruleName) + { + be.CloneSubGraph(orgRule, org, extra, srcToDestHash, true); + } + } + return be; + } + + internal State CreateNewState(Rule rule) + { + return _states.CreateNewState(rule); + } + + internal void DeleteState(State state) + { + _states.DeleteState(state); + } + + internal void MoveInputTransitionsAndDeleteState(State from, State to) + { + _states.MoveInputTransitionsAndDeleteState(from, to); + } + + internal void MoveOutputTransitionsAndDeleteState(State from, State to) + { + _states.MoveOutputTransitionsAndDeleteState(from, to); + } + + /// + /// Tries to find the rule's initial state handle. If both a name and an id + /// are provided, then both have to match in order for this call to succeed. + /// If the rule doesn't already exist then we define it if fCreateIfNotExists, + /// otherwise we return an error (). + /// + /// - pszRuleName name of rule to find/define (null: don't care) + /// - ruleId id of rule to find/define (0: don't care) + /// - dwAttribute rule attribute for defining the rule + /// - fCreateIfNotExists creates the rule using name, id, and attributes + /// in case the rule doesn't already exist + /// + /// throws: + /// S_OK, E_INVALIDARG, E_OUTOFMEMORY + /// SPERR_RULE_NOT_FOUND -- no rule found and we don't create a new one + /// SPERR_RULE_NAME_ID_CONFLICT -- rule name and id don't match + /// + internal Rule CreateRule(string name, SPCFGRULEATTRIBUTES attributes) + { + + SPCFGRULEATTRIBUTES allFlags = SPCFGRULEATTRIBUTES.SPRAF_TopLevel | SPCFGRULEATTRIBUTES.SPRAF_Active | SPCFGRULEATTRIBUTES.SPRAF_Export | SPCFGRULEATTRIBUTES.SPRAF_Import | SPCFGRULEATTRIBUTES.SPRAF_Interpreter | SPCFGRULEATTRIBUTES.SPRAF_Dynamic | SPCFGRULEATTRIBUTES.SPRAF_Root; + + if (attributes != 0 && ((attributes & ~allFlags) != 0 || ((attributes & SPCFGRULEATTRIBUTES.SPRAF_Import) != 0 && (attributes & SPCFGRULEATTRIBUTES.SPRAF_Export) != 0))) + { + throw new ArgumentException(SR.Get(SRID.InvalidFlagsSet), nameof(attributes)); + } + + // SAPI does not properly handle a rule marked as Import and TopLevel/Active/Root. + // - To maintain maximal backwards compatibility, if a rule is marked as Import, we will unmark TopLevel/Active/Root. + // - This changes the behavior when application tries to activate this rule. However, given that it is already + // broken/fragile, we believe it is better to change the behavior. + if ((attributes & SPCFGRULEATTRIBUTES.SPRAF_Import) != 0 && ((attributes & SPCFGRULEATTRIBUTES.SPRAF_TopLevel) != 0 || (attributes & SPCFGRULEATTRIBUTES.SPRAF_Active) != 0 || (attributes & SPCFGRULEATTRIBUTES.SPRAF_Root) != 0)) + { + attributes &= ~(SPCFGRULEATTRIBUTES.SPRAF_TopLevel | SPCFGRULEATTRIBUTES.SPRAF_Active | SPCFGRULEATTRIBUTES.SPRAF_Root); + } + + if ((attributes & SPCFGRULEATTRIBUTES.SPRAF_Import) != 0 && (name[0] == '\0')) + { + LogError(name, SRID.InvalidImport); + } + + if (_fLoadedFromBinary) + { + // Scan all non-dynamic names and prevent a duplicate... + foreach (Rule r in _rules) + { + string wpszName = _symbols[r._cfgRule._nameOffset]; + + if (!r._cfgRule.Dynamic && name == wpszName) + { + LogError(name, SRID.DuplicatedRuleName); + } + } + } + + int idString; + int cImportedRule = 0; + Rule rule = new(this, name, _symbols.Add(name, out idString), attributes, _ruleIndex, 0, _grammarOptions & GrammarOptions.TagFormat, ref cImportedRule); + + rule._iSerialize2 = _ruleIndex++; + + if ((attributes & SPCFGRULEATTRIBUTES.SPRAF_Root) != 0) + { + if (_rootRule != null) + { + //We already have a root rule, return error code. + LogError(name, SRID.RootRuleAlreadyDefined); + } + else + { + _rootRule = rule; + } + } + + // Add rule to RuleListByName and RuleListByID hash tables. + if (rule._cfgRule._nameOffset != 0) + { + _nameOffsetRules.Add(rule._cfgRule._nameOffset, rule); + } + + // + // It is important to insert this at the tail for dynamic rules to + // retain their slot number. + // + _rules.Add(rule); + _rules.Sort(); + + return rule; + } + + /// + /// Internal method for finding rule in rule list + /// + internal Rule FindRule(string sRule) + { + Rule rule = null; + + if (_nameOffsetRules.Count > 0) + { + // Find rule corresponding to name symbol offset corresponding to the RuleName + int iWord = _symbols.Find(sRule); + + if (iWord > 0) + { + int dwSymbolOffset = _symbols.OffsetFromId(iWord); + + System.Diagnostics.Debug.Assert(dwSymbolOffset == 0 || _symbols[iWord] == sRule); + + rule = dwSymbolOffset > 0 && _nameOffsetRules.ContainsKey(dwSymbolOffset) ? _nameOffsetRules[dwSymbolOffset] : null; + } + } + + if (rule != null) + { + string sRuleFound = rule.Name; + + // at least one of the 2 arguments matched + // names either match or they are both null! + if (!((string.IsNullOrEmpty(sRule) || (!string.IsNullOrEmpty(sRule) && !string.IsNullOrEmpty(sRuleFound) && sRuleFound == sRule)))) + { + LogError(sRule, SRID.RuleNameIdConflict); + } + } + + return rule != null ? rule : null; + } + + /// + /// Adds a word transition from hFromState to hToState. If hToState == null + /// then the arc will be to the (implicit) terminal state. If psz == null then + /// we add an epsilon transition. Properties are pushed back to the + /// first un-ambiguous arc in case we can share a common initial state path. + /// The weight will be placed on the first arc (if there exists an arc with + /// the same word but different weight we will create a new arc). + /// + internal Arc WordTransition(string sWord, float flWeight, int requiredConfidence) + { + return CreateTransition(sWord, flWeight, requiredConfidence); + } + + internal Arc SubsetTransition(string text, MatchMode matchMode) + { + // Performs white space normalization in place + text = NormalizeTokenWhiteSpace(text); + + return new Arc(text, null, _words, 1.0f, CfgGrammar.SP_NORMAL_CONFIDENCE, null, matchMode, ref _fNeedWeightTable); + } + + /// + /// Adds a rule (reference) transition from hFromState to hToState. + /// hRule can also be one of these special transition handles: + /// SPRULETRANS_WILDCARD : "WILDCARD" transition + /// SPRULETRANS_DICTATION : single word from dictation + /// SPRULETRANS_TEXTBUFFER : "TEXTBUFFER" transition + /// + /// must be initial state of rule + /// Rule calling the ruleref + /// Weight + internal Arc RuleTransition(Rule rule, Rule parentRule, float flWeight) + { + Rule ruleToTransitionTo = null; + + if (flWeight < 0.0f) + { + XmlParser.ThrowSrgsException(SRID.UnsupportedFormat); + } + + Rule specialRuleTrans = null; + + if (rule == CfgGrammar.SPRULETRANS_WILDCARD || rule == CfgGrammar.SPRULETRANS_DICTATION || rule == CfgGrammar.SPRULETRANS_TEXTBUFFER) + { + specialRuleTrans = rule; + } + else + { + ruleToTransitionTo = rule; + } + + bool fNeedWeightTable = false; + Arc arc = new(null, ruleToTransitionTo, _words, flWeight, '\0', specialRuleTrans, MatchMode.AllWords, ref fNeedWeightTable); + + AddArc(arc); + + if (ruleToTransitionTo != null && parentRule != null) + { + ruleToTransitionTo._listRules.Insert(0, parentRule); + } + + return arc; + } + + /// + /// Adds a word transition from hFromState to hToState. If hToState == null + /// then the arc will be to the (implicit) terminal state. If psz == null then + /// we add an epsilon transition. Properties are pushed back to the + /// first un-ambiguous arc in case we can share a common initial state path. + /// The weight will be placed on the first arc (if there exists an arc with + /// the same word but different weight we will create a new arc). + /// + internal Arc EpsilonTransition(float flWeight) + { + return CreateTransition(null, flWeight, CfgGrammar.SP_NORMAL_CONFIDENCE); + } + + internal void AddSemanticInterpretationTag(Arc arc, CfgGrammar.CfgProperty propertyInfo) + { + + Tag tag = new(this, propertyInfo); + _tags.Add(tag); + + arc.AddStartTag(tag); + arc.AddEndTag(tag); + } + + internal void AddPropertyTag(Arc start, Arc end, CfgGrammar.CfgProperty propertyInfo) + { + + Tag tag = new(this, propertyInfo); + _tags.Add(tag); + + start.AddStartTag(tag); + end.AddEndTag(tag); + } + + /// + /// Traverse the graph starting from SrcStartState, cloning each state as we go along, + /// cloning each transition except ones originating from SrcEndState, and return + /// the cloned state corresponding to SrcEndState. + /// + internal State CloneSubGraph(State srcFromState, State srcEndState, State destFromState) + { + Dictionary SrcToDestHash = new(); // Hash source state to destination state + Stack CloneStack = new(); // States to process + Dictionary tags = new(); + + // Add initial state to CloneStack and SrcToDestHash. + SrcToDestHash.Add(srcFromState, destFromState); + CloneStack.Push(srcFromState); + + // While there are still states on the CloneStack (ToDo collection) + while (CloneStack.Count > 0) + { + srcFromState = CloneStack.Pop(); + destFromState = SrcToDestHash[srcFromState]; + System.Diagnostics.Debug.Assert(destFromState != null); + + // For each transition from srcFromState (except SrcEndState) + foreach (Arc arc in srcFromState.OutArcs) + { + // - Lookup the DestToState corresponding to SrcToState + State srcToState = arc.End; + State destToState = null; + + if (srcToState != null) + { + // - If not found, clone a new DestToState, add SrcToState.DestToState to SrcToDestHash, and add SrcToState to CloneStack. + if (!SrcToDestHash.ContainsKey(srcToState)) + { + destToState = CreateNewState(srcToState.Rule); + SrcToDestHash.Add(srcToState, destToState); + CloneStack.Push(srcToState); + } + else + { + destToState = SrcToDestHash[srcToState]; ; + } + } + + // - Clone the transition from SrcFromState.SrcToState at DestFromState.DestToState + // -- Clone Arc + Arc newArc = new(arc, destFromState, destToState); + AddArc(newArc); + + // -- Clone SemanticTag + newArc.CloneTags(arc, _tags, tags, null); + + // -- Add Arc + newArc.ConnectStates(); + } + } + + System.Diagnostics.Debug.Assert(tags.Count == 0); + return SrcToDestHash[srcEndState]; + } + + /// + /// Traverse the graph starting from SrcStartState, cloning each state as we go along, + /// cloning each transition except ones originating from SrcEndState, and return + /// the cloned state corresponding to SrcEndState. + /// + internal void CloneSubGraph(Rule rule, Backend org, Backend extra, Dictionary srcToDestHash, bool fromOrg) + { + Backend beSrc = fromOrg ? org : extra; + + List CloneStack = new(); // States to process + Dictionary tags = new(); + + // Push all the state for the top level rule + CloneState(rule._firstState, CloneStack, srcToDestHash); + + // While there are still states on the CloneStack (ToDo collection) + while (CloneStack.Count > 0) + { + State srcFromState = CloneStack[0]; + CloneStack.RemoveAt(0); + State destFromState = srcToDestHash[srcFromState]; + // For each transition from srcFromState (except SrcEndState) + foreach (Arc arc in srcFromState.OutArcs) + { + // - Lookup the DestToState corresponding to SrcToState + State srcToState = arc.End; + State destToState = null; + + if (srcToState != null) + { + if (!srcToDestHash.ContainsKey(srcToState)) + { + // - If not found, then it is a new rule, just clown it. + CloneState(srcToState, CloneStack, srcToDestHash); + } + destToState = srcToDestHash[srcToState]; + } + + // - Clone the transition from SrcFromState.SrcToState at DestFromState.DestToState + // -- Clone Arc + int newWordId = arc.WordId; + if (beSrc != null && arc.WordId > 0) + { + _words.Add(beSrc.Words[arc.WordId], out newWordId); + } + + Arc newArc = new(arc, destFromState, destToState, newWordId); + + // -- Clone SemanticTag + newArc.CloneTags(arc, _tags, tags, this); + + // For rule ref push the first state of the ruleref + if (arc.RuleRef != null) + { + string ruleName; + + // Check for DYNAMIC grammars + if (arc.RuleRef.Name.IndexOf("URL:DYNAMIC#", StringComparison.Ordinal) == 0) + { + ruleName = arc.RuleRef.Name.Substring(12); + if (fromOrg == true && FindInRules(ruleName) == null) + { + Rule ruleExtra = extra.FindInRules(ruleName); + if (ruleExtra == null) + { + XmlParser.ThrowSrgsException(SRID.DynamicRuleNotFound, ruleName); + } + CloneSubGraph(ruleExtra, org, extra, srcToDestHash, false); + } + } + else if (arc.RuleRef.Name.IndexOf("URL:STATIC#", StringComparison.Ordinal) == 0) + { + ruleName = arc.RuleRef.Name.Substring(11); + if (fromOrg == false && FindInRules(ruleName) == null) + { + Rule ruleOrg = org.FindInRules(ruleName); + if (ruleOrg == null) + { + XmlParser.ThrowSrgsException(SRID.DynamicRuleNotFound, ruleName); + } + CloneSubGraph(ruleOrg, org, extra, srcToDestHash, true); + } + } + else + { + ruleName = arc.RuleRef.Name; + Rule ruleExtra = org.FindInRules(ruleName); + if (fromOrg == false) + { + CloneSubGraph(arc.RuleRef, org, extra, srcToDestHash, true); + } + } + Rule refRule = FindInRules(ruleName); + if (refRule == null) + { + refRule = CloneState(arc.RuleRef._firstState, CloneStack, srcToDestHash); + } + newArc.RuleRef = refRule; + } + + // -- Add Arc + newArc.ConnectStates(); + } + } + System.Diagnostics.Debug.Assert(tags.Count == 0); + } + + /// + /// Delete disconnected subgraph starting at hState. + /// Traverse the graph starting from SrcStartState, and delete each state as we go along. + /// + internal void DeleteSubGraph(State state) + { + // Add initial state to DeleteStack. + Stack stateToProcess = new(); // States to delete + Collection arcsToDelete = new(); + Collection statesToDelete = new(); + stateToProcess.Push(state); + + // While there are still states on the listDelete (ToDo collection) + while (stateToProcess.Count > 0) + { + // For each transition from state, + state = stateToProcess.Pop(); + statesToDelete.Add(state); + arcsToDelete.Clear(); + + // Accumulate the arcs to delete and add new states to the stack of states to process + foreach (Arc arc in state.OutArcs) + { + // Add EndState to listDelete, if unique + State endState = arc.End; + + // Add this state to the list of states to delete + if (endState != null && !stateToProcess.Contains(endState) && !statesToDelete.Contains(endState)) + { + stateToProcess.Push(endState); + } + arcsToDelete.Add(arc); + } + // Clear up the arcs + foreach (Arc arc in arcsToDelete) + { + arc.Start = arc.End = null; + } + } + + foreach (State stateToDelete in statesToDelete) + { + // Delete state and remove from listDelete + System.Diagnostics.Debug.Assert(stateToDelete != null); + System.Diagnostics.Debug.Assert(stateToDelete.InArcs.IsEmpty); + System.Diagnostics.Debug.Assert(stateToDelete.OutArcs.IsEmpty); + DeleteState(stateToDelete); + } + } + + /// + /// Modify the placeholder rule attributes after it has been created. + /// This is only safe to use in the context of SrgsGrammarCompiler. + /// + internal void SetRuleAttributes(Rule rule, SPCFGRULEATTRIBUTES dwAttributes) + { + // Check if this is the Root rule + if ((dwAttributes & SPCFGRULEATTRIBUTES.SPRAF_Root) != 0) + { + if (_rootRule != null) + { + //We already have a root rule, return error code. + XmlParser.ThrowSrgsException(SRID.RootRuleAlreadyDefined); + } + else + { + _rootRule = rule; + } + } + + rule._cfgRule.TopLevel = ((dwAttributes & SPCFGRULEATTRIBUTES.SPRAF_TopLevel) != 0); + rule._cfgRule.DefaultActive = ((dwAttributes & SPCFGRULEATTRIBUTES.SPRAF_Active) != 0); + rule._cfgRule.PropRule = ((dwAttributes & SPCFGRULEATTRIBUTES.SPRAF_Interpreter) != 0); + rule._cfgRule.Export = ((dwAttributes & SPCFGRULEATTRIBUTES.SPRAF_Export) != 0); + rule._cfgRule.Dynamic = ((dwAttributes & SPCFGRULEATTRIBUTES.SPRAF_Dynamic) != 0); + rule._cfgRule.Import = ((dwAttributes & SPCFGRULEATTRIBUTES.SPRAF_Import) != 0); + } + + /// + /// Set the path from which relative grammar imports are calculated. As specified by xml:base / meta base + /// Null or empty string will clear any existing base path. + /// + internal void SetBasePath(string sBasePath) + { + if (!string.IsNullOrEmpty(sBasePath)) + { + // Validate base path. + Uri uri = new(sBasePath, UriKind.RelativeOrAbsolute); + + //Url Canonicalized + _basePath = uri.ToString(); + } + else + { + _basePath = null; + } + } + + /// + /// Perform white space normalization in place. + /// - Trim leading/trailing white spaces. + /// - Collapse white space sequences to a single ' '. + /// + internal static string NormalizeTokenWhiteSpace(string sToken) + { + System.Diagnostics.Debug.Assert(!string.IsNullOrEmpty(sToken)); + + // Trim leading and ending white spaces + sToken = sToken.Trim(Helpers._achTrimChars); + + // Easy out if there are no consecutive double white spaces + if (sToken.IndexOf(" ", StringComparison.Ordinal) == -1) + { + return sToken; + } + + // Normalize internal spaces + char[] achSrc = sToken.ToCharArray(); + int iDest = 0; + + for (int i = 0; i < achSrc.Length;) + { + // Collapsed multiple white spaces into ' ' + if (achSrc[i] == ' ') + { + do + { + i++; + } while (achSrc[i] == ' '); + + achSrc[iDest++] = ' '; + continue; + } + + // Copy the non-white space character + achSrc[iDest++] = achSrc[i++]; + } + + return new string(achSrc, 0, iDest); + } + + #endregion + + #region Internal Property + + internal StringBlob Words + { + get + { + return _words; + } + } + + internal StringBlob Symbols + { + get + { + return _symbols; + } + } + + #endregion + + #region Private Methods + + /// + /// Description: + /// Load compiled grammar data. This overwrites any existing data in the grammar + /// We end up with containers of words, symbols, rules, arcs, states and state handles, etc. + /// + internal void InitFromBinaryGrammar(StreamMarshaler streamHelper) + { + CfgGrammar.CfgHeader header = CfgGrammar.ConvertCfgHeader(streamHelper); + + _words = header.pszWords; + _symbols = header.pszSymbols; + + _grammarOptions = header.GrammarOptions; + + // + // Build up the internal representation + // + State[] apStateTable = new State[header.arcs.Length]; + SortedDictionary ruleFirstArcs = new(); + + // + // Initialize the rules + // + + int previousCfgLastRules = _rules.Count; + + BuildRulesFromBinaryGrammar(header, apStateTable, ruleFirstArcs, previousCfgLastRules); + + // + // Initialize the arcs + // + Arc[] apArcTable = new Arc[header.arcs.Length]; + bool fLastArcNull = true; + CfgArc pLastArc = new(); + State currentState = null; + IEnumerator> ieFirstArcs = ruleFirstArcs.GetEnumerator(); + + // If no rules, then we have no arcs + if (ieFirstArcs.MoveNext()) + { + KeyValuePair kvFirstArc = ieFirstArcs.Current; + Rule ruleCur = kvFirstArc.Value; + + // We repersist the static AND dynamic parts for now. This allows the grammar to be queried + // with the automation interfaces + for (int k = 1; k < header.arcs.Length; k++) + { + CfgArc arc = header.arcs[k]; + + // Reset the Transition index based on the combined string blobs + if (arc.RuleRef) + { + // for a ruleref offset the rule index + ruleCur._listRules.Add(_rules[(int)arc.TransitionIndex]); + } + + if (kvFirstArc.Key == k) + { + // we are entering a new rule now + ruleCur = kvFirstArc.Value; + + // Reset to zero once we have read the last rule. + if (ieFirstArcs.MoveNext()) + { + kvFirstArc = ieFirstArcs.Current; + } + } + + // new currentState? + if (fLastArcNull || pLastArc.LastArc) + { + if (apStateTable[k] == null) + { + uint hNewState = CfgGrammar.NextHandle; + + apStateTable[k] = new State(ruleCur, hNewState, k); + AddState(apStateTable[k]); + } + + currentState = apStateTable[k]; + } + + // + // now get the arc + // + int iNextArc = (int)(arc.NextStartArcIndex); + Arc newArc; + State targetState = null; + + if (currentState != null && iNextArc != 0) + { + if (apStateTable[iNextArc] == null) + { + uint hNewState = CfgGrammar.NextHandle; + + apStateTable[iNextArc] = new State(ruleCur, hNewState, iNextArc); + AddState(apStateTable[iNextArc]); + } + + targetState = apStateTable[iNextArc]; + } + + float flWeight = header.weights != null ? header.weights[k] : CfgGrammar.DEFAULT_WEIGHT; + + // determine properties of the arc now ... + if (arc.RuleRef) + { + Rule ruleToTransitionTo = _rules[(int)arc.TransitionIndex]; + + newArc = new Arc(null, ruleToTransitionTo, _words, flWeight, CfgGrammar.SP_NORMAL_CONFIDENCE, null, MatchMode.AllWords, ref _fNeedWeightTable); + } + else + { + int transitionIndex = (int)arc.TransitionIndex; + int ulSpecialTransitionIndex = (transitionIndex == CfgGrammar.SPWILDCARDTRANSITION || transitionIndex == CfgGrammar.SPDICTATIONTRANSITION || transitionIndex == CfgGrammar.SPTEXTBUFFERTRANSITION) ? transitionIndex : 0; + newArc = new Arc((ulSpecialTransitionIndex != 0) ? 0 : (int)arc.TransitionIndex, flWeight, arc.LowConfRequired ? CfgGrammar.SP_LOW_CONFIDENCE : arc.HighConfRequired ? CfgGrammar.SP_HIGH_CONFIDENCE : CfgGrammar.SP_NORMAL_CONFIDENCE, ulSpecialTransitionIndex, MatchMode.AllWords, ref _fNeedWeightTable); + } + newArc.Start = currentState; + newArc.End = targetState; + + AddArc(newArc); + apArcTable[k] = newArc; + fLastArcNull = false; + pLastArc = arc; + } + } + + // Initialize the Semantics tags + for (int k = 1, iCurTag = 0; k < header.arcs.Length; k++) + { + CfgArc arc = header.arcs[k]; + + if (arc.HasSemanticTag) + { + System.Diagnostics.Debug.Assert(header.tags[iCurTag].StartArcIndex == k); + + while (iCurTag < header.tags.Length && header.tags[iCurTag].StartArcIndex == k) + { + // we should already point to the tag + CfgSemanticTag semTag = header.tags[iCurTag]; + + Tag tag = new(this, semTag); + + _tags.Add(tag); + apArcTable[tag._cfgTag.StartArcIndex].AddStartTag(tag); + apArcTable[tag._cfgTag.EndArcIndex].AddEndTag(tag); + + // If we have ms-properties than _nameOffset != otherwise it is w3c tags. + if (semTag._nameOffset > 0) + { + tag._cfgTag._nameOffset = _symbols.OffsetFromId(_symbols.Find(_symbols.FromOffset(semTag._nameOffset))); + } + else + { + // The offset of the JScrip expression is stored in the value field. + tag._cfgTag._valueOffset = _symbols.OffsetFromId(_symbols.Find(_symbols.FromOffset(semTag._valueOffset))); + } + iCurTag++; + } + } + } + _fNeedWeightTable = true; + if (header.BasePath != null) + { + SetBasePath(header.BasePath); + } + + _guid = header.GrammarGUID; + _langId = header.langId; + _grammarMode = header.GrammarMode; + + _fLoadedFromBinary = true; + // Save Last ArcIndex + + } + + private Arc CreateTransition(string sWord, float flWeight, int requiredConfidence) + { + // epsilon transition for empty words + return AddSingleWordTransition(!string.IsNullOrEmpty(sWord) ? sWord : null, flWeight, requiredConfidence); + } + + private CfgGrammar.CfgSerializedHeader BuildHeader(List sortedStates, int cBasePath, ushort iSemanticGlobals, out int cArcs, out float[] pWeights) + { + cArcs = 1; // Start with offset one! (0 indicates dead state). + pWeights = null; + + int cSemanticTags = 0; + int cLargest = 0; + + foreach (State state in sortedStates) + { + // For new states SerializeId is INFINITE so we set it correctly here. + // For existing states we preserve the index from loading, + // unless new states have been added in. + state.SerializeId = cArcs; + + int thisState = state.NumArcs; + +#if DEBUG + if (thisState == 0 && state.InArcs.IsEmpty && state.Rule._cStates > 1) + { + XmlParser.ThrowSrgsException(SRID.StateWithNoArcs); + } +#endif + cArcs += thisState; + if (cLargest < thisState) + { + cLargest = thisState; + } + cSemanticTags += state.NumSemanticTags; + } + + CfgGrammar.CfgSerializedHeader header = new(); + uint ulOffset = (uint)Marshal.SizeOf(typeof(CfgGrammar.CfgSerializedHeader)); + + header.FormatId = CfgGrammar._SPGDF_ContextFree; + _guid = Guid.NewGuid(); + header.GrammarGUID = _guid; + header.LangID = (ushort)_langId; + header.pszSemanticInterpretationGlobals = iSemanticGlobals; + header.cArcsInLargestState = cLargest; + + header.cchWords = _words.StringSize(); + header.cWords = _words.Count; + + // For compat with SAPI 5.x add one to cWords if there's more than one word. + // The CFGEngine code assumes cWords includes the initial empty-string word. + // See PS 11491 and 61982. + if (header.cWords > 0) + { + header.cWords++; + } + + header.pszWords = ulOffset; + ulOffset += (uint)_words.SerializeSize() * Helpers._sizeOfChar; + header.cchSymbols = _symbols.StringSize(); + header.pszSymbols = ulOffset; + ulOffset += (uint)_symbols.SerializeSize() * Helpers._sizeOfChar; + header.cRules = _rules.Count; + header.pRules = ulOffset; + ulOffset += (uint)(_rules.Count * Marshal.SizeOf(typeof(CfgRule))); + header.cBasePath = cBasePath > 0 ? ulOffset : 0; //If there is no base path offset is set to zero + ulOffset += (uint)((cBasePath * Helpers._sizeOfChar + 3) & ~3); + header.cArcs = cArcs; + header.pArcs = ulOffset; + ulOffset += (uint)(cArcs * Marshal.SizeOf(typeof(CfgArc))); + if (_fNeedWeightTable) + { + header.pWeights = ulOffset; + ulOffset += (uint)(cArcs * Marshal.SizeOf(typeof(float))); + pWeights = new float[cArcs]; + pWeights[0] = 0.0f; + } + else + { + header.pWeights = 0; + ulOffset += 0; + } + + if (_rootRule != null) + { + //We have a root rule + header.ulRootRuleIndex = (uint)_rootRule._iSerialize; + } + else + { + //-1 means there is no root rule + header.ulRootRuleIndex = 0xFFFFFFFF; + } + + header.GrammarOptions = _grammarOptions | ((_alphabet == AlphabetType.Sapi) ? 0 : GrammarOptions.IpaPhoneme); + header.GrammarOptions |= _scriptRefs.Count > 0 ? GrammarOptions.STG | GrammarOptions.KeyValuePairSrgs : 0; + header.GrammarMode = (uint)_grammarMode; + header.cTags = cSemanticTags; + header.tags = ulOffset; + ulOffset += (uint)(cSemanticTags * Marshal.SizeOf(typeof(CfgSemanticTag))); + header.cScripts = _scriptRefs.Count; + header.pScripts = header.cScripts > 0 ? ulOffset : 0; + ulOffset += (uint)(_scriptRefs.Count * Marshal.SizeOf(typeof(CfgScriptRef))); + header.cIL = 0; + header.pIL = 0; + ulOffset += (uint)(header.cIL * Marshal.SizeOf(typeof(byte))); + header.cPDB = 0; + header.pPDB = 0; + ulOffset += (uint)(header.cPDB * Marshal.SizeOf(typeof(byte))); + header.ulTotalSerializedSize = ulOffset; + return header; + } + + private CfgGrammar.CfgHeader BuildRulesFromBinaryGrammar(CfgGrammar.CfgHeader header, State[] apStateTable, SortedDictionary ruleFirstArcs, int previousCfgLastRules) + { + for (int i = 0; i < header.rules.Length; i++) + { + // Check if the rule does not exist already + CfgRule cfgRule = header.rules[i]; + int firstArc = (int)cfgRule.FirstArcIndex; + + cfgRule._nameOffset = _symbols.OffsetFromId(_symbols.Find(header.pszSymbols.FromOffset(cfgRule._nameOffset))); + + Rule rule = new(this, _symbols.FromOffset(cfgRule._nameOffset), cfgRule, i + previousCfgLastRules, _grammarOptions & GrammarOptions.TagFormat, ref _cImportedRules); + + rule._firstState = _states.CreateNewState(rule); + _rules.Add(rule); + + // Add the rule to the list of firstArc/rule + if (firstArc > 0) + { + ruleFirstArcs.Add((int)cfgRule.FirstArcIndex, rule); + } + + rule._fStaticRule = (cfgRule.Dynamic) ? false : true; + rule._cfgRule.DirtyRule = false; + + // by default loaded static rules have an exist + rule._fHasExitPath = (rule._fStaticRule) ? true : false; + + // or they wouldn't be there in the first place + if (firstArc != 0) + { + System.Diagnostics.Debug.Assert(apStateTable[firstArc] == null); + rule._firstState.SerializeId = (int)cfgRule.FirstArcIndex; + apStateTable[firstArc] = rule._firstState; + } + + if (rule._cfgRule.HasResources) + { + throw new NotImplementedException(); + } + + if (header.ulRootRuleIndex == i) + { + _rootRule = rule; + } + + // Add rule to RuleListByName and RuleListByID hash tables. + if (rule._cfgRule._nameOffset != 0) + { + // Look for the rule in the original CFG and map it in the combined string blobs + _nameOffsetRules.Add(rule._cfgRule._nameOffset, rule); + } + } + return header; + } + + private Rule CloneState(State srcToState, List CloneStack, Dictionary srcToDestHash) + { + bool newRule = false; + int posDynamic = srcToState.Rule.Name.IndexOf("URL:DYNAMIC#", StringComparison.Ordinal); + string ruleName = posDynamic != 0 ? srcToState.Rule.Name : srcToState.Rule.Name.Substring(12); + Rule dstRule = FindInRules(ruleName); + + // Clone this rule into this GrammarBuilder if it does not exist yet + if (dstRule == null) + { + dstRule = srcToState.Rule.Clone(_symbols, ruleName); + _rules.Add(dstRule); + newRule = true; + } + + // Should not exist yet + System.Diagnostics.Debug.Assert(!srcToDestHash.ContainsKey(srcToState)); + + // push all the states for that rule + State newState = CreateNewState(dstRule); + srcToDestHash.Add(srcToState, newState); + CloneStack.Add(srcToState); + + if (newRule) + { + dstRule._firstState = newState; + } + + return dstRule; + } + + private Rule FindInRules(string ruleName) + { + foreach (Rule rule in _rules) + { + if (rule.Name == ruleName) + { + return rule; + } + } + return null; + } + + private static void LogError(string rule, SRID srid, params object[] args) + { + string sError = SR.Get(srid, args); + throw new FormatException(string.Format(CultureInfo.InvariantCulture, "Rule=\"{0}\" - ", rule) + sError); + } + + /// + /// Connect arc to the state graph. + /// +#if DEBUG + private +#else + private static +#endif + void AddArc(Arc arc) + { +#if DEBUG + arc.Backend = this; +#endif + } + + private void ValidateAndTagRules() + { + // + + bool fAtLeastOneRule = false; + int ulIndex = 0; + + foreach (Rule rule in _rules) + { + // set _fHasExitPath = true for empty dynamic grammars and imported rules + // Clear this for the next loop through the rules.... + rule._fHasExitPath |= (rule._cfgRule.Dynamic | rule._cfgRule.Import) ? true : false; + rule._iSerialize = ulIndex++; + fAtLeastOneRule |= (rule._cfgRule.Dynamic || rule._cfgRule.TopLevel || rule._cfgRule.Export); + rule.Validate(); + } +#if DEBUG + // + // Now make sure that all rules have an exit path. + // + foreach (Rule rule in _rules) + { + _ulRecursiveDepth = 0; + + //The following function will use recursive function that might change _ulRecursiveDepth + rule.CheckForExitPath(ref _ulRecursiveDepth); + } +#endif + // + // Check each exported rule if it has a dynamic rule in its "scope" + // + foreach (Rule rule in _rules) + { + if (rule._cfgRule.Dynamic) + { + rule._cfgRule.HasDynamicRef = true; + _ulRecursiveDepth = 0; + rule.PopulateDynamicRef(ref _ulRecursiveDepth); + } + } + } + + private void CheckLeftRecursion(List states) + { + bool fReachedEndState; + foreach (State state in states) + { + state.CheckLeftRecursion(out fReachedEndState); + } + } + + private Arc AddSingleWordTransition(string s, float flWeight, int requiredConfidence) + { + + Arc arc = new(s, null, _words, flWeight, requiredConfidence, null, MatchMode.AllWords, ref _fNeedWeightTable); + AddArc(arc); + return arc; + } + + internal void AddState(State state) + { + _states.Add(state); + } + + #endregion + + #region Internal Properties + + internal int LangId + { + get + { + return _langId; + } + set + { + _langId = value; + } + } + + internal GrammarOptions GrammarOptions + { + get + { + return _grammarOptions; + } + set + { + _grammarOptions = value; + } + } + + internal GrammarType GrammarMode + { + set + { + _grammarMode = value; + } + } + + internal AlphabetType Alphabet + { + get + { + return _alphabet; + } + set + { + _alphabet = value; + } + } + + internal Collection GlobalTags + { + get + { + return _globalTags; + } + set + { + _globalTags = value; + } + } + + internal Collection ScriptRefs + { + set + { + _scriptRefs = value; + } + } + + #endregion + + #region Private Fields + + private int _langId = CultureInfo.CurrentUICulture.LCID; + + private StringBlob _words; + + private StringBlob _symbols; + + //private int _cResources; + + private Guid _guid; + + private bool _fNeedWeightTable; + + private Graph _states = new(); + + private List _rules = new(); + + private int _ruleIndex; + + private Dictionary _nameOffsetRules = new(); + + private Rule _rootRule; + + private GrammarOptions _grammarOptions = GrammarOptions.KeyValuePairs; + + // It is used sequentially. So there is no thread issue + private int _ulRecursiveDepth; + + // Path from which relative grammar imports are calculated. As specified by xml:base + private string _basePath; + + // Collection of all SemanticTags in the grammar (sorted by StartArc) + private List _tags = new(); + + // Voice or DTMF + private GrammarType _grammarMode = GrammarType.VoiceGrammar; + + // Pron information is either IPA or SAPI + private AlphabetType _alphabet = AlphabetType.Sapi; + + // Global value for the semantic interpretation tags + private Collection _globalTags = new(); + + // + private static byte[] s_abZero3 = new byte[] { 0, 0, 0 }; + + private static char[] s_achZero = new char[] { '\0' }; + private int _cImportedRules; + + // List of cd /reference Rule->rule 'on'method-> .NET method + private Collection _scriptRefs = new(); + + private bool _fLoadedFromBinary; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/CFGGrammar.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/CFGGrammar.cs new file mode 100644 index 00000000000000..67bac9e6029aa9 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/CFGGrammar.cs @@ -0,0 +1,574 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.IO; +using System.Runtime.InteropServices; +using System.Speech.Internal.SrgsParser; + +namespace System.Speech.Internal.SrgsCompiler +{ + internal sealed class CfgGrammar + { + #region Constructors + + internal CfgGrammar() + { + } + + #endregion + + #region Internal Types + + // Preprocess CFG header file + internal struct CfgHeader + { + internal Guid FormatId; + + internal Guid GrammarGUID; + + internal ushort langId; + + internal ushort pszGlobalTags; + + internal int cArcsInLargestState; + + internal StringBlob pszWords; + + internal StringBlob pszSymbols; + + internal CfgRule[] rules; + + internal CfgArc[] arcs; + + internal float[] weights; + + internal CfgSemanticTag[] tags; + + internal CfgScriptRef[] scripts; + + internal uint ulRootRuleIndex; + + internal GrammarOptions GrammarOptions; + + internal GrammarType GrammarMode; + + internal string BasePath; + } + + [StructLayout(LayoutKind.Sequential)] + internal class CfgSerializedHeader + { + internal CfgSerializedHeader() + { + } + +#pragma warning disable 56518 // The Binary reader cannot be disposed or it would close the underlying stream + + // Initializes a CfgSerializedHeader from a Stream. + // If the data does not represent a cfg then UnsuportedFormatException is thrown. + // This isn't a conclusive validity check, but is enough to determine if it's a CFG or not. + // For a complete check CheckValidCfgFormat is used. + internal CfgSerializedHeader(Stream stream) + { + BinaryReader br = new(stream); + ulTotalSerializedSize = br.ReadUInt32(); + if (ulTotalSerializedSize < SP_SPCFGSERIALIZEDHEADER_500 || ulTotalSerializedSize > int.MaxValue) + { + // Size is either negative or too small. + XmlParser.ThrowSrgsException(SRID.UnsupportedFormat); + } + + FormatId = new Guid(br.ReadBytes(16)); + if (FormatId != CfgGrammar._SPGDF_ContextFree) + { + // Not of cfg format + XmlParser.ThrowSrgsException(SRID.UnsupportedFormat); + } + + GrammarGUID = new Guid(br.ReadBytes(16)); + LangID = br.ReadUInt16(); + pszSemanticInterpretationGlobals = br.ReadUInt16(); + cArcsInLargestState = br.ReadInt32(); + cchWords = br.ReadInt32(); + cWords = br.ReadInt32(); + pszWords = br.ReadUInt32(); + if (pszWords < SP_SPCFGSERIALIZEDHEADER_500 || pszWords > ulTotalSerializedSize) + { + // First data points before or before valid range. + XmlParser.ThrowSrgsException(SRID.UnsupportedFormat); + } + + cchSymbols = br.ReadInt32(); + pszSymbols = br.ReadUInt32(); + cRules = br.ReadInt32(); + pRules = br.ReadUInt32(); + cArcs = br.ReadInt32(); + pArcs = br.ReadUInt32(); + pWeights = br.ReadUInt32(); + cTags = br.ReadInt32(); + tags = br.ReadUInt32(); + ulReservered1 = br.ReadUInt32(); + ulReservered2 = br.ReadUInt32(); + + if (pszWords > SP_SPCFGSERIALIZEDHEADER_500) + { + cScripts = br.ReadInt32(); + pScripts = br.ReadUInt32(); + cIL = br.ReadInt32(); + pIL = br.ReadUInt32(); + cPDB = br.ReadInt32(); + pPDB = br.ReadUInt32(); + ulRootRuleIndex = br.ReadUInt32(); + GrammarOptions = (GrammarOptions)br.ReadUInt32(); + cBasePath = br.ReadUInt32(); + GrammarMode = br.ReadUInt32(); + ulReservered3 = br.ReadUInt32(); + ulReservered4 = br.ReadUInt32(); + } + // Else SAPI 5.0 syntax grammar - parameters set to zero + } + internal static bool IsCfg(Stream stream, out int cfgLength) + { + cfgLength = 0; + BinaryReader br = new(stream); + uint ulTotalSerializedSize = br.ReadUInt32(); + if (ulTotalSerializedSize < SP_SPCFGSERIALIZEDHEADER_500 || ulTotalSerializedSize > int.MaxValue) + { + // Size is either negative or too small. + return false; + } + + Guid formatId = new(br.ReadBytes(16)); + if (formatId != CfgGrammar._SPGDF_ContextFree) + { + // Not of cfg format + return false; + } + + cfgLength = (int)ulTotalSerializedSize; + return true; + } + +#pragma warning restore 56518 // The Binary reader cannot be disposed or it would close the underlying stream + + internal uint ulTotalSerializedSize; + + internal Guid FormatId; + + internal Guid GrammarGUID; + + internal ushort LangID; + + internal ushort pszSemanticInterpretationGlobals; + + internal int cArcsInLargestState; + + internal int cchWords; + + internal int cWords; + + internal uint pszWords; + + internal int cchSymbols; + + internal uint pszSymbols; + + internal int cRules; + + internal uint pRules; + + internal int cArcs; + + internal uint pArcs; + + internal uint pWeights; + + internal int cTags; + + internal uint tags; + + internal uint ulReservered1; + + internal uint ulReservered2; + + internal int cScripts; + + internal uint pScripts; + + internal int cIL; + + internal uint pIL; + + internal int cPDB; + + internal uint pPDB; + + internal uint ulRootRuleIndex; + + internal GrammarOptions GrammarOptions; + + internal uint cBasePath; + + internal uint GrammarMode; + + internal uint ulReservered3; + + internal uint ulReservered4; + } + + internal class CfgProperty + { + internal string _pszName; + + internal uint _ulId; +#pragma warning disable 0618 // VarEnum is obsolete + internal VarEnum _comType; +#pragma warning restore 0618 + internal object _comValue; + } + + #endregion + + #region Internal Methods + + // + // This helper converts a serialized CFG grammar header into an in-memory header + // + internal static CfgHeader ConvertCfgHeader(StreamMarshaler streamHelper) + { + CfgSerializedHeader cfgSerializedHeader = null; + return ConvertCfgHeader(streamHelper, true, true, out cfgSerializedHeader); + } + + internal static CfgHeader ConvertCfgHeader(StreamMarshaler streamHelper, bool includeAllGrammarData, bool loadSymbols, out CfgSerializedHeader cfgSerializedHeader) + { + cfgSerializedHeader = new CfgSerializedHeader(streamHelper.Stream); + + // + // Because in 64-bit code, pointers != sizeof(ULONG) we copy each member explicitly. + // + + CfgHeader header = new(); + header.FormatId = cfgSerializedHeader.FormatId; + header.GrammarGUID = cfgSerializedHeader.GrammarGUID; + header.langId = cfgSerializedHeader.LangID; + header.pszGlobalTags = cfgSerializedHeader.pszSemanticInterpretationGlobals; + header.cArcsInLargestState = cfgSerializedHeader.cArcsInLargestState; + + // read all the common fields + header.rules = Load(streamHelper, cfgSerializedHeader.pRules, cfgSerializedHeader.cRules); + + if (includeAllGrammarData || loadSymbols) + { + header.pszSymbols = LoadStringBlob(streamHelper, cfgSerializedHeader.pszSymbols, cfgSerializedHeader.cchSymbols); + } + + if (includeAllGrammarData) + { + header.pszWords = LoadStringBlob(streamHelper, cfgSerializedHeader.pszWords, cfgSerializedHeader.cchWords); + header.arcs = Load(streamHelper, cfgSerializedHeader.pArcs, cfgSerializedHeader.cArcs); + header.tags = Load(streamHelper, cfgSerializedHeader.tags, cfgSerializedHeader.cTags); + header.weights = Load(streamHelper, cfgSerializedHeader.pWeights, cfgSerializedHeader.cArcs); + } + + //We know that in SAPI 5.0 grammar format pszWords follows header immediately. + if (cfgSerializedHeader.pszWords < Marshal.SizeOf(typeof(CfgSerializedHeader))) + { + //This is SAPI 5.0 and SAPI 5.1 grammar format + header.ulRootRuleIndex = 0xFFFFFFFF; + header.GrammarOptions = GrammarOptions.KeyValuePairs; + header.BasePath = null; + header.GrammarMode = GrammarType.VoiceGrammar; + } + else + { + //This is SAPI 5.2 and beyond grammar format + header.ulRootRuleIndex = cfgSerializedHeader.ulRootRuleIndex; + header.GrammarOptions = cfgSerializedHeader.GrammarOptions; + header.GrammarMode = (GrammarType)cfgSerializedHeader.GrammarMode; + if (includeAllGrammarData) + { + header.scripts = Load(streamHelper, cfgSerializedHeader.pScripts, cfgSerializedHeader.cScripts); + } + // The BasePath string is written after the rules - no offset is provided + // Get the chars and build the string + if (cfgSerializedHeader.cBasePath > 0) + { + streamHelper.Stream.Position = (int)cfgSerializedHeader.pRules + (header.rules.Length * Marshal.SizeOf(typeof(CfgRule))); + header.BasePath = streamHelper.ReadNullTerminatedString(); + } + } + + // Check the content - should be valid for both SAPI 5.0 and SAPI 5.2 grammars + CheckValidCfgFormat(cfgSerializedHeader, header, includeAllGrammarData); + + return header; + } + + // + // This helper converts a serialized CFG grammar header into an in-memory header + // + internal static ScriptRef[] LoadScriptRefs(StreamMarshaler streamHelper, CfgSerializedHeader pFH) + { + // + // Because in 64-bit code, pointers != sizeof(ULONG) we copy each member explicitly. + // + if (pFH.FormatId != CfgGrammar._SPGDF_ContextFree) + { + return null; + } + + //We know that in SAPI 5.0 grammar format pszWords follows header immediately. + if (pFH.pszWords < Marshal.SizeOf(typeof(CfgSerializedHeader))) + { + // Must be SAPI 6.0 or above to hold a .NET script + return null; + } + + // Get the symbols + StringBlob symbols = LoadStringBlob(streamHelper, pFH.pszSymbols, pFH.cchSymbols); + + // Get the script refs + CfgScriptRef[] cfgScripts = Load(streamHelper, pFH.pScripts, pFH.cScripts); + + // Convert the CFG script reference to ScriptRef + ScriptRef[] scripts = new ScriptRef[cfgScripts.Length]; + for (int i = 0; i < cfgScripts.Length; i++) + { + CfgScriptRef cfgScript = cfgScripts[i]; + scripts[i] = new ScriptRef(symbols[cfgScript._idRule], symbols[cfgScript._idMethod], cfgScript._method); + } + + return scripts; + } + + internal static ScriptRef[] LoadIL(Stream stream) + { + using (StreamMarshaler streamHelper = new(stream)) + { + CfgSerializedHeader pFH = new(); + + streamHelper.ReadStream(pFH); + + return LoadScriptRefs(streamHelper, pFH); + } + } + + internal static bool LoadIL(Stream stream, out byte[] assemblyContent, out byte[] assemblyDebugSymbols, out ScriptRef[] scripts) + { + assemblyContent = assemblyDebugSymbols = null; + scripts = null; + + using (StreamMarshaler streamHelper = new(stream)) + { + CfgSerializedHeader pFH = new(); + + streamHelper.ReadStream(pFH); + + scripts = LoadScriptRefs(streamHelper, pFH); + if (scripts == null) + { + return false; + } + + // Return if no script + if (pFH.cIL == 0) + { + return false; + } + + // Get the assembly content + assemblyContent = Load(streamHelper, pFH.pIL, pFH.cIL); + + assemblyDebugSymbols = pFH.cPDB > 0 ? Load(streamHelper, pFH.pPDB, pFH.cPDB) : null; + } + + return true; + } + + #endregion + + #region Private Methods + + private static void CheckValidCfgFormat(CfgSerializedHeader pFH, CfgHeader header, bool includeAllGrammarData) + { + //See backend commit method to understand the layout of cfg format + if (pFH.pszWords < SP_SPCFGSERIALIZEDHEADER_500) + { + XmlParser.ThrowSrgsException(SRID.UnsupportedFormat); + } + + int ullStartOffset = (int)pFH.pszWords; + + //Check the word offset + //See stringblob implementation. pFH.cchWords * sizeof(WCHAR) isn't exactly the serialized size, but it is close and must be less than the serialized size + CheckSetOffsets(pFH.pszWords, pFH.cchWords * Helpers._sizeOfChar, ref ullStartOffset, pFH.ulTotalSerializedSize); + + //Check the symbol offset + //symbol is right after word + //pFH.pszSymbols is very close to pFH.pszWords + pFH.cchWords * sizeof(WCHAR) + CheckSetOffsets(pFH.pszSymbols, pFH.cchSymbols * Helpers._sizeOfChar, ref ullStartOffset, pFH.ulTotalSerializedSize); + + //Check the rule offset + if (pFH.cRules > 0) + { + CheckSetOffsets(pFH.pRules, pFH.cRules * Marshal.SizeOf(typeof(CfgRule)), ref ullStartOffset, pFH.ulTotalSerializedSize); + } + + //Check the arc offset + if (pFH.cArcs > 0) + { + CheckSetOffsets(pFH.pArcs, pFH.cArcs * Marshal.SizeOf(typeof(CfgArc)), ref ullStartOffset, pFH.ulTotalSerializedSize); + } + + //Check the weight offset + if (pFH.pWeights > 0) + { + CheckSetOffsets(pFH.pWeights, pFH.cArcs * Marshal.SizeOf(typeof(float)), ref ullStartOffset, pFH.ulTotalSerializedSize); + } + + //Check the semantic tag offset + if (pFH.cTags > 0) + { + CheckSetOffsets(pFH.tags, pFH.cTags * Marshal.SizeOf(typeof(CfgSemanticTag)), ref ullStartOffset, pFH.ulTotalSerializedSize); + + if (includeAllGrammarData) + { + //Validate the SPCFGSEMANTICTAG array pointed to by tags + //We use header for easy array access + //The first arc is dummy, so the start and end arcindex for semantic tag won't be zero + for (int i = 0; i < header.tags.Length; i++) + { + int startArc = (int)header.tags[i].StartArcIndex; + int endArc = (int)header.tags[i].EndArcIndex; + int cArcs = header.arcs.Length; +#pragma warning disable 0618 // VarEnum is obsolete + if (startArc == 0 || + startArc >= cArcs || + endArc == 0 || + endArc >= cArcs || + ( + header.tags[i].PropVariantType != VarEnum.VT_EMPTY && + header.tags[i].PropVariantType != VarEnum.VT_BSTR && + header.tags[i].PropVariantType != VarEnum.VT_BOOL && + header.tags[i].PropVariantType != VarEnum.VT_R8 && + header.tags[i].PropVariantType != VarEnum.VT_I4) + ) + { + XmlParser.ThrowSrgsException(SRID.UnsupportedFormat); + } +#pragma warning restore 0618 + } + } + } + + //Check the offset for the scripts + if (pFH.cScripts > 0) + { + CheckSetOffsets(pFH.pScripts, pFH.cScripts * Marshal.SizeOf(typeof(CfgScriptRef)), ref ullStartOffset, pFH.ulTotalSerializedSize); + } + + if (pFH.cIL > 0) + { + CheckSetOffsets(pFH.pIL, pFH.cIL * Marshal.SizeOf(typeof(byte)), ref ullStartOffset, pFH.ulTotalSerializedSize); + } + + if (pFH.cPDB > 0) + { + CheckSetOffsets(pFH.pPDB, pFH.cPDB * Marshal.SizeOf(typeof(byte)), ref ullStartOffset, pFH.ulTotalSerializedSize); + } + } + + private static void CheckSetOffsets(uint offset, int size, ref int start, uint max) + { + if (offset < (uint)start || + (start = (int)offset + size) > (int)max) + { + XmlParser.ThrowSrgsException(SRID.UnsupportedFormat); + } + } + + private static StringBlob LoadStringBlob(StreamMarshaler streamHelper, uint iPos, int c) + { + char[] ach = new char[c]; + + streamHelper.Position = iPos; + streamHelper.ReadArrayChar(ach, c); + + return new StringBlob(ach); + } + + private static T[] Load(StreamMarshaler streamHelper, uint iPos, int c) + { + + T[] t = null; + + t = new T[c]; + + if (c > 0) + { + streamHelper.Position = iPos; + streamHelper.ReadArray(t, c); + } + + return t; + } + + #endregion + + #region Internal Properties + + internal static uint NextHandle + { + get + { + return ++s_lastHandle; + } + } + + #endregion + + #region Internal Fields + + internal static Guid _SPGDF_ContextFree = new(0x4ddc926d, 0x6ce7, 0x4dc0, 0x99, 0xa7, 0xaf, 0x9e, 0x6b, 0x6a, 0x4e, 0x91); + + // + internal const int INFINITE = unchecked((int)0xffffffff); + + // INFINITE + // + internal static readonly Rule SPRULETRANS_TEXTBUFFER = new(-1); + + internal static readonly Rule SPRULETRANS_WILDCARD = new(-2); + + internal static readonly Rule SPRULETRANS_DICTATION = new(-3); + + // + internal const int SPTEXTBUFFERTRANSITION = 0x3fffff; + + internal const int SPWILDCARDTRANSITION = 0x3ffffe; + + internal const int SPDICTATIONTRANSITION = 0x3ffffd; + + internal const int MAX_TRANSITIONS_COUNT = 256; + + internal const float DEFAULT_WEIGHT = 1f; + + // + internal const int SP_LOW_CONFIDENCE = -1; + + internal const int SP_NORMAL_CONFIDENCE = 0; + + internal const int SP_HIGH_CONFIDENCE = +1; + + #endregion + + #region Private Fields + + private const int SP_SPCFGSERIALIZEDHEADER_500 = 100; + + private static uint s_lastHandle; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/CfgArc.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/CfgArc.cs new file mode 100644 index 00000000000000..2f5aa214e31720 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/CfgArc.cs @@ -0,0 +1,176 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Speech.Internal.SrgsParser; + +namespace System.Speech.Internal.SrgsCompiler +{ + internal struct CfgArc + { + #region Constructors + + internal CfgArc(CfgArc arc) + { + _flag1 = arc._flag1; + _flag2 = arc._flag2; + } + + #endregion + + #region Internal Properties + + internal bool RuleRef + { + get + { + return ((_flag1 & 0x1) != 0); + } + set + { + if (value) + { + _flag1 |= 0x1; + } + else + { + _flag1 &= ~0x1U; + } + } + } + + internal bool LastArc + { + get + { + return ((_flag1 & 0x2) != 0); + } + set + { + if (value) + { + _flag1 |= 0x2; + } + else + { + _flag1 &= ~0x2U; + } + } + } + + internal bool HasSemanticTag + { + get + { + return ((_flag1 & 0x4) != 0); + } + set + { + if (value) + { + _flag1 |= 0x4; + } + else + { + _flag1 &= ~0x4U; + } + } + } + + internal bool LowConfRequired + { + get + { + return ((_flag1 & 0x8) != 0); + } + set + { + if (value) + { + _flag1 |= 0x8; + } + else + { + _flag1 &= ~0x8U; + } + } + } + + internal bool HighConfRequired + { + get + { + return ((_flag1 & 0x10) != 0); + } + set + { + if (value) + { + _flag1 |= 0x10; + } + else + { + _flag1 &= ~0x10U; + } + } + } + + internal uint TransitionIndex + { + get + { + return (_flag1 >> 5) & 0x3FFFFF; + } + set + { + if (value > 0x3FFFFFU) + { + XmlParser.ThrowSrgsException(SRID.TooManyArcs); + } + + _flag1 &= ~(0x3FFFFFU << 5); + _flag1 |= value << 5; + } + } + + internal uint MatchMode + { + get + { + return (_flag1 >> 27) & 0x7; + } + set + { + _flag1 &= ~(0x38000000U); + _flag1 |= value << 27; + } + } + + internal uint NextStartArcIndex + { + get + { + return (_flag2 >> 8) & 0x3FFFFF; + } + set + { + if (value > 0x3FFFFF) + { + XmlParser.ThrowSrgsException(SRID.TooManyArcs); + } + + _flag2 &= ~(0x3FFFFFU << 8); + _flag2 |= value << 8; + } + } + + #endregion + + #region private Fields + + private uint _flag1; + + private uint _flag2; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/CfgRule.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/CfgRule.cs new file mode 100644 index 00000000000000..e7590dbf12433a --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/CfgRule.cs @@ -0,0 +1,233 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Speech.Internal.SrgsParser; + +namespace System.Speech.Internal.SrgsCompiler +{ + internal struct CfgRule + { + #region Constructors + + internal CfgRule(int id, int nameOffset, uint flag) + { + _flag = flag; + _nameOffset = nameOffset; + _id = id; + } + + internal CfgRule(int id, int nameOffset, SPCFGRULEATTRIBUTES attributes) + { + _flag = 0; + _nameOffset = nameOffset; + _id = id; + TopLevel = ((attributes & SPCFGRULEATTRIBUTES.SPRAF_TopLevel) != 0); + DefaultActive = ((attributes & SPCFGRULEATTRIBUTES.SPRAF_Active) != 0); + PropRule = ((attributes & SPCFGRULEATTRIBUTES.SPRAF_Interpreter) != 0); + Export = ((attributes & SPCFGRULEATTRIBUTES.SPRAF_Export) != 0); + Dynamic = ((attributes & SPCFGRULEATTRIBUTES.SPRAF_Dynamic) != 0); + Import = ((attributes & SPCFGRULEATTRIBUTES.SPRAF_Import) != 0); + } + + #endregion + + #region Internal Properties + + internal bool TopLevel + { + get + { + return ((_flag & 0x0001) != 0); + } + set + { + if (value) + { + _flag |= 0x0001; + } + else + { + _flag &= ~(uint)0x0001; + } + } + } + + internal bool DefaultActive + { + set + { + if (value) + { + _flag |= 0x0002; + } + else + { + _flag &= ~(uint)0x0002; + } + } + } + + internal bool PropRule + { + set + { + if (value) + { + _flag |= 0x0004; + } + else + { + _flag &= ~(uint)0x0004; + } + } + } + + internal bool Import + { + get + { + return ((_flag & 0x0008) != 0); + } + set + { + if (value) + { + _flag |= 0x0008; + } + else + { + _flag &= ~(uint)0x0008; + } + } + } + + internal bool Export + { + get + { + return ((_flag & 0x0010) != 0); + } + set + { + if (value) + { + _flag |= 0x0010; + } + else + { + _flag &= ~(uint)0x0010; + } + } + } + + internal bool HasResources + { + get + { + return ((_flag & 0x0020) != 0); + } + } + + internal bool Dynamic + { + get + { + return ((_flag & 0x0040) != 0); + } + set + { + if (value) + { + _flag |= 0x0040; + } + else + { + _flag &= ~(uint)0x0040; + } + } + } + + internal bool HasDynamicRef + { + get + { + return ((_flag & 0x0080) != 0); + } + set + { + if (value) + { + _flag |= 0x0080; + } + else + { + _flag &= ~(uint)0x0080; + } + } + } + + internal uint FirstArcIndex + { + get + { + return (_flag >> 8) & 0x3FFFFF; + } + set + { + if (value > 0x3FFFFF) + { + XmlParser.ThrowSrgsException(SRID.TooManyArcs); + } + + _flag &= ~((uint)0x3FFFFF << 8); + _flag |= value << 8; + } + } + + internal bool DirtyRule + { + set + { + if (value) + { + _flag |= 0x80000000; + } + else + { + _flag &= ~0x80000000; + } + } + } + + #endregion + + #region Internal Fields + + // should be private but the order is absolutely key for marshalling + internal uint _flag; + + internal int _nameOffset; + + internal int _id; + + #endregion + } + + #region Internal Enumeration + + [Flags] + internal enum SPCFGRULEATTRIBUTES + { + SPRAF_TopLevel = (1 << 0), + SPRAF_Active = (1 << 1), + SPRAF_Export = (1 << 2), + SPRAF_Import = (1 << 3), + SPRAF_Interpreter = (1 << 4), + SPRAF_Dynamic = (1 << 5), + SPRAF_Root = (1 << 6), + SPRAF_AutoPause = (1 << 16), + SPRAF_UserDelimited = (1 << 17) + } + + #endregion +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/CfgScriptRef.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/CfgScriptRef.cs new file mode 100644 index 00000000000000..196023ea7bd2ec --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/CfgScriptRef.cs @@ -0,0 +1,23 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; +using System.Speech.Internal.SrgsParser; + +namespace System.Speech.Internal.SrgsCompiler +{ + [StructLayout(LayoutKind.Sequential)] + internal struct CfgScriptRef + { + #region Internal Fields + + // should be private but the order is absolutely key for marshalling + internal int _idRule; + + internal int _idMethod; + + internal RuleMethodScript _method; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/CfgSemanticTag.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/CfgSemanticTag.cs new file mode 100644 index 00000000000000..1d1568755f5ac0 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/CfgSemanticTag.cs @@ -0,0 +1,207 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; +using System.Speech.Internal.SrgsParser; + +namespace System.Speech.Internal.SrgsCompiler +{ + [StructLayout(LayoutKind.Explicit)] + internal struct CfgSemanticTag + { + #region Constructors + + internal CfgSemanticTag(CfgSemanticTag cfgTag) + { + _flag1 = cfgTag._flag1; + _flag2 = cfgTag._flag2; + _flag3 = cfgTag._flag3; + _propId = cfgTag._propId; + _nameOffset = cfgTag._nameOffset; + _varInt = 0; + _valueOffset = cfgTag._valueOffset; + _varDouble = cfgTag._varDouble; + + // Initialize + StartArcIndex = 0x3FFFFF; + } + + internal CfgSemanticTag(StringBlob symbols, CfgGrammar.CfgProperty property) + { + int iWord; + + _flag1 = _flag2 = _flag3 = 0; + _valueOffset = 0; + _varInt = 0; + _varDouble = 0; + + _propId = property._ulId; + if (property._pszName != null) + { + _nameOffset = symbols.Add(property._pszName, out iWord); + } + else + { + _nameOffset = 0; // Offset must be zero if no string + } +#pragma warning disable 0618 // VarEnum is obsolete + switch (property._comType) + { + case 0: + case VarEnum.VT_BSTR: + if (property._comValue != null) + { + _valueOffset = symbols.Add((string)property._comValue, out iWord); + } + else + { + _valueOffset = 0; // Offset must be zero if no string + } + break; + + case VarEnum.VT_I4: + _varInt = (int)property._comValue; + break; + + case VarEnum.VT_BOOL: + _varInt = (bool)property._comValue ? unchecked(0xffff) : 0; + break; + + case VarEnum.VT_R8: + _varDouble = (double)property._comValue; + break; + + default: + System.Diagnostics.Debug.Assert(false, "Unknown Semantic Tag type"); + break; + } +#pragma warning restore 0618 + PropVariantType = property._comType; + ArcIndex = 0; + } + + #endregion + + #region Internal Properties + + internal uint StartArcIndex + { + get + { + return _flag1 & 0x3FFFFF; + } + set + { + if (value > 0x3FFFFF) + { + XmlParser.ThrowSrgsException(SRID.TooManyArcs); + } + + _flag1 &= ~(uint)0x3FFFFF; + _flag1 |= value; + } + } + + internal uint EndArcIndex + { + get + { + return _flag2 & 0x3FFFFF; + } + set + { + if (value > 0x3FFFFF) + { + XmlParser.ThrowSrgsException(SRID.TooManyArcs); + } + + _flag2 &= ~(uint)0x3FFFFF; + _flag2 |= value; + } + } + +#pragma warning disable 0618 // VarEnum is obsolete + internal VarEnum PropVariantType + { + get + { + return (VarEnum)(_flag3 & 0xFF); + } + set + { + uint varType = (uint)value; + + if (varType > 0xFF) + { + XmlParser.ThrowSrgsException(SRID.TooManyArcs); + } + + _flag3 &= ~(uint)0xFF; + _flag3 |= varType; + } + } +#pragma warning restore 0618 + + internal uint ArcIndex + { + get + { + return (_flag3 >> 8) & 0x3FFFFF; + } + set + { + if (value > 0x3FFFFF) + { + XmlParser.ThrowSrgsException(SRID.TooManyArcs); + } + + _flag3 &= ~((uint)0x3FFFFF << 8); + _flag3 |= value << 8; + } + } + + #endregion + + #region Internal Fields + + // Should be in the private section but the order for parameters is key + [FieldOffset(0)] + private uint _flag1; + + [FieldOffset(4)] + private uint _flag2; + + [FieldOffset(8)] + private uint _flag3; + + [FieldOffset(12)] + internal int _nameOffset; + + [FieldOffset(16)] + internal uint _propId; + + [FieldOffset(20)] + internal int _valueOffset; + [FieldOffset(24)] + internal int _varInt; + + [FieldOffset(24)] + internal double _varDouble; + + #endregion + } + + [Flags] + internal enum GrammarOptions + { + KeyValuePairs = 0, + MssV1 = 1, + KeyValuePairSrgs = 2, + IpaPhoneme = 4, + W3cV1 = 8, + STG = 0x10, + + TagFormat = KeyValuePairs | MssV1 | W3cV1 | KeyValuePairSrgs, + SemanticInterpretation = MssV1 | W3cV1 + }; +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/CustomGrammar.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/CustomGrammar.cs new file mode 100644 index 00000000000000..bfdbd97035ff94 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/CustomGrammar.cs @@ -0,0 +1,172 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Globalization; +using System.IO; +using System.Reflection; +using System.Speech.Internal.SrgsParser; +using System.Text; + +#pragma warning disable 56507 // check for null or empty strings + +namespace System.Speech.Internal.SrgsCompiler +{ + internal class CustomGrammar + { + #region Constructors + + internal CustomGrammar() + { + } + + #endregion + + #region Internal methods + + /// + /// Add the scripts defined in 'cg' to the set of scripts defined in 'cgCombined'. + /// Build the union of t codebehind files and assembly references + /// + internal void Combine(CustomGrammar cg, string innerCode) + { + if (_rules.Count == 0) + { + _language = cg._language; + } + else + { + if (_language != cg._language) + { + XmlParser.ThrowSrgsException(SRID.IncompatibleLanguageProperties); + } + } + + if (_namespace == null) + { + _namespace = cg._namespace; + } + else + { + if (_namespace != cg._namespace) + { + XmlParser.ThrowSrgsException(SRID.IncompatibleNamespaceProperties); + } + } + + _fDebugScript |= cg._fDebugScript; + + foreach (string codebehind in cg._codebehind) + { + if (!_codebehind.Contains(codebehind)) + { + _codebehind.Add(codebehind); + } + } + + foreach (string assemblyReferences in cg._assemblyReferences) + { + if (!_assemblyReferences.Contains(assemblyReferences)) + { + _assemblyReferences.Add(assemblyReferences); + } + } + + foreach (string importNamespaces in cg._importNamespaces) + { + if (!_importNamespaces.Contains(importNamespaces)) + { + _importNamespaces.Add(importNamespaces); + } + } + + _keyFile = cg._keyFile; + + _types.AddRange(cg._types); + foreach (Rule rule in cg._rules) + { + if (_types.Contains(rule.Name)) + { + XmlParser.ThrowSrgsException(SRID.RuleDefinedMultipleTimes2, rule.Name); + } + } + + // Combine all the scripts + _script.Append(innerCode); + } + + #endregion + + #region Internal Properties + + internal bool HasScript + { + get + { + bool has_script = _script.Length > 0 || _codebehind.Count > 0; + if (!has_script) + { + foreach (Rule rule in _rules) + { + if (rule.Script.Length > 0) + { + has_script = true; + break; + } + } + } + return has_script; + } + } + + #endregion + + #region Internal Types + + internal class CfgResource + { + internal string name; + internal byte[] data; + } + + #endregion + + #region Internal Fields + + // 'C#', 'VB' or 'JScript' + internal string _language = "C#"; + + // namespace for the class wrapping the inline code + internal string _namespace; + + // namespace for the class wrapping the inline code + internal List _rules = new(); + + // code behind dll + internal Collection _codebehind = new(); + + // if set generates #line statements + internal bool _fDebugScript; + + // List of assembly references to import + internal Collection _assemblyReferences = new(); + + // List of namespaces to import + internal Collection _importNamespaces = new(); + + // Key file for the strong name + internal string _keyFile; + + // CFG scripts definition + internal Collection _scriptRefs = new(); + + // inline script + internal List _types = new(); + + // inline script + internal StringBuilder _script = new(); + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/GrammarElement.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/GrammarElement.cs new file mode 100644 index 00000000000000..453087ca5c5a6f --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/GrammarElement.cs @@ -0,0 +1,370 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Globalization; +using System.Speech.Internal.SrgsParser; + +namespace System.Speech.Internal.SrgsCompiler +{ + internal class GrammarElement : ParseElement, IGrammar + { + #region Constructors + + internal GrammarElement(Backend backend, CustomGrammar cg) + : base(null) + { + _cg = cg; + _backend = backend; + } + + #endregion + + #region Internal Method + + string IGrammar.Root + { + get + { + return _sRoot; + } + set + { + _sRoot = value; + } + } + + IRule IGrammar.CreateRule(string id, RulePublic publicRule, RuleDynamic dynamic, bool hasScript) + { + SPCFGRULEATTRIBUTES dwRuleAttributes = 0; + + // Determine rule attributes to apply based on RuleScope, IsDynamic, and IsRootRule. + // IsRootRule RuleScope IsDynamic Rule Attributes + // ---------------------------------------------------------------------- + // true * true Root | Active | TopLevel | Export | Dynamic + // true * false Root | Active | TopLevel | Export + // false internal true TopLevel | Export | Dynamic + // false internal false TopLevel | Export + // false private true Dynamic + // false private false 0 + if (id == _sRoot) + { + dwRuleAttributes |= SPCFGRULEATTRIBUTES.SPRAF_Root | SPCFGRULEATTRIBUTES.SPRAF_Active | SPCFGRULEATTRIBUTES.SPRAF_TopLevel; + _hasRoot = true; + } + + if (publicRule == RulePublic.True) + { + dwRuleAttributes |= SPCFGRULEATTRIBUTES.SPRAF_TopLevel | SPCFGRULEATTRIBUTES.SPRAF_Export; + } + + if (dynamic == RuleDynamic.True) + { + // BackEnd supports exported dynamic rules for SRGS grammars. + dwRuleAttributes |= SPCFGRULEATTRIBUTES.SPRAF_Dynamic; + } + + // Create rule with specified attributes + Rule rule = GetRule(id, dwRuleAttributes); + + // Add this rule to the list of rules of the STG list + if (publicRule == RulePublic.True || id == _sRoot || hasScript) + { + _cg._rules.Add(rule); + } + return rule; + } + + void IElement.PostParse(IElement parent) + { + if (_sRoot != null && !_hasRoot) + { + // "Root rule ""%s"" is undefined." + XmlParser.ThrowSrgsException(SRID.RootNotDefined, _sRoot); + } + + if (_undefRules.Count > 0) + { + // "Root rule ""%s"" is undefined." + Rule rule = _undefRules[0]; + XmlParser.ThrowSrgsException(SRID.UndefRuleRef, rule.Name); + } + + // SAPI semantics only for .NET Semantics + bool containsCode = ((IGrammar)this).CodeBehind.Count > 0 || ((IGrammar)this).ImportNamespaces.Count > 0 || ((IGrammar)this).AssemblyReferences.Count > 0 || CustomGrammar._scriptRefs.Count > 0; + if (containsCode && ((IGrammar)this).TagFormat != System.Speech.Recognition.SrgsGrammar.SrgsTagFormat.KeyValuePairs) + { + XmlParser.ThrowSrgsException(SRID.InvalidSemanticProcessingType); + } + } + + internal void AddScript(string name, string code) + { + foreach (Rule rule in _cg._rules) + { + if (rule.Name == name) + { + rule.Script.Append(code); + break; + } + } + } + + #endregion + + #region Internal Properties + + /// + /// Base URI of grammar (xml:base) + /// + Uri IGrammar.XmlBase + { + set + { + if (value != null) + { + _backend.SetBasePath(value.ToString()); + } + } + } + + /// + /// GrammarElement language (xml:lang) + /// + CultureInfo IGrammar.Culture + { + set + { + Helpers.ThrowIfNull(value, nameof(value)); + + _backend.LangId = value.LCID; + } + } + + /// + /// GrammarElement mode. voice or dtmf + /// + GrammarType IGrammar.Mode + { + set + { + _backend.GrammarMode = value; + } + } + + /// + /// GrammarElement mode. voice or dtmf + /// + AlphabetType IGrammar.PhoneticAlphabet + { + set + { + _backend.Alphabet = value; + } + } + + /// + /// Tag format (srgs:tag-format) + /// + System.Speech.Recognition.SrgsGrammar.SrgsTagFormat IGrammar.TagFormat + { + get + { + return System.Speech.Recognition.SrgsGrammar.SrgsDocument.GrammarOptions2TagFormat(_backend.GrammarOptions); + } + set + { + _backend.GrammarOptions = System.Speech.Recognition.SrgsGrammar.SrgsDocument.TagFormat2GrammarOptions(value); + } + } + + /// + /// Tag format (srgs:tag-format) + /// + Collection IGrammar.GlobalTags + { + get + { + return _backend.GlobalTags; + } + set + { + _backend.GlobalTags = value; + } + } + + internal List UndefRules + { + get + { + return _undefRules; + } + } + + internal Backend Backend + { + get + { + return _backend; + } + } + + /// + /// language + /// + string IGrammar.Language + { + get + { + return _cg._language; + } + set + { + _cg._language = value; + } + } + + /// + /// namespace + /// + string IGrammar.Namespace + { + get + { + return _cg._namespace; + } + set + { + _cg._namespace = value; + } + } + + /// + /// CodeBehind + /// + Collection IGrammar.CodeBehind + { + get + { + return _cg._codebehind; + } + set + { + _cg._codebehind = value; + } + } + + /// + /// Add #line statements to the inline scripts if set + /// + bool IGrammar.Debug + { + set + { + _cg._fDebugScript = value; + } + } + + /// + /// ImportNameSpaces + /// + Collection IGrammar.ImportNamespaces + { + get + { + return _cg._importNamespaces; + } + set + { + _cg._importNamespaces = value; + } + } + + /// + /// ImportNameSpaces + /// + Collection IGrammar.AssemblyReferences + { + get + { + return _cg._assemblyReferences; + } + set + { + _cg._assemblyReferences = value; + } + } + + internal CustomGrammar CustomGrammar + { + get + { + return _cg; + } + } + + #endregion + + #region Private Methods + + /// + /// Create a new rule with the specified name and attribute, and return the initial state. + /// Verify if Rule is unique. A Rule may already have been created as a placeholder during RuleRef. + /// + /// Rule name + /// Rule attributes + private Rule GetRule(string sRuleId, SPCFGRULEATTRIBUTES dwAttributes) + { + System.Diagnostics.Debug.Assert(!string.IsNullOrEmpty(sRuleId)); + + // Check if RuleID is unique. + Rule rule = _backend.FindRule(sRuleId); + + if (rule != null) + { + // Rule already defined. Check if it is a placeholder. + int iRule = _undefRules.IndexOf(rule); + + if (iRule != -1) + { + // This is a UndefinedRule created as a placeholder for a RuleRef. + // - Update placeholder rule with correct attributes. + _backend.SetRuleAttributes(rule, dwAttributes); + + // - Remove this now defined rule from UndefinedRules. + // Swap top element with this rule and pop the top element. + _undefRules.RemoveAt(iRule); + } + else + { + // Multiple definitions of the same Rule. + XmlParser.ThrowSrgsException(SRID.RuleRedefinition, sRuleId); // "Redefinition of rule ""%s""." + } + } + else + { + // Rule not yet defined. Create a new rule and return the InitalState. + rule = _backend.CreateRule(sRuleId, dwAttributes); + } + + return rule; + } + + #endregion + + #region Private Fields + + private Backend _backend; + + // Collection of referenced, but undefined, rules + private List _undefRules = new(); + private CustomGrammar _cg; + + private string _sRoot; + + private bool _hasRoot; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/Graph.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/Graph.cs new file mode 100644 index 00000000000000..01a4969288d672 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/Graph.cs @@ -0,0 +1,995 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Globalization; + +namespace System.Speech.Internal.SrgsCompiler +{ + // Doubled chained linked list for fast removal of states. + // Checks are made to ensure that the State pointers are never reused. + +#if DEBUG + [DebuggerDisplay("Count = {Count}")] + [DebuggerTypeProxy(typeof(GraphDebugDisplay))] +#endif + internal class Graph : IEnumerable + { + #region Internal Methods + + internal void Add(State state) + { + state.Init(); + if (_startState == null) + { + _curState = _startState = state; + } + else + { + _curState = _curState.Add(state); + } + } + + internal void Remove(State state) + { + if (state == _startState) + { + _startState = state.Next; + } + if (state == _curState) + { + _curState = state.Prev; + } + + state.Remove(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + for (State item = _startState; item != null; item = item.Next) + { + yield return item; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + for (State item = _startState; item != null; item = item.Next) + { + yield return item; + } + } + + /// + /// Creates a new state handle in a given rule + /// + internal State CreateNewState(Rule rule) + { + uint hNewState = CfgGrammar.NextHandle; + + State newState = new(rule, hNewState); + Add(newState); +#if DEBUG + rule._cStates++; +#endif + return newState; + } + + /// + /// Delete a state + /// + internal void DeleteState(State state) + { +#if DEBUG + state.Rule._cStates--; +#endif + Remove(state); + } + + /// + /// Optimizes the grammar network by removing the epsilon states and merging + /// duplicate transitions. + /// + internal void Optimize() + { + foreach (State state in this) + { + NormalizeTransitionWeights(state); + } + +#if DEBUG + // Remove redundant epsilon transitions. + int cStates = Count; + RemoveEpsilonStates(); + if (Count != cStates) + { + System.Diagnostics.Trace.WriteLine("Grammar compiler, additional Epsilons could have been removed :" + (cStates - Count).ToString(CultureInfo.InvariantCulture)); + //System.Diagnostics.Debug.Assert (_states.Count == cStates); + } + // Remove duplicate transitions. +#endif + MergeDuplicateTransitions(); + +#if DEBUG + // Remove redundant epsilon transitions again now that identical epsilon transitions have been removed. + cStates = Count; + RemoveEpsilonStates(); + //System.Diagnostics.Debug.Assert (_states.Count == cStates); + if (Count != cStates) + { + System.Diagnostics.Trace.WriteLine("Grammar compiler, additional Epsilons could have been removed post merge transition :" + (cStates - Count).ToString(CultureInfo.InvariantCulture)); + } + + // Verify the transition weights are normalized. + foreach (State state in this) + { + double flSumWeights = 0.0f; // Compute the sum of the weights. + int cArcs = 0; + + foreach (Arc arc in state.OutArcs) + { + flSumWeights += arc.Weight; + cArcs++; + } + + float maxWeightError = 0.00001f * cArcs; + if (flSumWeights != 0.0f && maxWeightError - Math.Abs(flSumWeights - 1.0f) < 0) + { + System.Diagnostics.Debug.Assert(true); + } + } +#endif + } + + /// + /// Description: + /// Change all transitions ending at SourceState to end at DestState, instead. + /// Replace references to SourceState with references to DestState before deleting SourceState. + /// - There may be additional duplicate input transitions at DestState after the move. + /// + /// Assumptions: + /// - SourceState == !null, RuleInitialState, !DestState, ... + /// - DestState == null, RuleInitialState, !SourceState, ... + /// - SourceState.OutputArc.IsEmpty + /// - !(SourceState == RuleInitialState AND DestState == null) + /// + /// Algorithm: + /// - For each input transition into SourceState + /// - Transition.EndState = DestState + /// - If DestState != null, DestState.InputArcs += Transition + /// - SourceState.InputArcs -= Transition + /// - SourceState.InputArcs.Clear() + /// - If SourceState == RuleInitialState, RuleInitialState = DestState + /// - Delete SourceState + /// + internal void MoveInputTransitionsAndDeleteState(State srcState, State destState) + { + System.Diagnostics.Debug.Assert(srcState != null); + System.Diagnostics.Debug.Assert(srcState != destState); + + // For each input transition into SourceState, change EndState to DestState. + List arcs = srcState.InArcs.ToList(); + foreach (Arc arc in arcs) + { + // Change EndState to DestState + arc.End = destState; + } + + // Replace references to SourceState with references to DestState before deleting SourceState + if (srcState.Rule._firstState == srcState) // Update RuleInitialState reference, if necessary + { + System.Diagnostics.Debug.Assert(destState != null); + srcState.Rule._firstState = destState; + } + + // Delete SourceState + System.Diagnostics.Debug.Assert(srcState != null); + //System.Diagnostics.Debug.Assert (srcState.InArcs.IsEmpty); + System.Diagnostics.Debug.Assert(srcState.OutArcs.IsEmpty); + DeleteState(srcState); // Delete state from handle table + } + + /// + /// Description: + /// Change all transitions starting at SourceState to start at DestState, instead. + /// Deleting SourceState. + /// - The weights on the transitions have been properly adjusted. + /// The weights are not changed when moving transitions. + /// - There may be additional duplicate input transitions at DestState after the move. + /// + /// Assumptions: + /// - SourceState == !null, !RuleInitialState, !DestState, ... + /// - DestState == !null, RuleInitialState, !SourceState, ... + /// - SourceState.InputArc.IsEmpty + /// + /// Algorithm: + /// - For each output transition from SourceState + /// - Transition.StartState = DestState + /// - DestState.OutputArcs += Transition + /// - Delete SourceState + /// + internal void MoveOutputTransitionsAndDeleteState(State srcState, State destState) + { + System.Diagnostics.Debug.Assert(srcState != null); + System.Diagnostics.Debug.Assert((destState != null) && (destState != srcState)); + System.Diagnostics.Debug.Assert(srcState.InArcs.IsEmpty); + + // For each output transition from SourceState, change StartState to DestState. + List arcs = srcState.OutArcs.ToList(); + foreach (Arc arc in arcs) + { + // Change StartState to DestState + arc.Start = destState; + } + + // Delete SourceState + System.Diagnostics.Debug.Assert(srcState != null); + System.Diagnostics.Debug.Assert(srcState.InArcs.IsEmpty); + //System.Diagnostics.Debug.Assert (srcState.OutArcs.IsEmpty); + DeleteState(srcState); // Delete state from handle table + } + + #endregion + + #region Internal Property + +#if DEBUG + internal State First + { + get + { + return _startState; + } + } + + internal int Count + { + get + { + int c = 0; + for (State se = _startState; se != null; se = se.Next) + { + c++; + } + return c; + } + } + +#endif + #endregion + + #region Private Methods + +#if DEBUG + /// + /// Description: + /// Removing epsilon states from the grammar network. + /// - There may be additional duplicate transitions after removing epsilon transitions. + /// + /// Algorithm: + /// - For each State in the graph, + /// - If the state has a single input epsilon transition and is not the rule initial state, + /// - Move properties to the right, if necessary. + /// - If EpsilonTransition does not have properties and is not referenced by other properties, + /// - Delete EpsilonTransition. + /// - Multiply weight of all transitions from State by EpsilonTransition.Weight. + /// - MoveOutputTransitionsAndDeleteState(State, EpsilonTransition.StartState) + /// - If the state has a single output epsilon transition, + /// - Move properties to the left, if necessary. + /// - If EpsilonTransition does not have properties and is not referenced by other properties, + /// - Delete EpsilonTransition. + /// - MoveInputTransitionsAndDeleteState(State, EpsilonTransition.EndState) + /// + /// Moving SemanticTag: + /// - InputEpsilonTransitions can move its semantic tag ownerships/references to the right. + /// - OutputEpsilonTransitions can move its semantic tag ownerships/references to the left. + /// + private void RemoveEpsilonStates() + { + // For each state in the grammar graph, remove excess input/output epsilon transitions. + for (State state = First, nextState = null; state != null; state = nextState) + { + nextState = state.Next; + if (state.InArcs.CountIsOne && state.InArcs.First.IsEpsilonTransition && (state != state.Rule._firstState)) + { + // State has a single input epsilon transition and is not the rule initial state. + Arc epsilonArc = state.InArcs.First; + + // Attempt to move properties referencing EpsilonArc to the right. + // Optimization can only be applied when the epsilon arc is not referenced by any properties. + if (MoveSemanticTagRight(epsilonArc)) + { + // Delete the input epsilon transition + State pEpsilonStartState = epsilonArc.Start; + float flEpsilonWeight = epsilonArc.Weight; + + DeleteTransition(epsilonArc); + + // Multiply weight of all transitions from state by EpsilonWeight. + foreach (Arc arc in state.OutArcs) + { + arc.Weight *= flEpsilonWeight; + } + + // Move all output transitions from state to pEpsilonStartState and delete state if appropriate. + if (state != pEpsilonStartState) + { + MoveOutputTransitionsAndDeleteState(state, pEpsilonStartState); + } + } + } + // Optimize output epsilon transition, if possible + else if ((state.OutArcs.CountIsOne) && state.OutArcs.First.IsEpsilonTransition && (state != state.Rule._firstState)) + { + // State has a single output epsilon transition + Arc epsilonArc = state.OutArcs.First; + + // Attempt to move properties referencing EpsilonArc to the left. + // Optimization can only be applied when the epsilon arc is not referenced by any properties + // and when the arc does not connect RuleInitialState to null. + if (!((state == state.Rule._firstState) && (epsilonArc.End == null)) && MoveSemanticTagLeft(epsilonArc)) + { + // Delete the output epsilon transition + State pEpsilonEndState = epsilonArc.End; + + DeleteTransition(epsilonArc); + + // Move all input transitions from state to pEpsilonEndState and delete state if appropriate. + if (state != pEpsilonEndState) + { + MoveInputTransitionsAndDeleteState(state, pEpsilonEndState); + } + } + } + } + } +#endif + /// + /// Description: + /// Remove duplicate transitions starting from the same state, or ending at the same state. + /// + /// Algorithm: + /// - Add all states to ToDoList + /// - For each state left in the ToDoList, + /// - Merge any duplicate output transitions. + /// - Add all states to ToDoList in reverse order. + /// - Remove duplicate transitions to null (special case since there is no state for FinalState) + /// - For each state left in the ToDoList, + /// - Merge any duplicate input transitions. + /// + /// Notes: + /// - For best optimization, we need to move semantic properties referencing the transitions. + /// + private void MergeDuplicateTransitions() + { + List tempList = new(); + + // Build collection of states with potential identical transition. + foreach (State state in this) + { + if (state.OutArcs.ContainsMoreThanOneItem) + { + // Merge identical transitions in arcs + MergeIdenticalTransitions(state.OutArcs, tempList); + } + } + + // Collection of states with potential transitions to merge + Stack mergeStates = new(); + + RecursiveMergeDuplicatedOutputTransition(mergeStates); + RecursiveMergeDuplicatedInputTransition(mergeStates); + } + + private void RecursiveMergeDuplicatedInputTransition(Stack mergeStates) + { + // Build collection of states with potential duplicate input transitions to merge. + foreach (State state in this) + { + if (state.InArcs.ContainsMoreThanOneItem) + { + MergeDuplicateInputTransitions(state.InArcs, mergeStates); + } + } + + // For each state in the collection, merge any duplicate input transitions. + List tempList = new(); + while (mergeStates.Count > 0) + { + State state = mergeStates.Pop(); + if (state.InArcs.ContainsMoreThanOneItem) + { + // Merge identical transitions in arcs that may have been created + MergeIdenticalTransitions(state.InArcs, tempList); + MergeDuplicateInputTransitions(state.InArcs, mergeStates); + } + } + } + + private void RecursiveMergeDuplicatedOutputTransition(Stack mergeStates) + { + // Build collection of states with potential duplicate output transitions to merge. + foreach (State state in this) + { + if (state.OutArcs.ContainsMoreThanOneItem) + { + MergeDuplicateOutputTransitions(state.OutArcs, mergeStates); + } + } + + // For each state in the collection, merge any duplicate output transitions. + List tempList = new(); + while (mergeStates.Count > 0) + { + State state = mergeStates.Pop(); + if (state.OutArcs.ContainsMoreThanOneItem) + { + // Merge identical transitions in arcs that may have been created + MergeIdenticalTransitions(state.OutArcs, tempList); + MergeDuplicateOutputTransitions(state.OutArcs, mergeStates); + } + } + } + + /// + /// Description: + /// Sort and iterate through the input arcs and remove duplicate input transitions. + /// + /// Algorithm: + /// - MergeIdenticalTransitions(Arcs) + /// - Sort the input transitions from the state (by content and # output arcs from start state) + /// - For each set of transitions with identical content and StartState.OutputArcs.Count() == 1 + /// - Move semantic properties to the left, if necessary. + /// - Label the first property-less transition as CommonArc + /// - For each successive property-less transition (DuplicateArc) + /// - Delete DuplicateArc + /// - MoveInputTransitionsAndDeleteState(DuplicateArc.StartState, CommonArc.StartState) + /// - Add CommonArc.StartState to ToDoList if not there already. + /// + /// Moving SemanticTag: + /// - Duplicate input transitions can move its semantic tag ownerships/references to the left. + /// + /// Collection of input transitions to collapse + /// Collection of states with potential transitions to merge + private void MergeDuplicateInputTransitions(ArcList arcs, Stack mergeStates) + { + List arcsToMerge = null; + + // Reference Arc + Arc refArc = null; + bool refSet = false; + + // Build a list of possible arcs to Merge + foreach (Arc arc in arcs) + { + // Skip transitions whose end state has other incoming transitions or if the end state has more than one incoming transition + bool skipTransition = arc.Start == null || !arc.Start.OutArcs.CountIsOne; + // Find next set of duplicate output transitions (potentially with properties). + if (refArc != null && Arc.CompareContent(arc, refArc) == 0) + { + if (!skipTransition) + { + // Lazy init as entering this loop is a rare event + if (arcsToMerge == null) + { + arcsToMerge = new List(); + } + // Add the first element + if (!refSet) + { + arcsToMerge.Add(refArc); + refSet = true; + } + arcsToMerge.Add(arc); + } + } + else + { + // New word, reset everything + refArc = skipTransition ? null : arc; + refSet = false; + } + } + + // Combine the arcs if possible + if (arcsToMerge != null) + { + // Sort the arc per content and output transition + arcsToMerge.Sort(Arc.CompareForDuplicateInputTransitions); + + refArc = null; + Arc commonArc = null; // Common property-less transition to merge into + State commonStartState = null; + bool fCommonStartStateChanged = false; // Did CommonStartState change and need re-optimization? + + foreach (Arc arc in arcsToMerge) + { + if (refArc == null || Arc.CompareContent(arc, refArc) != 0) + { + // Purge the last operations and reset all the local + refArc = arc; + + // If CommonStartState changed, renormalize weights and add it to MergeStates for reoptimization. + if (fCommonStartStateChanged) + { + AddToMergeStateList(mergeStates, commonStartState); + } + + // Reset the arcs + commonArc = null; + commonStartState = null; + fCommonStartStateChanged = false; + } + + // For each property-less duplicate transition + Arc duplicatedArc = arc; + State duplicatedStartState = duplicatedArc.Start; + + // Attempt to move properties referencing duplicate arc to the right. + // Optimization can only be applied when the duplicate arc is not referenced by any properties + // and the duplicate end state is not the RuleOutitalState. + if (MoveSemanticTagLeft(duplicatedArc)) + { + // duplicatedArc != commonArc + if (commonArc != null) + { + if (!fCommonStartStateChanged) + { + // Processing first duplicate arc. + // Multiply the weights of transitions from CommonStartState by CommonArc.Weight. + foreach (Arc arcOut in commonStartState.OutArcs) + { + arcOut.Weight *= commonArc.Weight; + } + + fCommonStartStateChanged = true; // Output transitions of CommonStartState changed. + } + + // Multiply the weights of transitions from DuplicateStartState by DuplicateArc.Weight. + foreach (Arc arcOut in duplicatedStartState.OutArcs) + { + arcOut.Weight *= duplicatedArc.Weight; + } + + duplicatedArc.Weight += commonArc.Weight;// Merge duplicate arc weight with common arc + Arc.CopyTags(commonArc, duplicatedArc, Direction.Left); + DeleteTransition(commonArc); // Delete successive duplicate transitions + + // Move outputs of duplicate state to common state; Delete duplicate state + MoveInputTransitionsAndDeleteState(commonStartState, duplicatedStartState); + } + + // Label first property-less transition as CommonArc + commonArc = duplicatedArc; + commonStartState = duplicatedStartState; + } + } + // If CommonStartState changed, renormalize weights and add it to MergeStates for reoptimization. + if (fCommonStartStateChanged) + { + AddToMergeStateList(mergeStates, commonStartState); + } + } + } + + /// + /// Description: + /// Sort and iterate through the output arcs and remove duplicate output transitions. + /// + /// Algorithm: + /// - MergeIdenticalTransitions(Arcs) + /// - Sort the output transitions from the state (by content and # input arcs from end state) + /// - For each set of transitions with identical content, EndState != null, and EndState.InputArcs.Count() == 1 + /// - Move semantic properties to the right, if necessary. + /// - Label the first property-less transition as CommonArc + /// - For each property-less transition (DuplicateArc) including CommonArc + /// - Multiply the weights of output transitions from DuplicateArc.EndState by DuplicateArc.Weight. + /// - If DuplicateArc != CommonArc + /// - CommonArc.Weight += DuplicateArc.Weight + /// - Delete DuplicateArc + /// - MoveOutputTransitionsAndDeleteState(DuplicateArc.EndState, CommonArc.EndState) + /// - Normalize weights of output transitions from CommonArc.EndState. + /// - Add CommonArc.EndtState to ToDoList if not there already. + /// + /// Moving SemanticTag: + /// - Duplicate output transitions can move its semantic tag ownerships/references to the right. + /// + /// Collection of output transitions to collapse + /// Collection of states with potential transitions to merge + private void MergeDuplicateOutputTransitions(ArcList arcs, Stack mergeStates) + { + List arcsToMerge = null; + + // Reference Arc + Arc refArc = null; + bool refSet = false; + + // Build a list of possible arcs to Merge + foreach (Arc arc in arcs) + { + // Skip transitions whose end state has other incoming transitions or if the end state has more than one incoming transition + bool skipTransition = arc.End == null || !arc.End.InArcs.CountIsOne; + // Find next set of duplicate output transitions (potentially with properties). + if (refArc != null && Arc.CompareContent(arc, refArc) == 0) + { + if (!skipTransition) + { + // Lazy init as entering this loop is a rare event + if (arcsToMerge == null) + { + arcsToMerge = new List(); + } + // Add the first element + if (!refSet) + { + arcsToMerge.Add(refArc); + refSet = true; + } + arcsToMerge.Add(arc); + } + } + else + { + // New word, reset everything + refArc = skipTransition ? null : arc; + refSet = false; + } + } + + // Combine the arcs if possible + if (arcsToMerge != null) + { + // Sort the arc per content and output transition + arcsToMerge.Sort(Arc.CompareForDuplicateOutputTransitions); + + refArc = null; + Arc commonArc = null; // Common property-less transition to merge into + State commonEndState = null; + bool fCommonEndStateChanged = false; // Did CommonEndState change and need re-optimization? + + foreach (Arc arc in arcsToMerge) + { + if (refArc == null || Arc.CompareContent(arc, refArc) != 0) + { + // Purge the last operations and reset all the local + refArc = arc; + + // If CommonEndState changed, renormalize weights and add it to MergeStates for reoptimization. + if (fCommonEndStateChanged) + { + AddToMergeStateList(mergeStates, commonEndState); + } + + // Reset the arcs + commonArc = null; + commonEndState = null; + fCommonEndStateChanged = false; + } + + // For each property-less duplicate transition + Arc duplicatedArc = arc; + State duplicatedEndState = duplicatedArc.End; + + // Attempt to move properties referencing duplicate arc to the right. + // Optimization can only be applied when the duplicate arc is not referenced by any properties + // and the duplicate end state is not the RuleInitalState. + if ((duplicatedEndState != duplicatedEndState.Rule._firstState) && MoveSemanticTagRight(duplicatedArc)) + { + // duplicatedArc != commonArc + if (commonArc != null) + { + if (!fCommonEndStateChanged) + { + // Processing first duplicate arc. + // Multiply the weights of transitions from CommonEndState by CommonArc.Weight. + foreach (Arc arcOut in commonEndState.OutArcs) + { + arcOut.Weight *= commonArc.Weight; + } + + fCommonEndStateChanged = true; // Output transitions of CommonEndState changed. + } + + // Multiply the weights of transitions from DuplicateEndState by DuplicateArc.Weight. + foreach (Arc arcOut in duplicatedEndState.OutArcs) + { + arcOut.Weight *= duplicatedArc.Weight; + } + + duplicatedArc.Weight += commonArc.Weight;// Merge duplicate arc weight with common arc + Arc.CopyTags(commonArc, duplicatedArc, Direction.Right); + DeleteTransition(commonArc); // Delete successive duplicate transitions + + // Move outputs of duplicate state to common state; Delete duplicate state + MoveOutputTransitionsAndDeleteState(commonEndState, duplicatedEndState); + } + + // Label first property-less transition as CommonArc + commonArc = duplicatedArc; + commonEndState = duplicatedEndState; + } + } + // If CommonEndState changed, renormalize weights and add it to MergeStates for reoptimization. + if (fCommonEndStateChanged) + { + AddToMergeStateList(mergeStates, commonEndState); + } + } + } + + private static void AddToMergeStateList(Stack mergeStates, State commonEndState) + { + NormalizeTransitionWeights(commonEndState); + if (!mergeStates.Contains(commonEndState)) + { + mergeStates.Push(commonEndState); + } + } + + /// + /// Move any semantic tag ownership and optionally references to a unique + /// previous arc, if possible. + /// + /// MoveReferences = true: Return if arc is propertyless after the move. + /// MoveReferences = false: Return if arc does not own semantic tag after the move. + /// The arc can still be referenced by other semantic tags. + /// + internal static bool MoveSemanticTagLeft(Arc arc) + { + // This changes the range of words spanned by the tag, which is a bug for SAPI grammars. + State startState = arc.Start; + + // Can only move ownership/references if there is an unique input and output arc from the start state. + // Cannot concatenate semantic tags. (SemanticInterpretation script can arguably be concatenated.) + // Cannot move ownership across RuleRef (to maintain semantics of $$ in SemanticTag JScript). + // Cannot move semantic tag to special transition. (SREngine may return multiple result arcs for the transition.) + Arc previousArc = startState.InArcs.First; + if ((startState.InArcs.CountIsOne) && (startState.OutArcs.CountIsOne) && CanTagsBeMoved(previousArc, arc)) + { + // Move semantic tag ownership to the previous arc. + Arc.CopyTags(arc, previousArc, Direction.Left); + + // Semantic tag and optionally references have been moved successfully. + return true; + } + + return arc.IsPropertylessTransition; + } + + /// + /// Move any semantic tag ownership and optionally references to a unique + /// next arc, if possible. + /// + /// MoveReferences = true: Return if arc is propertyless after the move. + /// MoveReferences = false: Return if arc does not own semantic tag after the move. + /// The arc can still be referenced by other semantic tags. + /// + /// Force semantic tag references to always move with tag. + /// This changes the range of words spanned by the tag, which is a bug for SAPI grammars. + /// + internal static bool MoveSemanticTagRight(Arc arc) + { + System.Diagnostics.Debug.Assert(arc.End != null); + + State endState = arc.End; + + // Can only move ownership/references if there is an unique input and output arc from the end state. + // Cannot concatenate semantic tags. (SemanticInterpretation script can arguably be concatenated.) + // Cannot move ownership across RuleRef (to maintain semantics of $$ in SemanticTag JScript). + // Cannot move semantic tag to special transition. (SREngine may return multiple result arcs for the transition.) + Arc pNextArc = endState.OutArcs.First; + if ((endState.InArcs.CountIsOne) && (endState.OutArcs.CountIsOne) && CanTagsBeMoved(arc, pNextArc)) + { + // Move semantic tag ownership to the next arc. + Arc.CopyTags(arc, pNextArc, Direction.Right); + + // Semantic tag and optionally references have been moved successfully. + return true; + } + + return arc.IsPropertylessTransition; + } + + /// + /// Check if tags can be moved from a source arc to a destination + /// - Semantic interpretation. Tags cannot be moved if they would end up over a rule ref. + /// - Sapi properties. Tag can be put anywhere. + /// + internal static bool CanTagsBeMoved(Arc start, Arc end) + { + return (start.RuleRef == null) && (end.RuleRef == null) && (end.SpecialTransitionIndex == 0); + } + + /// + /// Description: + /// Detach and delete the specified transition from the graph. + /// Relocate or delete referencing semantic tags before deleting the transition. + /// + /// Special Case: + /// Arc.EndState == null + /// Arc.Optional == true + /// + private static void DeleteTransition(Arc arc) + { + // Arc cannot own SemanticTag + System.Diagnostics.Debug.Assert(arc.SemanticTagCount == 0); + + // Arc cannot be referenced by SemanticTags + System.Diagnostics.Debug.Assert(arc.IsPropertylessTransition); + + // Detach arc from start and end state + arc.Start = arc.End = null; + } + + /// + /// Description: + /// Merge identical transitions with identical content, StartState, and EndState. + /// + /// + private static void MergeIdenticalTransitions(ArcList arcs, List identicalWords) + { + // Need at least two transitions to merge. + System.Diagnostics.Debug.Assert(arcs.ContainsMoreThanOneItem); + + // Need at least two transitions to merge. + List> segmentsToDelete = null; + Arc refArc = arcs.First; + + // Accumulate a set of transition to delete + foreach (Arc arc in arcs) + { + if (Arc.CompareContent(refArc, arc) != 0) + { + // Identical transition + if (identicalWords.Count >= 2) + { + identicalWords.Sort(Arc.CompareIdenticalTransitions); + if (segmentsToDelete == null) + { + segmentsToDelete = new List>(); + } + + // Add the list of same words into a list for further processing. + // The expectation of having an identical transition is very low so the code + // may be a bit slow. + segmentsToDelete.Add(new List(identicalWords)); + } + identicalWords.Clear(); + } + refArc = arc; + identicalWords.Add(arc); + } + + // Did the last word was replicated several times? + if (identicalWords.Count >= 2) + { + MergeIdenticalTransitions(identicalWords); + } + identicalWords.Clear(); + + // Process the accumulated words + if (segmentsToDelete != null) + { + foreach (List segmentToDelete in segmentsToDelete) + { + MergeIdenticalTransitions(segmentToDelete); + } + } + } + + /// + /// Description: + /// Merge identical transitions with identical content, StartState, and EndState. + /// + /// Algorithm: + /// - LastArc = Arcs[0] + /// - For each Arc in Arcs[1-], + /// - If Arc is identical to LastArc, + /// - LastArc.Weight += Arc.Weight + /// - Delete Arc + /// - Else LastArc = Arc + /// + /// Moving SemanticTag: + /// - Identical transitions have identical semantic tags. Currently impossible to have identical + /// non-null tags. + /// - MoveSemanticTagReferences(DuplicateArc, CommonArc) + /// + private static void MergeIdenticalTransitions(List identicalWords) + { + Collection arcsToDelete = null; + Arc refArc = null; + foreach (Arc arc in identicalWords) + { + if (refArc != null && Arc.CompareIdenticalTransitions(refArc, arc) == 0) + { + // Identical transition + arc.Weight += refArc.Weight; + refArc.ClearTags(); + if (arcsToDelete == null) + { + // delay the creation of the collection as this operation in infrequent. + arcsToDelete = new Collection(); + } + arcsToDelete.Add(refArc); + } + refArc = arc; + } + if (arcsToDelete != null) + { + foreach (Arc arc in arcsToDelete) + { + // arc will become an orphan + DeleteTransition(arc); + } + } + } + + /// + /// Normalize the weights of output transitions from this state. + /// + private static void NormalizeTransitionWeights(State state) + { + float flSumWeights = 0.0f; + + // Compute the sum of the weights. + foreach (Arc arc in state.OutArcs) + { + flSumWeights += arc.Weight; + } + + // If Sum != 0 or 1, normalize transition weights by 1/Sum. + if (!flSumWeights.Equals(0.0f) && !flSumWeights.Equals(1.0f)) + { + float flNormalizationFactor = 1.0f / flSumWeights; + + foreach (Arc arc in state.OutArcs) + { + arc.Weight *= flNormalizationFactor; + } + } + } + + #endregion + + #region Private Types + +#if DEBUG + // Used by the debugger display attribute + internal class GraphDebugDisplay + { + public GraphDebugDisplay(Graph states) + { + _states = states; + } + [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] + public State[] AKeys + { + get + { + State[] states = new State[_states.Count]; + int i = 0; + foreach (State state in _states) + { + states[i++] = state; + } + return states; + } + } + + private Graph _states; + } +#endif + + #endregion + + #region Private Fields + + private State _startState; + private State _curState; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/Item.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/Item.cs new file mode 100644 index 00000000000000..5a92bd1c915f2f --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/Item.cs @@ -0,0 +1,161 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Speech.Internal.SrgsParser; + +namespace System.Speech.Internal.SrgsCompiler +{ + internal sealed class Item : ParseElementCollection, IItem + { + #region Constructors + + internal Item(Backend backend, Rule rule, int minRepeat, int maxRepeat, float repeatProbability, float weigth) + : base(backend, rule) + { + // Validated by the caller + _minRepeat = minRepeat; + _maxRepeat = maxRepeat; + _repeatProbability = repeatProbability; + } + + #endregion + + #region Internal Method + + /// + /// Process the '/item' element. + /// + void IElement.PostParse(IElement parentElement) + { + // Special case of no words but only tags. Returns an error as the result is ambiguous + // var res= 1; + // + // res= res * 2; + // + // Should the result be 2 or 4 + if (_maxRepeat != _minRepeat && _startArc != null && _startArc == _endArc && _endArc.IsEpsilonTransition && !_endArc.IsPropertylessTransition) + { + XmlParser.ThrowSrgsException((SRID.InvalidTagInAnEmptyItem)); + } + + // empty or repeat count == 0 + if (_startArc == null || _maxRepeat == 0) + { + // Special Case: _maxRepeat = 0 => Epsilon transition. + if (_maxRepeat == 0 && _startArc != null && _startArc.End != null) + { + // Delete contents of Item. Otherwise, we will end up with states disconnected to the rest of the rule. + State endState = _startArc.End; + _startArc.End = null; + _backend.DeleteSubGraph(endState); + } + // empty item, just add an epsilon transition. + _startArc = _endArc = _backend.EpsilonTransition(_repeatProbability); + } + else + { + // Hard case if repeat count is not one + if (_minRepeat != 1 || _maxRepeat != 1) + { + // Duplicate the states/transitions graph as many times as repeat count + + //Add a state before the start to be able to duplicate the graph + _startArc = InsertState(_startArc, _repeatProbability, Position.Before); + State startState = _startArc.End; + + // If _maxRepeat = Infinite, add epsilon transition loop back to the start of this + if (_maxRepeat == int.MaxValue && _minRepeat == 1) + { + _endArc = InsertState(_endArc, 1.0f, Position.After); + + AddEpsilonTransition(_endArc.Start, startState, 1 - _repeatProbability); + } + else + { + State currentStartState = startState; + + // For each additional repeat count, clone a new subgraph and connect with appropriate transitions. + for (uint cnt = 1; cnt < _maxRepeat && cnt < 255; cnt++) + { + // Prepare to clone a new subgraph matching the content. + State newStartState = _backend.CreateNewState(_endArc.Start.Rule); + + // Clone subgraphs and update CurrentEndState. + State newEndState = _backend.CloneSubGraph(currentStartState, _endArc.Start, newStartState); + + // Connect the last state with the first state + //_endArc.Start.OutArcs.Add (_endArc); + _endArc.End = newStartState; + + // reset the _endArc + System.Diagnostics.Debug.Assert(newEndState.OutArcs.CountIsOne && Arc.CompareContent(_endArc, newEndState.OutArcs.First) == 0); + _endArc = newEndState.OutArcs.First; + + if (_maxRepeat == int.MaxValue) + { + // If we are beyond _minRepeat, add epsilon transition from startState with (1-_repeatProbability). + if (cnt == _minRepeat - 1) + { + // Create a new state and attach the last Arc to add + _endArc = InsertState(_endArc, 1.0f, Position.After); + + AddEpsilonTransition(_endArc.Start, newStartState, 1 - _repeatProbability); + break; + } + } + else if (cnt <= _maxRepeat - _minRepeat) + { + // If we are beyond _minRepeat, add epsilon transition from startState with (1-_repeatProbability). + AddEpsilonTransition(startState, newStartState, 1 - _repeatProbability); + } + + // reset the current start state + currentStartState = newStartState; + } + } + // If _minRepeat == 0, add epsilon transition from currentEndState to FinalState with (1-_repeatProbability). + // but do not do it if the only transition is an epsilon + if (_minRepeat == 0 && (_startArc != _endArc || !_startArc.IsEpsilonTransition)) + { + if (!_endArc.IsEpsilonTransition || _endArc.SemanticTagCount > 0) + { + _endArc = InsertState(_endArc, 1.0f, Position.After); + } + AddEpsilonTransition(startState, _endArc.Start, 1 - _repeatProbability); + } + + // Remove the added startState if possible + _startArc = TrimStart(_startArc, _backend); + } + } + + // Add this item to the parent list + base.PostParse((ParseElementCollection)parentElement); + } + + #endregion + + #region Private Methods + + private void AddEpsilonTransition(State start, State end, float weight) + { + Arc epsilon = _backend.EpsilonTransition(weight); + epsilon.Start = start; + epsilon.End = end; + } + + #endregion + + #region Private Fields + + private float _repeatProbability = 0.5f; + + private int _minRepeat = NotSet; + + private int _maxRepeat = NotSet; + + private const int NotSet = -1; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/OneOf.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/OneOf.cs new file mode 100644 index 00000000000000..2ec811eb81ac41 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/OneOf.cs @@ -0,0 +1,109 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#region Using directives + +using System.Speech.Internal.SrgsParser; + +#endregion + +namespace System.Speech.Internal.SrgsCompiler +{ + internal class OneOf : ParseElementCollection, IOneOf + { + #region Constructors + + /// + /// Process the 'one-of' element. + /// + public OneOf(Rule rule, Backend backend) + : base(backend, rule) + { + // Create a start and end start. + _startState = _backend.CreateNewState(rule); + _endState = _backend.CreateNewState(rule); + + //Add before the start state an epsilon arc + _startArc = _backend.EpsilonTransition(1.0f); + _startArc.End = _startState; + + //Add after the end state an epsilon arc + _endArc = _backend.EpsilonTransition(1.0f); + _endArc.Start = _endState; + } + + #endregion + + #region Internal Method + + /// + /// Process the '/one-of' element. + /// Connects all the arcs into an exit end point. + /// + /// Verify OneOf contains at least one child 'item'. + /// + void IElement.PostParse(IElement parentElement) + { + if (_startArc.End.OutArcs.IsEmpty) + { + XmlParser.ThrowSrgsException(SRID.EmptyOneOf); + } + + // Remove the extraneous arc and state if possible at the start and end + _startArc = TrimStart(_startArc, _backend); + _endArc = TrimEnd(_endArc, _backend); + + // Connect the one-of to the parent + base.PostParse((ParseElementCollection)parentElement); + } + + #endregion + + #region Protected Method + + /// + /// Adds a new arc to the one-of + /// + internal override void AddArc(Arc start, Arc end) + { + start = TrimStart(start, _backend); + end = TrimEnd(end, _backend); + + State endStartState = end.Start; + State startEndState = start.End; + + // Connect the previous arc with the 'start' set the insertion point + if (start.IsEpsilonTransition & start.IsPropertylessTransition && startEndState != null && startEndState.InArcs.IsEmpty) + { + System.Diagnostics.Debug.Assert(start.End == startEndState); + start.End = null; + _backend.MoveOutputTransitionsAndDeleteState(startEndState, _startState); + } + else + { + start.Start = _startState; + } + + // Connect with the epsilon transition at the end + if (end.IsEpsilonTransition & end.IsPropertylessTransition && endStartState != null && endStartState.OutArcs.IsEmpty) + { + System.Diagnostics.Debug.Assert(end.Start == endStartState); + end.Start = null; + _backend.MoveInputTransitionsAndDeleteState(endStartState, _endState); + } + else + { + end.End = _endState; + } + } + + #endregion + + #region Protected Method + + private State _startState; + private State _endState; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/ParseElement.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/ParseElement.cs new file mode 100644 index 00000000000000..602c49fdbab077 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/ParseElement.cs @@ -0,0 +1,52 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#region Using directives + +using System.Speech.Internal.SrgsParser; + +#endregion + +namespace System.Speech.Internal.SrgsCompiler +{ + // Elements of the ParseStack + // SRGSNamespace.Grammar + // _startState, _endState are ignored and set to 0. + // SRGSNamespace.Rule + // startElement() _startState = new Rule().InitialState + // _endState = _startState (Updated by the child elements) + // endElement() AddEpsilonTransition(_endState -> terminating state null) + // SRGSNamespace.RuleRef/Token/Tag/Item(Parent!=OneOf) + // startElement() _startState = Parent._startState + // _endState = _startState (Updated by the child elements) + // endElement() Parent._endState = _endState + // SRGSNamespace.OneOf + // startElement() _startState = Parent._startState + // _endState = new State + // endElement() Parent._endState = _endState + // SRGSNamespace.Item(Parent==OneOf) + // startElement() _startState = Parent._startState + // _endState = _startState (Updated by the child elements) + // endElement() AddEpsilonTransition(_endState -> Parent._endState) + // SRGSNamespace.Example/Lexicon/Meta + // _startState, _endState are ignored and set to 0. + // SRGSNamespace.Metadata / Unknown.* + // _startState, _endState are ignored and set to 0. + // ParseElements is added to the stack, but not used. + internal abstract class ParseElement : IElement // Compiler stack element + { + internal ParseElement(Rule rule) + { + _rule = rule; + } + + // Token - Required confidence + internal int _confidence; + + void IElement.PostParse(IElement parent) + { + } + + internal Rule _rule; + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/ParseElementCollection.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/ParseElementCollection.cs new file mode 100644 index 00000000000000..cd15cffe0b3e33 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/ParseElementCollection.cs @@ -0,0 +1,307 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#region Using directives + +#endregion + +namespace System.Speech.Internal.SrgsCompiler +{ + internal abstract class ParseElementCollection : ParseElement + { + protected ParseElementCollection(Backend backend, Rule rule) + : base(rule) + { + _backend = backend; + } + + /// + /// Attach a semantic tag to word. If the word is a rule ref then an + /// epsilon transition must be created + /// + internal void AddSemanticInterpretationTag(CfgGrammar.CfgProperty propertyInfo) + { + // If the word is a rule ref, an epsilon transition must be created + if (_endArc != null && _endArc.RuleRef != null) + { + Arc tagTransition = _backend.EpsilonTransition(1.0f); + _backend.AddSemanticInterpretationTag(tagTransition, propertyInfo); + + // Create a new state + State state = _backend.CreateNewState(_rule); + + // Connect the new state with the end arc + tagTransition.Start = state; + _endArc.End = state; + _endArc = tagTransition; + } + else + { + if (_startArc == null) + { + _startArc = _endArc = _backend.EpsilonTransition(1.0f); + } + _backend.AddSemanticInterpretationTag(_endArc, propertyInfo); + } + } + + // must add the rule Id + // _propInfo._ulId = (uint) ((ParseElement) parent).StartState._rule._iSerialize2; + internal void AddSementicPropertyTag(CfgGrammar.CfgProperty propertyInfo) + { + if (_startArc == null) + { + _startArc = _endArc = _backend.EpsilonTransition(1.0f); + } + _backend.AddPropertyTag(_startArc, _endArc, propertyInfo); + } + + /// + /// Insert an epsilon state either before or after the current arc + /// + protected Arc InsertState(Arc arc, float weight, Position position) + { + // If the arc is a epsilon, creating a new epsilon arc might not be needed + if (arc.IsEpsilonTransition) + { + if (position == Position.Before && arc.End != null && arc.End.InArcs.CountIsOne && Graph.MoveSemanticTagRight(arc)) + { + return arc; + } + if (position == Position.After && arc.Start != null && arc.Start.OutArcs.CountIsOne && Graph.MoveSemanticTagLeft(arc)) + { + return arc; + } + } + + // Create an epsilon transition + Arc epsilon = _backend.EpsilonTransition(weight); + + // Insert a state + State insertionState = _backend.CreateNewState(_rule); + + if (position == Position.Before) + { + epsilon.End = insertionState; + arc.Start = insertionState; + } + else + { + arc.End = insertionState; + epsilon.Start = insertionState; + } + return epsilon; + } + + /// + /// Remove all the epsilon transitions at the beginning of a sub graph + /// + protected static Arc TrimStart(Arc start, Backend backend) + { + Arc startArc = start; + + if (start.End != null) + { + // Remove the added startState if possible, check done by MoveSemanticTagRight + for (State startState = startArc.End; startArc.IsEpsilonTransition && startState != null && Graph.MoveSemanticTagRight(startArc) && startState.InArcs.CountIsOne && startState.OutArcs.CountIsOne; startState = startArc.End) + { + // State has a single input epsilon transition + // Delete the input epsilon transition and delete state. + System.Diagnostics.Debug.Assert(startArc.End == startState); + startArc.End = null; + + // Reset the start Arc + System.Diagnostics.Debug.Assert(startState.OutArcs.CountIsOne); + startArc = startState.OutArcs.First; + System.Diagnostics.Debug.Assert(startArc.Start == startState); + startArc.Start = null; + + // Delete the input epsilon transition and delete state if appropriate. + backend.DeleteState(startState); + } + } + return startArc; + } + + /// + /// Remove all the epsilon transition at the end + /// + protected static Arc TrimEnd(Arc end, Backend backend) + { + Arc endArc = end; + + if (endArc != null) + { + // Remove the end arc if possible, check done by MoveSemanticTagRight + for (State endState = endArc.Start; endArc.IsEpsilonTransition && endState != null && Graph.MoveSemanticTagLeft(endArc) && endState.InArcs.CountIsOne && endState.OutArcs.CountIsOne; endState = endArc.Start) + { + // State has a single input epsilon transition + // Delete the input epsilon transition and delete state. + System.Diagnostics.Debug.Assert(endArc.Start == endState); + endArc.Start = null; + + // Reset the end Arc + System.Diagnostics.Debug.Assert(endState.InArcs.CountIsOne); + endArc = endState.InArcs.First; + System.Diagnostics.Debug.Assert(endArc.End == endState); + endArc.End = null; + + // Delete the input epsilon transition and delete state if appropriate. + backend.DeleteState(endState); + } + } + return endArc; + } + + protected void PostParse(ParseElementCollection parent) + { + if (_startArc != null) + { + parent.AddArc(_startArc, _endArc); + } + } + + internal void AddArc(Arc arc) { AddArc(arc, arc); } + + internal enum Position + { + Before, + After + } + + /// + /// New sets of arcs are added after the last arc + /// + internal virtual void AddArc(Arc start, Arc end) + { + State state = null; + if (_startArc == null) + { + _startArc = start; + _endArc = end; + } + else + { + bool done = false; + + // Successive have 2 epsilon transition + if (_endArc.IsEpsilonTransition && start.IsEpsilonTransition) + { + // Trim the start tag. + start = TrimStart(start, _backend); + + // If Trimming didn't create a non epsilon, try to trim the end + if (start.IsEpsilonTransition) + { + _endArc = TrimEnd(_endArc, _backend); + + // start and end are still epsilon transition + if (_endArc.IsEpsilonTransition) + { + // we do the merging + State from = _endArc.Start; + State to = start.End; + done = true; + + if (from == null) + { + // Ignore the current _start _end + Arc.CopyTags(_endArc, start, Direction.Right); + _startArc = start; + } + else if (to == null) + { + // Ignore the old _startArc _endArc + Arc.CopyTags(start, _endArc, Direction.Left); + end = _endArc; + } + else + { + // No tags, just fold the start and end state + if (_endArc.IsPropertylessTransition && start.IsPropertylessTransition) + { + // Move the end arc + start.End = null; + _endArc.Start = null; + _backend.MoveInputTransitionsAndDeleteState(from, to); + } + else + { + // Discard the endstate and replace it with the startArc + Arc.CopyTags(start, _endArc, Direction.Left); + start.End = null; + _endArc.End = to; + } + } + } + } + } + + if (!done) + { + // If the last arc is an epsilon value then there is no need to create a new state + if (_endArc.IsEpsilonTransition && Graph.CanTagsBeMoved(_endArc, start)) + { + // Copy the tags from "endArc" to the "start" + Arc.CopyTags(_endArc, start, Direction.Right); + + if (_endArc.Start != null) + { + // Discard the endstate and replace it with the startArc + state = _endArc.Start; + _endArc.Start = null; + + // Connexion between the state end the start is done below + //state.OutArcs.Add (start); + //start.Start = state; + } + if (_endArc == _startArc) + { + _startArc = start; + } + } + else + { + // If the first arc is an epsilon value then there is no need to create a new state + if (start.IsEpsilonTransition && Graph.CanTagsBeMoved(start, _endArc)) + { + // Copy the tags from "endArc" to the "start" + Arc.CopyTags(start, _endArc, Direction.Left); + + if (start.End != null) + { + // Discard the endstate and replace it with the startArc + state = start.End; + start.End = null; + _endArc.End = state; + state = null; + } + if (start == end) + { + end = _endArc; + } + } + else + { + // Create a new state + state = _backend.CreateNewState(_rule); + + // Connect the new state with the end arc + _endArc.End = state; + } + } + // connect the arcs + if (state != null) + { + start.Start = state; + } + } + _endArc = end; + } + } + + protected Backend _backend; + protected Arc _startArc; + protected Arc _endArc; + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/PropertyTag.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/PropertyTag.cs new file mode 100644 index 00000000000000..28799aa9454afc --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/PropertyTag.cs @@ -0,0 +1,97 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; +using System.Speech.Internal.SrgsParser; + +namespace System.Speech.Internal.SrgsCompiler +{ + internal sealed class PropertyTag : ParseElement, IPropertyTag + { + #region Constructors + + internal PropertyTag(ParseElement parent, Backend backend) + : base(parent._rule) + { + } + + #endregion + + #region Internal Methods + // The probability that this item will be repeated. + void IPropertyTag.NameValue(IElement parent, string name, object value) + { + //Return if the Tag content is empty + string sValue = value as string; + if (string.IsNullOrEmpty(name) && (value == null || (sValue != null && string.IsNullOrEmpty((sValue).Trim())))) + { + return; + } + + // Build semantic properties to attach to epsilon transition. + // Name= pszValue = null vValue = VT_EMPTY + // Name="string" pszValue = "string" vValue = VT_EMPTY + // Name=true pszValue = null vValue = VT_BOOL + // Name=123 pszValue = null vValue = VT_I4 + // Name=3.14 pszValue = null vValue = VT_R8 + + if (!string.IsNullOrEmpty(name)) + { + // Set property name + _propInfo._pszName = name; + } + else + { + // If no property, set the name to the anonymous property name + _propInfo._pszName = "="; + } + + // Set property value + _propInfo._comValue = value; +#pragma warning disable 0618 // VarEnum is obsolete + if (value == null) + { + _propInfo._comType = VarEnum.VT_EMPTY; + } + else if (sValue != null) + { + _propInfo._comType = VarEnum.VT_EMPTY; + } + else if (value is int) + { + _propInfo._comType = VarEnum.VT_I4; + } + else if (value is double) + { + _propInfo._comType = VarEnum.VT_R8; + } + else if (value is bool) + { + _propInfo._comType = VarEnum.VT_BOOL; + } + else + { + // should never get here + System.Diagnostics.Debug.Assert(false); + } +#pragma warning restore 0618 + } + + void IElement.PostParse(IElement parentElement) + { + ParseElementCollection parent = (ParseElementCollection)parentElement; + _propInfo._ulId = (uint)parent._rule._iSerialize2; + + // Attach the semantic properties on the parent element. + parent.AddSementicPropertyTag(_propInfo); + } + + #endregion + + #region Private Fields + + private CfgGrammar.CfgProperty _propInfo = new(); + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/Rule.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/Rule.cs new file mode 100644 index 00000000000000..0a2eb00b7a299a --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/Rule.cs @@ -0,0 +1,307 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Diagnostics; +using System.Speech.Internal.SrgsParser; +using System.Text; + +namespace System.Speech.Internal.SrgsCompiler +{ + [DebuggerDisplay("{Name}")] + internal sealed class Rule : ParseElementCollection, IRule, IComparable + { + #region Constructors + + // Only used for the special transition + internal Rule(int iSerialize) + : base(null, null) + { + _iSerialize = iSerialize; + } + + internal Rule(Backend backend, string name, CfgRule cfgRule, int iSerialize, GrammarOptions SemanticFormat, ref int cImportedRules) + : base(backend, null) + { + _rule = this; + Init(name, cfgRule, iSerialize, SemanticFormat, ref cImportedRules); + } + + internal Rule(Backend backend, string name, int offsetName, SPCFGRULEATTRIBUTES attributes, int id, int iSerialize, GrammarOptions SemanticFormat, ref int cImportedRules) + : base(backend, null) + { + _rule = this; + Init(name, new CfgRule(id, offsetName, attributes), iSerialize, SemanticFormat, ref cImportedRules); + } + + #endregion + + #region internal Methods + + #region IComparable Interface implementation + + int IComparable.CompareTo(Rule rule2) + { + Rule rule1 = this; + + if (rule1._cfgRule.Import) + { + return (rule2._cfgRule.Import) ? rule1._cfgRule._nameOffset - rule2._cfgRule._nameOffset : -1; + } + else if (rule1._cfgRule.Dynamic) + { + return (rule2._cfgRule.Dynamic) ? rule1._cfgRule._nameOffset - rule2._cfgRule._nameOffset : 1; + } + else + { + return (rule2._cfgRule.Import) ? 1 : (rule2._cfgRule.Dynamic) ? -1 : rule1._cfgRule._nameOffset - rule2._cfgRule._nameOffset; + } + } + + #endregion + +#if DEBUG + + internal void CheckForExitPath(ref int iRecursiveDepth) + { + if (!_fHasExitPath) + { + // This check allows empty rules. + if (_firstState != null && _firstState.NumArcs != 0) + { + _firstState.CheckExitPath(ref iRecursiveDepth); + } + } + } +#endif + + internal void Validate() + { + if ((!_cfgRule.Dynamic) && (!_cfgRule.Import) && _id != "VOID" && _firstState.NumArcs == 0) + { + XmlParser.ThrowSrgsException(SRID.EmptyRule); + } + else + { + _fHasDynamicRef = _cfgRule.Dynamic; + } + } + + internal void PopulateDynamicRef(ref int iRecursiveDepth) + { + if (iRecursiveDepth > CfgGrammar.MAX_TRANSITIONS_COUNT) + { + XmlParser.ThrowSrgsException((SRID.MaxTransitionsCount)); + } + + foreach (Rule rule in _listRules) + { + if (!rule._fHasDynamicRef) + { + rule._fHasDynamicRef = true; + rule.PopulateDynamicRef(ref iRecursiveDepth); + } + } + } + + internal Rule Clone(StringBlob symbol, string ruleName) + { + Rule rule = new(_iSerialize); + + int idWord; + int offsetName = symbol.Add(ruleName, out idWord); + + rule._id = ruleName; + rule._cfgRule = new CfgRule(idWord, offsetName, _cfgRule._flag) + { + DirtyRule = true, + FirstArcIndex = 0 + }; + return rule; + } + + internal void Serialize(StreamMarshaler streamBuffer) + { + + // Dynamic rules and imports have no arcs + _cfgRule.FirstArcIndex = _firstState != null && !_firstState.OutArcs.IsEmpty ? (uint)_firstState.SerializeId : 0; + + _cfgRule.DirtyRule = true; + + streamBuffer.WriteStream(_cfgRule); + } + + void IElement.PostParse(IElement grammar) + { + // Empty rule + if (_endArc == null) + { + System.Diagnostics.Debug.Assert(_startArc == null); + _firstState = _backend.CreateNewState(this); + } + else + { + // The last arc may contain an epsilon value. Remove it. + TrimEndEpsilons(_endArc, _backend); + + // If the first arc was an epsilon value then there is no need to create a new state + if (_startArc.IsEpsilonTransition && _startArc.End != null && Graph.MoveSemanticTagRight(_startArc)) + { + // Discard the arc and replace it with the startArc + _firstState = _startArc.End; + System.Diagnostics.Debug.Assert(_startArc.End == _startArc.End); + _startArc.End = null; + } + else + { + // if _first has not be set, create it + _firstState = _backend.CreateNewState(this); + + // Attach the start and end arc to the rule + _startArc.Start = _firstState; + } + } + } + + void IRule.CreateScript(IGrammar grammar, string rule, string method, RuleMethodScript type) + { + ((GrammarElement)grammar).CustomGrammar._scriptRefs.Add(new ScriptRef(rule, method, type)); + } + + #endregion + + #region Internal Properties + + internal string Name + { + get + { + return _id; + } + } + + string IRule.BaseClass + { + get + { + return _baseclass; + } + set + { + _baseclass = value; + } + } + + internal string BaseClass + { + get + { + return _baseclass; + } + } + + internal StringBuilder Script + { + get + { + return _script; + } + } + + internal StringBuilder Constructors + { + get + { + return _constructors; + } + } + + #endregion + + #region Private Methods + + private void Init(string id, CfgRule cfgRule, int iSerialize, GrammarOptions SemanticFormat, ref int cImportedRules) + { + _id = id; + _cfgRule = cfgRule; + _firstState = null; + _cfgRule.DirtyRule = true; + _iSerialize = iSerialize; + _fHasExitPath = false; + _fHasDynamicRef = false; + _fIsEpsilonRule = false; + _fStaticRule = false; + if (_cfgRule.Import) + { + cImportedRules++; + } + } + + private static void TrimEndEpsilons(Arc end, Backend backend) + { + Arc endArc = end; + + State endState = endArc.Start; + if (endState != null) + { + // Remove the end arc if possible, check done by MoveSemanticTagRight + if (endArc.IsEpsilonTransition && endState.OutArcs.CountIsOne && Graph.MoveSemanticTagLeft(endArc)) + { + // State has a single input epsilon transition + // Delete the input epsilon transition and delete state. + endArc.Start = null; + + // Remove all the in arcs duplicate the arcs first + foreach (Arc inArc in endState.InArcs.ToList()) + { + inArc.End = null; + TrimEndEpsilons(inArc, backend); + } + + // Delete the input epsilon transition and delete state if appropriate. + backend.DeleteState(endState); + } + } + } + + #endregion + + #region Internal Fields + + internal CfgRule _cfgRule; + + internal State _firstState; + + internal bool _fHasExitPath; + + internal bool _fHasDynamicRef; + + internal bool _fIsEpsilonRule; + + internal int _iSerialize; + internal int _iSerialize2; + +#if DEBUG + internal int _cStates; +#endif + internal List _listRules = new(); + + // this is used to refer to a static rule from a dynamic rule + internal bool _fStaticRule; + + #endregion + + #region Private Fields + + private string _id; + + // STG fields + private string _baseclass; + + private StringBuilder _script = new(); + + private StringBuilder _constructors = new(); + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/RuleRef.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/RuleRef.cs new file mode 100644 index 00000000000000..0d3e3aa49af1f4 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/RuleRef.cs @@ -0,0 +1,219 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#region Using directives + +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Speech.Internal.SrgsParser; +using System.Text; + +#endregion + +namespace System.Speech.Internal.SrgsCompiler +{ + internal class RuleRef : ParseElement, IRuleRef + { + #region Constructors + + /// + /// Special private constructor for Special Rulerefs + /// + private RuleRef(SpecialRuleRefType type, Rule rule) + : base(rule) + { + _type = type; + } + + /// + /// Add transition corresponding to Special or Uri. + /// + internal RuleRef(ParseElementCollection parent, Backend backend, Uri uri, List undefRules, string semanticKey, string initParameters) + : base(parent._rule) + { + string id = uri.OriginalString; + + Rule ruleRef = null; + int posPound = id.IndexOf('#'); + + // Get the initial state for the RuleRef. + if (posPound == 0) + { + // Internal RuleRef. Get InitialState of RuleRef. + // GetRuleRef() may temporarily create a Rule placeholder for later resolution. + ruleRef = GetRuleRef(backend, id.Substring(1), undefRules); + } + else + { + // External RuleRef. Build URL:GrammarUri#RuleName + StringBuilder sbExternalRuleUri = new("URL:"); + + // Add the parameters to initialize a rule + if (!string.IsNullOrEmpty(initParameters)) + { + // look for the # and insert the parameters + sbExternalRuleUri.Append(posPound > 0 ? id.Substring(0, posPound) : id); + sbExternalRuleUri.Append('>'); + sbExternalRuleUri.Append(initParameters); + if (posPound > 0) + { + sbExternalRuleUri.Append(id.Substring(posPound)); + } + } + else + { + sbExternalRuleUri.Append(id); + } + + // Get InitialState of external RuleRef. + string sExternalRuleUri = sbExternalRuleUri.ToString(); + ruleRef = backend.FindRule(sExternalRuleUri); + if (ruleRef == null) + { + ruleRef = backend.CreateRule(sExternalRuleUri, SPCFGRULEATTRIBUTES.SPRAF_Import); + } + } + Arc rulerefArc = backend.RuleTransition(ruleRef, _rule, 1.0f); +#pragma warning disable 0618 + if (!string.IsNullOrEmpty(semanticKey)) + { + CfgGrammar.CfgProperty propertyInfo = new(); + propertyInfo._pszName = "SemanticKey"; + propertyInfo._comValue = semanticKey; + propertyInfo._comType = VarEnum.VT_EMPTY; + backend.AddPropertyTag(rulerefArc, rulerefArc, propertyInfo); + } +#pragma warning restore 0618 + parent.AddArc(rulerefArc); + } + + #endregion + + #region Internal Method + + /// + /// Returns the initial state of a special rule. + /// For each type of special rule we make a rule with a numeric id and return a reference to it. + /// + internal void InitSpecialRuleRef(Backend backend, ParseElementCollection parent) + { + Rule rule = null; + + // Create a transition corresponding to Special or Uri + switch (_type) + { + case SpecialRuleRefType.Null: + parent.AddArc(backend.EpsilonTransition(1.0f)); + break; + + case SpecialRuleRefType.Void: + rule = backend.FindRule(szSpecialVoid); + if (rule == null) + { + rule = backend.CreateRule(szSpecialVoid, 0); + // Rule with no transitions is a void rule. + ((IRule)rule).PostParse(parent); + } + parent.AddArc(backend.RuleTransition(rule, parent._rule, 1.0f)); + break; + + case SpecialRuleRefType.Garbage: + // Garbage transition is optional whereas Wildcard is not. So we need additional epsilon transition. + OneOf oneOf = new(parent._rule, backend); + // Add the garbage transition + oneOf.AddArc(backend.RuleTransition(CfgGrammar.SPRULETRANS_WILDCARD, parent._rule, 0.5f)); + // Add a parallel epsilon path + oneOf.AddArc(backend.EpsilonTransition(0.5f)); + ((IOneOf)oneOf).PostParse(parent); + break; + + default: + System.Diagnostics.Debug.Assert(false, "Unknown special ruleref type"); + break; + } + } + + #endregion + + #region Private Methods + + /// + /// Return the initial state of the rule with the specified name. + /// If the rule is not defined yet, create a placeholder Rule. + /// + private static Rule GetRuleRef(Backend backend, string sRuleId, List undefRules) + { + System.Diagnostics.Debug.Assert(!string.IsNullOrEmpty(sRuleId)); + + // Get specified rule. + Rule rule = backend.FindRule(sRuleId); + + if (rule == null) + { + // Rule doesn't exist. Create a placeholder rule and add StateHandle to UndefinedRules. + rule = backend.CreateRule(sRuleId, 0); + undefRules.Insert(0, rule); + } + + return rule; + } + + #endregion + + #region internal Properties + + internal static IRuleRef Null + { + get + { + return new RuleRef(SpecialRuleRefType.Null, null); + } + } + + internal static IRuleRef Void + { + get + { + return new RuleRef(SpecialRuleRefType.Void, null); + } + } + internal static IRuleRef Garbage + { + get + { + return new RuleRef(SpecialRuleRefType.Garbage, null); + } + } + + #endregion + + #region Private Fields + + #region Private Enums + // Special rule references allow grammars based on CFGs to have powerful + // additional features, such as transitions into dictation (both recognized + // or not recognized) and word sequences from SAPI 5.0. + private enum SpecialRuleRefType + { + // Defines a rule that is automatically matched that is, matched without + // the user speaking any word. + Null, + // Defines a rule that can never be spoken. Inserting VOID into a sequence + // automatically makes that sequence unspeakable. + Void, + // Defines a rule that may match any speech up until the next rule match, + // the next token or until the end of spoken input. + // Designed for applications that would like to recognize some phrases + // without failing due to irrelevant, or ignorable words. + Garbage, + } + + #endregion + + private SpecialRuleRefType _type; + + private const string szSpecialVoid = "VOID"; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/SRGSCompiler.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/SRGSCompiler.cs new file mode 100644 index 00000000000000..3acb36d19cee59 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/SRGSCompiler.cs @@ -0,0 +1,200 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Speech.Internal.SrgsParser; +using System.Speech.Recognition.SrgsGrammar; +using System.Text; +using System.Xml; + +namespace System.Speech.Internal.SrgsCompiler +{ + internal static class SrgsCompiler + { + #region Internal Methods + + /// + /// Loads the SRGS XML grammar and produces the binary grammar format. + /// + /// Source SRGS XML streams + /// filename to compile to + /// stream to compile to + /// Compile for CFG or DLL + /// in xmlReader.Count == 1, name of the original file + /// List of referenced assemblies + /// Strong name + internal static void CompileStream(XmlReader[] xmlReaders, string filename, Stream stream, bool fOutputCfg, Uri originalUri, string[] referencedAssemblies, string keyFile) + { + // raft of files to compiler is only available for class library + System.Diagnostics.Debug.Assert(!fOutputCfg || xmlReaders.Length == 1); + + int cReaders = xmlReaders.Length; + List cfgResources = new(); + + CustomGrammar cgCombined = new(); + for (int iReader = 0; iReader < cReaders; iReader++) + { + // Set the current directory to the location where is the grammar + string srgsPath = null; + Uri uri = originalUri; + if (uri == null) + { + if (xmlReaders[iReader].BaseURI != null && xmlReaders[iReader].BaseURI.Length > 0) + { + uri = new Uri(xmlReaders[iReader].BaseURI); + } + } + if (uri != null && (!uri.IsAbsoluteUri || uri.IsFile)) + { + srgsPath = Path.GetDirectoryName(uri.IsAbsoluteUri ? uri.AbsolutePath : uri.OriginalString); + } + + CultureInfo culture; + StringBuilder innerCode = new(); + ISrgsParser srgsParser = new XmlParser(xmlReaders[iReader], uri); + object cg = CompileStream(iReader + 1, srgsParser, srgsPath, filename, stream, fOutputCfg, innerCode, cfgResources, out culture, referencedAssemblies, keyFile); + if (!fOutputCfg) + { + cgCombined.Combine((CustomGrammar)cg, innerCode.ToString()); + } + } + + // Create the DLL if this needs to be done + if (!fOutputCfg) + { + throw new PlatformNotSupportedException(); + } + } + + /// + /// Produces the binary grammar format. + /// + /// Source SRGS XML streams + /// filename to compile to + /// stream to compile to + /// Compile for CFG or DLL + /// List of referenced assemblies + /// Strong name + internal static void CompileStream(SrgsDocument srgsGrammar, string filename, Stream stream, bool fOutputCfg, string[] referencedAssemblies, string keyFile) + { + ISrgsParser srgsParser = new SrgsDocumentParser(srgsGrammar.Grammar); + + List cfgResources = new(); + + StringBuilder innerCode = new(); + CultureInfo culture; + + // Validate the grammar before compiling it. Set the tag-format and sapi flags too. + srgsGrammar.Grammar.Validate(); + + object cg = CompileStream(1, srgsParser, null, filename, stream, fOutputCfg, innerCode, cfgResources, out culture, referencedAssemblies, keyFile); + + // Create the DLL if this needs to be done + if (!fOutputCfg) + { + throw new PlatformNotSupportedException(); + } + } + + #endregion + + private static object CompileStream(int iCfg, ISrgsParser srgsParser, string srgsPath, string filename, Stream stream, bool fOutputCfg, StringBuilder innerCode, object cfgResources, out CultureInfo culture, string[] referencedAssemblies, string keyFile) + { + Backend backend = new(); + CustomGrammar cg = new(); + SrgsElementCompilerFactory elementFactory = new(backend, cg); + srgsParser.ElementFactory = elementFactory; + srgsParser.Parse(); + + // Optimize in-memory graph representation of the grammar. + backend.Optimize(); + culture = backend.LangId == 0x540A ? new CultureInfo("es-us") : new CultureInfo(backend.LangId); + + // A grammar may contains references to other files in codebehind. + // Set the current directory to the location where is the grammar + if (cg._codebehind.Count > 0 && !string.IsNullOrEmpty(srgsPath)) + { + for (int i = 0; i < cg._codebehind.Count; i++) + { + if (!File.Exists(cg._codebehind[i])) + { + cg._codebehind[i] = srgsPath + "\\" + cg._codebehind[i]; + } + } + } + + // Add the referenced assemblies + if (referencedAssemblies != null) + { + foreach (string assembly in referencedAssemblies) + { + cg._assemblyReferences.Add(assembly); + } + } + + // Assign the key file + cg._keyFile = keyFile; + + // Assign the Scripts to the backend + backend.ScriptRefs = cg._scriptRefs; + + // If the target is a dll, then create first the CFG and stuff it as an embedded resource + if (!fOutputCfg) + { + throw new PlatformNotSupportedException(); + } + else + { + //if semantic processing for a rule is defined, a script needs to be defined + if (cg._scriptRefs.Count > 0 && !cg.HasScript) + { + XmlParser.ThrowSrgsException(SRID.NoScriptsForRules); + } + + // Creates a CFG with IL embedded + CreateAssembly(backend, cg); + + // Save binary grammar to dest + if (!string.IsNullOrEmpty(filename)) + { + // Create a stream if a filename was given + stream = new FileStream(filename, FileMode.Create, FileAccess.Write); + } + try + { + using (StreamMarshaler streamHelper = new(stream)) + { + backend.Commit(streamHelper); + } + } + finally + { + if (!string.IsNullOrEmpty(filename)) + { + stream.Close(); + } + } + } + return cg; + } + + /// + /// Generate the assembly code for a back. The scripts are defined in custom + /// grammars. + /// + private static void CreateAssembly(Backend backend, CustomGrammar cg) + { + if (cg.HasScript) + { + throw new PlatformNotSupportedException(); + } + } + } + + internal enum RuleScope + { + PublicRule, PrivateRule + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/ScriptRef.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/ScriptRef.cs new file mode 100644 index 00000000000000..11ecc107c97506 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/ScriptRef.cs @@ -0,0 +1,71 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; +using System.Speech.Internal.SrgsParser; + +namespace System.Speech.Internal.SrgsCompiler +{ + // list of rules with scripts + [DebuggerDisplay("rule=\"{_rule}\" method=\"{_sMethod}\" operation=\"{_method.ToString ()}\"")] + internal class ScriptRef + { + #region Constructors + + internal ScriptRef(string rule, string sMethod, RuleMethodScript method) + { + _rule = rule; + _sMethod = sMethod; + _method = method; + } + + #endregion + + #region internal Methods + + internal void Serialize(StringBlob symbols, StreamMarshaler streamBuffer) + { + CfgScriptRef script = new(); + + // Get the symbol id for the rule + script._idRule = symbols.Find(_rule); + + script._method = _method; + + script._idMethod = _idSymbol; + + System.Diagnostics.Debug.Assert(script._idRule != -1 && script._idMethod != -1); + + streamBuffer.WriteStream(script); + } + + internal static string OnInitMethod(ScriptRef[] scriptRefs, string rule) + { + if (scriptRefs != null) + { + foreach (ScriptRef script in scriptRefs) + { + if (script._rule == rule && script._method == RuleMethodScript.onInit) + { + return script._sMethod; + } + } + } + return null; + } + + #endregion + + #region Internal Fields + + internal string _rule; + + internal string _sMethod; + + internal RuleMethodScript _method; + + internal int _idSymbol; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/SemanticTag.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/SemanticTag.cs new file mode 100644 index 00000000000000..2852ef681d508e --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/SemanticTag.cs @@ -0,0 +1,50 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Speech.Internal.SrgsParser; + +namespace System.Speech.Internal.SrgsCompiler +{ + internal sealed class SemanticTag : ParseElement, ISemanticTag + { + #region Constructors + + internal SemanticTag(ParseElement parent, Backend backend) + : base(parent._rule) + { + } + + #endregion + + #region Internal Methods + // The probability that this item will be repeated. + void ISemanticTag.Content(IElement parentElement, string sTag, int iLine) + { + //Return if the Tag content is empty + sTag = sTag.Trim(Helpers._achTrimChars); + + if (string.IsNullOrEmpty(sTag)) + { + return; + } + + // Build semantic properties to attach to epsilon transition. + // script + _propInfo._ulId = (uint)iLine; + _propInfo._comValue = sTag; + + ParseElementCollection parent = (ParseElementCollection)parentElement; + + // Attach the semantic properties on the parent element. + parent.AddSemanticInterpretationTag(_propInfo); + } + + #endregion + + #region Private Fields + + private CfgGrammar.CfgProperty _propInfo = new(); + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/SrgsElementCompilerFactory.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/SrgsElementCompilerFactory.cs new file mode 100644 index 00000000000000..98cf615fc86ba0 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/SrgsElementCompilerFactory.cs @@ -0,0 +1,360 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#region Using directives + +using System.Globalization; +using System.Speech.Internal.SrgsParser; + +#endregion + +namespace System.Speech.Internal.SrgsCompiler +{ + internal class SrgsElementCompilerFactory : IElementFactory + { + #region Constructors + + internal SrgsElementCompilerFactory(Backend backend, CustomGrammar cg) + { + _backend = backend; + _cg = cg; + _grammar = new GrammarElement(backend, cg); + } + #endregion + + #region Internal Methods + + /// + /// Clear all the rules + /// + void IElementFactory.RemoveAllRules() + { + } + + IPropertyTag IElementFactory.CreatePropertyTag(IElement parent) + { + return new PropertyTag((ParseElementCollection)parent, _backend); + } + + ISemanticTag IElementFactory.CreateSemanticTag(IElement parent) + { + return new SemanticTag((ParseElementCollection)parent, _backend); + } + + IElementText IElementFactory.CreateText(IElement parent, string value) + { + return null; + } + + IToken IElementFactory.CreateToken(IElement parent, string content, string pronunciation, string display, float reqConfidence) + { + ParseToken((ParseElementCollection)parent, content, pronunciation, display, reqConfidence); + return null; + } + + IItem IElementFactory.CreateItem(IElement parent, IRule rule, int minRepeat, int maxRepeat, float repeatProbability, float weight) + { + return new Item(_backend, (Rule)rule, minRepeat, maxRepeat, repeatProbability, weight); + } + + IRuleRef IElementFactory.CreateRuleRef(IElement parent, Uri srgsUri) + { + throw new NotImplementedException(); + } + + IRuleRef IElementFactory.CreateRuleRef(IElement parent, Uri srgsUri, string semanticKey, string parameters) + { + return new RuleRef((ParseElementCollection)parent, _backend, srgsUri, _grammar.UndefRules, semanticKey, parameters); + } + + void IElementFactory.InitSpecialRuleRef(IElement parent, IRuleRef specialRule) + { + ((RuleRef)specialRule).InitSpecialRuleRef(_backend, (ParseElementCollection)parent); + } + + IOneOf IElementFactory.CreateOneOf(IElement parent, IRule rule) + { + return new OneOf((Rule)rule, _backend); + } + + ISubset IElementFactory.CreateSubset(IElement parent, string text, MatchMode mode) + { + return new Subset((ParseElementCollection)parent, _backend, text, mode); + } + + void IElementFactory.AddScript(IGrammar grammar, string rule, string code) + { + ((GrammarElement)grammar).AddScript(rule, code); + } + + string IElementFactory.AddScript(IGrammar grammar, string rule, string code, string filename, int line) + { + // add the #line information + if (line >= 0) + { + if (_cg._language == "C#") + { + // C# + return string.Format(CultureInfo.InvariantCulture, "#line {0} \"{1}\"\n{2}", line.ToString(CultureInfo.InvariantCulture), filename, code); + } + else + { + // VB.Net + return string.Format(CultureInfo.InvariantCulture, "#ExternalSource (\"{1}\",{0}) \n{2}\n#End ExternalSource\n", line.ToString(CultureInfo.InvariantCulture), filename, code); + } + } + return code; + } + + void IElementFactory.AddScript(IGrammar grammar, string script, string filename, int line) + { + // add the #line information + if (line >= 0) + { + if (_cg._language == "C#") + { + // C# + _cg._script.Append("#line "); + _cg._script.Append(line.ToString(CultureInfo.InvariantCulture)); + _cg._script.Append(" \""); + _cg._script.Append(filename); + _cg._script.Append("\"\n"); + _cg._script.Append(script); + } + else + { + // VB.Net + _cg._script.Append("#ExternalSource ("); + _cg._script.Append(" \""); + _cg._script.Append(filename); + _cg._script.Append("\","); + _cg._script.Append(line.ToString(CultureInfo.InvariantCulture)); + _cg._script.Append(")\n"); + _cg._script.Append(script); + _cg._script.Append("#End #ExternalSource\n"); + } + } + else + { + _cg._script.Append(script); + } + } + + void IElementFactory.AddItem(IOneOf oneOf, IItem item) + { + } + + void IElementFactory.AddElement(IRule rule, IElement value) + { + } + + void IElementFactory.AddElement(IItem item, IElement value) + { + } + + #endregion + + #region Internal Properties + + IGrammar IElementFactory.Grammar + { + get + { + return _grammar; + } + } + + IRuleRef IElementFactory.Null + { + get + { + return RuleRef.Null; + } + } + IRuleRef IElementFactory.Void + { + get + { + return RuleRef.Void; + } + } + IRuleRef IElementFactory.Garbage + { + get + { + return RuleRef.Garbage; + } + } + #endregion + + #region Private Methods + + // Disable parameter validation check + + /// + /// Add transition representing the normalized token. + /// + /// White Space Normalization - Trim leading/trailing white spaces. + /// Collapse white space sequences to a single ' '. + /// Restrictions - Normalized token cannot be empty. + /// Normalized token cannot contain double-quote. + /// + /// If (Parent == Token) And (Parent.SAPIPron.Length > 0) Then + /// Escape normalized token. "/" -> "\/", "\" -> "\\" + /// Build /D/L/P; form from the escaped token and SAPIPron. + /// + /// SAPIPron may be a semi-colon delimited list of pronunciations. + /// In this case, a transition for each of the pronunciations will be added. + /// + /// AddTransition(NormalizedToken, Parent.EndState, NewState) + /// Parent.EndState = NewState + /// + private void ParseToken(ParseElementCollection parent, string sToken, string pronunciation, string display, float reqConfidence) + { + int requiredConfidence = (parent != null) ? parent._confidence : CfgGrammar.SP_NORMAL_CONFIDENCE; + + // Performs white space normalization in place + sToken = Backend.NormalizeTokenWhiteSpace(sToken); + if (string.IsNullOrEmpty(sToken)) + { + return; + } + + // "sapi:reqconf" Attribute + parent._confidence = CfgGrammar.SP_NORMAL_CONFIDENCE; // Default to normal + + if (reqConfidence < 0 || reqConfidence.Equals(0.5f)) + { + parent._confidence = CfgGrammar.SP_NORMAL_CONFIDENCE; // Default to normal + } + else if (reqConfidence < 0.5) + { + parent._confidence = CfgGrammar.SP_LOW_CONFIDENCE; + } + else + { + parent._confidence = CfgGrammar.SP_HIGH_CONFIDENCE; + } + + // If SAPIPron is specified, use /D/L/P; as the transition text, for each of the pronunciations. + if (pronunciation != null || display != null) + { + // Escape normalized token. "/" -> "\/", "\" -> "\\" + string sEscapedToken = EscapeToken(sToken); + string sDisplayToken = display == null ? sEscapedToken : EscapeToken(display); + + if (pronunciation != null) + { + // Garbage transition is optional whereas Wildcard is not. So we need additional epsilon transition. + OneOf oneOf = pronunciation.IndexOf(';') >= 0 ? new OneOf(parent._rule, _backend) : null; + + for (int iCurPron = 0, iDeliminator = 0; iCurPron < pronunciation.Length; iCurPron = iDeliminator + 1) + { + // Find semi-colon delimiter and replace with null + iDeliminator = pronunciation.IndexOf(';', iCurPron); + if (iDeliminator == -1) + { + iDeliminator = pronunciation.Length; + } + + string pron = pronunciation.Substring(iCurPron, iDeliminator - iCurPron); + string sSubPron = null; + switch (_backend.Alphabet) + { + case AlphabetType.Sapi: + sSubPron = PhonemeConverter.ConvertPronToId(pron, _grammar.Backend.LangId); + break; + + case AlphabetType.Ipa: + sSubPron = pron; + PhonemeConverter.ValidateUpsIds(sSubPron); + break; + + case AlphabetType.Ups: + sSubPron = PhonemeConverter.UpsConverter.ConvertPronToId(pron); + break; + } + + // Build /D/L/P; form for this pronunciation. + string sDLP = string.Format(CultureInfo.InvariantCulture, "/{0}/{1}/{2};", sDisplayToken, sEscapedToken, sSubPron); + + // Add /D/L/P; transition to the new state. + if (oneOf != null) + { + oneOf.AddArc(_backend.WordTransition(sDLP, 1.0f, requiredConfidence)); + } + else + { + parent.AddArc(_backend.WordTransition(sDLP, 1.0f, requiredConfidence)); + } + } + + if (oneOf != null) + { + ((IOneOf)oneOf).PostParse(parent); + } + } + else + { + // Build /D/L; form for this pronunciation. + string sDLP = string.Format(CultureInfo.InvariantCulture, "/{0}/{1};", sDisplayToken, sEscapedToken); + + // Add /D/L; transition to the new state. + parent.AddArc(_backend.WordTransition(sDLP, 1.0f, requiredConfidence)); + } + } + else + { + // Add transition to the new state with normalized token. + parent.AddArc(_backend.WordTransition(sToken, 1.0f, requiredConfidence)); + } + } + + /// + /// Escape token. "/" -> "\/", "\" -> "\\" + /// + private static string EscapeToken(string sToken) // String to escape + { + System.Diagnostics.Debug.Assert(!string.IsNullOrEmpty(sToken)); + + // Easy out if no escape characters + if (sToken.IndexOf("\\/", StringComparison.Ordinal) == -1) + { + return sToken; + } + + char[] achSrc = sToken.ToCharArray(); + char[] achDest = new char[achSrc.Length * 2]; + int iDest = 0; + + // Escape slashes and backslashes. + for (int i = 0; i < achSrc.Length;) + { + if ((achSrc[i] == '\\') || (achSrc[i] == '/')) + { + achDest[iDest++] = '\\'; // Escape special character + } + + achDest[iDest++] = achSrc[i++]; + } + + // null terminate and update string length + return new string(achDest, 0, iDest); + } + + #endregion + + #region Private Fields + + // Callers param + private Backend _backend; + + // Grammar + private GrammarElement _grammar; + + // Callers param + private CustomGrammar _cg; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/State.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/State.cs new file mode 100644 index 00000000000000..36ec36333c5e2e --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/State.cs @@ -0,0 +1,507 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Diagnostics; +using System.Globalization; +using System.Speech.Internal.SrgsParser; +using System.Text; + +namespace System.Speech.Internal.SrgsCompiler +{ + /// + /// Class representing a state in the grammar. Note that states are not stored in the binary format + /// instead all the arcs are, with a flag to indicate the end arc out of a state */ + /// +#if DEBUG + [DebuggerDisplay("{ToString ()}")] +#endif + internal sealed class State : IComparable + { + #region Constructors + + internal State(Rule rule, uint hState, int iSerialize) + { + _rule = rule; + _iSerialize = iSerialize; + _id = hState; + } + + internal State(Rule rule, uint hState) + : this(rule, hState, (int)hState) + { + } + + #endregion + + #region internal Methods + + #region IComparable Interface implementation + + int IComparable.CompareTo(State state2) + { + return Compare(this, state2); + } + + #endregion + + internal void SerializeStateEntries(StreamMarshaler streamBuffer, bool tagsCannotSpanOverMultipleArcs, float[] pWeights, ref uint iArcOffset, ref int iOffset) + { + // The arcs must be sorted before being written to disk. + List outArcs = _outArcs.ToList(); + outArcs.Sort(); + Arc lastArc = outArcs.Count > 0 ? outArcs[outArcs.Count - 1] : null; + + IEnumerator enumArcs = ((IEnumerable)outArcs).GetEnumerator(); + enumArcs.MoveNext(); + + uint nextAvailableArc = (uint)outArcs.Count + iArcOffset; + uint saveNextAvailableArc = nextAvailableArc; + + // Write the arc of the first epsilon arc with an arc has more than one semantic tag + foreach (Arc arc in outArcs) + { + // Create the first arc. + int cSemantics = arc.SemanticTagCount; + + // Set the semantic property reference for the first arc + if (cSemantics > 0) + { + arc.SetArcIndexForTag(0, iArcOffset, tagsCannotSpanOverMultipleArcs); + } + + // Serialize the arc + if (cSemantics <= 1) + { + pWeights[iOffset++] = arc.Serialize(streamBuffer, lastArc == arc, iArcOffset++); + } + else + { + // update the position of the current arc + ++iArcOffset; + + // more than one arc, create an epsilon transition + pWeights[iOffset++] = Arc.SerializeExtraEpsilonWithTag(streamBuffer, arc, lastArc == arc, nextAvailableArc); + + // reset the position of the next available slop for an arc + nextAvailableArc += (uint)cSemantics - 1; + } + } + + enumArcs = ((IEnumerable)outArcs).GetEnumerator(); + enumArcs.MoveNext(); + + // revert the position for the new arc + nextAvailableArc = saveNextAvailableArc; + + // write the additional arcs if we have more than one semantic tag + foreach (Arc arc in outArcs) + { + int cSemantics = arc.SemanticTagCount; + + if (cSemantics > 1) + { + // If more than 2 arcs insert extra new epsilon states, one per semantic tag + for (int i = 1; i < cSemantics - 1; i++) + { + // Set the semantic property reference + arc.SetArcIndexForTag(i, iArcOffset, tagsCannotSpanOverMultipleArcs); + + // reset the position of the next available slop for an arc + nextAvailableArc++; + + // create an epsilon transition + pWeights[iOffset++] = Arc.SerializeExtraEpsilonWithTag(streamBuffer, arc, true, nextAvailableArc); + + // update the position of the current arc + ++iArcOffset; + } + + // Set the semantic property reference + arc.SetArcIndexForTag(cSemantics - 1, iArcOffset, tagsCannotSpanOverMultipleArcs); + + // Add the real arc at the end + pWeights[iOffset++] = arc.Serialize(streamBuffer, true, iArcOffset++); + + // reset the position of the next available slop for an arc + nextAvailableArc++; + } + } + } + + internal void SetEndArcIndexForTags() + { + foreach (Arc arc in _outArcs) + { + arc.SetEndArcIndexForTags(); + } + } + + #region State linked list + + // The pointers for 2 linked list are stored within each state. + // When states are created, they added into a list, the '1' list. + + // The Members of the list are Set, Add, Remove, Prev and Next. + + internal void Init() + { + System.Diagnostics.Debug.Assert(_next == null && _prev == null); + } + + internal State Add(State state) + { + _next = state; + state._prev = this; + return state; + } + + internal void Remove() + { + if (_prev != null) + { + _prev._next = _next; + } + if (_next != null) + { + _next._prev = _prev; + } + _next = _prev = null; + } + + internal State Next + { + get + { + return _next; + } + } + + internal State Prev + { + get + { + return _prev; + } + } + + #endregion + +#if DEBUG + internal void CheckExitPath(ref int iRecursiveDepth) + { + if (iRecursiveDepth > CfgGrammar.MAX_TRANSITIONS_COUNT) + { + XmlParser.ThrowSrgsException(SRID.MaxTransitionsCount); + } + + foreach (Arc arc in _outArcs) + { + if (_rule._fHasExitPath) + { + break; + } + + if (arc.CheckingForExitPath) + { + arc.CheckingForExitPath = true; + if (arc.RuleRef != null) + { + arc.RuleRef.CheckForExitPath(ref iRecursiveDepth); + if (arc.RuleRef._fHasExitPath) + { + if (arc.End == null) + { + _rule._fHasExitPath = true; + } + else + { + arc.End.CheckExitPath(ref iRecursiveDepth); + } + } + } + else + { + if (arc.End == null) + { + _rule._fHasExitPath = true; + } + else + { + arc.End.CheckExitPath(ref iRecursiveDepth); + } + } + + arc.CheckingForExitPath = false; + } + } + } +#endif + + internal void CheckLeftRecursion(out bool fReachedEndState) + { + fReachedEndState = false; + if ((int)(_recurseFlag & RecurFlag.RF_IN_LEFT_RECUR_CHECK) != 0) + { + XmlParser.ThrowSrgsException(SRID.CircularRuleRef, _rule != null ? _rule._rule.Name : string.Empty); + } + else + { + if ((_recurseFlag & RecurFlag.RF_CHECKED_LEFT_RECURSION) == 0) + { + _recurseFlag |= RecurFlag.RF_CHECKED_LEFT_RECURSION | RecurFlag.RF_IN_LEFT_RECUR_CHECK; + foreach (Arc arc in _outArcs) + { + bool fRuleReachedEndState = false; // Does the rule ref have epsilon path to the end? + + // Traverse any rule refs to check for circular rule reference. + if (arc.RuleRef != null && arc.RuleRef._firstState != null) + { + State pRuleFirstNode = arc.RuleRef._firstState; + + if (((int)(pRuleFirstNode._recurseFlag & RecurFlag.RF_IN_LEFT_RECUR_CHECK) != 0) || // Circular RuleRef + ((int)(pRuleFirstNode._recurseFlag & RecurFlag.RF_CHECKED_LEFT_RECURSION) == 0)) // Untraversed rule + { + pRuleFirstNode.CheckLeftRecursion(out fRuleReachedEndState); + } + else + { + fRuleReachedEndState = arc.RuleRef._fIsEpsilonRule; + } + } + + // Can transition be traversed by epsilon? + if (fRuleReachedEndState || ((arc.RuleRef == null) && (arc.WordId == 0) && arc.WordId == 0)) + { + if (arc.End != null) + { + arc.End.CheckLeftRecursion(out fReachedEndState); + } + else + { + fReachedEndState = true; + } + } + } + + _recurseFlag &= (~RecurFlag.RF_IN_LEFT_RECUR_CHECK); + if ((_rule._firstState == this) && fReachedEndState) + { + _rule._fIsEpsilonRule = true; + } + } + } + } + + #endregion + + #region Internal Properties + + internal int NumArcs + { + get + { + // if the number of tags > 1 extra epsilon state needs to be inserted + int cExtra = 0; + foreach (Arc arc in _outArcs) + { + if (arc.SemanticTagCount > 0) + { + cExtra += arc.SemanticTagCount - 1; + } + } + + int cArcs = 0; + foreach (Arc arc in _outArcs) + { + cArcs++; + } + return cArcs + cExtra; + } + } + + internal int NumSemanticTags + { + get + { + int c = 0; + + foreach (Arc arc in _outArcs) + { + c += arc.SemanticTagCount; + } + + return c; + } + } + + internal Rule Rule + { + get + { + return _rule; + } + } + + internal uint Id + { + get + { + return _id; + } + } + + internal ArcList OutArcs + { + get + { + return _outArcs; + } + } + + internal ArcList InArcs + { + get + { + return _inArcs; + } + } + + internal int SerializeId + { + get + { + return _iSerialize; + } + set + { + _iSerialize = value; + } + } + + #endregion + + #region private Methods + + // Sort based on rule first, so all states, and arcs for a rule end up together. + // Then sort on index. + private static int Compare(State state1, State state2) + { + if (state1._rule._cfgRule._nameOffset != state2._rule._cfgRule._nameOffset) + { + return state1._rule._cfgRule._nameOffset - state2._rule._cfgRule._nameOffset; + } + else + { + // First state of a rule needs to be in front. + int isNode1FirstNode = (state1._rule._firstState == state1) ? -1 : 0; + int isNode2FirstNode = (state2._rule._firstState == state2) ? -1 : 0; + + if (isNode1FirstNode != isNode2FirstNode) + { + return isNode1FirstNode - isNode2FirstNode; + } + else + { + // First returns null on empty collections + Arc arc1 = state1._outArcs != null && !state1._outArcs.IsEmpty ? state1._outArcs.First : null; + Arc arc2 = state2._outArcs != null && !state2._outArcs.IsEmpty ? state2._outArcs.First : null; + + int diff = (arc1 != null ? (arc1.RuleRef != null ? 0x1000000 : 0) + arc1.WordId : state1._iSerialize) - (arc2 != null ? (arc2.RuleRef != null ? 0x1000000 : 0) + arc2.WordId : state2._iSerialize); + + diff = diff != 0 ? diff : state1._iSerialize - state2._iSerialize; + //System.Diagnostics.Debug.Assert (diff != 0); + return diff; + } + } + } + +#if DEBUG + + public override string ToString() + { + StringBuilder sb = new("[#"); + sb.Append(_id.ToString(CultureInfo.InvariantCulture)); + if (_rule != null && _rule._firstState == this) + { + sb.Append(' '); + sb.Append(_rule.Name); + } + sb.Append("] "); + if (_inArcs != null) + { + bool first = true; + foreach (Arc arc in _inArcs) + { + if (!first) + { + sb.Append("\x20\x25cf\x20"); + } + sb.Append('#'); + sb.Append(arc.Start != null ? arc.Start._id.ToString(CultureInfo.InvariantCulture) : "S"); + sb.Append(' '); + sb.Append(arc.DebuggerDisplayTags()); + first = false; + } + } + sb.Append(" <--> "); + if (_outArcs != null) + { + bool first = true; + foreach (Arc arc in _outArcs) + { + if (!first) + { + sb.Append("\x20\x25cf\x20"); + } + sb.Append('#'); + sb.Append(arc.End != null ? arc.End._id.ToString(CultureInfo.InvariantCulture) : "E"); + sb.Append(' '); + sb.Append(arc.DebuggerDisplayTags()); + first = false; + } + } + + return sb.ToString(); + } +#endif + + #endregion + + #region internal Fields + +#pragma warning disable 56524 // Arclist does not hold on any resources + + // Collection of transitions leaving this state + private ArcList _outArcs = new(); + + // Collection of transitions entering this state + private ArcList _inArcs = new(); + +#pragma warning restore 56524 // Arclist does not hold on any resources + + // Index of the first arc in the state. Also used as the state handle in SR engine interfaces. + private int _iSerialize; + + private uint _id; + + private Rule _rule; + + private State _next; + private State _prev; + + // Flags used for recursive validation methods + internal enum RecurFlag : uint + { + RF_CHECKED_EPSILON = (1 << 0), + RF_CHECKED_EXIT_PATH = (1 << 1), + RF_CHECKED_LEFT_RECURSION = (1 << 2), + RF_IN_LEFT_RECUR_CHECK = (1 << 3) + }; + + // Flags used by recursive algorithms + private RecurFlag _recurseFlag; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/Subset.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/Subset.cs new file mode 100644 index 00000000000000..ea642f57567119 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/Subset.cs @@ -0,0 +1,48 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#region Using directives + +using System.Speech.Internal.SrgsParser; + +#endregion + +namespace System.Speech.Internal.SrgsCompiler +{ + internal class Subset : ParseElement, ISubset + { + #region Constructors + + /// + /// Process the 'subset' element. + /// + public Subset(ParseElementCollection parent, Backend backend, string text, MatchMode mode) + : base(parent._rule) + { + // replace tab, cr, lf with spaces + foreach (char ch in Helpers._achTrimChars) + { + if (ch == ' ') + { + continue; + } + if (text.IndexOf(ch) >= 0) + { + text = text.Replace(ch, ' '); + } + } + + // Add transition to the new state with normalized token. + parent.AddArc(backend.SubsetTransition(text, mode)); + } + + #endregion + + #region Internal Method + void IElement.PostParse(IElement parentElement) + { + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsCompiler/Tag.cs b/src/libraries/System.Speech/src/Internal/SrgsCompiler/Tag.cs new file mode 100644 index 00000000000000..31118471a27987 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsCompiler/Tag.cs @@ -0,0 +1,61 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; + +namespace System.Speech.Internal.SrgsCompiler +{ +#if DEBUG + [DebuggerDisplay("{_be.Symbols.FromOffset (_cfgTag._nameOffset == 0 ? _cfgTag._valueOffset : _cfgTag._nameOffset)}")] +#endif + internal sealed class Tag : IComparable + { + #region Constructors + + internal Tag(Tag tag) + { + _be = tag._be; + _cfgTag = tag._cfgTag; + } + + internal Tag(Backend be, CfgSemanticTag cfgTag) + { + _be = be; + _cfgTag = cfgTag; + } + + internal Tag(Backend be, CfgGrammar.CfgProperty property) + { + _be = be; + _cfgTag = new CfgSemanticTag(be.Symbols, property); + } + + #endregion + + #region Internal Methods + + #region IComparable Interface implementation + + int IComparable.CompareTo(Tag tag) + { + return (int)_cfgTag.ArcIndex - (int)tag._cfgTag.ArcIndex; + } + + #endregion + + internal void Serialize(StreamMarshaler streamBuffer) + { + streamBuffer.WriteStream(_cfgTag); + } + + #endregion + + #region Internal Fields + + internal CfgSemanticTag _cfgTag; + + internal Backend _be; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsParser/IElement.cs b/src/libraries/System.Speech/src/Internal/SrgsParser/IElement.cs new file mode 100644 index 00000000000000..fe063e58292c26 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsParser/IElement.cs @@ -0,0 +1,13 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Internal.SrgsParser +{ + /// + /// Interface definition for the IElement + /// + internal interface IElement + { + void PostParse(IElement parent); + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsParser/IElementFactory.cs b/src/libraries/System.Speech/src/Internal/SrgsParser/IElementFactory.cs new file mode 100644 index 00000000000000..6b2bf2bad868fd --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsParser/IElementFactory.cs @@ -0,0 +1,39 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Internal.SrgsParser +{ + /// + /// Interface definition for the IElementFactory + /// + internal interface IElementFactory + { + // Grammar + void RemoveAllRules(); + + IElementText CreateText(IElement parent, string value); + IToken CreateToken(IElement parent, string content, string pronumciation, string display, float reqConfidence); + IPropertyTag CreatePropertyTag(IElement parent); + ISemanticTag CreateSemanticTag(IElement parent); + IItem CreateItem(IElement parent, IRule rule, int minRepeat, int maxRepeat, float repeatProbability, float weight); + IRuleRef CreateRuleRef(IElement parent, Uri srgsUri); + IRuleRef CreateRuleRef(IElement parent, Uri srgsUri, string semanticKey, string parameters); + void InitSpecialRuleRef(IElement parent, IRuleRef special); + IOneOf CreateOneOf(IElement parent, IRule rule); + ISubset CreateSubset(IElement parent, string text, MatchMode matchMode); + + IGrammar Grammar { get; } + + IRuleRef Null { get; } + IRuleRef Void { get; } + IRuleRef Garbage { get; } + + string AddScript(IGrammar grammar, string rule, string code, string filename, int line); + void AddScript(IGrammar grammar, string script, string filename, int line); + void AddScript(IGrammar grammar, string rule, string code); + + void AddItem(IOneOf oneOf, IItem value); + void AddElement(IRule rule, IElement value); + void AddElement(IItem item, IElement value); + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsParser/IElementText.cs b/src/libraries/System.Speech/src/Internal/SrgsParser/IElementText.cs new file mode 100644 index 00000000000000..c9b275716485c4 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsParser/IElementText.cs @@ -0,0 +1,12 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Internal.SrgsParser +{ + /// + /// Interface definition for the IElementText + /// + internal interface IElementText : IElement + { + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsParser/IGrammar.cs b/src/libraries/System.Speech/src/Internal/SrgsParser/IGrammar.cs new file mode 100644 index 00000000000000..00decfc3dd2f59 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsParser/IGrammar.cs @@ -0,0 +1,36 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.ObjectModel; +using System.Globalization; + +namespace System.Speech.Internal.SrgsParser +{ + /// + /// Interface definition for the IGrammar + /// + internal interface IGrammar : IElement + { + IRule CreateRule(string id, RulePublic publicRule, RuleDynamic dynamic, bool hasSCript); + + string Root { get; set; } + System.Speech.Recognition.SrgsGrammar.SrgsTagFormat TagFormat { get; set; } + Collection GlobalTags { get; set; } + GrammarType Mode { set; } + CultureInfo Culture { set; } + Uri XmlBase { set; } + AlphabetType PhoneticAlphabet { set; } + + string Language { get; set; } + string Namespace { get; set; } + bool Debug { set; } + Collection CodeBehind { get; set; } + Collection ImportNamespaces { get; set; } + Collection AssemblyReferences { get; set; } + } + + internal enum GrammarType + { + VoiceGrammar, DtmfGrammar + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsParser/IItem.cs b/src/libraries/System.Speech/src/Internal/SrgsParser/IItem.cs new file mode 100644 index 00000000000000..9620f11a57b2c0 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsParser/IItem.cs @@ -0,0 +1,12 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Internal.SrgsParser +{ + /// + /// Interface definition for the IItem + /// + internal interface IItem : IElement + { + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsParser/IOneOf.cs b/src/libraries/System.Speech/src/Internal/SrgsParser/IOneOf.cs new file mode 100644 index 00000000000000..e344ab0f1d6d0f --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsParser/IOneOf.cs @@ -0,0 +1,12 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Internal.SrgsParser +{ + /// + /// Interface definition for the IOneOf + /// + internal interface IOneOf : IElement + { + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsParser/IPropertyTag.cs b/src/libraries/System.Speech/src/Internal/SrgsParser/IPropertyTag.cs new file mode 100644 index 00000000000000..9a7256c0d57a2b --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsParser/IPropertyTag.cs @@ -0,0 +1,13 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Internal.SrgsParser +{ + /// + /// Interface definition for the IElementTag + /// + internal interface IPropertyTag : IElement + { + void NameValue(IElement parent, string name, object value); + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsParser/IRule.cs b/src/libraries/System.Speech/src/Internal/SrgsParser/IRule.cs new file mode 100644 index 00000000000000..2e2b0251b2d3d1 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsParser/IRule.cs @@ -0,0 +1,30 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Internal.SrgsParser +{ + internal interface IRule : IElement + { + string BaseClass { get; set; } + + void CreateScript(IGrammar grammar, string rule, string method, RuleMethodScript type); + } + + #region Internal Enums + + internal enum RuleDynamic + { + True, + False, + NotSet + }; + + internal enum RulePublic + { + True, + False, + NotSet + }; + + #endregion +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsParser/IRuleRef.cs b/src/libraries/System.Speech/src/Internal/SrgsParser/IRuleRef.cs new file mode 100644 index 00000000000000..21ca321d591a99 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsParser/IRuleRef.cs @@ -0,0 +1,12 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Internal.SrgsParser +{ + /// + /// Interface definition for the IRuleRef + /// + internal interface IRuleRef : IElement + { + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsParser/IScript.cs b/src/libraries/System.Speech/src/Internal/SrgsParser/IScript.cs new file mode 100644 index 00000000000000..fa1eefc623aeeb --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsParser/IScript.cs @@ -0,0 +1,21 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Internal.SrgsParser +{ + /// + /// Interface definition for the IScript + /// + internal interface IScript : IElement + { + IScript Create(string rule, RuleMethodScript onInit); + } + + internal enum RuleMethodScript + { + onInit = 1, + onParse = 2, + onRecognition = 3, + onError + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsParser/ISemanticTag.cs b/src/libraries/System.Speech/src/Internal/SrgsParser/ISemanticTag.cs new file mode 100644 index 00000000000000..3aa4a9aa763356 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsParser/ISemanticTag.cs @@ -0,0 +1,13 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Internal.SrgsParser +{ + /// + /// Interface definition for the IElementTag + /// + internal interface ISemanticTag : IElement + { + void Content(IElement parent, string value, int line); + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsParser/ISrgsParser.cs b/src/libraries/System.Speech/src/Internal/SrgsParser/ISrgsParser.cs new file mode 100644 index 00000000000000..2703a36b5d73b4 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsParser/ISrgsParser.cs @@ -0,0 +1,11 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Internal.SrgsParser +{ + internal interface ISrgsParser + { + void Parse(); + IElementFactory ElementFactory { set; } + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsParser/ISubset.cs b/src/libraries/System.Speech/src/Internal/SrgsParser/ISubset.cs new file mode 100644 index 00000000000000..7963d26b3eeeb4 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsParser/ISubset.cs @@ -0,0 +1,22 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Internal.SrgsParser +{ + /// + /// Interface definition for the ISubset + /// + internal interface ISubset : IElement + { + } + + // Must be in the same order as the Srgs enum + internal enum MatchMode + { + AllWords = 0, + Subsequence = 1, + OrderedSubset = 3, + SubsequenceContentRequired = 5, + OrderedSubsetContentRequired = 7 + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsParser/IToken.cs b/src/libraries/System.Speech/src/Internal/SrgsParser/IToken.cs new file mode 100644 index 00000000000000..dd180eb4121ca9 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsParser/IToken.cs @@ -0,0 +1,17 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Internal.SrgsParser +{ + /// + /// Interface definition for the IToken + /// + internal interface IToken : IElement + { + string Text { set; } + string Display { set; } + string Pronunciation { set; } + } + + internal delegate IToken CreateTokenCallback(IElement parent, string content, string pronumciation, string display, float reqConfidence); +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsParser/SrgsDocumentParser.cs b/src/libraries/System.Speech/src/Internal/SrgsParser/SrgsDocumentParser.cs new file mode 100644 index 00000000000000..66477e9c9cd778 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsParser/SrgsDocumentParser.cs @@ -0,0 +1,423 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Speech.Recognition; +using System.Speech.Recognition.SrgsGrammar; + +namespace System.Speech.Internal.SrgsParser +{ + internal class SrgsDocumentParser : ISrgsParser + { + #region Constructors + + internal SrgsDocumentParser(SrgsGrammar grammar) + { + _grammar = grammar; + } + + #endregion + + #region Internal Methods + + // Initializes the object from a stream containing SRGS in XML + public void Parse() + { + try + { + ProcessGrammarElement(_grammar, _parser.Grammar); + } + catch + { + // clear all the rules + _parser.RemoveAllRules(); + throw; + } + } + + #endregion + + #region Internal Properties + + public IElementFactory ElementFactory + { + set + { + _parser = value; + } + } + + #endregion + + #region Private Methods + + /// + /// Process the top level grammar element + /// + private void ProcessGrammarElement(SrgsGrammar source, IGrammar grammar) + { + grammar.Culture = source.Culture; + grammar.Mode = source.Mode; + if (source.Root != null) + { + grammar.Root = source.Root.Id; + } + grammar.TagFormat = source.TagFormat; + grammar.XmlBase = source.XmlBase; + grammar.GlobalTags = source.GlobalTags; + grammar.PhoneticAlphabet = source.PhoneticAlphabet; + + // Process child elements. + foreach (SrgsRule srgsRule in source.Rules) + { + IRule rule = ParseRule(grammar, srgsRule); + rule.PostParse(grammar); + } + grammar.AssemblyReferences = source.AssemblyReferences; + grammar.CodeBehind = source.CodeBehind; + grammar.Debug = source.Debug; + grammar.ImportNamespaces = source.ImportNamespaces; + grammar.Language = source.Language == null ? "C#" : source.Language; + grammar.Namespace = source.Namespace; + + // if add the content to the generic _scrip + _parser.AddScript(grammar, source.Script, null, -1); + // Finish all initialization - should check for the Root and the all + // rules are defined + grammar.PostParse(null); + } + + /// + /// Parse a rule + /// + private IRule ParseRule(IGrammar grammar, SrgsRule srgsRule) + { + string id = srgsRule.Id; + bool hasScript = srgsRule.OnInit != null || srgsRule.OnParse != null || srgsRule.OnError != null || srgsRule.OnRecognition != null; + IRule rule = grammar.CreateRule(id, srgsRule.Scope == SrgsRuleScope.Public ? RulePublic.True : RulePublic.False, srgsRule.Dynamic, hasScript); + + if (srgsRule.OnInit != null) + { + rule.CreateScript(grammar, id, srgsRule.OnInit, RuleMethodScript.onInit); + } + + if (srgsRule.OnParse != null) + { + rule.CreateScript(grammar, id, srgsRule.OnParse, RuleMethodScript.onParse); + } + + if (srgsRule.OnError != null) + { + rule.CreateScript(grammar, id, srgsRule.OnError, RuleMethodScript.onError); + } + + if (srgsRule.OnRecognition != null) + { + rule.CreateScript(grammar, id, srgsRule.OnRecognition, RuleMethodScript.onRecognition); + } + + // Add the code to the backend + if (srgsRule.Script.Length > 0) + { + _parser.AddScript(grammar, id, srgsRule.Script); + } + + rule.BaseClass = srgsRule.BaseClass; + + foreach (SrgsElement srgsElement in GetSortedTagElements(srgsRule.Elements)) + { + ProcessChildNodes(srgsElement, rule, rule); + } + return rule; + } + + /// + /// Parse a ruleref + /// + private IRuleRef ParseRuleRef(SrgsRuleRef srgsRuleRef, IElement parent) + { + IRuleRef ruleRef = null; + bool fSpecialRuleRef = true; + + if (srgsRuleRef == SrgsRuleRef.Null) + { + ruleRef = _parser.Null; + } + else if (srgsRuleRef == SrgsRuleRef.Void) + { + ruleRef = _parser.Void; + } + else if (srgsRuleRef == SrgsRuleRef.Garbage) + { + ruleRef = _parser.Garbage; + } + else + { + ruleRef = _parser.CreateRuleRef(parent, srgsRuleRef.Uri, srgsRuleRef.SemanticKey, srgsRuleRef.Params); + fSpecialRuleRef = false; + } + + if (fSpecialRuleRef) + { + _parser.InitSpecialRuleRef(parent, ruleRef); + } + + ruleRef.PostParse(parent); + return ruleRef; + } + + /// + /// Parse a One-Of + /// + private IOneOf ParseOneOf(SrgsOneOf srgsOneOf, IElement parent, IRule rule) + { + IOneOf oneOf = _parser.CreateOneOf(parent, rule); + + // Process child elements. + foreach (SrgsItem item in srgsOneOf.Items) + { + ProcessChildNodes(item, oneOf, rule); + } + oneOf.PostParse(parent); + return oneOf; + } + + /// + /// Parse Item + /// + private IItem ParseItem(SrgsItem srgsItem, IElement parent, IRule rule) + { + IItem item = _parser.CreateItem(parent, rule, srgsItem.MinRepeat, srgsItem.MaxRepeat, srgsItem.RepeatProbability, srgsItem.Weight); + + // Process child elements. + foreach (SrgsElement srgsElement in GetSortedTagElements(srgsItem.Elements)) + { + ProcessChildNodes(srgsElement, item, rule); + } + + item.PostParse(parent); + return item; + } + + /// + /// Parse Token + /// + private IToken ParseToken(SrgsToken srgsToken, IElement parent) + { + return _parser.CreateToken(parent, srgsToken.Text, srgsToken.Pronunciation, srgsToken.Display, -1); + } + + /// + /// Break the string into individual tokens and ParseToken() each individual token. + /// + /// Token string is a sequence of 0 or more white space delimited tokens. + /// Tokens may also be delimited by double quotes. In these cases, the double + /// quotes token must be surrounded by white space or string boundary. + /// + private void ParseText(IElement parent, string sChars, string pronunciation, string display, float reqConfidence) + { + System.Diagnostics.Debug.Assert((parent != null) && (!string.IsNullOrEmpty(sChars))); + + XmlParser.ParseText(parent, sChars, pronunciation, display, reqConfidence, new CreateTokenCallback(_parser.CreateToken)); + } + + /// + /// Parse tag + /// + private ISubset ParseSubset(SrgsSubset srgsSubset, IElement parent) + { + MatchMode matchMode = MatchMode.Subsequence; + + switch (srgsSubset.MatchingMode) + { + case SubsetMatchingMode.OrderedSubset: + matchMode = MatchMode.OrderedSubset; + break; + + case SubsetMatchingMode.OrderedSubsetContentRequired: + matchMode = MatchMode.OrderedSubsetContentRequired; + break; + + case SubsetMatchingMode.Subsequence: + matchMode = MatchMode.Subsequence; + break; + + case SubsetMatchingMode.SubsequenceContentRequired: + matchMode = MatchMode.SubsequenceContentRequired; + break; + } + return _parser.CreateSubset(parent, srgsSubset.Text, matchMode); + } + + /// + /// Parse tag + /// + private ISemanticTag ParseSemanticTag(SrgsSemanticInterpretationTag srgsTag, IElement parent) + { + ISemanticTag tag = _parser.CreateSemanticTag(parent); + + tag.Content(parent, srgsTag.Script, 0); + tag.PostParse(parent); + return tag; + } + + /// + /// ParseNameValueTag tag + /// + private IPropertyTag ParseNameValueTag(SrgsNameValueTag srgsTag, IElement parent) + { + IPropertyTag tag = _parser.CreatePropertyTag(parent); + + // Initialize the tag + tag.NameValue(parent, srgsTag.Name, srgsTag.Value); + + // Since the tag are always pushed at the end of the element list, they can be committed right away + tag.PostParse(parent); + return tag; + } + + /// + /// Calls the appropriate Parsing function based on the element type + /// + private void ProcessChildNodes(SrgsElement srgsElement, IElement parent, IRule rule) + { + Type elementType = srgsElement.GetType(); + IElement child = null; + IRule parentRule = parent as IRule; + IItem parentItem = parent as IItem; + + if (elementType == typeof(SrgsRuleRef)) + { + child = ParseRuleRef((SrgsRuleRef)srgsElement, parent); + } + else if (elementType == typeof(SrgsOneOf)) + { + child = ParseOneOf((SrgsOneOf)srgsElement, parent, rule); + } + else if (elementType == typeof(SrgsItem)) + { + child = ParseItem((SrgsItem)srgsElement, parent, rule); + } + else if (elementType == typeof(SrgsToken)) + { + child = ParseToken((SrgsToken)srgsElement, parent); + } + else if (elementType == typeof(SrgsNameValueTag)) + { + child = ParseNameValueTag((SrgsNameValueTag)srgsElement, parent); + } + else if (elementType == typeof(SrgsSemanticInterpretationTag)) + { + child = ParseSemanticTag((SrgsSemanticInterpretationTag)srgsElement, parent); + } + else if (elementType == typeof(SrgsSubset)) + { + child = ParseSubset((SrgsSubset)srgsElement, parent); + } + else if (elementType == typeof(SrgsText)) + { + SrgsText srgsText = (SrgsText)srgsElement; + string content = srgsText.Text; + + // Create the SrgsElement for the text + IElementText textChild = _parser.CreateText(parent, content); + + // Split it in pieces + ParseText(parent, content, null, null, -1f); + + if (parentRule != null) + { + _parser.AddElement(parentRule, textChild); + } + else + { + if (parentItem != null) + { + _parser.AddElement(parentItem, textChild); + } + else + { + XmlParser.ThrowSrgsException(SRID.InvalidElement); + } + } + } + else + { + System.Diagnostics.Debug.Assert(false, "Unsupported Srgs element"); + XmlParser.ThrowSrgsException(SRID.InvalidElement); + } + + // if the parent is a one of, then the children must be an Item + IOneOf parentOneOf = parent as IOneOf; + if (parentOneOf != null) + { + IItem childItem = child as IItem; + if (childItem != null) + { + _parser.AddItem(parentOneOf, childItem); + } + else + { + XmlParser.ThrowSrgsException(SRID.InvalidElement); + } + } + else + { + if (parentRule != null) + { + _parser.AddElement(parentRule, child); + } + else + { + if (parentItem != null) + { + _parser.AddElement(parentItem, child); + } + else + { + XmlParser.ThrowSrgsException(SRID.InvalidElement); + } + } + } + } + + private IEnumerable GetSortedTagElements(Collection elements) + { + if (_grammar.TagFormat == SrgsTagFormat.KeyValuePairs) + { + List list = new(); + foreach (SrgsElement element in elements) + { + if (!(element is SrgsNameValueTag)) + { + list.Add(element); + } + } + foreach (SrgsElement element in elements) + { + if ((element is SrgsNameValueTag)) + { + list.Add(element); + } + } + return list; + } + else + { + // Semantic Interpretation, the order for the tag element does not matter + return elements; + } + } + + #endregion + + #region Private Fields + + private SrgsGrammar _grammar; + + private IElementFactory _parser; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/SrgsParser/XmlParser.cs b/src/libraries/System.Speech/src/Internal/SrgsParser/XmlParser.cs new file mode 100644 index 00000000000000..7374226095f894 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/SrgsParser/XmlParser.cs @@ -0,0 +1,1922 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Globalization; +using System.Speech.Recognition.SrgsGrammar; +using System.Text; +using System.Xml; + +#pragma warning disable 56524 // The _reader and _xmlReader are not created in this module and should not be disposed + +// Remove all the check for null or empty warnings + +namespace System.Speech.Internal.SrgsParser +{ + internal class XmlParser : ISrgsParser + { + #region Constructors + + internal XmlParser(XmlReader reader, Uri uri) + { + _reader = reader; + _xmlTextReader = reader as XmlTextReader; + + // Try to guess the Uri + if (uri == null) + { + // Keep a reference to the filename and XmlTextReader if it is one. + if (_xmlTextReader != null && _xmlTextReader.BaseURI.Length > 0) + { + try + { + uri = new Uri(_xmlTextReader.BaseURI); + } +#pragma warning disable 56502 // Remove the empty catch statements warnings + catch (UriFormatException) + { + } +#pragma warning restore 56502 + } + } + + // Saves the path to the file and the file name + if (uri != null) + { + // Saves the full path to the file + _filename = !uri.IsAbsoluteUri || !uri.IsFile ? uri.OriginalString : uri.LocalPath; + + // Saves the filename without the path + int iPosSlash = _filename.LastIndexOfAny(s_slashBackSlash); + _shortFilename = iPosSlash >= 0 ? _filename.Substring(iPosSlash + 1) : _filename; + } + } + + #endregion + + #region Internal Methods + + // Initializes the object from a stream containing SRGS in XML + public void Parse() + { + try + { + bool isGrammarElementFound = false; + + while (_reader.Read()) + { + // Ignore XmlDeclaration, ProcessingInstruction, Comment, DocumentType, Entity, Notation. + if (_reader.NodeType == XmlNodeType.Element && _reader.LocalName == "grammar") + { + if (_reader.NamespaceURI != srgsNamespace) + { + ThrowSrgsException(SRID.InvalidSrgsNamespace); + } + + if (isGrammarElementFound) + { + ThrowSrgsException(SRID.GrammarDefTwice); + } + else + { + ParseGrammar(_reader, _parser.Grammar); + isGrammarElementFound = true; + } + } + } + + if (!isGrammarElementFound) + { + ThrowSrgsException(SRID.InvalidSrgs); + } + } + catch (XmlException eXml) + { + _parser.RemoveAllRules(); + ThrowSrgsExceptionWithPosition(_filename, _reader, SR.Get(SRID.InvalidXmlFormat), eXml); + } + catch (FormatException e) + { + // Adds a placeholder for the rule. + // Once all the rules and scripts are read, the placeholder will be replaced with the proper rule. + _parser.RemoveAllRules(); + ThrowSrgsExceptionWithPosition(_filename, _reader, e.Message, e.InnerException); + } + catch + { + // clear all the rules + _parser.RemoveAllRules(); + throw; + } + } + + /// + /// Break the string into individual tokens and ParseToken() each individual token. + /// + /// Token string is a sequence of 0 or more white space delimited tokens. + /// Tokens may also be delimited by double quotes. In these cases, the double + /// quotes token must be surrounded by white space or string boundary. + /// + internal static void ParseText(IElement parent, string sChars, string pronunciation, string display, float reqConfidence, CreateTokenCallback createTokens) + { + sChars = sChars.Trim(Helpers._achTrimChars); + + char[] achToken = sChars.ToCharArray(); + int iTokenEnd = 0; + int cChars = sChars.Length; + + for (int i = 0; i < achToken.Length; i = iTokenEnd + 1) + { + if (achToken[i] == ' ') // Skip white spaces + { + iTokenEnd = i; + continue; + } + + // Find the next token + if (achToken[i] == '"') + { + // Quoted string. Find end of quoted string. + iTokenEnd = ++i; + while ((iTokenEnd < cChars) && (achToken[iTokenEnd] != '"')) + { + iTokenEnd++; + } + + if (iTokenEnd >= cChars || achToken[iTokenEnd] != '"') + { + // Cannot find matching double quote. + // "Invalid double-quoted string." + XmlParser.ThrowSrgsException(SRID.InvalidQuotedString); + } + + if (iTokenEnd + 1 != cChars && achToken[iTokenEnd + 1] != ' ') + { + // Quoted token not surrounded by whitespace."); + // "Invalid double-quoted string." + XmlParser.ThrowSrgsException(SRID.InvalidQuotedString); + } + } + else + { + // Regular token. Find next white space character or end of string + iTokenEnd = i + 1; + while ((iTokenEnd < cChars) && achToken[iTokenEnd] != ' ') + { + iTokenEnd++; + } + } + + string sToken = sChars.Substring(i, iTokenEnd - i); + if (sToken.IndexOf('"') != -1) + { + // "The token string is not allowed to contain double quote character." + XmlParser.ThrowSrgsException(SRID.InvalidTokenString); + } + + // Parse the token. + if (createTokens != null) + { + createTokens(parent, sToken, pronunciation, display, reqConfidence); + } + } + } + + /// + /// Throws an Exception with the error specified by the resource ID. + /// Add the line and column number if the XmlReader is a TextReader + /// + internal static void ThrowSrgsException(SRID id, params object[] args) + { + throw new FormatException(SR.Get(id, args)); + } + + /// + /// Throws an Exception with the error specified by the resource ID. + /// Add the line and column number if the XmlReader is a TextReader + /// + internal static void ThrowSrgsExceptionWithPosition(string filename, XmlReader xmlReader, string sError, Exception innerException) + { + // Add the line and column number if the XmlReader is a XmlTextReader + XmlTextReader xmlTextReader = xmlReader as XmlTextReader; + if (xmlTextReader != null) + { + string sLine = SR.Get(SRID.Line); + string sPosition = SR.Get(SRID.Position); + int line = xmlTextReader.LineNumber; + int position = xmlTextReader.LinePosition; + if (filename == null) + { + sError += string.Format(CultureInfo.InvariantCulture, " [{0}={1}, {2}={3}]", sLine, line, sPosition, position); + } + else + { + sError = string.Format(CultureInfo.InvariantCulture, "{0}({1},{2}): error : {3}", filename, line, position, sError); + } + } + throw new FormatException(sError, innerException); + } + + #endregion + + #region Internal Methods + + // Implementation of the internal interface ISrgsParser + public IElementFactory ElementFactory + { + set + { + _parser = value; + } + } + + #endregion + + #region Internal fields + + internal const string emptyNamespace = ""; + + internal const string xmlNamespace = "http://www.w3.org/XML/1998/namespace"; + + internal const string srgsNamespace = "http://www.w3.org/2001/06/grammar"; + + internal const string sapiNamespace = "http://schemas.microsoft.com/Speech/2002/06/SRGSExtensions"; + + #endregion + + #region Private Type + + // Must be a class to be used with generics + [Serializable] + internal class ForwardReference + { + internal ForwardReference(string name, string value) + { + _name = name; + _value = value; + } + + internal string _name; + internal string _value; + } + #endregion + + #region Private Methods + + // The perf gain using .Lengh == 0 other readability is not worth it fixing this FxCop issue + private void ParseGrammar(XmlReader reader, IGrammar grammar) + { + string sAlphabet = null; + string sLanguage = null; + string sNamespace = null; + string sVersion = null; + GrammarType grammarType = GrammarType.VoiceGrammar; + + // Process attributes. + while (reader.MoveToNextAttribute()) + { + bool isInvalidAttribute = false; + + switch (reader.NamespaceURI) + { + case emptyNamespace: + switch (reader.LocalName) + { + case "root": + if (grammar.Root == null) + { + grammar.Root = reader.Value; + } + else + { + ThrowSrgsException(SRID.RootRuleAlreadyDefined); + } + break; + + case "version": + CheckForDuplicates(ref sVersion, reader); + if (sVersion != "1.0") + { + ThrowSrgsException(SRID.InvalidVersion); + } + + break; + + case "tag-format": + switch (reader.Value) + { + case "semantics/1.0": + grammar.TagFormat = SrgsTagFormat.W3cV1; + _hasTagFormat = true; + break; + + case "semantics-ms/1.0": + grammar.TagFormat = SrgsTagFormat.MssV1; + _hasTagFormat = true; + break; + + case "properties-ms/1.0": + grammar.TagFormat = SrgsTagFormat.KeyValuePairs; + _hasTagFormat = true; + break; + + case "": + break; + + default: + ThrowSrgsException(SRID.InvalidTagFormat); + break; + } + break; + + case "mode": + switch (reader.Value) + { + case "voice": + grammar.Mode = GrammarType.VoiceGrammar; + break; + + case "dtmf": + grammarType = grammar.Mode = GrammarType.DtmfGrammar; + break; + + default: + ThrowSrgsException(SRID.InvalidGrammarMode); + break; + } + break; + + default: + isInvalidAttribute = true; + break; + } + break; + + case xmlNamespace: + switch (reader.LocalName) + { + case "lang": + string language = reader.Value; + try + { + grammar.Culture = _langId = new CultureInfo(language); + } + catch (ArgumentException) + { + // Unknown Culture info, fall back to the base culture. + int pos = reader.Value.IndexOf("-", StringComparison.Ordinal); + if (pos > 0) + { + grammar.Culture = _langId = new CultureInfo(reader.Value.Substring(0, pos)); + } + else + { + throw; + } + } + break; + + case "base": + grammar.XmlBase = new Uri(reader.Value); + break; + } + break; + + case sapiNamespace: + switch (reader.LocalName) + { + case "alphabet": + CheckForDuplicates(ref sAlphabet, reader); + switch (sAlphabet) + { + case "ipa": + grammar.PhoneticAlphabet = AlphabetType.Ipa; + break; + + case "sapi": + case "x-sapi": + case "x-microsoft-sapi": + grammar.PhoneticAlphabet = AlphabetType.Sapi; + break; + + case "ups": + case "x-ups": + case "x-microsoft-ups": + grammar.PhoneticAlphabet = AlphabetType.Ups; + break; + + default: + ThrowSrgsException(SRID.UnsupportedPhoneticAlphabet, reader.Value); + break; + } + break; + + case "language": + CheckForDuplicates(ref sLanguage, reader); + if (sLanguage == "C#" || sLanguage == "VB.Net") + { + grammar.Language = sLanguage; + } + else + { + ThrowSrgsException(SRID.UnsupportedLanguage, reader.Value); + } + break; + + case "namespace": + CheckForDuplicates(ref sNamespace, reader); + if (string.IsNullOrEmpty(sNamespace)) + { + ThrowSrgsException(SRID.NoName1, "namespace"); + } + grammar.Namespace = sNamespace; + break; + + case "codebehind": + if (reader.Value.Length == 0) + { + ThrowSrgsException(SRID.NoName1, "codebehind"); + } + grammar.CodeBehind.Add(reader.Value); + break; + + case "debug": + bool f; + if (bool.TryParse(reader.Value, out f)) + { + grammar.Debug = f; + } + break; + default: + isInvalidAttribute = true; + break; + } + break; + } + if (isInvalidAttribute) + { + ThrowSrgsException(SRID.InvalidGrammarAttribute, reader.Name); + } + } + + // The version attribute is required for the grammar element + if (sVersion == null) + { + ThrowSrgsException(SRID.MissingRequiredAttribute, "version", "grammar"); + } + + // The langId is require for voice grammars + if (_langId == null) + { + if (grammarType == GrammarType.VoiceGrammar) + { + ThrowSrgsException(SRID.MissingRequiredAttribute, "xml:lang", "grammar"); + } + else + { + _langId = CultureInfo.CurrentUICulture; + } + } + + // Process child elements. + ProcessRulesAndScriptsNodes(reader, grammar); + + // Validate all the scripts elements + ValidateScripts(); + + // Add all the scripts to the rules + foreach (ForwardReference script in _scripts) + { + _parser.AddScript(grammar, script._name, script._value); + } + // Finish all initialization - should check for the Root and the all + // rules are defined + grammar.PostParse(null); + } + + // The perf gain using .Lengh == 0 other readability is not worth it fixing this FxCop issue + private IRule ParseRule(IGrammar grammar, XmlReader reader) + { + string id = null; + string scope = null; + string dynamic = null; + RulePublic publicRule = RulePublic.NotSet; + RuleDynamic ruleDynamic = RuleDynamic.NotSet; + + string sBaseClass = null; + string sInit = null; + string sParse = null; + string sError = null; + string sRecognition = null; + + while (reader.MoveToNextAttribute()) + { + bool isInvalidAttribute = false; + + switch (reader.NamespaceURI) + { + case emptyNamespace: + switch (reader.LocalName) + { + case "id": + CheckForDuplicates(ref id, reader); + break; + + case "scope": + CheckForDuplicates(ref scope, reader); + switch (scope) + { + case "private": + publicRule = RulePublic.False; + break; + + case "public": + publicRule = RulePublic.True; + break; + + default: + ThrowSrgsException(SRID.InvalidRuleScope); + break; + } + break; + + default: + isInvalidAttribute = true; + break; + } + break; + + case sapiNamespace: + switch (reader.LocalName) + { + case "dynamic": + CheckForDuplicates(ref dynamic, reader); + switch (dynamic) + { + case "true": + ruleDynamic = RuleDynamic.True; + break; + + case "false": + ruleDynamic = RuleDynamic.False; + break; + + default: + ThrowSrgsException(SRID.InvalidDynamicSetting); + break; + } + break; + + case "baseclass": + CheckForDuplicates(ref sBaseClass, reader); + if (string.IsNullOrEmpty(sBaseClass)) + { + ThrowSrgsException(SRID.NoName1, "baseclass"); + } + break; + + case "onInit": + CheckForDuplicates(ref sInit, reader); + sInit = reader.Value; + break; + + case "onParse": + CheckForDuplicates(ref sParse, reader); + sParse = reader.Value; + break; + + case "onError": + CheckForDuplicates(ref sError, reader); + sError = reader.Value; + break; + + case "onRecognition": + CheckForDuplicates(ref sRecognition, reader); + break; + default: + isInvalidAttribute = true; + break; + } + break; + } + if (isInvalidAttribute) + { + ThrowSrgsException(SRID.InvalidRuleAttribute, reader.Name); + } + } + + if (string.IsNullOrEmpty(id)) + { + ThrowSrgsException(SRID.NoRuleId); + } + + if (sInit != null && publicRule != RulePublic.True) + { + XmlParser.ThrowSrgsException(SRID.OnInitOnPublicRule, "OnInit", id); + } + + if (sRecognition != null && publicRule != RulePublic.True) + { + XmlParser.ThrowSrgsException(SRID.OnInitOnPublicRule, "OnRecognition", id); + } + + ValidateRuleId(id); + + bool hasScript = sInit != null || sParse != null || sError != null || sRecognition != null; + IRule rule = grammar.CreateRule(id, publicRule, ruleDynamic, hasScript); + + if (!string.IsNullOrEmpty(sInit)) + { + rule.CreateScript(grammar, id, sInit, RuleMethodScript.onInit); + } + + if (!string.IsNullOrEmpty(sParse)) + { + rule.CreateScript(grammar, id, sParse, RuleMethodScript.onParse); + } + + if (!string.IsNullOrEmpty(sError)) + { + rule.CreateScript(grammar, id, sError, RuleMethodScript.onError); + } + + if (!string.IsNullOrEmpty(sRecognition)) + { + rule.CreateScript(grammar, id, sRecognition, RuleMethodScript.onRecognition); + } + + rule.BaseClass = sBaseClass; + _rules.Add(id); + + if (!ProcessChildNodes(reader, rule, rule, "rule")) + { + if (ruleDynamic != RuleDynamic.True) + { + ThrowSrgsException(SRID.InvalidEmptyRule, "rule", id); + } + } + return rule; + } + + // The perf gain using .Lengh == 0 other readability is not worth it fixing this FxCop issue + private IRuleRef ParseRuleRef(IElement parent, XmlReader reader) + { + IRuleRef ruleRef = null; + + string sAlias = null; + string sParams = null; + string uri = null; + + while (reader.MoveToNextAttribute()) + { + bool isInvalidAttribute = false; + + switch (reader.NamespaceURI) + { + case emptyNamespace: + switch (reader.LocalName) + { + case "uri": + // Check that the uri pointed to in the ruleref does not point this file + // in srgs.xml: ... = 0) + { + ThrowSrgsException(SRID.InvalidTokenString); + } + + return _parser.CreateToken(parent, content, sPronunciation, sDisplay, reqConfidence); + } + + /// + /// Break the string into individual tokens and ParseToken() each individual token. + /// + /// Token string is a sequence of 0 or more white space delimited tokens. + /// Tokens may also be delimited by double quotes. In these cases, the double + /// quotes token must be surrounded by white space or string boundary. + /// + private void ParseText(IElement parent, string sChars, string pronunciation, string display, float reqConfidence) + { + System.Diagnostics.Debug.Assert((parent != null) && (!string.IsNullOrEmpty(sChars))); + + ParseText(parent, sChars, pronunciation, display, reqConfidence, new CreateTokenCallback(_parser.CreateToken)); + } + + private IElement ParseTag(IElement parent, XmlReader reader) + { + string content = GetTagContent(parent, reader); + + //Return an empty tag if the content is empty + if (string.IsNullOrEmpty(content)) + { + return _parser.CreateSemanticTag(parent); + } + + if (_parser.Grammar.TagFormat != SrgsTagFormat.KeyValuePairs) + { + ISemanticTag semanticTag = _parser.CreateSemanticTag(parent); + + semanticTag.Content(parent, content, 0); + return semanticTag; + } + + System.Diagnostics.Debug.Assert(_parser.Grammar.TagFormat == SrgsTagFormat.KeyValuePairs); + + IPropertyTag propertyTag = _parser.CreatePropertyTag(parent); ; + string name; + object value; + ParsePropertyTag(content, out name, out value); + propertyTag.NameValue(parent, name, value); + return propertyTag; + } + + private string GetTagContent(IElement parent, XmlReader reader) + { + // A tag format must be specified in the grammar header + if (!_hasTagFormat) + { + ThrowSrgsException(SRID.MissingTagFormat); + } + + while (reader.MoveToNextAttribute()) + { + bool isInvalidAttribute = false; + + switch (reader.NamespaceURI) + { + case emptyNamespace: + case sapiNamespace: + isInvalidAttribute = true; + break; + } + if (isInvalidAttribute) + { + ThrowSrgsException(SRID.InvalidTagAttribute, reader.Name); + } + } + + return GetStringContent(reader).Trim(Helpers._achTrimChars); + } + + /// + /// Parse the lexicon Element + /// + /// Attributes: + /// uri: required + /// type: optional + /// + private static void ParseLexicon(XmlReader reader) + { + bool isInvalidAttribute = false; + bool fFoundUri = false; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "uri": + fFoundUri = true; + break; + + case "type": + break; + + default: + isInvalidAttribute = true; + break; + } + + if (isInvalidAttribute) + { + ThrowSrgsException(SRID.InvalidLexiconAttribute, reader.Name); + } + } + + if (!fFoundUri) + { + ThrowSrgsException(SRID.MissingRequiredAttribute, "uri", "lexicon"); + } + } + + /// + /// Parse the Meta Element + /// + /// Attributes: + /// name and http-equiv: one or the other but not both + /// content: required + /// + private static void ParseMeta(XmlReader reader) + { + bool fFoundContent = false; + bool fFoundNameOrEquiv = false; + bool isInvalidAttribute = false; + + while (reader.MoveToNextAttribute()) + { + switch (reader.LocalName) + { + case "name": + case "http-equiv": + if (fFoundNameOrEquiv) + { + ThrowSrgsException(SRID.MetaNameHTTPEquiv); + } + fFoundNameOrEquiv = true; + break; + + case "content": + isInvalidAttribute = fFoundContent; + fFoundContent = true; + break; + + default: + isInvalidAttribute = true; + break; + } + + if (isInvalidAttribute) + { + ThrowSrgsException(SRID.InvalidMetaAttribute, reader.Name); + } + } + + if (!fFoundContent) + { + ThrowSrgsException(SRID.MissingRequiredAttribute, "content", "meta"); + } + if (!fFoundNameOrEquiv) + { + ThrowSrgsException(SRID.MissingRequiredAttribute, "name or http-equiv", "meta"); + } + } + + private void ParseScript(XmlReader reader, IGrammar grammar) + { + int line = _filename != null ? _xmlTextReader.LineNumber : -1; + string sRule = null; + + while (reader.MoveToNextAttribute()) + { + switch (reader.NamespaceURI) + { + case emptyNamespace: + ThrowSrgsException(SRID.InvalidScriptAttribute); + break; + + case sapiNamespace: + switch (reader.LocalName) + { + case "rule": + if (string.IsNullOrEmpty(sRule)) + { + sRule = reader.Value; + } + else + { + ThrowSrgsException(SRID.RuleAttributeDefinedMultipeTimes); + } + break; + + default: + ThrowSrgsException(SRID.InvalidScriptAttribute); + break; + } + break; + } + } + // if no rule or method defined - add the content to the generic _scrip + if (string.IsNullOrEmpty(sRule)) + { + _parser.AddScript(grammar, GetStringContent(reader), _filename, line); + } + else + { + // Adds a placeholder for the rule. + // Once all the rules and scripts are read, the placeholder will be replaced with the proper rule. + _scripts.Add(new ForwardReference(sRule, _parser.AddScript(grammar, sRule, GetStringContent(reader), _filename, line))); + } + } + + private static void ParseAssemblyReference(XmlReader reader, IGrammar grammar) + { + while (reader.MoveToNextAttribute()) + { + switch (reader.NamespaceURI) + { + case emptyNamespace: + ThrowSrgsException(SRID.InvalidScriptAttribute); + break; + + case sapiNamespace: + switch (reader.LocalName) + { + case "assembly": + grammar.AssemblyReferences.Add(reader.Value); + break; + + default: + ThrowSrgsException(SRID.InvalidAssemblyReferenceAttribute); + break; + } + break; + } + } + } + + private static void ParseImportNamespace(XmlReader reader, IGrammar grammar) + { + while (reader.MoveToNextAttribute()) + { + switch (reader.NamespaceURI) + { + case emptyNamespace: + ThrowSrgsException(SRID.InvalidScriptAttribute); + break; + + case sapiNamespace: + switch (reader.LocalName) + { + case "namespace": + grammar.ImportNamespaces.Add(reader.Value); + break; + + default: + ThrowSrgsException(SRID.InvalidImportNamespaceAttribute); + break; + } + break; + } + } + } + + private bool ProcessChildNodes(XmlReader reader, IElement parent, IRule rule, string parentName) + { + bool fFirstElement = true; + + // Create a list of name value tags for this scope + List tags = null; + + reader.MoveToElement(); // Move to containing parent of attributes + if (!reader.IsEmptyElement) + { + reader.Read(); // Move to first child parent + while (reader.NodeType != XmlNodeType.EndElement) // Process each child parent while not at end parent + { + bool isInvalidNode = false; + + if (reader.NodeType == XmlNodeType.Element) + { + // Null if no children are allowed + if (parent == null) + { + ThrowSrgsException(SRID.InvalidNotEmptyElement, parentName); + } + + IElement child = null; + switch (reader.NamespaceURI) + { + case srgsNamespace: + + switch (reader.LocalName) + { + case "example": + if (!(parent is IRule) || !fFirstElement) + { + ThrowSrgsException(SRID.InvalidExampleOrdering); + } + else + { + reader.Skip(); + continue; + } + + break; + + case "ruleref": + child = ParseRuleRef(parent, reader); + break; + + case "one-of": + child = ParseOneOf(parent, rule, reader); + break; + + case "item": + child = ParseItem(parent, rule, reader); + break; + + case "token": + child = ParseToken(parent, reader); + break; + + case "tag": + child = ParseTag(parent, reader); + IPropertyTag tag = child as IPropertyTag; + if (tag != null) + { + // The tag list is delayed as it might not be necessary + if (tags == null) + { + tags = new List(); + } + tags.Add(tag); + } + break; + + case "rule": + default: + isInvalidNode = true; + break; + } + break; + + case sapiNamespace: + switch (reader.LocalName) + { + case "subset": + if ((parent is IRule) || (parent is IItem)) + { + child = ParseSubset(parent, reader); + } + else + { + isInvalidNode = true; + } + break; + + default: + isInvalidNode = true; + break; + } + break; + + default: + reader.Skip(); // Skip over parents in unknown namespaces + break; + } + isInvalidNode = ParseChildNodeElement(parent, isInvalidNode, child); + fFirstElement = false; + } + else if (reader.NodeType == XmlNodeType.Text || reader.NodeType == XmlNodeType.CDATA) + { + // Null if no children are allowed + if (parent == null) + { + ThrowSrgsException(SRID.InvalidNotEmptyElement, parentName); + } + + isInvalidNode = ParseChildNodeText(reader, parent); + fFirstElement = false; + } + else + { + reader.Skip(); // Skip over non-parent/text node types + } + + if (isInvalidNode) + { + ThrowSrgsException(SRID.InvalidElement, reader.Name); + } + } + } + + reader.Read(); // Move to next sibling + + // Generate the tags for this scope + if (tags != null) + { + foreach (IPropertyTag tag in tags) + { + tag.PostParse(parent); + } + } + return !fFirstElement; + } + + private bool ParseChildNodeText(XmlReader reader, IElement parent) + { + bool isInvalidNode = false; + string content = reader.Value; + + // Create the SrgsElement for the text + IElementText srgsText = _parser.CreateText(parent, content); + + // Split it in pieces + ParseText(parent, content, null, null, -1f); + + // if the parent is a one of, then the children must be an Item + if (parent is IOneOf) + { + isInvalidNode = true; + } + else + { + IRule parentRule = parent as IRule; + if (parentRule != null) + { + _parser.AddElement(parentRule, srgsText); + } + else + { + IItem parentItem = parent as IItem; + if (parentItem != null) + { + _parser.AddElement(parentItem, srgsText); + } + else + { + isInvalidNode = true; + } + } + } + + reader.Read(); + return isInvalidNode; + } + + private bool ParseChildNodeElement(IElement parent, bool isInvalidNode, IElement child) + { + // The child parent has not been processed yet + if (child != null) + { + // if the parent is a one of, then the children must be an Item + IOneOf parentOneOf = parent as IOneOf; + if (parentOneOf != null) + { + IItem childItem = child as IItem; + if (childItem != null) + { + _parser.AddItem(parentOneOf, childItem); + } + else + { + isInvalidNode = true; + } + } + else + { + IRule parentRule = parent as IRule; + if (parentRule != null) + { + _parser.AddElement(parentRule, child); + } + else + { + IItem parentItem = parent as IItem; + if (parentItem != null) + { + _parser.AddElement(parentItem, child); + } + else + { + isInvalidNode = true; + } + } + } + } + + return isInvalidNode; + } + + private void ProcessRulesAndScriptsNodes(XmlReader reader, IGrammar grammar) + { + bool fProcessedRules = false; + + // Move to containing element of attributes + reader.MoveToElement(); + if (!reader.IsEmptyElement) + { + // Move to first child element + reader.Read(); + + // Process each child element while not at end element + while (reader.NodeType != XmlNodeType.EndElement) + { + bool isInvalidNode = false; + + if (reader.NodeType == XmlNodeType.Element) + { + switch (reader.NamespaceURI) + { + case srgsNamespace: + switch (reader.LocalName) + { + case "lexicon": + if (fProcessedRules) + { + ThrowSrgsException(SRID.InvalidGrammarOrdering); + } + ParseLexicon(reader); + break; + + case "meta": + if (fProcessedRules) + { + ThrowSrgsException(SRID.InvalidGrammarOrdering); + } + ParseMeta(reader); + break; + + case "metadata": + if (fProcessedRules) + { + ThrowSrgsException(SRID.InvalidGrammarOrdering); + } + reader.Skip(); + break; + + case "rule": + IRule rule = ParseRule(grammar, reader); + rule.PostParse(grammar); + fProcessedRules = true; + break; + + case "tag": + if (fProcessedRules || _hasTagFormat && grammar.TagFormat != SrgsTagFormat.W3cV1) + { + ThrowSrgsException(SRID.InvalidGrammarOrdering); + } + grammar.GlobalTags.Add(GetTagContent(grammar, reader)); + break; + + default: + isInvalidNode = true; + break; + } + break; + + case sapiNamespace: + switch (reader.LocalName) + { + case "script": + ParseScript(reader, grammar); + fProcessedRules = true; + break; + + case "assemblyReference": + ParseAssemblyReference(reader, grammar); + fProcessedRules = true; + break; + + case "importNamespace": + ParseImportNamespace(reader, grammar); + fProcessedRules = true; + break; + default: + isInvalidNode = true; + break; + } + break; + + default: + // Skip over elements in unknown namespaces + reader.Skip(); + break; + } + } + else + { + if (reader.NodeType == XmlNodeType.Text) + { + ThrowSrgsException(SRID.InvalidElement, "text"); + } + // Skip over non-element/text node types + reader.Skip(); + } + + if (isInvalidNode) + { + ThrowSrgsException(SRID.InvalidElement, reader.Name); + } + } + } + + // Move to next sibling + reader.Read(); + } + + private static string GetStringContent(XmlReader reader) + { + StringBuilder sb = new(); + + reader.MoveToElement(); // Move to containing element of attributes + if (!reader.IsEmptyElement) + { + reader.Read(); // Move to first child element + while (reader.NodeType != XmlNodeType.EndElement) // Process each child element while not at end element + { + sb.Append(reader.ReadString()); + + bool isInvalidNode = false; + + if (reader.NodeType == XmlNodeType.Element) + { + switch (reader.NamespaceURI) + { + case srgsNamespace: + case sapiNamespace: + isInvalidNode = true; + break; + + default: + reader.Skip(); // Skip over elements in unknown namespaces + break; + } + } + else if (reader.NodeType != XmlNodeType.EndElement) + { + reader.Skip(); // Skip over non-end element node types + } + + if (isInvalidNode) + { + ThrowSrgsException(SRID.InvalidElement, reader.Name); + } + } + } + + reader.Read(); // Move to next sibling + return sb.ToString(); + } + private static void ParsePropertyTag(string sTag, out string name, out object value) + { + // Default value + name = null; + value = string.Empty; + + // Name= pszValue = null vValue = VT_EMPTY + // Name="string" pszValue = "string" vValue = VT_EMPTY + // Name=true pszValue = null vValue = VT_BOOL + // Name=123 pszValue = null vValue = VT_I4 + // Name=3.14 pszValue = null vValue = VT_R8 + int iEqual = sTag.IndexOf('='); + + if (iEqual >= 0) + { + // Set property name + name = sTag.Substring(0, iEqual).Trim(Helpers._achTrimChars); + iEqual++; + } + else + { + iEqual = 0; + } + + // Set property value + int cLenProperty = sTag.Length; + + if (iEqual < cLenProperty) + { + if (sTag[iEqual] == '"') + { + // Name="string" + iEqual++; + + int iEndQuote = sTag.IndexOf('"', iEqual + 1); + + if (iEndQuote + 1 != cLenProperty) + { + // Invalid string value + XmlParser.ThrowSrgsException(SRID.IncorrectAttributeValue, name, sTag.Substring(iEqual)); + } + + value = sTag.Substring(iEqual, iEndQuote - iEqual); + } + else + { + string sValue = sTag.Substring(iEqual); + int iValue; + + if (int.TryParse(sValue, out iValue)) + { + // propInfo.pszValue = null + // Name=123 + // propInfo.vValue = VT_I4 + value = iValue; + } + else + { + double flValue; + + if (double.TryParse(sValue, out flValue)) + { + // propInfo.pszValue = null + // propInfo.vValue = VT_R8 + value = flValue; + } + else + { + bool fValue; + + if (bool.TryParse(sValue, out fValue)) + { + // Name=true + // propInfo.pszValue = null + // propInfo.vValue = VT_BOOL + value = fValue; + } + else + { + XmlParser.ThrowSrgsException(SRID.InvalidNameValueProperty, name, sValue); + } + } + } + } + } + } + + /// + /// Convert integer range string to MinValue and MaxValue. + /// For n- format, MaxValue = Int32.MaxValue + /// Valid formats: n|n-|n-m n,m integers + /// integer = [whitespace] [+] [0[{x|X}]] [digits] + /// + private static void SetRepeatValues(string repeat, out int minRepeat, out int maxRepeat) + { + minRepeat = maxRepeat = 1; + if (!string.IsNullOrEmpty(repeat)) + { + int sep = repeat.IndexOf("-", StringComparison.Ordinal); + + if (sep < 0) + { + int minmax = Convert.ToInt32(repeat, CultureInfo.InvariantCulture); + + // Limit the range of valid values + if (minmax < 0 || minmax > 255) + { + XmlParser.ThrowSrgsException(SRID.MinMaxOutOfRange, minmax, minmax); + } + minRepeat = maxRepeat = minmax; + } + else if (0 < sep) + { + minRepeat = Convert.ToInt32(repeat.Substring(0, sep), CultureInfo.InvariantCulture); + if (sep < (repeat.Length - 1)) + { + maxRepeat = Convert.ToInt32(repeat.Substring(sep + 1), CultureInfo.InvariantCulture); + } + else + { + maxRepeat = int.MaxValue; + } + // Limit the range of valid values + if (minRepeat < 0 || minRepeat > 255 || (maxRepeat != int.MaxValue && (maxRepeat < 0 || maxRepeat > 255))) + { + XmlParser.ThrowSrgsException(SRID.MinMaxOutOfRange, minRepeat, maxRepeat); + } + + // Max be greater or equal to min + if (minRepeat > maxRepeat) + { + throw new ArgumentException(SR.Get(SRID.MinGreaterThanMax)); + } + } + else + { + ThrowSrgsException(SRID.InvalidItemRepeatAttribute, repeat); + } + } + else + { + ThrowSrgsException(SRID.InvalidItemAttribute2); + } + } + + private static void CheckForDuplicates(ref string dest, XmlReader reader) + { + if (!string.IsNullOrEmpty(dest)) + { + StringBuilder attribute = new(reader.LocalName); + if (reader.NamespaceURI.Length > 0) + { + attribute.Append(reader.NamespaceURI); + attribute.Append(':'); + } + XmlParser.ThrowSrgsException(SRID.InvalidAttributeDefinedTwice, reader.Value, attribute); + } + dest = reader.Value; + } + + // Throws exception if the specified Rule does not have a valid Id. + internal static void ValidateRuleId(string id) + { + Helpers.ThrowIfEmptyOrNull(id, nameof(id)); + + if (!XmlReader.IsName(id) || (id == "NULL") || (id == "VOID") || (id == "GARBAGE") || (id.IndexOfAny(s_invalidRuleIdChars) != -1)) + { + XmlParser.ThrowSrgsException(SRID.InvalidRuleId, id); + } + } + + private void ValidateRulerefNotPointingToSelf(string uri) + { + // Check that the uri pointed to in the ruleref does not point this file + // in srgs.xml: ... + if (_filename != null) + { + if (uri.IndexOf(_shortFilename, StringComparison.Ordinal) == 0 && (uri.Length > _shortFilename.Length && uri[_shortFilename.Length] == '#' || uri.Length == _shortFilename.Length)) + { + ThrowSrgsException(SRID.InvalidRuleRefSelf); + } + } + } + + private void ValidateScripts() + { + // Check that the rule and methods are defined for a script + foreach (ForwardReference script in _scripts) + { + if (!_rules.Contains(script._name)) + { + ThrowSrgsException(SRID.InvalidScriptDefinition, script._name); + } + } + // Validate for unique rule names + List ruleNames = new(); + + foreach (string rule in _rules) + { + if (ruleNames.Contains(rule)) + { + XmlParser.ThrowSrgsException(SRID.RuleAttributeDefinedMultipeTimes, rule); + } + + ruleNames.Add(rule); + } + } + + #endregion + + #region Private Fields + + private IElementFactory _parser; + + // Avoid to do a cast many times + private XmlReader _reader; + + // Avoid to do a cast many times + private XmlTextReader _xmlTextReader; + + // Save the filename + private string _filename; + + // Save the filename without the path + private string _shortFilename; + + // Language Id for this grammar + private CultureInfo _langId; + + // Has the Grammar element a FormatTag + private bool _hasTagFormat; + + // All defined rules + private List _rules = new(); + + private List _scripts = new(); + + private static readonly char[] s_invalidRuleIdChars = new char[] { '.', ':', '-', '#' }; + + private static readonly char[] s_slashBackSlash = new char[] { '\\', '/' }; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/StreamMarshaler.cs b/src/libraries/System.Speech/src/Internal/StreamMarshaler.cs new file mode 100644 index 00000000000000..4742ff49787c4f --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/StreamMarshaler.cs @@ -0,0 +1,173 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.IO; +using System.Runtime.InteropServices; +using System.Text; + +namespace System.Speech.Internal +{ + internal sealed class StreamMarshaler : IDisposable + { + #region Constructors + + internal StreamMarshaler() + { + } + + internal StreamMarshaler(Stream stream) + { + _stream = stream; + } + + public void Dispose() + { + _safeHMem.Dispose(); + } + + #endregion + + #region internal Methods + internal void ReadArray(T[] ao, int c) + { + Type type = typeof(T); + int sizeOfOne = Marshal.SizeOf(type); + int sizeObject = sizeOfOne * c; + byte[] ab = Helpers.ReadStreamToByteArray(_stream, sizeObject); + + IntPtr buffer = _safeHMem.Buffer(sizeObject); + + Marshal.Copy(ab, 0, buffer, sizeObject); + for (int i = 0; i < c; i++) + { + ao[i] = (T)Marshal.PtrToStructure((IntPtr)((long)buffer + i * sizeOfOne), type); + } + } + + internal void WriteArray(T[] ao, int c) + { + Type type = typeof(T); + int sizeOfOne = Marshal.SizeOf(type); + int sizeObject = sizeOfOne * c; + byte[] ab = new byte[sizeObject]; + IntPtr buffer = _safeHMem.Buffer(sizeObject); + + for (int i = 0; i < c; i++) + { + Marshal.StructureToPtr(ao[i], (IntPtr)((long)buffer + i * sizeOfOne), false); + } + + Marshal.Copy(buffer, ab, 0, sizeObject); + _stream.Write(ab, 0, sizeObject); + } + + internal void ReadArrayChar(char[] ach, int c) + { + int sizeObject = c * Helpers._sizeOfChar; + + if (sizeObject > 0) + { + byte[] ab = Helpers.ReadStreamToByteArray(_stream, sizeObject); + + IntPtr buffer = _safeHMem.Buffer(sizeObject); + + Marshal.Copy(ab, 0, buffer, sizeObject); + Marshal.Copy(buffer, ach, 0, c); + } + } + +#pragma warning disable 56518 // BinaryReader can't be disposed because underlying stream still in use. + + // Helper method to read a Unicode string from a stream. + internal string ReadNullTerminatedString() + { + BinaryReader br = new(_stream, Encoding.Unicode); + StringBuilder stringBuilder = new(); + + while (true) + { + char c = br.ReadChar(); + if (c == '\0') + { + break; + } + else + { + stringBuilder.Append(c); + } + } + return stringBuilder.ToString(); + } + +#pragma warning restore 56518 + + internal void WriteArrayChar(char[] ach, int c) + { + int sizeObject = c * Helpers._sizeOfChar; + + if (sizeObject > 0) + { + byte[] ab = new byte[sizeObject]; + IntPtr buffer = _safeHMem.Buffer(sizeObject); + + Marshal.Copy(ach, 0, buffer, c); + Marshal.Copy(buffer, ab, 0, sizeObject); + _stream.Write(ab, 0, sizeObject); + } + } + + internal void ReadStream(object o) + { + int sizeObject = Marshal.SizeOf(o.GetType()); + byte[] ab = Helpers.ReadStreamToByteArray(_stream, sizeObject); + + IntPtr buffer = _safeHMem.Buffer(sizeObject); + + Marshal.Copy(ab, 0, buffer, sizeObject); + Marshal.PtrToStructure(buffer, o); + } + + internal void WriteStream(object o) + { + int sizeObject = Marshal.SizeOf(o.GetType()); + byte[] ab = new byte[sizeObject]; + IntPtr buffer = _safeHMem.Buffer(sizeObject); + + Marshal.StructureToPtr(o, buffer, false); + Marshal.Copy(buffer, ab, 0, sizeObject); + + // Read the Header + _stream.Write(ab, 0, sizeObject); + } + + #endregion + + #region internal Fields + + internal Stream Stream + { + get + { + return _stream; + } + } + + internal uint Position + { + set + { + _stream.Position = value; + } + } + + #endregion + + #region Private Fields + + private HGlobalSafeHandle _safeHMem = new(); + + private Stream _stream; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/StringBlob.cs b/src/libraries/System.Speech/src/Internal/StringBlob.cs new file mode 100644 index 00000000000000..d80d439bcee80f --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/StringBlob.cs @@ -0,0 +1,219 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; + +namespace System.Speech.Internal +{ + internal class StringBlob + { + #region Constructors + + internal StringBlob() + { + } + + internal StringBlob(char[] pszStringArray) + { + int cch = pszStringArray.Length; + if (cch > 0) + { + // First string is always empty. + if (pszStringArray[0] != 0) + { + throw new FormatException(SR.Get(SRID.RecognizerInvalidBinaryGrammar)); + } + + // First pass to copy data and count strings. + for (int iPos = 1, iEnd = cch, iStart = 1; iPos < iEnd; iPos++) + { + if (pszStringArray[iPos] == '\0') + { + string sWord = new(pszStringArray, iStart, iPos - iStart); + _refStrings.Add(sWord); + _offsetStrings.Add(_totalStringSizes); + _strings.Add(sWord, ++_cWords); + _totalStringSizes += sWord.Length + 1; + iStart = iPos + 1; + } + } + } + } + + #endregion + + #region internal Methods + + // + // The ID for a null string is always 0, the ID for subsequent strings is the + // index of the string + 1; + // + internal int Add(string psz, out int idWord) + { + int offset = 0; + idWord = 0; + if (!string.IsNullOrEmpty(psz)) + { + // Check if the string is already in the table + if (!_strings.TryGetValue(psz, out idWord)) + { + System.Diagnostics.Debug.Assert(_strings.Count == _refStrings.Count); + + // No add it to the string table + idWord = ++_cWords; + offset = _totalStringSizes; + _refStrings.Add(psz); + _offsetStrings.Add(offset); + _strings.Add(psz, _cWords); + _totalStringSizes += psz.Length + 1; + } + else + { + offset = OffsetFromId(idWord); + } + } + + return offset; + } + + // Returns idWord; use IndexFromId to recover string offset + internal int Find(string psz) + { + // Compatibility the SAPI version + if (string.IsNullOrEmpty(psz) || _cWords == 0) + { + return 0; + } + + // Use the dictionary to find the value + int iWord; + return _strings.TryGetValue(psz, out iWord) ? iWord : -1; + } + + internal string this[int index] + { + get + { + if ((index < 1) || index > _cWords) + { + throw new InvalidOperationException(); + } + + return _refStrings[index - 1]; + } + } + + /// + /// Only DEBUG code should use this + /// + internal string FromOffset(int offset) + { + int iPos = 1; + int iWord = 1; + + System.Diagnostics.Debug.Assert(offset > 0); + + if (offset == 1 && _cWords >= 1) + { + return this[iWord]; + } + + foreach (string s in _refStrings) + { + iWord++; + iPos += s.Length + 1; + if (offset == iPos) + { + return this[iWord]; + } + } + return null; + } + + internal int StringSize() + { + return _cWords > 0 ? _totalStringSizes : 0; + } + + internal int SerializeSize() + { + return ((StringSize() * _sizeOfChar + 3) & ~3) / 2; + } + + internal char[] SerializeData() + { + // force a 0xcccc at the end of the buffer if the length is odd + int iEnd = SerializeSize(); + + char[] aData = new char[iEnd]; + + // aData [0] is set by the framework to zero + int iPos = 1; + + foreach (string s in _refStrings) + { + for (int i = 0; i < s.Length; i++) + { + aData[iPos++] = s[i]; + } + aData[iPos++] = '\0'; + } + + if (StringSize() % 2 == 1) + { + aData[iPos++] = (char)0xCCCC; + } + + System.Diagnostics.Debug.Assert(iEnd == 0 || iPos == SerializeSize()); + + return aData; + } + + internal int OffsetFromId(int index) + { + System.Diagnostics.Debug.Assert(index <= _cWords); + if (index > 0) + { + return _offsetStrings[index - 1]; + } + + return 0; + } + + #endregion + + #region internal Properties + + internal int Count + { + get + { + return _cWords; + } + } + + #endregion + + #region Private Fields + + // List of words, end-to-end + private Dictionary _strings = new(); + + // List of indices in the dictionary of words + private List _refStrings = new(); + + // List of indices in the dictionary of words + private List _offsetStrings = new(); + + // Number of words + private int _cWords; + + // Cached value for the total string sizes - The first digit is always zero. + private int _totalStringSizes = 1; + + // .NET is Unicode so 2 bytes per characters + private const int _sizeOfChar = 2; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/AudioBase.cs b/src/libraries/System.Speech/src/Internal/Synthesis/AudioBase.cs new file mode 100644 index 00000000000000..d59f8810d1b21e --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/AudioBase.cs @@ -0,0 +1,454 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.IO; +using System.Runtime.InteropServices; + +namespace System.Speech.Internal.Synthesis +{ + /// + /// Encapsulates Waveform Audio Interface playback functions and provides a simple + /// interface for playing audio. + /// + internal abstract class AudioBase + { + #region Constructors + + /// + /// Create an instance of AudioBase. + /// + internal AudioBase() + { + } + + #endregion + + #region Internal Methods + + #region abstract Members + + /// + /// Play a wave file. + /// + internal abstract void Begin(byte[] wfx); + + /// + /// Play a wave file. + /// + internal abstract void End(); + + /// + /// Play a wave file. + /// + internal virtual void Play(IntPtr pBuff, int cb) + { + byte[] buffer = new byte[cb]; + Marshal.Copy(pBuff, buffer, 0, cb); + Play(buffer); + } + + /// + /// Play a wave file. + /// + internal virtual void Play(byte[] buffer) + { + GCHandle gc = GCHandle.Alloc(buffer); + Play(gc.AddrOfPinnedObject(), buffer.Length); + gc.Free(); + } + + /// + /// Pause the playback of a sound. + /// + internal abstract void Pause(); + + /// + /// Resume the playback of a paused sound. + /// + internal abstract void Resume(); + + /// + /// Throw an event synchronized with the audio stream + /// + internal abstract void InjectEvent(TTSEvent ttsEvent); + + /// + /// File operation are synchronous no wait + /// + internal abstract void WaitUntilDone(); + + /// + /// Wait for all the queued buffers to be played + /// + internal abstract void Abort(); + + #endregion + + #region helpers + + internal void PlayWaveFile(AudioData audio) + { + // allocate some memory for the largest header + try + { + // Fake a header for ALaw and ULaw + if (!string.IsNullOrEmpty(audio._mimeType)) + { + WAVEFORMATEX wfx = new(); + + wfx.nChannels = 1; + wfx.nSamplesPerSec = 8000; + wfx.nAvgBytesPerSec = 8000; + wfx.nBlockAlign = 1; + wfx.wBitsPerSample = 8; + wfx.cbSize = 0; + + switch (audio._mimeType) + { + case "audio/basic": + wfx.wFormatTag = (short)AudioFormat.EncodingFormat.ULaw; + break; + + case "audio/x-alaw-basic": + wfx.wFormatTag = (short)AudioFormat.EncodingFormat.ALaw; + break; + + default: + throw new FormatException(SR.Get(SRID.UnknownMimeFormat)); + } + + Begin(wfx.ToBytes()); + try + { + byte[] data = new byte[(int)audio._stream.Length]; + audio._stream.Read(data, 0, data.Length); + Play(data); + } + finally + { + WaitUntilDone(); + End(); + } + } + else + { + BinaryReader br = new(audio._stream); + + try + { + byte[] wfx = GetWaveFormat(br); + + if (wfx == null) + { + throw new FormatException(SR.Get(SRID.NotValidAudioFile, audio._uri.ToString())); + } + + Begin(wfx); + + try + { + while (true) + { + DATAHDR dataHdr = new(); + + // check for the end of file (+8 for the 2 DWORD) + if (audio._stream.Position + 8 >= audio._stream.Length) + { + break; + } + dataHdr._id = br.ReadUInt32(); + dataHdr._len = br.ReadInt32(); + + // Is this the WAVE data? + if (dataHdr._id == DATA_MARKER) + { + byte[] ab = Helpers.ReadStreamToByteArray(audio._stream, dataHdr._len); + Play(ab); + } + else + { + // Skip this RIFF fragment. + audio._stream.Seek(dataHdr._len, SeekOrigin.Current); + } + } + } + finally + { + WaitUntilDone(); + End(); + } + } + finally + { + ((IDisposable)br).Dispose(); + } + } + } + finally + { + audio.Dispose(); + } + } + + internal static byte[] GetWaveFormat(BinaryReader br) + { + // Read the riff Header + RIFFHDR riff = new(); + + riff._id = br.ReadUInt32(); + riff._len = br.ReadInt32(); + riff._type = br.ReadUInt32(); + + if (riff._id != RIFF_MARKER && riff._type != WAVE_MARKER) + { + return null; ; + } + + BLOCKHDR block = new(); + block._id = br.ReadUInt32(); + block._len = br.ReadInt32(); + + if (block._id != FMT_MARKER) + { + return null; ; + } + + // If the format is of type WAVEFORMAT then fake a cbByte with a length of zero + byte[] wfx; + wfx = br.ReadBytes(block._len); + + // Hardcode the value of the size for the structure element + // as the C# compiler pads the structure to the closest 4 or 8 bytes + if (block._len == 16) + { + byte[] wfxTemp = new byte[18]; + Array.Copy(wfx, wfxTemp, 16); + wfx = wfxTemp; + } + return wfx; + } + + internal static void WriteWaveHeader(Stream stream, WAVEFORMATEX waveEx, long position, int cData) + { + RIFFHDR riff = new(0); + BLOCKHDR block = new(0); + DATAHDR dataHdr = new(0); + + int cRiff = Marshal.SizeOf(riff); + int cBlock = Marshal.SizeOf(block); + int cWaveEx = waveEx.Length;// Marshal.SizeOf (waveEx); // The CLR automatically pad the waveEx structure to dword boundary. Force 16. + int cDataHdr = Marshal.SizeOf(dataHdr); + + int total = cRiff + cBlock + cWaveEx + cDataHdr; + + using (MemoryStream memStream = new()) + { + BinaryWriter bw = new(memStream); + try + { + // Write the RIFF section + riff._len = total + cData - 8/* - cRiff*/; // for the "WAVE" 4 characters + bw.Write(riff._id); + bw.Write(riff._len); + bw.Write(riff._type); + + // Write the wave header section + block._len = cWaveEx; + bw.Write(block._id); + bw.Write(block._len); + + // Write the FormatEx structure + bw.Write(waveEx.ToBytes()); + //bw.Write (waveEx.cbSize); + + // Write the data section + dataHdr._len = cData; + bw.Write(dataHdr._id); + bw.Write(dataHdr._len); + + stream.Seek(position, SeekOrigin.Begin); + stream.Write(memStream.GetBuffer(), 0, (int)memStream.Length); + } + finally + { + ((IDisposable)bw).Dispose(); + } + } + } + + #endregion + + #endregion + + #region Internal Property + + internal abstract TimeSpan Duration { get; } + + internal virtual long Position { get { return 0; } } + + internal virtual bool IsAborted + { + get + { + return _aborted; + } + set + { + _aborted = false; + } + } + + internal virtual byte[] WaveFormat { get { return null; } } + + #endregion + + #region Protected Property + + protected bool _aborted; + + #endregion + + #region Private Types + + private const uint RIFF_MARKER = 0x46464952; + private const uint WAVE_MARKER = 0x45564157; + private const uint FMT_MARKER = 0x20746d66; + private const uint DATA_MARKER = 0x61746164; + + [StructLayout(LayoutKind.Sequential)] + private struct RIFFHDR + { + internal uint _id; + internal int _len; /* file length less header */ + internal uint _type; /* should be "WAVE" */ + + internal RIFFHDR(int length) + { + _id = RIFF_MARKER; + _type = WAVE_MARKER; + _len = length; + } + } + + [StructLayout(LayoutKind.Sequential)] + private struct BLOCKHDR + { + internal uint _id; /* should be "fmt " or "data" */ + internal int _len; /* block size less header */ + + internal BLOCKHDR(int length) + { + _id = FMT_MARKER; + _len = length; + } + }; + + [StructLayout(LayoutKind.Sequential)] + private struct DATAHDR + { + internal uint _id; /* should be "fmt " or "data" */ + internal int _len; /* block size less header */ + + internal DATAHDR(int length) + { + _id = DATA_MARKER; + _len = length; + } + } + + #endregion + } + + #region Internal Methods + + [System.Runtime.InteropServices.TypeLibTypeAttribute(16)] + internal struct WAVEFORMATEX + { + + internal short wFormatTag; + internal short nChannels; + internal int nSamplesPerSec; + internal int nAvgBytesPerSec; + internal short nBlockAlign; + internal short wBitsPerSample; + internal short cbSize; + + internal static WAVEFORMATEX ToWaveHeader(byte[] waveHeader) + { + GCHandle gc = GCHandle.Alloc(waveHeader, GCHandleType.Pinned); + IntPtr ptr = gc.AddrOfPinnedObject(); + WAVEFORMATEX wfx = new(); + wfx.wFormatTag = Marshal.ReadInt16(ptr); + wfx.nChannels = Marshal.ReadInt16(ptr, 2); + wfx.nSamplesPerSec = Marshal.ReadInt32(ptr, 4); + wfx.nAvgBytesPerSec = Marshal.ReadInt32(ptr, 8); + wfx.nBlockAlign = Marshal.ReadInt16(ptr, 12); + wfx.wBitsPerSample = Marshal.ReadInt16(ptr, 14); + wfx.cbSize = Marshal.ReadInt16(ptr, 16); + + if (wfx.cbSize != 0) + { + throw new InvalidOperationException(); + } + gc.Free(); + return wfx; + } + + internal static void AvgBytesPerSec(byte[] waveHeader, out int avgBytesPerSec, out int nBlockAlign) + { + // Hardcode the value of the size for the structure element + // as the C# compiler pads the structure to the closest 4 or 8 bytes + GCHandle gc = GCHandle.Alloc(waveHeader, GCHandleType.Pinned); + IntPtr ptr = gc.AddrOfPinnedObject(); + avgBytesPerSec = Marshal.ReadInt32(ptr, 8); + nBlockAlign = Marshal.ReadInt16(ptr, 12); + gc.Free(); + } + + internal byte[] ToBytes() + { + System.Diagnostics.Debug.Assert(cbSize == 0); + GCHandle gc = GCHandle.Alloc(this, GCHandleType.Pinned); + byte[] ab = ToBytes(gc.AddrOfPinnedObject()); + gc.Free(); + return ab; + } + + internal static byte[] ToBytes(IntPtr waveHeader) + { + // Hardcode the value of the size for the structure element + // as the C# compiler pads the structure to the closest 4 or 8 bytes + + int cbSize = Marshal.ReadInt16(waveHeader, 16); + byte[] ab = new byte[18 + cbSize]; + Marshal.Copy(waveHeader, ab, 0, 18 + cbSize); + return ab; + } + + internal static WAVEFORMATEX Default + { + get + { + WAVEFORMATEX wfx = new(); + wfx.wFormatTag = 1; + wfx.nChannels = 1; + wfx.nSamplesPerSec = 22050; + wfx.nAvgBytesPerSec = 44100; + wfx.nBlockAlign = 2; + wfx.wBitsPerSample = 16; + wfx.cbSize = 0; + return wfx; + } + } + + internal int Length + { + get + { + return 18 + cbSize; + } + } + } + + #endregion +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/AudioDeviceOut.cs b/src/libraries/System.Speech/src/Internal/Synthesis/AudioDeviceOut.cs new file mode 100644 index 00000000000000..6d0e59f2786025 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/AudioDeviceOut.cs @@ -0,0 +1,509 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Threading; + +namespace System.Speech.Internal.Synthesis +{ + /// + /// Encapsulates Waveform Audio Interface playback functions and provides a simple + /// interface for playing audio. + /// + internal class AudioDeviceOut : AudioBase, IDisposable + { + #region Constructors + + /// + /// Create an instance of AudioDeviceOut. + /// + internal AudioDeviceOut(int curDevice, IAsyncDispatch asyncDispatch) + { + _delegate = new SafeNativeMethods.WaveOutProc(CallBackProc); + _asyncDispatch = asyncDispatch; + _curDevice = curDevice; + } + + ~AudioDeviceOut() + { + Dispose(false); + } + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + private void Dispose(bool disposing) + { + if (_deviceOpen && _hwo != IntPtr.Zero) + { + SafeNativeMethods.waveOutClose(_hwo); + _deviceOpen = false; + } + if (disposing) + { + ((IDisposable)_evt).Dispose(); + } + } + + #endregion + + #region Internal Methods + + #region AudioDevice implementation + + /// + /// Begin to play + /// + internal override void Begin(byte[] wfx) + { + if (_deviceOpen) + { + System.Diagnostics.Debug.Assert(false); + throw new InvalidOperationException(); + } + + // Get the alignments values + WAVEFORMATEX.AvgBytesPerSec(wfx, out _nAvgBytesPerSec, out _blockAlign); + + MMSYSERR result; + lock (_noWriteOutLock) + { + result = SafeNativeMethods.waveOutOpen(ref _hwo, _curDevice, wfx, _delegate, IntPtr.Zero, SafeNativeMethods.CALLBACK_FUNCTION); + + if (_fPaused && result == MMSYSERR.NOERROR) + { + result = SafeNativeMethods.waveOutPause(_hwo); + } + // set the flags + _aborted = false; + _deviceOpen = true; + } + + if (result != MMSYSERR.NOERROR) + { + throw new AudioException(result); + } + + // Reset the counter for the number of bytes written so far + _bytesWritten = 0; + + // Nothing in the queue + _evt.Set(); + } + + /// + /// Begin to play + /// + internal override void End() + { + if (!_deviceOpen) + { + System.Diagnostics.Debug.Assert(false); + throw new InvalidOperationException(); + } + lock (_noWriteOutLock) + { + _deviceOpen = false; + + MMSYSERR result; + + CheckForAbort(); + + if (_queueIn.Count != 0) + { + SafeNativeMethods.waveOutReset(_hwo); + } + + // Close it; no point in returning errors if this fails + result = SafeNativeMethods.waveOutClose(_hwo); + + if (result != MMSYSERR.NOERROR) + { + // This may create a dead lock + System.Diagnostics.Debug.Assert(false); + } + } + } + + /// + /// Play a wave file. + /// + internal override void Play(byte[] buffer) + { + if (!_deviceOpen) + { + System.Diagnostics.Debug.Assert(false); + } + else + { + int bufferSize = buffer.Length; + _bytesWritten += bufferSize; + + System.Diagnostics.Debug.Assert(bufferSize % _blockAlign == 0); + + WaveHeader waveHeader = new(buffer); + GCHandle waveHdr = waveHeader.WAVEHDR; + MMSYSERR result = SafeNativeMethods.waveOutPrepareHeader(_hwo, waveHdr.AddrOfPinnedObject(), waveHeader.SizeHDR); + + if (result != MMSYSERR.NOERROR) + { + throw new AudioException(result); + } + + lock (_noWriteOutLock) + { + if (!_aborted) + { + lock (_queueIn) + { + InItem item = new(waveHeader); + + _queueIn.Add(item); + + // Something in the queue cannot exit anymore + _evt.Reset(); + } + + // Start playback of the first buffer + result = SafeNativeMethods.waveOutWrite(_hwo, waveHdr.AddrOfPinnedObject(), waveHeader.SizeHDR); + if (result != MMSYSERR.NOERROR) + { + lock (_queueIn) + { + _queueIn.RemoveAt(_queueIn.Count - 1); + throw new AudioException(result); + } + } + } + } + } + } + + /// + /// Pause the playback of a sound. + /// + internal override void Pause() + { + lock (_noWriteOutLock) + { + if (!_aborted && !_fPaused) + { + if (_deviceOpen) + { + MMSYSERR result = SafeNativeMethods.waveOutPause(_hwo); + if (result != MMSYSERR.NOERROR) + { + System.Diagnostics.Debug.Assert(false, ((int)result).ToString(System.Globalization.CultureInfo.InvariantCulture)); + } + } + _fPaused = true; + } + } + } + + /// + /// Resume the playback of a paused sound. + /// + internal override void Resume() + { + lock (_noWriteOutLock) + { + if (!_aborted && _fPaused) + { + if (_deviceOpen) + { + MMSYSERR result = SafeNativeMethods.waveOutRestart(_hwo); + if (result != MMSYSERR.NOERROR) + { + System.Diagnostics.Debug.Assert(false); + } + } + } + } + _fPaused = false; + } + + /// + /// Wait for all the queued buffers to be played + /// + internal override void Abort() + { + lock (_noWriteOutLock) + { + _aborted = true; + if (_queueIn.Count > 0) + { + SafeNativeMethods.waveOutReset(_hwo); + _evt.WaitOne(); + } + } + } + + internal override void InjectEvent(TTSEvent ttsEvent) + { + if (_asyncDispatch != null && !_aborted) + { + lock (_queueIn) + { + // Throw immediately if the queue is empty + if (_queueIn.Count == 0) + { + _asyncDispatch.Post(ttsEvent); + } + else + { + // Will be thrown before the next write to the audio device + _queueIn.Add(new InItem(ttsEvent)); + } + } + } + } + + /// + /// Wait for all the queued buffers to be played + /// + internal override void WaitUntilDone() + { + if (!_deviceOpen) + { + System.Diagnostics.Debug.Assert(false); + throw new InvalidOperationException(); + } + + _evt.WaitOne(); + } + + #endregion + + #region Audio device specific methods + + /// + /// Determine the number of available playback devices. + /// + /// Number of output devices + internal static int NumDevices() + { + return SafeNativeMethods.waveOutGetNumDevs(); + } + + internal static int GetDevicedId(string name) + { + for (int iDevice = 0; iDevice < NumDevices(); iDevice++) + { + string device; + if (GetDeviceName(iDevice, out device) == MMSYSERR.NOERROR && string.Compare(device, name, StringComparison.OrdinalIgnoreCase) == 0) + { + return iDevice; + } + } + return -1; + } + + /// + /// Get the name of the specified playback device. + /// + /// ID of the device + /// Destination string assigned the name + /// MMSYSERR.NOERROR if successful + internal static MMSYSERR GetDeviceName(int deviceId, [MarshalAs(UnmanagedType.LPWStr)] out string prodName) + { + prodName = string.Empty; + SafeNativeMethods.WAVEOUTCAPS caps = new(); + + MMSYSERR result = SafeNativeMethods.waveOutGetDevCaps((IntPtr)deviceId, ref caps, Marshal.SizeOf(caps)); + if (result != MMSYSERR.NOERROR) + { + return result; + } + + prodName = caps.szPname; + + return MMSYSERR.NOERROR; + } + + #endregion + + #endregion + + #region Internal Fields + + internal override TimeSpan Duration + { + get + { + if (_nAvgBytesPerSec == 0) + { + return new TimeSpan(0); + } + return new TimeSpan((_bytesWritten * TimeSpan.TicksPerSecond) / _nAvgBytesPerSec); + } + } + + #endregion + + #region Private Methods + + private void CallBackProc(IntPtr hwo, MM_MSG uMsg, IntPtr dwInstance, IntPtr dwParam1, IntPtr dwParam2) + { + if (uMsg == MM_MSG.MM_WOM_DONE) + { + InItem inItem; + lock (_queueIn) + { + inItem = _queueIn[0]; + inItem.ReleaseData(); + _queueIn.RemoveAt(0); + _queueOut.Add(inItem); + + // look for the next elements in the queue if they are events to throw! + while (_queueIn.Count > 0) + { + inItem = _queueIn[0]; + // Do we have an event or a sound buffer + if (inItem._waveHeader == null) + { + if (_asyncDispatch != null && !_aborted) + { + _asyncDispatch.Post(inItem._userData); + } + _queueIn.RemoveAt(0); + } + else + { + break; + } + } + } + + // if the queue is empty, then restart the callers thread + if (_queueIn.Count == 0) + { + _evt.Set(); + } + } + } + + private void ClearBuffers() + { + foreach (InItem item in _queueOut) + { + WaveHeader waveHeader = item._waveHeader; + MMSYSERR result; + + result = SafeNativeMethods.waveOutUnprepareHeader( + _hwo, waveHeader.WAVEHDR.AddrOfPinnedObject(), waveHeader.SizeHDR); + if (result != MMSYSERR.NOERROR) + { + //System.Diagnostics.Debug.Assert (false); + } + waveHeader.Dispose(); + } + + _queueOut.Clear(); + } + + private void CheckForAbort() + { + if (_aborted) + { + // Synchronous operation + lock (_queueIn) + { + foreach (InItem inItem in _queueIn) + { + // Do we have an event or a sound buffer + if (inItem._waveHeader != null) + { + WaveHeader waveHeader = inItem._waveHeader; + SafeNativeMethods.waveOutUnprepareHeader( + _hwo, waveHeader.WAVEHDR.AddrOfPinnedObject(), waveHeader.SizeHDR); + waveHeader.Dispose(); + } + else + { + _asyncDispatch.Post(inItem._userData); + } + } + _queueIn.Clear(); + + // if the queue is empty, then restart the callers thread + _evt.Set(); + } + } + ClearBuffers(); + } + + #endregion + + #region Private Types + + /// + /// This object must keep a reference to the waveHeader object + /// so that the pinned buffer containing the data is not + /// released before it is finished being played + /// + private class InItem : IDisposable + { + internal InItem(WaveHeader waveHeader) + { + _waveHeader = waveHeader; + } + + internal InItem(object userData) + { + _userData = userData; + } + public void Dispose() + { + if (_waveHeader != null) + { + _waveHeader.Dispose(); + } + + GC.SuppressFinalize(this); + } + + internal void ReleaseData() + { + if (_waveHeader != null) + { + _waveHeader.ReleaseData(); + } + } + + internal WaveHeader _waveHeader; + internal object _userData; + } + + #endregion + + #region Private Fields + + private List _queueIn = new(); + + private List _queueOut = new(); + + private int _blockAlign; + private int _bytesWritten; + private int _nAvgBytesPerSec; + + private IntPtr _hwo; + + private int _curDevice; + + private ManualResetEvent _evt = new(false); + + private SafeNativeMethods.WaveOutProc _delegate; + + private IAsyncDispatch _asyncDispatch; + + private bool _deviceOpen; + private object _noWriteOutLock = new(); + private bool _fPaused; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/AudioException.cs b/src/libraries/System.Speech/src/Internal/Synthesis/AudioException.cs new file mode 100644 index 00000000000000..c766cd484dc9b8 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/AudioException.cs @@ -0,0 +1,24 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.Serialization; + +namespace System.Speech.Internal.Synthesis +{ + [Serializable] + internal class AudioException : Exception + { + #region Constructors + internal AudioException() + { + } + internal AudioException(MMSYSERR errorCode) : base(string.Format(System.Globalization.CultureInfo.InvariantCulture, "{0} - Error Code: 0x{1:x}", SR.Get(SRID.AudioDeviceError), (int)errorCode)) + { + } + protected AudioException(SerializationInfo info, StreamingContext context) : base(info, context) + { + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/AudioFileOut.cs b/src/libraries/System.Speech/src/Internal/Synthesis/AudioFileOut.cs new file mode 100644 index 00000000000000..ca1382eeecf3f3 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/AudioFileOut.cs @@ -0,0 +1,261 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.IO; +using System.Speech.AudioFormat; +using System.Threading; + +namespace System.Speech.Internal.Synthesis +{ + /// + /// Encapsulates Waveform Audio Interface playback functions and provides a simple + /// interface for playing audio. + /// + internal class AudioFileOut : AudioBase, IDisposable + { + #region Constructors + + /// + /// Create an instance of AudioFileOut. + /// + internal AudioFileOut(Stream stream, SpeechAudioFormatInfo formatInfo, bool headerInfo, IAsyncDispatch asyncDispatch) + { + _asyncDispatch = asyncDispatch; + _stream = stream; + _startStreamPosition = _stream.Position; + _hasHeader = headerInfo; + + _wfxOut = new WAVEFORMATEX(); + // if we have a formatInfo object, format conversion may be necessary + if (formatInfo != null) + { + // Build the Wave format from the formatInfo + _wfxOut.wFormatTag = (short)formatInfo.EncodingFormat; + _wfxOut.wBitsPerSample = (short)formatInfo.BitsPerSample; + _wfxOut.nSamplesPerSec = formatInfo.SamplesPerSecond; + _wfxOut.nChannels = (short)formatInfo.ChannelCount; + } + else + { + // Set the default values + _wfxOut = WAVEFORMATEX.Default; + } + _wfxOut.nBlockAlign = (short)(_wfxOut.nChannels * _wfxOut.wBitsPerSample / 8); + _wfxOut.nAvgBytesPerSec = _wfxOut.wBitsPerSample * _wfxOut.nSamplesPerSec * _wfxOut.nChannels / 8; + } + + public void Dispose() + { + _evt.Close(); + GC.SuppressFinalize(this); + } + + #endregion + + #region Internal Methods + + /// + /// Begin to play + /// + internal override void Begin(byte[] wfx) + { + if (_deviceOpen) + { + System.Diagnostics.Debug.Assert(false); + throw new InvalidOperationException(); + } + + // Get the audio format if conversion is needed + _wfxIn = WAVEFORMATEX.ToWaveHeader(wfx); + _doConversion = _pcmConverter.PrepareConverter(ref _wfxIn, ref _wfxOut); + + if (_totalByteWrittens == 0 && _hasHeader) + { + WriteWaveHeader(_stream, _wfxOut, _startStreamPosition, 0); + } + + _bytesWritten = 0; + + // set the flags + _aborted = false; + _deviceOpen = true; + } + + /// + /// Begin to play + /// + internal override void End() + { + if (!_deviceOpen) + { + System.Diagnostics.Debug.Assert(false); + throw new InvalidOperationException(); + } + _deviceOpen = false; + + if (!_aborted) + { + if (_hasHeader) + { + long position = _stream.Position; + WriteWaveHeader(_stream, _wfxOut, _startStreamPosition, _totalByteWrittens); + _stream.Seek(position, SeekOrigin.Begin); + } + } + } + + #region AudioDevice implementation + + /// + /// Play a wave file. + /// + internal override void Play(byte[] buffer) + { + if (!_deviceOpen) + { + System.Diagnostics.Debug.Assert(false); + } + else + { + byte[] abOut = _doConversion ? _pcmConverter.ConvertSamples(buffer) : buffer; + + if (_paused) + { + _evt.WaitOne(); + _evt.Reset(); + } + if (!_aborted) + { + _stream.Write(abOut, 0, abOut.Length); + _totalByteWrittens += abOut.Length; + _bytesWritten += abOut.Length; + } + } + } + + /// + /// Pause the playback of a sound. + /// + internal override void Pause() + { + if (!_aborted && !_paused) + { + lock (_noWriteOutLock) + { + _paused = true; + } + } + } + + /// + /// Resume the playback of a paused sound. + /// + internal override void Resume() + { + if (!_aborted && _paused) + { + lock (_noWriteOutLock) + { + _paused = false; + _evt.Set(); + } + } + } + + /// + /// Wait for all the queued buffers to be played + /// + internal override void Abort() + { + lock (_noWriteOutLock) + { + _aborted = true; + _paused = false; + _evt.Set(); + } + } + + internal override void InjectEvent(TTSEvent ttsEvent) + { + if (!_aborted && _asyncDispatch != null) + { + _asyncDispatch.Post(ttsEvent); + } + } + + /// + /// File operation are basically synchronous + /// + internal override void WaitUntilDone() + { + lock (_noWriteOutLock) + { + } + } + + #endregion + + #endregion + + #region Internal Fields + + internal override TimeSpan Duration + { + get + { + if (_wfxIn.nAvgBytesPerSec == 0) + { + return new TimeSpan(0); + } + return new TimeSpan((_bytesWritten * TimeSpan.TicksPerSecond) / _wfxIn.nAvgBytesPerSec); + } + } + + internal override long Position + { + get + { + return _stream.Position; + } + } + + internal override byte[] WaveFormat + { + get + { + return _wfxOut.ToBytes(); + } + } + + #endregion + + #region Private Fields + + protected ManualResetEvent _evt = new(false); + protected bool _deviceOpen; + + protected Stream _stream; + + protected PcmConverter _pcmConverter = new(); + protected bool _doConversion; + + protected bool _paused; + protected int _totalByteWrittens; + protected int _bytesWritten; + + #endregion + + #region Private Fields + + private IAsyncDispatch _asyncDispatch; + private object _noWriteOutLock = new(); + + private WAVEFORMATEX _wfxIn; + private WAVEFORMATEX _wfxOut; + private bool _hasHeader; + + private long _startStreamPosition; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/AudioFormatConverter.cs b/src/libraries/System.Speech/src/Internal/Synthesis/AudioFormatConverter.cs new file mode 100644 index 00000000000000..819f7c98050359 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/AudioFormatConverter.cs @@ -0,0 +1,612 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#region Using directives + +#endregion + +namespace System.Speech.Internal.Synthesis +{ + /// + /// AudioFormatConverter takes its conversion tables from ...\scg\tts\common\vapiio\alaw_ULaw.cpp + /// + internal static class AudioFormatConverter + { + #region Internal Methods + + /// + /// Finds the converting method based on the specified formats. + /// + /// Reference to the buffer of audio data. + /// Audio format that the data will be converted from. + /// Audio format that the data will be converted to. + /// New array with the audio data in requested format. + internal static short[] Convert(byte[] data, AudioCodec from, AudioCodec to) + { + ConvertByteShort cnvDlgt = null; + + switch (from) + { + case AudioCodec.PCM8: + switch (to) + { + case AudioCodec.PCM16: cnvDlgt = new ConvertByteShort(ConvertLinear8LinearByteShort); break; + } + break; + case AudioCodec.PCM16: + switch (to) + { + case AudioCodec.PCM16: cnvDlgt = new ConvertByteShort(ConvertLinear2LinearByteShort); break; + } + break; + + case AudioCodec.G711U: + switch (to) + { + case AudioCodec.PCM16: cnvDlgt = new ConvertByteShort(ConvertULaw2Linear); break; + } + break; + case AudioCodec.G711A: + switch (to) + { + case AudioCodec.PCM16: cnvDlgt = new ConvertByteShort(ConvertALaw2Linear); break; + } + break; + + default: + throw new FormatException(); + } + + if (cnvDlgt == null) + { + throw new FormatException(); + } + + return cnvDlgt(data, data.Length); + } + + /// + /// Finds the converting method based on the specified formats. + /// + /// Reference to the buffer of audio data. + /// Audio format that the data will be converted from. + /// Audio format that the data will be converted to. + /// New array with the audio data in requested format. + internal static byte[] Convert(short[] data, AudioCodec from, AudioCodec to) + { + ConvertShortByte cnvDlgt = null; + + switch (from) + { + case AudioCodec.PCM16: + switch (to) + { + case AudioCodec.PCM8: cnvDlgt = new ConvertShortByte(ConvertLinear8LinearShortByte); break; + case AudioCodec.PCM16: cnvDlgt = new ConvertShortByte(ConvertLinear2LinearShortByte); break; + case AudioCodec.G711U: cnvDlgt = new ConvertShortByte(ConvertLinear2ULaw); break; + case AudioCodec.G711A: cnvDlgt = new ConvertShortByte(ConvertLinear2ALaw); break; + } + break; + + default: + throw new FormatException(); + } + + return cnvDlgt(data, data.Length); + } + + internal static AudioCodec TypeOf(WAVEFORMATEX format) + { + AudioCodec codec = AudioCodec.Undefined; + + switch ((WaveFormatTag)format.wFormatTag) + { + case WaveFormatTag.WAVE_FORMAT_PCM: + switch (format.nBlockAlign / format.nChannels) + { + case 1: + codec = AudioCodec.PCM8; + break; + case 2: + codec = AudioCodec.PCM16; + break; + } + break; + + case WaveFormatTag.WAVE_FORMAT_ALAW: + codec = AudioCodec.G711A; + break; + + case WaveFormatTag.WAVE_FORMAT_MULAW: + codec = AudioCodec.G711U; + break; + } + + return codec; + } + + #endregion + + #region Private Methods + + #region Converters between Linear and ULaw + + /// + /// This routine converts from 16 bit linear to ULaw by direct access to the conversion table. + /// + /// Array of 16 bit linear samples. + /// Size of the data in the array. + /// New buffer of 8 bit ULaw samples. + internal static byte[] ConvertLinear2ULaw(short[] data, int size) + { + byte[] newData = new byte[size]; + s_uLawCompTableCached = s_uLawCompTableCached == null ? CalcLinear2ULawTable() : s_uLawCompTableCached; + + for (int i = 0; i < size; i++) + { + unchecked + { + // Extend the sign bit for the sample that is constructed from two bytes + newData[i] = s_uLawCompTableCached[(ushort)data[i] >> 2]; + } + } + return newData; + } + + /// + /// This routine converts from ULaw to 16 bit linear by direct access to the conversion table. + /// + /// Array of 8 bit ULaw samples. + /// Size of the data in the array. + /// New buffer of signed 16 bit linear samples + internal static short[] ConvertULaw2Linear(byte[] data, int size) + { + short[] newData = new short[size]; + for (int i = 0; i < size; i++) + { + int sample = s_ULaw_exp_table[data[i]]; + + newData[i] = unchecked((short)sample); + } + + return newData; + } + + /// + /// This routine converts from linear to ULaw. + /// + /// Craig Reese: IDA/Supercomputing Research Center + /// Joe Campbell: Department of Defense + /// 29 September 1989 + /// + /// References: + /// 1) CCITT Recommendation G.711 (very difficult to follow) + /// 2) "A New Digital Technique for Implementation of Any + /// Continuous PCM Companding Law," Villeret, Michel, + /// et al. 1973 IEEE Int. Conf. on Communications, Vol 1, + /// 1973, pg. 11.12-11.17 + /// 3) MIL-STD-188-113,"Interoperability and Performance Standards + /// for Analog-to_Digital Conversion Techniques," + /// 17 February 1987 + /// + /// New buffer of 8 bit ULaw samples + private static byte[] CalcLinear2ULawTable() + { + /*const*/ + bool ZEROTRAP = false; // turn off the trap as per the MIL-STD + const byte uBIAS = 0x84; // define the add-in bias for 16 bit samples + const int uCLIP = 32635; + + byte[] table = new byte[(ushort.MaxValue + 1) >> 2]; + + for (int i = 0; i < ushort.MaxValue; i += 4) + { + short data = unchecked((short)i); + + int sample; + int sign, exponent, mantissa; + byte ULawbyte; + + unchecked + { + // Extend the sign bit for the sample that is constructed from two bytes + sample = (data >> 2) << 2; + + // Get the sample into sign-magnitude. + sign = (sample >> 8) & 0x80; // set aside the sign + if (sign != 0) + { + sample = -sample; + } + if (sample > uCLIP) sample = uCLIP; // clip the magnitude + + // Convert from 16 bit linear to ULaw. + sample = sample + uBIAS; + exponent = s_exp_lut_linear2ulaw[(sample >> 7) & 0xFF]; + mantissa = (sample >> (exponent + 3)) & 0x0F; + + ULawbyte = (byte)(~(sign | (exponent << 4) | mantissa)); + } + + if (ZEROTRAP) + { + if (ULawbyte == 0) ULawbyte = 0x02; // optional CCITT trap + } + + table[i >> 2] = ULawbyte; + } + + return table; + } + + #endregion + + #region Converters between Linear and ALaw + + /// + /// This routine converts from 16 bit linear to ALaw by direct access to the conversion table. + /// + /// Array of 16 bit linear samples. + /// Size of the data in the array. + /// New buffer of 8 bit ALaw samples. + internal static byte[] ConvertLinear2ALaw(short[] data, int size) + { + byte[] newData = new byte[size]; + s_aLawCompTableCached = s_aLawCompTableCached == null ? CalcLinear2ALawTable() : s_aLawCompTableCached; + + for (int i = 0; i < size; i++) + { + unchecked + { + //newData [i] = ALaw_comp_table [(data [i] / 4) & 0x3fff]; + newData[i] = s_aLawCompTableCached[(ushort)data[i] >> 2]; + } + } + return newData; + } + + /// + /// This routine converts from ALaw to 16 bit linear by direct access to the conversion table. + /// + /// Array of 8 bit ALaw samples. + /// Size of the data in the array. + /// New buffer of signed 16 bit linear samples + internal static short[] ConvertALaw2Linear(byte[] data, int size) + { + short[] newData = new short[size]; + for (int i = 0; i < size; i++) + { + int sample = s_ALaw_exp_table[data[i]]; + + newData[i] = unchecked((short)sample); + } + + return newData; + } + + /// + /// This routine converts from linear to ALaw. + /// + /// Craig Reese: IDA/Supercomputing Research Center + /// Joe Campbell: Department of Defense + /// 29 September 1989 + /// + /// References: + /// 1) CCITT Recommendation G.711 (very difficult to follow) + /// 2) "A New Digital Technique for Implementation of Any + /// Continuous PCM Companding Law," Villeret, Michel, + /// et al. 1973 IEEE Int. Conf. on Communications, Vol 1, + /// 1973, pg. 11.12-11.17 + /// 3) MIL-STD-188-113,"Interoperability and Performance Standards + /// for Analog-to_Digital Conversion Techniques," + /// 17 February 1987 + /// + /// New buffer of 8 bit ALaw samples + private static byte[] CalcLinear2ALawTable() + { + const int ACLIP = 31744; + + byte[] table = new byte[(ushort.MaxValue + 1) >> 2]; + + for (int i = 0; i < ushort.MaxValue; i += 4) + { + short data = unchecked((short)i); + + int sample, sign, exponent, mantissa; + byte ALawbyte; + + unchecked + { + // Extend the sign bit for the sample that is constructed from two bytes + sample = (data >> 2) << 2; + + // Get the sample into sign-magnitude. + sign = ((~sample) >> 8) & 0x80; // set aside the sign + if (sign == 0) sample = -sample; // get magnitude + if (sample > ACLIP) sample = ACLIP; // clip the magnitude + } + + // Convert from 16 bit linear to ULaw. + if (sample >= 256) + { + exponent = s_exp_lut_linear2alaw[(sample >> 8) & 0x7F]; + mantissa = (sample >> (exponent + 3)) & 0x0F; + ALawbyte = (byte)((exponent << 4) | mantissa); + } + else + { + ALawbyte = (byte)(sample >> 4); + } + + ALawbyte ^= (byte)(sign ^ 0x55); + + table[i >> 2] = ALawbyte; + } + + return table; + } + + #endregion + + #region PCM to PCM + + /// + /// Empty linear conversion (does nothing, for table consistency). + /// + /// Array of audio data in linear format. + /// Size of the data in the array. + /// The same array in linear format. + private static short[] ConvertLinear2LinearByteShort(byte[] data, int size) + { + short[] as1 = new short[size / 2]; + unchecked + { + for (int i = 0; i < size; i += 2) + { + as1[i / 2] = (short)(data[i] + (short)(data[i + 1] << 8)); + } + } + return as1; + } + + /// + /// Empty linear conversion (does nothing, for table consistency). + /// + /// Array of audio data in linear format. + /// Size of the data in the array. + /// The same array in linear format. + private static short[] ConvertLinear8LinearByteShort(byte[] data, int size) + { + short[] as1 = new short[size]; + unchecked + { + for (int i = 0; i < size; i++) + { + as1[i] = (short)((data[i] - 128) << 8); + } + } + return as1; + } + + /// + /// Empty linear conversion (does nothing, for table consistency). + /// + /// Array of audio data in linear format. + /// Size of the data in the array. + /// The same array in linear format. + private static byte[] ConvertLinear2LinearShortByte(short[] data, int size) + { + byte[] ab = new byte[size * 2]; + for (int i = 0; i < size; i++) + { + short s = data[i]; + ab[2 * i] = unchecked((byte)s); + ab[2 * i + 1] = unchecked((byte)(s >> 8)); + } + return ab; // the same format: do nothing + } + + /// + /// Empty linear conversion (does nothing, for table consistency). + /// + /// Array of audio data in linear format. + /// Size of the data in the array. + /// The same array in linear format. + private static byte[] ConvertLinear8LinearShortByte(short[] data, int size) + { + byte[] ab = new byte[size]; + for (int i = 0; i < size; i++) + { + ab[i] = unchecked((byte)(((ushort)((data[i] + 127) >> 8)) + 128)); + } + return ab; // the same format: do nothing + } + + #endregion + + #endregion + + #region Private Members + + #region Conversion tables for direct conversions + + // Cached table for aLaw and uLaw conversion (16K * 2 bytes each) + private static byte[] s_uLawCompTableCached; + private static byte[] s_aLawCompTableCached; + + #endregion + + #region Conversion tables for algorithmic conversions + + private static readonly int[] s_exp_lut_linear2alaw = new int[128] + { + 1, 1, 2, 2, 3, 3, 3, 3, + 4, 4, 4, 4, 4, 4, 4, 4, + 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, + 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7 + }; + + private static int[] s_exp_lut_linear2ulaw = new int[256] + { + 0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 + }; + + #endregion + + #region Conversion tables for 'byte' to 'short' conversion + + /// + /// Table to converts ULaw values to Linear + /// + private static int[] s_ULaw_exp_table = new int[256] + { + -32124, -31100, -30076, -29052, -28028, -27004, -25980, -24956, + -23932, -22908, -21884, -20860, -19836, -18812, -17788, -16764, + -15996, -15484, -14972, -14460, -13948, -13436, -12924, -12412, + -11900, -11388, -10876, -10364, -9852, -9340, -8828, -8316, + -7932, -7676, -7420, -7164, -6908, -6652, -6396, -6140, + -5884, -5628, -5372, -5116, -4860, -4604, -4348, -4092, + -3900, -3772, -3644, -3516, -3388, -3260, -3132, -3004, + -2876, -2748, -2620, -2492, -2364, -2236, -2108, -1980, + -1884, -1820, -1756, -1692, -1628, -1564, -1500, -1436, + -1372, -1308, -1244, -1180, -1116, -1052, -988, -924, + -876, -844, -812, -780, -748, -716, -684, -652, + -620, -588, -556, -524, -492, -460, -428, -396, + -372, -356, -340, -324, -308, -292, -276, -260, + -244, -228, -212, -196, -180, -164, -148, -132, + -120, -112, -104, -96, -88, -80, -72, -64, + -56, -48, -40, -32, -24, -16, -8, 0, + 32124, 31100, 30076, 29052, 28028, 27004, 25980, 24956, + 23932, 22908, 21884, 20860, 19836, 18812, 17788, 16764, + 15996, 15484, 14972, 14460, 13948, 13436, 12924, 12412, + 11900, 11388, 10876, 10364, 9852, 9340, 8828, 8316, + 7932, 7676, 7420, 7164, 6908, 6652, 6396, 6140, + 5884, 5628, 5372, 5116, 4860, 4604, 4348, 4092, + 3900, 3772, 3644, 3516, 3388, 3260, 3132, 3004, + 2876, 2748, 2620, 2492, 2364, 2236, 2108, 1980, + 1884, 1820, 1756, 1692, 1628, 1564, 1500, 1436, + 1372, 1308, 1244, 1180, 1116, 1052, 988, 924, + 876, 844, 812, 780, 748, 716, 684, 652, + 620, 588, 556, 524, 492, 460, 428, 396, + 372, 356, 340, 324, 308, 292, 276, 260, + 244, 228, 212, 196, 180, 164, 148, 132, + 120, 112, 104, 96, 88, 80, 72, 64, + 56, 48, 40, 32, 24, 16, 8, 0 + }; + + /// + /// Table to converts ALaw values to Linear + /// + private static int[] s_ALaw_exp_table = new int[256] + { + -5504, -5248, -6016, -5760, -4480, -4224, -4992, -4736, + -7552, -7296, -8064, -7808, -6528, -6272, -7040, -6784, + -2752, -2624, -3008, -2880, -2240, -2112, -2496, -2368, + -3776, -3648, -4032, -3904, -3264, -3136, -3520, -3392, + -22016, -20992, -24064, -23040, -17920, -16896, -19968, -18944, + -30208, -29184, -32256, -31232, -26112, -25088, -28160, -27136, + -11008, -10496, -12032, -11520, -8960, -8448, -9984, -9472, + -15104, -14592, -16128, -15616, -13056, -12544, -14080, -13568, + -344, -328, -376, -360, -280, -264, -312, -296, + -472, -456, -504, -488, -408, -392, -440, -424, + -88, -72, -120, -104, -24, -8, -56, -40, + -216, -200, -248, -232, -152, -136, -184, -168, + -1376, -1312, -1504, -1440, -1120, -1056, -1248, -1184, + -1888, -1824, -2016, -1952, -1632, -1568, -1760, -1696, + -688, -656, -752, -720, -560, -528, -624, -592, + -944, -912, -1008, -976, -816, -784, -880, -848, + 5504, 5248, 6016, 5760, 4480, 4224, 4992, 4736, + 7552, 7296, 8064, 7808, 6528, 6272, 7040, 6784, + 2752, 2624, 3008, 2880, 2240, 2112, 2496, 2368, + 3776, 3648, 4032, 3904, 3264, 3136, 3520, 3392, + 22016, 20992, 24064, 23040, 17920, 16896, 19968, 18944, + 30208, 29184, 32256, 31232, 26112, 25088, 28160, 27136, + 11008, 10496, 12032, 11520, 8960, 8448, 9984, 9472, + 15104, 14592, 16128, 15616, 13056, 12544, 14080, 13568, + 344, 328, 376, 360, 280, 264, 312, 296, + 472, 456, 504, 488, 408, 392, 440, 424, + 88, 72, 120, 104, 24, 8, 56, 40, + 216, 200, 248, 232, 152, 136, 184, 168, + 1376, 1312, 1504, 1440, 1120, 1056, 1248, 1184, + 1888, 1824, 2016, 1952, 1632, 1568, 1760, 1696, + 688, 656, 752, 720, 560, 528, 624, 592, + 944, 912, 1008, 976, 816, 784, 880, 848 + }; + + #endregion + + internal enum WaveFormatTag + { + WAVE_FORMAT_PCM = 1, + WAVE_FORMAT_ALAW = 0x0006, + WAVE_FORMAT_MULAW = 0x0007 + } + // delegates + private delegate short[] ConvertByteShort(byte[] data, int size); + private delegate byte[] ConvertShortByte(short[] data, int size); + + #endregion + } + + #region Internal Types + + /// + /// Supported formats for audio transcoding in SES + /// + internal enum AudioCodec + { + /// + /// Audio format PCM 16 bit + /// + PCM16 = 128, + + /// + /// Audio format PCM 16 bit + /// + PCM8 = 127, + + /// + /// Audio format G.711 mu-law + /// + G711U = 0, + + /// + /// AudioFormat G.711 A-law + /// + G711A = 8, + + /// + /// No audio format specified + /// + Undefined = -1 + } + + #endregion +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/ConvertTextFrag.cs b/src/libraries/System.Speech/src/Internal/Synthesis/ConvertTextFrag.cs new file mode 100644 index 00000000000000..996349ea29ec91 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/ConvertTextFrag.cs @@ -0,0 +1,440 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Speech.Synthesis.TtsEngine; + +namespace System.Speech.Internal.Synthesis +{ + internal static class ConvertTextFrag + { + #region internal Methods + + internal static bool ToSapi(List ssmlFrags, ref GCHandle sapiFragLast) + { + bool fFirst = true; + + for (int iFrag = ssmlFrags.Count - 1; iFrag >= 0; iFrag--) + { + TextFragment textFragment = ssmlFrags[iFrag]; + + // Remove the start and end paragraph fragments + if (textFragment.State.Action == TtsEngineAction.StartParagraph || textFragment.State.Action == TtsEngineAction.StartSentence) + { + continue; + } + + SPVTEXTFRAG sapiFrag = new(); + + // start with the text fragment + sapiFrag.gcNext = fFirst ? new GCHandle() : sapiFragLast; + sapiFrag.pNext = fFirst ? IntPtr.Zero : sapiFragLast.AddrOfPinnedObject(); + sapiFrag.gcText = GCHandle.Alloc(textFragment.TextToSpeak, GCHandleType.Pinned); + sapiFrag.pTextStart = sapiFrag.gcText.AddrOfPinnedObject(); + sapiFrag.ulTextSrcOffset = textFragment.TextOffset; + sapiFrag.ulTextLen = textFragment.TextLength; + + // State + SPVSTATE sapiState = new(); + FragmentState ssmlState = textFragment.State; + sapiState.eAction = (SPVACTIONS)ssmlState.Action; + sapiState.LangID = (short)ssmlState.LangId; + sapiState.EmphAdj = ssmlState.Emphasis != 1 ? 0 : 1; + if (ssmlState.Prosody != null) + { + sapiState.RateAdj = SapiRate(ssmlState.Prosody.Rate); + sapiState.Volume = SapiVolume(ssmlState.Prosody.Volume); + sapiState.PitchAdj.MiddleAdj = SapiPitch(ssmlState.Prosody.Pitch); + } + else + { + sapiState.Volume = 100; + } + + sapiState.ePartOfSpeech = SPPARTOFSPEECH.SPPS_Unknown; + + // Set the silence if any + if (sapiState.eAction == SPVACTIONS.SPVA_Silence) + { + sapiState.SilenceMSecs = SapiSilence(ssmlState.Duration, (EmphasisBreak)ssmlState.Emphasis); + } + + // Set the phonemes if any + if (ssmlState.Phoneme != null) + { + sapiState.eAction = SPVACTIONS.SPVA_Pronounce; + sapiFrag.gcPhoneme = GCHandle.Alloc(ssmlState.Phoneme, GCHandleType.Pinned); + sapiState.pPhoneIds = sapiFrag.gcPhoneme.AddrOfPinnedObject(); + + // Get rid of the text if phonemes are defined. This is to be compatible with existing + // TTS engines. + } + else + { + sapiFrag.gcPhoneme = new GCHandle(); + sapiState.pPhoneIds = IntPtr.Zero; + } + + // Set the say-as if any + if (ssmlState.SayAs != null) + { + string format = ssmlState.SayAs.Format; + string interpretAs; + switch (interpretAs = ssmlState.SayAs.InterpretAs) + { + case "spellout": + case "spell-out": + case "characters": + case "letters": + sapiState.eAction = SPVACTIONS.SPVA_SpellOut; + break; + + case "time": + case "date": + if (!string.IsNullOrEmpty(format)) + { + interpretAs = interpretAs + ':' + format; + } + sapiState.Context.pCategory = SapiCategory(sapiFrag, interpretAs, null); + break; + + default: + sapiState.Context.pCategory = SapiCategory(sapiFrag, interpretAs, format); + break; + } + } + + sapiFrag.State = sapiState; + sapiFragLast = GCHandle.Alloc(sapiFrag, GCHandleType.Pinned); + + fFirst = false; + } + return !fFirst; + } + + private static IntPtr SapiCategory(SPVTEXTFRAG sapiFrag, string interpretAs, string format) + { + int posSayAsFormat = Array.BinarySearch(s_asSayAsFormat, interpretAs); + string sFormat = posSayAsFormat >= 0 ? s_asContextFormat[posSayAsFormat] : format; + sapiFrag.gcSayAsCategory = GCHandle.Alloc(sFormat, GCHandleType.Pinned); + return sapiFrag.gcSayAsCategory.AddrOfPinnedObject(); + } + + internal static void FreeTextSegment(ref GCHandle fragment) + { + SPVTEXTFRAG sapiFrag = (SPVTEXTFRAG)fragment.Target; + if (sapiFrag.gcNext.IsAllocated) + { + FreeTextSegment(ref sapiFrag.gcNext); + } + + // free the references to the optional elements + if (sapiFrag.gcPhoneme.IsAllocated) + { + sapiFrag.gcPhoneme.Free(); + } + + if (sapiFrag.gcSayAsCategory.IsAllocated) + { + sapiFrag.gcSayAsCategory.Free(); + } + + // Free the text associated with this fragment + sapiFrag.gcText.Free(); + fragment.Free(); + } + + #endregion + + #region Private Methods + + private static int SapiVolume(ProsodyNumber volume) + { + int sapiVolume = 100; + if (volume.SsmlAttributeId != ProsodyNumber.AbsoluteNumber) + { + switch ((ProsodyVolume)volume.SsmlAttributeId) + { + case ProsodyVolume.ExtraLoud: + sapiVolume = 100; + break; + + case ProsodyVolume.Loud: + sapiVolume = 80; + break; + + case ProsodyVolume.Medium: + sapiVolume = 60; + break; + + case ProsodyVolume.Soft: + sapiVolume = 40; + break; + + case ProsodyVolume.ExtraSoft: + sapiVolume = 20; + break; + + case ProsodyVolume.Silent: + sapiVolume = 0; + break; + } + // add the relative information + sapiVolume = (int)((volume.IsNumberPercent ? sapiVolume * volume.Number : volume.Number) + 0.5); + } + else + { + sapiVolume = (int)(volume.Number + 0.5); + } + + // Check the range. + if (sapiVolume > 100) + { + sapiVolume = 100; + } + if (sapiVolume < 0) + { + sapiVolume = 0; + } + return sapiVolume; + } + + private static int SapiSilence(int duration, EmphasisBreak emphasis) + { + int sapiSilence = 1000; + + if (duration > 0) + { + sapiSilence = duration; + } + else + { + switch (emphasis) + { + // No break, arbitrarily defined as 10 milliseconds + case EmphasisBreak.None: + sapiSilence = 10; + break; + + // Extra small break, arbitrarily defined as 125 milliseconds + case EmphasisBreak.ExtraWeak: + sapiSilence = 125; + break; + + // Small break, arbitrarily defined as 250 milliseconds + case EmphasisBreak.Weak: + sapiSilence = 250; + break; + + // Medium break, arbitrarily defined as 1000 milliseconds + case EmphasisBreak.Medium: + sapiSilence = 1000; + break; + + // Large break, arbitrarily defined as 1750 milliseconds + case EmphasisBreak.Strong: + sapiSilence = 1750; + break; + + // Extra large break, arbitrarily defined as 3000 milliseconds + case EmphasisBreak.ExtraStrong: + sapiSilence = 3000; + break; + } + } + if (sapiSilence < 0 || sapiSilence > 0xffff) + { + sapiSilence = 1000; + } + return sapiSilence; + } + + /// + /// Produces the SAPI "RATE" tag + /// + private static int SapiRate(ProsodyNumber rate) + { + // Okay, we have a RATE element, but what do we set the rate to? + // Rate varies on a scale from -10 to 10 for us. + // There isn't a defined mapping between Words per Minute and rate. + // For percentage changes, we will require that -10 maps to one third the default rate, + // and +10 to three times the default, on a log scale. + // But for absolute or relative (not percent) we can't support this without a defined base-line rate + // We could get away with 180 for this in English, but very variable across languages. + + int sapiRate = 0; + if (rate.SsmlAttributeId != ProsodyNumber.AbsoluteNumber) + { + switch ((ProsodyRate)rate.SsmlAttributeId) + { + case ProsodyRate.ExtraSlow: + sapiRate = -9; + break; + + case ProsodyRate.Slow: + sapiRate = -4; + break; + + case ProsodyRate.Fast: + sapiRate = 4; + break; + + case ProsodyRate.ExtraFast: + sapiRate = 9; + break; + } + + // add the relative information + sapiRate = (int)((rate.IsNumberPercent ? ScaleNumber(rate.Number, sapiRate, 10) : sapiRate) + 0.5); + } + else + { + sapiRate = ScaleNumber(rate.Number, 0, 10); + } + // Check the range. + if (sapiRate > 10) + { + sapiRate = 10; + } + if (sapiRate < -10) + { + sapiRate = -10; + } + return sapiRate; + } + + private static int SapiPitch(ProsodyNumber pitch) + { + int sapiPitch = 0; + + if (pitch.SsmlAttributeId != ProsodyNumber.AbsoluteNumber) + { + switch ((ProsodyPitch)pitch.SsmlAttributeId) + { + case ProsodyPitch.ExtraHigh: + sapiPitch = 9; + break; + + case ProsodyPitch.High: + sapiPitch = 4; + break; + + case ProsodyPitch.Low: + sapiPitch = -4; + break; + + case ProsodyPitch.ExtraLow: + sapiPitch = -9; + break; + } + // add the relative information + sapiPitch = (int)((pitch.IsNumberPercent ? sapiPitch * pitch.Number : pitch.Number) + 0.5); + } + + // Check the range. + if (sapiPitch > 10) + { + sapiPitch = 10; + } + if (sapiPitch < -10) + { + sapiPitch = -10; + } + return sapiPitch; + } + + private static int ScaleNumber(float value, int currentValue, int max) + { + int rate = 0; + // Because we are on a logarithmic scale, can handle percentage changes + // 300% --> multiply by 3.0 --> sapi rate change of +max.0 + // 100% --> multiply by 1.0 --> sapi rate change of 0.0 + // 33% --> multiply by 0.33 --> sapi rate change of -max.0 + if (value >= 0.01) + { + rate = (int)(((Math.Log(value) / Math.Log(3.0)) * max) + 0.5); + rate += currentValue; + if (rate > max) + { + rate = max; + } + else if (rate < -max) + { + rate = -max; + } + } + else + { + rate = -max; + } + return rate; + } + + #endregion + + #region Private Methods + + private static readonly string[] s_asSayAsFormat = new string[] + { + "acronym", + "address", + "cardinal", + "currency", + "date", + "date:d", + "date:dm", + "date:dmy", + "date:m", + "date:md", + "date:mdy", + "date:my", + "date:ym", + "date:ymd", + "date:y", + "digits", + "name", + "net", + "net:email", + "net:uri", + "ordinal", + "spellout", + "telephone", + "time", + "time:hms12", + "time:hms24" + }; + + private static readonly string[] s_asContextFormat = new string[] + { + "name", + "address", + "number_cardinal", + "currency", + "date_md", + "date_dm", + "date_dm", + "date_dmy", + "date_md", + "date_md", + "date_mdy", + "date_my", + "date_ym", + "date_ymd", + "date_year", + "number_digit", + "name", + "web_url", + "E-mail_address", + "web_url", + "number_ordinal", + "", + "phone_number", + "time", + "time", + "time" + }; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/EngineSite.cs b/src/libraries/System.Speech/src/Internal/Synthesis/EngineSite.cs new file mode 100644 index 00000000000000..edbdc5deb2e265 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/EngineSite.cs @@ -0,0 +1,542 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections; +using System.Diagnostics; +using System.IO; +using System.Runtime.InteropServices; +using System.Speech.Synthesis; +using System.Speech.Synthesis.TtsEngine; +using System.Text; + +// Exceptions cannot get through the COM code. +// The engine site saves the last exception before sending it back to the client. +#pragma warning disable 6500 + +namespace System.Speech.Internal.Synthesis +{ + internal class EngineSite : ITtsEngineSite, ITtsEventSink + { + #region Constructors + + internal EngineSite(ResourceLoader resourceLoader) + { + _resourceLoader = resourceLoader; + } + + #endregion + + #region Internal Methods + internal TtsEventMapper EventMapper + { + get + { + return _eventMapper; + } + set + { + _eventMapper = value; + } + } + + #region ISpTTSEngineStite implementation + /// + /// Adds events directly to an event sink. + /// + public void AddEvents([MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] SpeechEventInfo[] events, int ulCount) + { + try + { + foreach (SpeechEventInfo sapiEvent in events) + { + int evtMask = 1 << sapiEvent.EventId; + + if (sapiEvent.EventId == (short)TtsEventId.EndInputStream && _eventMapper != null) + { + _eventMapper.FlushEvent(); + } + + if ((evtMask & _eventInterest) != 0) + { + TTSEvent ttsEvent = CreateTtsEvent(sapiEvent); + if (_eventMapper == null) + { + AddEvent(ttsEvent); + } + else + { + _eventMapper.AddEvent(ttsEvent); + } + } + } + } + catch (Exception e) + { + _exception = e; + _actions |= SPVESACTIONS.SPVES_ABORT; + } + } + + /// + /// Queries the voice object to determine which real-time action(s) to perform. + /// + public int Write(IntPtr pBuff, int cb) + { + try + { + _audio.Play(pBuff, cb); + } + catch (Exception e) + { + _exception = e; + _actions |= SPVESACTIONS.SPVES_ABORT; + } + return cb; + } + + /// + /// Retrieves the number and type of items to be skipped in the text stream. + /// + public SkipInfo GetSkipInfo() + { + return new SkipInfo(1 /*BSPVSKIPTYPE.SPVST_SENTENCE */, 1); + } + + /// + /// Notifies that the last skip request has been completed and to pass it the results. + /// + public void CompleteSkip(int ulNumSkipped) + { + return; + } + + /// + /// Passes back the event interest for the voice. + /// + public int EventInterest + { + get + { + return _eventInterest; + } + } + + /// + /// Queries the voice object to determine which real-time action(s) to perform + /// + public int Actions + { + get + { + return (int)_actions; + } + } + + /// + /// Retrieves the current TTS rendering rate adjustment that should be used by the engine. + /// + public int Rate + { + get + { + _actions &= ~SPVESACTIONS.SPVES_RATE; + return _defaultRate; + } + } + + /// + /// Retrieves the base output volume level the engine should use during synthesis. + /// + public int Volume + { + get + { + _actions &= ~SPVESACTIONS.SPVES_VOLUME; + return _volume; + } + } + + /// + /// Load a file either from a local network or from the Internet. + /// + public Stream LoadResource(Uri uri, string mediaType) + { + try + { + string localPath; + string mediaTypeUnused; // TODO: Should this be passed out of this function? + Uri baseUriUnused; + using (Stream stream = _resourceLoader.LoadFile(uri, out mediaTypeUnused, out baseUriUnused, out localPath)) + { + // Read the file in memory for SES and release the original file immediately + // This scheme is really bad if the files being read are big but I would assume + // That it should not be the case. + int cLen = (int)stream.Length; + MemoryStream memStream = new(cLen); + byte[] ab = new byte[cLen]; + stream.Read(ab, 0, ab.Length); + _resourceLoader.UnloadFile(localPath); + memStream.Write(ab, 0, cLen); + memStream.Position = 0; + + return memStream; + } + } + catch (Exception e) + { + _exception = e; + _actions |= SPVESACTIONS.SPVES_ABORT; + } + return null; + } + + #endregion + + public void AddEvent(TTSEvent evt) + { + _audio.InjectEvent(evt); + } + + public void FlushEvent() + { + } + + internal void SetEventsInterest(int eventInterest) + { + _eventInterest = eventInterest; + if (_eventMapper != null) + { + _eventMapper.FlushEvent(); + } + } + + #endregion + + #region Internal Properties + + /// + /// Retrieves the current TTS rendering rate adjustment that should be used by the engine. + /// + internal int VoiceRate + { + get + { + return _defaultRate; + } + set + { + _defaultRate = value; + _actions |= SPVESACTIONS.SPVES_RATE; + } + } + + /// + /// Retrieves the base output volume level the engine should use during synthesis. + /// + internal int VoiceVolume + { + get + { + return _volume; + } + set + { + _volume = value; + _actions |= SPVESACTIONS.SPVES_VOLUME; + } + } + + /// + /// Set and reset the last exception + /// + internal Exception LastException + { + get + { + return _exception; + } + set + { + _exception = value; + } + } + + internal void Abort() + { + _actions = SPVESACTIONS.SPVES_ABORT; + } + + internal void InitRun(AudioBase audioDevice, int defaultRate, Prompt prompt) + { + _audio = audioDevice; + _prompt = prompt; + _defaultRate = defaultRate; + _actions = SPVESACTIONS.SPVES_RATE | SPVESACTIONS.SPVES_VOLUME; + } + + #endregion + + #region Private Members + + private TTSEvent CreateTtsEvent(SpeechEventInfo sapiEvent) + { + TTSEvent ttsEvent; + switch ((TtsEventId)sapiEvent.EventId) + { + case TtsEventId.Phoneme: + ttsEvent = TTSEvent.CreatePhonemeEvent("" + (char)((uint)sapiEvent.Param2 & 0xFFFF), // current phoneme + "" + (char)(sapiEvent.Param1 & 0xFFFF), // next phoneme + TimeSpan.FromMilliseconds(sapiEvent.Param1 >> 16), + (SynthesizerEmphasis)((uint)sapiEvent.Param2 >> 16), + _prompt, _audio.Duration); + break; + case TtsEventId.Bookmark: + // BookmarkDetected + string bookmark = Marshal.PtrToStringUni(sapiEvent.Param2); + ttsEvent = new TTSEvent((TtsEventId)sapiEvent.EventId, _prompt, null, null, _audio.Duration, _audio.Position, bookmark, (uint)sapiEvent.Param1, sapiEvent.Param2); + break; + default: + ttsEvent = new TTSEvent((TtsEventId)sapiEvent.EventId, _prompt, null, null, _audio.Duration, _audio.Position, null, (uint)sapiEvent.Param1, sapiEvent.Param2); + break; + } + return ttsEvent; + } + + #endregion + + #region private Fields + + private int _eventInterest; + + private SPVESACTIONS _actions = SPVESACTIONS.SPVES_RATE | SPVESACTIONS.SPVES_VOLUME; + + private AudioBase _audio; + + private Prompt _prompt; + + // Last Exception + private Exception _exception; + + // Rate setup in the control panel + private int _defaultRate; + + // Rate setup in the control panel + private int _volume = 100; + + // Get a resource load + private ResourceLoader _resourceLoader; + + // Map the TTS events to the right format + private TtsEventMapper _eventMapper; + + #endregion + } + + internal interface ITtsEventSink + { + void AddEvent(TTSEvent evt); + void FlushEvent(); + } + + internal abstract class TtsEventMapper : ITtsEventSink + { + internal TtsEventMapper(ITtsEventSink sink) + { + _sink = sink; + } + + protected virtual void SendToOutput(TTSEvent evt) + { + if (_sink != null) + { + _sink.AddEvent(evt); + } + } + + public virtual void AddEvent(TTSEvent evt) + { + SendToOutput(evt); + } + + public virtual void FlushEvent() + { + if (_sink != null) + { + _sink.FlushEvent(); + } + } + + private ITtsEventSink _sink; + } + + internal class PhonemeEventMapper : TtsEventMapper + { + public enum PhonemeConversion + { + IpaToSapi, SapiToIpa, NoConversion + } + + internal PhonemeEventMapper(ITtsEventSink sink, PhonemeConversion conversion, AlphabetConverter alphabetConverter) : base(sink) + { + _queue = new Queue(); + _phonemeQueue = new Queue(); + _conversion = conversion; + _alphabetConverter = alphabetConverter; + Reset(); + } + + public override void AddEvent(TTSEvent evt) + { + if (_conversion == PhonemeConversion.NoConversion) + { + SendToOutput(evt); + } + else if (evt.Id == TtsEventId.Phoneme) + { + _phonemeQueue.Enqueue(evt); + + int prefixSeek = _phonemes.Length + 1; + _phonemes.Append(evt.Phoneme); + do + { + string prefix = _phonemes.ToString(0, prefixSeek); + if (_alphabetConverter.IsPrefix(prefix, _conversion == PhonemeConversion.SapiToIpa)) + { + if (_alphabetConverter.IsConvertibleUnit(prefix, _conversion == PhonemeConversion.SapiToIpa)) + { + _lastComplete = prefixSeek; + } + prefixSeek++; + } + else + { + if (_lastComplete == 0) + { + Trace.TraceError("Cannot convert the phonemes correctly. Attempt to start over..."); + Reset(); + break; + } + ConvertCompleteUnit(); + _lastComplete = 0; + prefixSeek = 1; + } + } while (prefixSeek <= _phonemes.Length); + } + else + { + SendToQueue(evt); + } + } + + public override void FlushEvent() + { + ConvertCompleteUnit(); + while (_queue.Count > 0) + { + SendToOutput((TTSEvent)_queue.Dequeue()); + } + _phonemeQueue.Clear(); + _lastComplete = 0; + + base.FlushEvent(); + } + + private void ConvertCompleteUnit() + { + if (_lastComplete == 0) + { + return; + } + if (_phonemeQueue.Count == 0) + { + Trace.TraceError("Failed to convert phonemes. Phoneme queue is empty."); + return; + } + + char[] source = new char[_lastComplete]; + _phonemes.CopyTo(0, source, 0, _lastComplete); + _phonemes.Remove(0, _lastComplete); + char[] target; + if (_conversion == PhonemeConversion.IpaToSapi) + { + target = _alphabetConverter.IpaToSapi(source); + } + else + { + target = _alphabetConverter.SapiToIpa(source); + } + + // + // Convert the audio duration + // Update the next phoneme id + // Retain any other information based on the first TTS phoneme event. + // + TTSEvent ttsEvent, targetEvent, basePhonemeEvent = null; + long totalDuration = 0; + basePhonemeEvent = (TTSEvent)_phonemeQueue.Peek(); + for (int i = 0; i < _lastComplete;) + { + ttsEvent = (TTSEvent)_phonemeQueue.Dequeue(); + totalDuration += ttsEvent.PhonemeDuration.Milliseconds; + i += ttsEvent.Phoneme.Length; + } + + targetEvent = TTSEvent.CreatePhonemeEvent(new string(target), "", + TimeSpan.FromMilliseconds(totalDuration), + basePhonemeEvent.PhonemeEmphasis, + basePhonemeEvent.Prompt, + basePhonemeEvent.AudioPosition); + SendToQueue(targetEvent); + } + + private void Reset() + { + _phonemeQueue.Clear(); + _phonemes = new StringBuilder(); + _lastComplete = 0; + } + + private void SendToQueue(TTSEvent evt) + { + if (evt.Id == TtsEventId.Phoneme) + { + TTSEvent firstEvent; + if (_queue.Count > 0) + { + firstEvent = _queue.Dequeue() as TTSEvent; + if (firstEvent.Id == TtsEventId.Phoneme) + { + firstEvent.NextPhoneme = evt.Phoneme; + } + else + { + Trace.TraceError("First event in the queue of the phone mapper is not a PHONEME event"); + } + SendToOutput(firstEvent); + while (_queue.Count > 0) + { + SendToOutput(_queue.Dequeue() as TTSEvent); + } + } + _queue.Enqueue(evt); + } + else + { + if (_queue.Count > 0) + { + _queue.Enqueue(evt); + } + else + { + SendToOutput(evt); + } + } + } + + private PhonemeConversion _conversion; + private StringBuilder _phonemes; + private Queue _queue, _phonemeQueue; + private AlphabetConverter _alphabetConverter; + private int _lastComplete; + } +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/EngineSiteSapi.cs b/src/libraries/System.Speech/src/Internal/Synthesis/EngineSiteSapi.cs new file mode 100644 index 00000000000000..d6bf03a57d2f17 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/EngineSiteSapi.cs @@ -0,0 +1,212 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.IO; +using System.Runtime.InteropServices; +using System.Runtime.InteropServices.ComTypes; +using System.Speech.Internal.SapiInterop; +using System.Speech.Synthesis.TtsEngine; + +#pragma warning disable 56500 // Remove all the catch all statements warnings used by the interop layer + +namespace System.Speech.Internal.Synthesis +{ + [ComVisible(true)] + internal class EngineSiteSapi : ISpEngineSite + { + #region Constructors + + internal EngineSiteSapi(EngineSite site, ResourceLoader resourceLoader) + { + _site = site; + } + + #endregion + + #region Internal Methods + + /// + /// Adds events directly to an event sink. + /// + void ISpEngineSite.AddEvents([MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] SpeechEventSapi[] eventsSapi, int ulCount) + { + SpeechEventInfo[] events = new SpeechEventInfo[eventsSapi.Length]; + for (int i = 0; i < eventsSapi.Length; i++) + { + SpeechEventSapi sapiEvt = eventsSapi[i]; + events[i].EventId = sapiEvt.EventId; + events[i].ParameterType = sapiEvt.ParameterType; + events[i].Param1 = (int)sapiEvt.Param1; + events[i].Param2 = sapiEvt.Param2; + } + _site.AddEvents(events, ulCount); + } + + /// + /// Passes back the event interest for the voice. + /// + void ISpEngineSite.GetEventInterest(out long eventInterest) + { + eventInterest = (uint)_site.EventInterest; + } + + /// + /// Queries the voice object to determine which real-time action(s) to perform + /// + [PreserveSig] + int ISpEngineSite.GetActions() + { + return _site.Actions; + } + + /// + /// Queries the voice object to determine which real-time action(s) to perform. + /// + void ISpEngineSite.Write(IntPtr pBuff, int cb, IntPtr pcbWritten) + { + pcbWritten = (IntPtr)_site.Write(pBuff, cb); + } + + /// + /// Retrieves the current TTS rendering rate adjustment that should be used by the engine. + /// + void ISpEngineSite.GetRate(out int pRateAdjust) + { + pRateAdjust = _site.Rate; + } + + /// + /// Retrieves the base output volume level the engine should use during synthesis. + /// + void ISpEngineSite.GetVolume(out short pusVolume) + { + pusVolume = (short)_site.Volume; + } + + /// + /// Retrieves the number and type of items to be skipped in the text stream. + /// + void ISpEngineSite.GetSkipInfo(out int peType, out int plNumItems) + { + SkipInfo si = _site.GetSkipInfo(); + if (si != null) + { + peType = si.Type; + plNumItems = si.Count; + } + else + { + peType = 1; // BSPVSKIPTYPE.SPVST_SENTENCE; + plNumItems = 0; + } + } + + /// + /// Notifies that the last skip request has been completed and to pass it the results. + /// + void ISpEngineSite.CompleteSkip(int ulNumSkipped) + { + _site.CompleteSkip(ulNumSkipped); + } + + /// + /// Load a file either from a local network or from the Internet. + /// + void ISpEngineSite.LoadResource(string uri, ref string mediaType, out IStream stream) + { + mediaType = null; +#pragma warning disable 56518 // BinaryReader can't be disposed because underlying stream still in use. + try + { + // Get the mime type + Stream localStream = _site.LoadResource(new Uri(uri, UriKind.RelativeOrAbsolute), mediaType); + BinaryReader reader = new(localStream); + byte[] waveFormat = System.Speech.Internal.Synthesis.AudioBase.GetWaveFormat(reader); + mediaType = null; + if (waveFormat != null) + { + WAVEFORMATEX hdr = WAVEFORMATEX.ToWaveHeader(waveFormat); + switch ((WaveFormatId)hdr.wFormatTag) + { + case WaveFormatId.Alaw: + case WaveFormatId.Mulaw: + case WaveFormatId.Pcm: + mediaType = "audio/x-wav"; + break; + } + } + localStream.Position = 0; + stream = new SpStreamWrapper(localStream); + } + catch + { + stream = null; + } +#pragma warning restore 56518 + } + + #endregion + + #region private Fields + + private EngineSite _site; + + private enum WaveFormatId + { + Pcm = 1, + Alaw = 0x0006, + Mulaw = 0x0007, + } + + #endregion + } + + #region Internal Interfaces + [ComImport, Guid("9880499B-CCE9-11D2-B503-00C04F797396"), System.Runtime.InteropServices.InterfaceTypeAttribute(1)] + internal interface ISpEngineSite + { + void AddEvents([MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] SpeechEventSapi[] events, int count); + void GetEventInterest(out long eventInterest); + [PreserveSig] + int GetActions(); + void Write(IntPtr data, int count, IntPtr bytesWritten); + void GetRate(out int rate); + void GetVolume(out short volume); + void GetSkipInfo(out int type, out int count); + void CompleteSkip(int skipped); + void LoadResource([MarshalAs(UnmanagedType.LPWStr)] string resource, ref string mediaType, out IStream stream); + } + [StructLayout(LayoutKind.Sequential)] + internal struct SpeechEventSapi + { + public short EventId; + public short ParameterType; + public int StreamNumber; + public long AudioStreamOffset; + public IntPtr Param1; // Always just a numeric type - contains no unmanaged resources so does not need special clean-up. + public IntPtr Param2; // Can be a numeric type, or pointer to string or object. Use SafeSapiLParamHandle to cleanup. + public static bool operator ==(SpeechEventSapi event1, SpeechEventSapi event2) + { + return event1.EventId == event2.EventId && event1.ParameterType == event2.ParameterType && event1.StreamNumber == event2.StreamNumber && event1.AudioStreamOffset == event2.AudioStreamOffset && event1.Param1 == event2.Param1 && event1.Param2 == event2.Param2; + } + public static bool operator !=(SpeechEventSapi event1, SpeechEventSapi event2) + { + return !(event1 == event2); + } + public override bool Equals(object obj) + { + if (!(obj is SpeechEventSapi)) + { + return false; + } + + return this == (SpeechEventSapi)obj; + } + public override int GetHashCode() + { + return base.GetHashCode(); + } + } + + #endregion +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/ISSmlParser.cs b/src/libraries/System.Speech/src/Internal/Synthesis/ISSmlParser.cs new file mode 100644 index 00000000000000..4974f04be7693f --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/ISSmlParser.cs @@ -0,0 +1,108 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Globalization; +using System.Speech.Synthesis; +using System.Speech.Synthesis.TtsEngine; +using System.Xml; + +namespace System.Speech.Internal.Synthesis +{ + #region Internal Types + + internal interface ISsmlParser + { + object ProcessSpeak(string sVersion, string sBaseUri, CultureInfo culture, List extraNamespace); + void ProcessText(string text, object voice, ref FragmentState fragmentState, int position, bool fIgnore); + void ProcessAudio(object voice, string sUri, string baseUri, bool fIgnore); + void ProcessBreak(object voice, ref FragmentState fragmentState, EmphasisBreak eBreak, int time, bool fIgnore); + void ProcessDesc(CultureInfo culture); + void ProcessEmphasis(bool noLevel, EmphasisWord word); + void ProcessMark(object voice, ref FragmentState fragmentState, string name, bool fIgnore); + object ProcessTextBlock(bool isParagraph, object voice, ref FragmentState fragmentState, CultureInfo culture, bool newCulture, VoiceGender gender, VoiceAge age); + void EndProcessTextBlock(bool isParagraph); + void ProcessPhoneme(ref FragmentState fragmentState, AlphabetType alphabet, string ph, char[] phoneIds); + void ProcessProsody(string pitch, string range, string rate, string volume, string duration, string points); + void ProcessSayAs(string interpretAs, string format, string detail); + void ProcessSub(string alias, object voice, ref FragmentState fragmentState, int position, bool fIgnore); + object ProcessVoice(string name, CultureInfo culture, VoiceGender gender, VoiceAge age, int variant, bool fNewCulture, List extraNamespace); + void ProcessLexicon(Uri uri, string type); + void EndElement(); + void EndSpeakElement(); + + void ProcessUnknownElement(object voice, ref FragmentState fragmentState, XmlReader reader); + void StartProcessUnknownAttributes(object voice, ref FragmentState fragmentState, string element, List extraAttributes); + void EndProcessUnknownAttributes(object voice, ref FragmentState fragmentState, string element, List extraAttributes); + + // Prompt data used + void ContainsPexml(string pexmlPrefix); + + // Prompt Engine tags + bool BeginPromptEngineOutput(object voice); + void EndPromptEngineOutput(object voice); + + // global elements + bool ProcessPromptEngineDatabase(object voice, string fname, string delta, string idset); + bool ProcessPromptEngineDiv(object voice); + bool ProcessPromptEngineId(object voice, string id); + + // scoped elements + bool BeginPromptEngineTts(object voice); + void EndPromptEngineTts(object voice); + bool BeginPromptEngineWithTag(object voice, string tag); + void EndPromptEngineWithTag(object voice, string tag); + bool BeginPromptEngineRule(object voice, string name); + void EndPromptEngineRule(object voice, string name); + + // Properties + string Ssml { get; } + } + + internal class LexiconEntry + { + internal Uri _uri; + internal string _mediaType; + + internal LexiconEntry(Uri uri, string mediaType) + { + _uri = uri; + _mediaType = mediaType; + } + + /// + /// Tests whether two objects are equivalent + /// + public override bool Equals(object obj) + { + LexiconEntry entry = obj as LexiconEntry; + return entry != null && _uri.Equals(entry._uri); + } + + /// + /// Overrides Object.GetHashCode() + /// + public override int GetHashCode() + { + return _uri.GetHashCode(); + } + } + + internal class SsmlXmlAttribute + { + internal SsmlXmlAttribute(string prefix, string name, string value, string ns) + { + _prefix = prefix; + _name = name; + _value = value; + _ns = ns; + } + + internal string _prefix; + internal string _name; + internal string _value; + internal string _ns; + } + + #endregion +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/PcmConverter.cs b/src/libraries/System.Speech/src/Internal/Synthesis/PcmConverter.cs new file mode 100644 index 00000000000000..d86b8bc8cb7673 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/PcmConverter.cs @@ -0,0 +1,466 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Internal.Synthesis +{ + internal class PcmConverter + { + #region Internal Methods + + /// + /// Description: + /// first read samples into VAPI_PCM16, then judge cases : + /// 1. STEREO -> mono + resampling + /// STEREO -> 1 mono -> reSampling + /// 2. mono -> STEREO + resampling + /// mono -> reSampling -> STEREO + /// 3. STEREO -> STEREO + resampling + /// STEREO -> 2 MONO - > reSampling -> 2 MONO -> STEREO + /// 4. mono -> mono + resampling + /// mono -> reSampling -> mono + /// + internal bool PrepareConverter(ref WAVEFORMATEX inWavFormat, ref WAVEFORMATEX outWavFormat) + { + bool convert = true; + // Check if we can deal with the format + if (!(inWavFormat.nSamplesPerSec > 0 && inWavFormat.nChannels <= 2 && inWavFormat.nChannels > 0 && outWavFormat.nChannels > 0 && outWavFormat.nSamplesPerSec > 0 && outWavFormat.nChannels <= 2)) + { + throw new FormatException(); + } + + _iInFormatType = AudioFormatConverter.TypeOf(inWavFormat); + _iOutFormatType = AudioFormatConverter.TypeOf(outWavFormat); + if (_iInFormatType < 0 || _iOutFormatType < 0) + { + throw new FormatException(); + } + + // Check if Format in == Format out + if (outWavFormat.nSamplesPerSec == inWavFormat.nSamplesPerSec && _iOutFormatType == _iInFormatType && outWavFormat.nChannels == inWavFormat.nChannels) + { + convert = false; + } + else + { + //--- need reset filter + if (inWavFormat.nSamplesPerSec != outWavFormat.nSamplesPerSec) + { + CreateResamplingFilter(inWavFormat.nSamplesPerSec, outWavFormat.nSamplesPerSec); + } + + // Keep a reference to the WaveHeaderformat + _inWavFormat = inWavFormat; + _outWavFormat = outWavFormat; + } + return convert; + } + + /// + /// Description: + /// first read samples into VAPI_PCM16, then judge cases : + /// 1. STEREO -> mono + resampling + /// STEREO -> 1 mono -> reSampling + /// 2. mono -> STEREO + resampling + /// mono -> reSampling -> STEREO + /// 3. STEREO -> STEREO + resampling + /// STEREO -> 2 MONO - > reSampling -> 2 MONO -> STEREO + /// 4. mono -> mono + resampling + /// mono -> reSampling -> mono + /// + internal byte[] ConvertSamples(byte[] pvInSamples) + { + short[] pnBuff = null; + + //--- Convert samples to VAPI_PCM16 + short[] inSamples = AudioFormatConverter.Convert(pvInSamples, _iInFormatType, AudioCodec.PCM16); + + //--- case 1 + if (_inWavFormat.nChannels == 2 && _outWavFormat.nChannels == 1) + { + pnBuff = Resample(_inWavFormat, _outWavFormat, Stereo2Mono(inSamples), _leftMemory); + } + + //--- case 2 + else if (_inWavFormat.nChannels == 1 && _outWavFormat.nChannels == 2) + { + //--- resampling + pnBuff = Mono2Stereo(Resample(_inWavFormat, _outWavFormat, inSamples, _leftMemory)); + } + + //--- case 3 + if (_inWavFormat.nChannels == 2 && _outWavFormat.nChannels == 2) + { + if (_inWavFormat.nSamplesPerSec != _outWavFormat.nSamplesPerSec) + { + short[] leftChannel; + short[] rightChannel; + SplitStereo(inSamples, out leftChannel, out rightChannel); + pnBuff = MergeStereo(Resample(_inWavFormat, _outWavFormat, leftChannel, _leftMemory), Resample(_inWavFormat, _outWavFormat, rightChannel, _rightMemory)); + } + else + { + pnBuff = inSamples; + } + } + + //--- case 4 + if (_inWavFormat.nChannels == 1 && _outWavFormat.nChannels == 1) + { + pnBuff = Resample(_inWavFormat, _outWavFormat, inSamples, _leftMemory); + } + + _eChunkStatus = Block.Middle; + //---Convert samples to output format + return AudioFormatConverter.Convert(pnBuff, AudioCodec.PCM16, _iOutFormatType); + } + + #endregion + + #region private Fields + + /// + /// Convert the data from one sample rate to an another + /// + private short[] Resample(WAVEFORMATEX inWavFormat, WAVEFORMATEX outWavFormat, short[] pnBuff, float[] memory) + { + if (inWavFormat.nSamplesPerSec != outWavFormat.nSamplesPerSec) + { + float[] pdBuff = Short2Float(pnBuff); + + //--- resample + pdBuff = Resampling(pdBuff, memory); + + pnBuff = Float2Short(pdBuff); + } + return pnBuff; + } + + /// + /// convert short array to float array + /// + private static float[] Short2Float(short[] inSamples) + { + float[] pdOut = new float[inSamples.Length]; + + for (int i = 0; i < inSamples.Length; i++) + { + pdOut[i] = inSamples[i]; + } + + return pdOut; + } + + /// + /// convert float array to short array + /// + private static short[] Float2Short(float[] inSamples) + { + short[] outSamples = new short[inSamples.Length]; + float dtmp; + + for (int i = 0; i < inSamples.Length; i++) + { + if (inSamples[i] >= 0) + { + dtmp = inSamples[i] + 0.5f; + if (dtmp > short.MaxValue) + { + dtmp = short.MaxValue; + } + } + else + { + dtmp = inSamples[i] - 0.5f; + if (dtmp < short.MinValue) + { + dtmp = short.MinValue; + } + } + outSamples[i] = (short)(dtmp); + } + return outSamples; + } + + /// + /// convert mono speech to stereo speech + /// + private static short[] Mono2Stereo(short[] inSamples) + { + short[] outSamples = new short[inSamples.Length * 2]; + + for (int i = 0, k = 0; i < inSamples.Length; i++, k += 2) + { + outSamples[k] = inSamples[i]; + outSamples[k + 1] = inSamples[i]; + } + + return outSamples; + } + + /// + /// convert stereo speech to mono speech + /// + private static short[] Stereo2Mono(short[] inSamples) + { + short[] outSamples = new short[inSamples.Length / 2]; + + for (int i = 0, k = 0; i < inSamples.Length; i += 2, k++) + { + outSamples[k] = unchecked((short)((inSamples[i] + inSamples[i + 1]) / 2)); + } + + return outSamples; + } + + /// + /// merge 2 channel signals into one signal + /// + private static short[] MergeStereo(short[] leftSamples, short[] rightSamples) + { + short[] outSamples = new short[leftSamples.Length * 2]; + + for (int i = 0, k = 0; i < leftSamples.Length; i++, k += 2) + { + outSamples[k] = leftSamples[i]; + outSamples[k + 1] = rightSamples[i]; + } + + return outSamples; + } + + /// + /// split stereo signals into 2 channel mono signals + /// + private static void SplitStereo(short[] inSamples, out short[] leftSamples, out short[] rightSamples) + { + int length = inSamples.Length / 2; + + leftSamples = new short[length]; + rightSamples = new short[length]; + + for (int i = 0, k = 0; i < inSamples.Length; i += 2) + { + leftSamples[k] = inSamples[i]; + rightSamples[k] = inSamples[i + 1]; + } + } + + private void CreateResamplingFilter(int inHz, int outHz) + { + int iLimitFactor; + + if (inHz <= 0) + { + throw new ArgumentOutOfRangeException(nameof(inHz)); + } + + if (outHz <= 0) + { + throw new ArgumentOutOfRangeException(nameof(outHz)); + } + + FindResampleFactors(inHz, outHz); + iLimitFactor = (_iUpFactor > _iDownFactor) ? _iUpFactor : _iDownFactor; + + _iFilterHalf = (int)(inHz * iLimitFactor * _dHalfFilterLen); + _iFilterLen = 2 * _iFilterHalf + 1; + + _filterCoeff = WindowedLowPass(.5f / iLimitFactor, _iUpFactor); + + _iBuffLen = (int)(_iFilterLen / (float)_iUpFactor); + + _leftMemory = new float[_iBuffLen]; + _rightMemory = new float[_iBuffLen]; + + _eChunkStatus = Block.First; // first chunk + } + + /// + /// Creates a low pass filter using the windowing method. + /// dCutOff is spec. in normalized frequency + /// + private float[] WindowedLowPass(float dCutOff, float dGain) + { + float[] pdCoeffs = null; + float[] pdWindow = null; + double dArg; + double dSinc; + + System.Diagnostics.Debug.Assert(dCutOff > 0.0 && dCutOff < 0.5); + + pdWindow = Blackman(_iFilterLen, true); + + pdCoeffs = new float[_iFilterLen]; + + dArg = 2.0f * Math.PI * dCutOff; + pdCoeffs[_iFilterHalf] = (float)(dGain * 2.0 * dCutOff); + + for (long i = 1; i <= _iFilterHalf; i++) + { + dSinc = dGain * Math.Sin(dArg * i) / (Math.PI * i) * pdWindow[_iFilterHalf - i]; + pdCoeffs[_iFilterHalf + i] = (float)dSinc; + pdCoeffs[_iFilterHalf - i] = (float)dSinc; + } + + return pdCoeffs; + } + + private void FindResampleFactors(int inHz, int outHz) + { + int iDiv = 1; + int i; + + while (iDiv != 0) + { + iDiv = 0; + for (i = 0; i < s_piPrimes.Length; i++) + { + if ((inHz % s_piPrimes[i]) == 0 && (outHz % s_piPrimes[i]) == 0) + { + inHz /= s_piPrimes[i]; + outHz /= s_piPrimes[i]; + iDiv = 1; + break; + } + } + } + + _iUpFactor = outHz; + _iDownFactor = inHz; + } + + private float[] Resampling(float[] inSamples, float[] pdMemory) + { + int cInSamples = inSamples.Length; + int cOutSamples; + int iPhase; + int j; + int n; + int iAddHalf; + + if (_eChunkStatus == Block.First) + { + cOutSamples = (cInSamples * _iUpFactor - _iFilterHalf) / _iDownFactor; + iAddHalf = 1; + } + else if (_eChunkStatus == Block.Middle) + { + cOutSamples = (cInSamples * _iUpFactor) / _iDownFactor; + iAddHalf = 2; + } + else + { + System.Diagnostics.Debug.Assert(_eChunkStatus == Block.Last); + cOutSamples = (_iFilterHalf * _iUpFactor) / _iDownFactor; + iAddHalf = 2; + } + + if (cOutSamples < 0) + { + cOutSamples = 0; + } + float[] outSamples = new float[cOutSamples]; + + for (int i = 0; i < cOutSamples; i++) + { + double dAcum = 0.0; + + n = ((i * _iDownFactor - iAddHalf * _iFilterHalf) / _iUpFactor); + iPhase = (i * _iDownFactor) - (n * _iUpFactor + iAddHalf * _iFilterHalf); + + for (j = 0; j < _iFilterLen / _iUpFactor; j++) + { + if (_iUpFactor * j > iPhase) + { + if (n + j >= 0 && n + j < cInSamples) + { + dAcum += inSamples[n + j] * _filterCoeff[_iUpFactor * j - iPhase]; + } + else if (n + j < 0) + { + dAcum += pdMemory[_iBuffLen + n + j] * _filterCoeff[_iUpFactor * j - iPhase]; + } + } + } + + outSamples[i] = (float)dAcum; + } + + //--- store samples into buffer + if (_eChunkStatus != Block.Last) + { + n = cInSamples - (_iBuffLen + 1); + for (int i = 0; i < _iBuffLen; i++) + { + if (n >= 0) + { + pdMemory[i] = inSamples[n++]; + } + else + { + n++; + pdMemory[i] = 0.0f; + } + } + } + + return outSamples; + } + + /// + /// Returns a vector with a Blackman window of the specified length. + /// + private static float[] Blackman(int iLength, bool bSymmetric) + { + float[] pdWindow = new float[iLength]; + double dArg, dArg2; + + dArg = 2.0 * Math.PI; + if (bSymmetric) + { + dArg /= (float)(iLength - 1); + } + else + { + dArg /= (float)iLength; + } + + dArg2 = 2.0 * dArg; + + for (int i = 0; i < iLength; i++) + { + pdWindow[i] = (float)(0.42 - (0.5 * Math.Cos(dArg * i)) + (0.08 * Math.Cos(dArg2 * i))); + } + + return pdWindow; + } + + #endregion + + #region private Fields + + private enum Block { First, Middle, Last }; + + private WAVEFORMATEX _inWavFormat; + private WAVEFORMATEX _outWavFormat; + private AudioCodec _iInFormatType; + private AudioCodec _iOutFormatType; + + private Block _eChunkStatus; + private int _iUpFactor; + private int _iFilterHalf; + private int _iDownFactor; + private int _iFilterLen; + private int _iBuffLen; + private float[] _filterCoeff; + + private float[] _leftMemory; + private float[] _rightMemory; + + private const float _dHalfFilterLen = 0.0005f; + + private static readonly int[] s_piPrimes = new int[] { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37 }; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/SSmlParser.cs b/src/libraries/System.Speech/src/Internal/Synthesis/SSmlParser.cs new file mode 100644 index 00000000000000..0ed306da8597eb --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/SSmlParser.cs @@ -0,0 +1,2154 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Net; +using System.Speech.Synthesis; +using System.Speech.Synthesis.TtsEngine; +using System.Text; +using System.Xml; + +namespace System.Speech.Internal.Synthesis +{ + internal static class SsmlParser + { + #region Internal Methods + + /// + /// Parse an SSML stream and build a set of SSML Text Fragments + /// + internal static void Parse(string ssml, ISsmlParser engine, object voice) + { + // Remove the CR and LF + string ssmlNoCrLf = ssml.Replace('\n', ' '); + ssmlNoCrLf = ssmlNoCrLf.Replace('\r', ' '); + XmlTextReader reader = new(new StringReader(ssmlNoCrLf)); + + // Parse the stream + Parse(reader, engine, voice); + } + + /// + /// Parse an SSML stream and build a set of SSML Text Fragments + /// + internal static void Parse(XmlReader reader, ISsmlParser engine, object voice) + { + try + { + bool isSpeakElementFound = false; + + while (reader.Read()) + { + // Ignore XmlDeclaration, ProcessingInstruction, Comment, DocumentType, Entity, Notation. + if ((reader.NodeType == XmlNodeType.Element) && (reader.LocalName == "speak")) + { + // SSML documents must start with the "speak" element + if (isSpeakElementFound) + { + ThrowFormatException(SRID.GrammarDefTwice); + } + else + { + // The XML header is read, real work starts here + ProcessSpeakElement(reader, engine, voice); + isSpeakElementFound = true; + } + } + } + + if (!isSpeakElementFound) + { + ThrowFormatException(SRID.SynthesizerNoSpeak); + } + } + catch (XmlException eXml) + { + throw new FormatException(SR.Get(SRID.InvalidXml), eXml); + } + } + + #endregion + + #region Private Methods + + /// + /// Validate the Speak element + /// + private static void ProcessSpeakElement(XmlReader reader, ISsmlParser engine, object voice) + { + SsmlAttributes ssmlAttributes = new(); + ssmlAttributes._voice = voice; + ssmlAttributes._age = VoiceAge.NotSet; + ssmlAttributes._gender = VoiceGender.NotSet; + ssmlAttributes._unknownNamespaces = new List(); + + string sVersion = null; + string sCulture = null; + string sBaseUri = null; + CultureInfo culture = null; + List extraSpeakAttributes = new(); + Exception innerException = null; + + // Process attributes. + while (reader.MoveToNextAttribute()) + { + bool isInvalidAttribute = false; + + // emptyNamespace + if (reader.NamespaceURI.Length == 0) + { + switch (reader.LocalName) + { + case "version": + CheckForDuplicates(ref sVersion, reader); + if (sVersion != "1.0") + { + ThrowFormatException(SRID.InvalidVersion); + } + break; + + default: + isInvalidAttribute = true; + break; + } + } + else if (reader.NamespaceURI == xmlNamespace) + { + switch (reader.LocalName) + { + case "lang": + CheckForDuplicates(ref sCulture, reader); + try + { + culture = new CultureInfo(sCulture); + } + catch (ArgumentException e) + { + innerException = e; + // Unknown Culture info, fall back to the base culture. + int pos = reader.Value.IndexOf("-", StringComparison.Ordinal); + if (pos > 0) + { + try + { + culture = new CultureInfo(reader.Value.Substring(0, pos)); + } + catch (ArgumentException) + { + isInvalidAttribute = true; + } + } + else + { + isInvalidAttribute = true; + } + } + break; + + case "base": + CheckForDuplicates(ref sBaseUri, reader); + break; + + default: + isInvalidAttribute = true; + break; + } + } + else if (reader.NamespaceURI == xmlNamespaceXmlns) + { + if (reader.Value != xmlNamespaceSsml && reader.Value != xmlNamespacePrompt) + { + ssmlAttributes._unknownNamespaces.Add(new SsmlXmlAttribute(reader.Prefix, reader.LocalName, reader.Value, reader.NamespaceURI)); + } + else if (reader.Value == xmlNamespacePrompt) + { + engine.ContainsPexml(reader.LocalName); + } + } + else + { + extraSpeakAttributes.Add(new SsmlXmlAttribute(reader.Prefix, reader.LocalName, reader.Value, reader.NamespaceURI)); + } + + if (isInvalidAttribute) + { + ThrowFormatException(innerException, SRID.InvalidElement, reader.Name); + } + } + + if (string.IsNullOrEmpty(sVersion)) + { + ThrowFormatException(SRID.MissingRequiredAttribute, "version", "speak"); + } + + if (string.IsNullOrEmpty(sCulture)) + { + ThrowFormatException(SRID.MissingRequiredAttribute, "lang", "speak"); + } + + // append the local attributes to list of unknown attributes + List extraAttributes = null; + foreach (SsmlXmlAttribute attribute in extraSpeakAttributes) + { + ssmlAttributes.AddUnknowAttribute(attribute, ref extraAttributes); + } + + voice = engine.ProcessSpeak(sVersion, sBaseUri, culture, ssmlAttributes._unknownNamespaces); + + ssmlAttributes._fragmentState.LangId = culture.LCID; + ssmlAttributes._voice = voice; + ssmlAttributes._baseUri = sBaseUri; + + // Process child elements. + SsmlElement possibleChild = SsmlElement.Lexicon | SsmlElement.Meta | SsmlElement.MetaData | SsmlElement.ParagraphOrSentence | SsmlElement.AudioMarkTextWithStyle | ElementPromptEngine(ssmlAttributes); + ProcessElement(reader, engine, "speak", possibleChild, ssmlAttributes, false, extraAttributes); + + // Notify the engine that the element is processed + engine.EndSpeakElement(); + } + + /// + /// Generic method to process an SSML element. + /// The element name is fetch from the element name array and + /// the delegate for that element will be called. + /// + private static void ProcessElement(XmlReader reader, ISsmlParser engine, string sElement, SsmlElement possibleElements, SsmlAttributes ssmAttributesParent, bool fIgnore, List extraAttributes) + { + // Make a local copy of the ssmlAttribute + SsmlAttributes ssmlAttributes = new(); + + // This is equivalent to a memcpy + ssmlAttributes = ssmAttributesParent; + + // Flush any remaining attributes from the previous element list + if (extraAttributes != null && extraAttributes.Count > 0) + { + engine.StartProcessUnknownAttributes(ssmlAttributes._voice, ref ssmlAttributes._fragmentState, sElement, extraAttributes); + } + + // Move to containing element of attributes + reader.MoveToElement(); + if (!reader.IsEmptyElement) + { + // Process each child element while not at end element + reader.Read(); + do + { + switch (reader.NodeType) + { + case XmlNodeType.Element: + int iElement = Array.BinarySearch(s_elementsName, reader.LocalName); + if (iElement >= 0) + { + s_parseElements[iElement](reader, engine, possibleElements, ssmlAttributes, fIgnore); + } + else + { + // Could be an element from some undefined namespace + if (!ssmlAttributes.IsOtherNamespaceElement(reader)) + { + ThrowFormatException(SRID.InvalidElement, reader.Name); + } + else + { + engine.ProcessUnknownElement(ssmlAttributes._voice, ref ssmlAttributes._fragmentState, reader); + continue; + } + } + reader.Read(); + break; + + case XmlNodeType.Text: + if ((possibleElements & SsmlElement.Text) != 0) + { + engine.ProcessText(reader.Value, ssmlAttributes._voice, ref ssmlAttributes._fragmentState, GetColumnPosition(reader), fIgnore); + } + else + { + ThrowFormatException(SRID.InvalidElement, reader.Name); + } + reader.Read(); + break; + + case XmlNodeType.EndElement: + break; + + default: + reader.Read(); + break; + } + } + while (reader.NodeType != XmlNodeType.EndElement && reader.NodeType != XmlNodeType.None); + } + + // Flush any remaining attributes from the previous element list + if (extraAttributes != null && extraAttributes.Count > 0) + { + engine.EndProcessUnknownAttributes(ssmlAttributes._voice, ref ssmlAttributes._fragmentState, sElement, extraAttributes); + } + } + + private static void ParseAudio(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + string sElement = ValidateElement(element, SsmlElement.Audio, reader.Name); + + // Make a local copy of the ssmlAttribute + SsmlAttributes ssmlAttributes = new(); + List extraAttributes = null; + + // This is equivalent to a memcpy + ssmlAttributes = ssmAttributesParent; + + string sUri = null; + bool fRenderDesc = false; + while (reader.MoveToNextAttribute()) + { + // Namespace must be empty + bool isInvalidAttribute = reader.NamespaceURI.Length != 0; + + if (!isInvalidAttribute) + { + switch (reader.LocalName) + { + case "src": + CheckForDuplicates(ref sUri, reader); + // Audio element + try + { + engine.ProcessAudio(ssmlAttributes._voice, sUri, ssmlAttributes._baseUri, fIgnore); + } + catch (IOException) + { + fRenderDesc = true; + } + catch (WebException) + { + fRenderDesc = true; + } + break; + + default: + isInvalidAttribute = true; + break; + } + } + if (isInvalidAttribute && !ssmlAttributes.AddUnknowAttribute(reader, ref extraAttributes)) + { + ThrowFormatException(SRID.InvalidItemAttribute, reader.Name); + } + } + + ssmlAttributes._fRenderDesc = fRenderDesc; + + // Process child elements. + SsmlElement possibleChild = SsmlElement.Desc | SsmlElement.ParagraphOrSentence | SsmlElement.AudioMarkTextWithStyle | ElementPromptEngine(ssmlAttributes); + ProcessElement(reader, engine, sElement, possibleChild, ssmlAttributes, !fRenderDesc, extraAttributes); + + // Notify the engine that the element is processed + engine.EndElement(); + } + + private static void ParseBreak(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + string sElement = ValidateElement(element, SsmlElement.Break, reader.Name); + + // Make a local copy of the ssmlAttribute + SsmlAttributes ssmlAttributes = new(); + List extraAttributes = null; + + // This is equivalent to a memcpy + ssmlAttributes = ssmAttributesParent; + ssmlAttributes._fragmentState.Action = TtsEngineAction.Silence; + ssmlAttributes._fragmentState.Emphasis = (int)EmphasisBreak.Default; + + string sTime = null; + string sStrength = null; + while (reader.MoveToNextAttribute()) + { + // Namespace must be empty + bool isInvalidAttribute = reader.NamespaceURI.Length != 0; + + if (!isInvalidAttribute) + { + switch (reader.LocalName) + { + case "time": + { + CheckForDuplicates(ref sTime, reader); + ssmlAttributes._fragmentState.Emphasis = (int)EmphasisBreak.None; + ssmlAttributes._fragmentState.Duration = ParseCSS2Time(sTime); + isInvalidAttribute = ssmlAttributes._fragmentState.Duration < 0; + } + break; + + case "strength": + CheckForDuplicates(ref sStrength, reader); + if (sTime == null) + { + ssmlAttributes._fragmentState.Duration = 0; + int pos = Array.BinarySearch(s_breakStrength, sStrength); + if (pos < 0) + { + isInvalidAttribute = true; + } + else + { + // SSML Spec if both strength and time are supplied, ignore strength + if (ssmlAttributes._fragmentState.Emphasis != (int)EmphasisBreak.None) + { + ssmlAttributes._fragmentState.Emphasis = (int)s_breakEmphasis[pos]; + } + } + } + break; + + default: + isInvalidAttribute = true; + break; + } + } + if (isInvalidAttribute && !ssmlAttributes.AddUnknowAttribute(reader, ref extraAttributes)) + { + ThrowFormatException(SRID.InvalidSpeakAttribute, reader.Name, "break"); + } + } + + engine.ProcessBreak(ssmlAttributes._voice, ref ssmlAttributes._fragmentState, (EmphasisBreak)ssmlAttributes._fragmentState.Emphasis, ssmlAttributes._fragmentState.Duration, fIgnore); + + // No Children allowed . + ProcessElement(reader, engine, sElement, 0, ssmlAttributes, true, extraAttributes); + + // Notify the engine that the element is processed + engine.EndElement(); + } + + private static void ParseDesc(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + string sElement = ValidateElement(element, SsmlElement.Desc, reader.Name); + + // Make a local copy of the ssmlAttribute + SsmlAttributes ssmlAttributes = new(); + List extraAttributes = null; + + // This is equivalent to a memcpy + ssmlAttributes = ssmAttributesParent; + + string sCulture = null; + CultureInfo culture = null; + while (reader.MoveToNextAttribute()) + { + bool isInvalidAttribute = reader.NamespaceURI != xmlNamespace; + + if (!isInvalidAttribute) + { + switch (reader.LocalName) + { + // The W3C spec says ignore + case "lang": + CheckForDuplicates(ref sCulture, reader); + try + { + culture = new CultureInfo(sCulture); + } + catch (ArgumentException) + { + isInvalidAttribute = true; + } + isInvalidAttribute &= culture != null; + break; + + default: + isInvalidAttribute = true; + break; + } + } + if (isInvalidAttribute && !ssmlAttributes.AddUnknowAttribute(reader, ref extraAttributes)) + { + ThrowFormatException(SRID.InvalidItemAttribute, reader.Name); + } + } + + engine.ProcessDesc(culture); + + // Process child elements. + ProcessElement(reader, engine, sElement, SsmlElement.Text, ssmlAttributes, true, extraAttributes); + + // Notify the engine that the element is processed + engine.EndElement(); + } + + private static void ParseEmphasis(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + string sElement = ValidateElement(element, SsmlElement.Emphasis, reader.Name); + + // Make a local copy of the ssmlAttribute + SsmlAttributes ssmlAttributes = new(); + List extraAttributes = null; + + // This is equivalent to a memcpy + ssmlAttributes = ssmAttributesParent; + + // Set the default value + ssmlAttributes._fragmentState.Emphasis = (int)EmphasisWord.Moderate; + + string sLevel = null; + while (reader.MoveToNextAttribute()) + { + // Namespace must be empty + bool isInvalidAttribute = reader.NamespaceURI.Length != 0; + + if (!isInvalidAttribute) + { + switch (reader.LocalName) + { + // The W3C spec says ignore + case "level": + CheckForDuplicates(ref sLevel, reader); + int pos = Array.BinarySearch(s_emphasisNames, sLevel); + if (pos < 0) + { + isInvalidAttribute = true; + } + else + { + ssmlAttributes._fragmentState.Emphasis = (int)s_emphasisWord[pos]; + } + break; + + default: + isInvalidAttribute = true; + break; + } + } + if (isInvalidAttribute && !ssmlAttributes.AddUnknowAttribute(reader, ref extraAttributes)) + { + ThrowFormatException(SRID.InvalidItemAttribute, reader.Name); + } + } + + engine.ProcessEmphasis(!string.IsNullOrEmpty(sLevel), (EmphasisWord)ssmlAttributes._fragmentState.Emphasis); + + // Process child elements. + SsmlElement possibleChild = SsmlElement.AudioMarkTextWithStyle | ElementPromptEngine(ssmlAttributes); + ProcessElement(reader, engine, sElement, possibleChild, ssmlAttributes, fIgnore, extraAttributes); + + // Notify the engine that the element is processed + engine.EndElement(); + } + + private static void ParseMark(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + string sElement = ValidateElement(element, SsmlElement.Mark, reader.Name); + + // Make a local copy of the ssmlAttribute + SsmlAttributes ssmlAttributes = new(); + List extraAttributes = null; + + // This is equivalent to a memcpy + ssmlAttributes = ssmAttributesParent; + + string sName = null; + while (reader.MoveToNextAttribute()) + { + // Namespace must be empty + bool isInvalidAttribute = reader.NamespaceURI.Length != 0; + + if (!isInvalidAttribute) + { + switch (reader.LocalName) + { + // The W3C spec says ignore + case "name": + CheckForDuplicates(ref sName, reader); + break; + + default: + isInvalidAttribute = true; + break; + } + } + if (isInvalidAttribute && !ssmlAttributes.AddUnknowAttribute(reader, ref extraAttributes)) + { + ThrowFormatException(SRID.InvalidItemAttribute, reader.Name); + } + } + + if (string.IsNullOrEmpty(sName)) + { + ThrowFormatException(SRID.MissingRequiredAttribute, "name", "mark"); + } + + ssmlAttributes._fragmentState.Action = TtsEngineAction.Bookmark; + engine.ProcessMark(ssmlAttributes._voice, ref ssmlAttributes._fragmentState, sName, fIgnore); + + // No Children allowed. + ProcessElement(reader, engine, sElement, 0, ssmlAttributes, true, extraAttributes); + + // Notify the engine that the element is processed + engine.EndElement(); + } + + private static void ParseMetaData(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + ValidateElement(element, SsmlElement.MetaData, reader.Name); + + // No processing for this element, skip + if (!reader.IsEmptyElement) + { + int cEndNode = 1; + do + { + // Loop until we reach the end of the metadata element + reader.Read(); + + // Count the number of elements processed + if (reader.NodeType == XmlNodeType.Element) + { + cEndNode++; + } + if (reader.NodeType == XmlNodeType.EndElement || reader.NodeType == XmlNodeType.None) + { + cEndNode--; + } + } + while (cEndNode > 0); + + // Consume the end element + System.Diagnostics.Debug.Assert(reader.NodeType == XmlNodeType.EndElement); + } + } + + private static void ParseParagraph(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + string sElement = ValidateElement(element, SsmlElement.Paragraph, reader.Name); + + ParseTextBlock(reader, engine, true, sElement, ssmAttributesParent, fIgnore); + } + + private static void ParseSentence(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + string sElement = ValidateElement(element, SsmlElement.Sentence, reader.Name); + + ParseTextBlock(reader, engine, false, sElement, ssmAttributesParent, fIgnore); + } + + private static void ParseTextBlock(XmlReader reader, ISsmlParser engine, bool isParagraph, string sElement, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Make a local copy of the ssmlAttribute + SsmlAttributes ssmlAttributes = new(); + List extraAttributes = null; + + // This is equivalent to a memcpy + ssmlAttributes = ssmAttributesParent; + + string sCulture = null; + CultureInfo culture = null; + while (reader.MoveToNextAttribute()) + { + bool isInvalidAttribute = reader.NamespaceURI != xmlNamespace; + + if (!isInvalidAttribute) + { + switch (reader.LocalName) + { + // The W3C spec says ignore + case "lang": + CheckForDuplicates(ref sCulture, reader); + try + { + culture = new CultureInfo(sCulture); + } + catch (ArgumentException) + { + isInvalidAttribute = true; + } + break; + + default: + isInvalidAttribute = true; + break; + } + } + if (isInvalidAttribute && !ssmlAttributes.AddUnknowAttribute(reader, ref extraAttributes)) + { + ThrowFormatException(SRID.InvalidItemAttribute, reader.Name); + } + } + + // Try to change the voice + bool fNewCulture = culture != null && culture.LCID != ssmlAttributes._fragmentState.LangId; + ssmlAttributes._voice = engine.ProcessTextBlock(isParagraph, ssmlAttributes._voice, ref ssmlAttributes._fragmentState, culture, fNewCulture, ssmlAttributes._gender, ssmlAttributes._age); + if (fNewCulture) + { + ssmlAttributes._fragmentState.LangId = culture.LCID; + } + + // Process child elements. + SsmlElement possibleChild = SsmlElement.AudioMarkTextWithStyle | ElementPromptEngine(ssmlAttributes); + if (isParagraph) + { + possibleChild |= SsmlElement.Sentence; + } + ProcessElement(reader, engine, sElement, possibleChild, ssmlAttributes, fIgnore, extraAttributes); + + engine.EndProcessTextBlock(isParagraph); + + // Notify the engine that the element is processed + engine.EndElement(); + } + + private static void ParsePhoneme(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + string sElement = ValidateElement(element, SsmlElement.Phoneme, reader.Name); + + // Make a local copy of the ssmlAttribute + SsmlAttributes ssmlAttributes = new(); + List extraAttributes = null; + + // This is equivalent to a memcpy + ssmlAttributes = ssmAttributesParent; + + string sAlphabet = null; + AlphabetType alphabet = AlphabetType.Ipa; + string sPh = null; + char[] aPhoneIds = null; + while (reader.MoveToNextAttribute()) + { + // Namespace must be empty + bool isInvalidAttribute = reader.NamespaceURI.Length != 0; + + if (!isInvalidAttribute) + { + switch (reader.LocalName) + { + case "alphabet": + CheckForDuplicates(ref sAlphabet, reader); + switch (sAlphabet) + { + case "ipa": + alphabet = AlphabetType.Ipa; + break; + + case "sapi": + case "x-sapi": + case "x-microsoft-sapi": + alphabet = AlphabetType.Sapi; + break; + + case "ups": + case "x-ups": + case "x-microsoft-ups": + alphabet = AlphabetType.Ups; + break; + + default: + throw new FormatException(SR.Get(SRID.UnsupportedAlphabet, sAlphabet)); + } + break; + + case "ph": + CheckForDuplicates(ref sPh, reader); + break; + + default: + isInvalidAttribute = true; + break; + } + } + if (isInvalidAttribute && !ssmlAttributes.AddUnknowAttribute(reader, ref extraAttributes)) + { + ThrowFormatException(SRID.InvalidItemAttribute, reader.Name); + } + } + + if (string.IsNullOrEmpty(sPh)) + { + ThrowFormatException(SRID.MissingRequiredAttribute, "ph", "phoneme"); + } + + // Try to convert the phoneme set + try + { + switch (alphabet) + { + case AlphabetType.Sapi: + aPhoneIds = PhonemeConverter.ConvertPronToId(sPh, ssmlAttributes._fragmentState.LangId).ToCharArray(); + break; + + case AlphabetType.Ups: + aPhoneIds = PhonemeConverter.UpsConverter.ConvertPronToId(sPh).ToCharArray(); + alphabet = AlphabetType.Ipa; + break; + + case AlphabetType.Ipa: + default: + aPhoneIds = sPh.ToCharArray(); + try + { + PhonemeConverter.ValidateUpsIds(aPhoneIds); + } + catch (FormatException) + { + if (sAlphabet != null) + { + throw; + } + else + { + // try with sapi (backward compatibility) + // if not a sapi phoneme either throw the IPA exception + aPhoneIds = PhonemeConverter.ConvertPronToId(sPh, ssmlAttributes._fragmentState.LangId).ToCharArray(); + alphabet = AlphabetType.Sapi; + } + } + break; + } + } + catch (FormatException) + { + ThrowFormatException(SRID.InvalidItemAttribute, "phoneme"); + } + + engine.ProcessPhoneme(ref ssmlAttributes._fragmentState, alphabet, sPh, aPhoneIds); + + // Process child elements. + ProcessElement(reader, engine, sElement, SsmlElement.Text, ssmlAttributes, fIgnore, extraAttributes); + + // Notify the engine that the element is processed + engine.EndElement(); + } + + private static void ParseProsody(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + string sElement = ValidateElement(element, SsmlElement.Prosody, reader.Name); + + // Make a local copy of the ssmlAttribute + SsmlAttributes ssmlAttributes = new(); + List extraAttributes = null; + + // This is equivalent to a memcpy + ssmlAttributes = ssmAttributesParent; + + string sPitch = null; + string sContour = null; + string sRange = null; + string sRate = null; + string sDuration = null; + string sVolume = null; + Prosody prosody = ssmlAttributes._fragmentState.Prosody != null ? ssmlAttributes._fragmentState.Prosody.Clone() : new Prosody(); + while (reader.MoveToNextAttribute()) + { + // Namespace must be empty + bool isInvalidAttribute = reader.NamespaceURI.Length != 0; + + if (!isInvalidAttribute) + { + switch (reader.LocalName) + { + case "pitch": + isInvalidAttribute = ParseNumberHz(reader, ref sPitch, s_pitchNames, s_pitchWords, ref prosody._pitch); + break; + + case "range": + isInvalidAttribute = ParseNumberHz(reader, ref sRange, s_rangeNames, s_rangeWords, ref prosody._range); + break; + + case "rate": + isInvalidAttribute = ParseNumberRelative(reader, ref sRate, s_rateNames, s_rateWords, ref prosody._rate); + break; + + case "volume": + isInvalidAttribute = ParseNumberRelative(reader, ref sVolume, s_volumeNames, s_volumeWords, ref prosody._volume); + break; + + case "duration": + CheckForDuplicates(ref sDuration, reader); + prosody.Duration = ParseCSS2Time(sDuration); + break; + + case "contour": + CheckForDuplicates(ref sContour, reader); + prosody.SetContourPoints(ParseContour(sContour)); + if (prosody.GetContourPoints() == null) { isInvalidAttribute = true; } + break; + + default: + isInvalidAttribute = true; + break; + } + } + if (isInvalidAttribute && !ssmlAttributes.AddUnknowAttribute(reader, ref extraAttributes)) + { + ThrowFormatException(SRID.InvalidItemAttribute, reader.Name); + } + } + + if (string.IsNullOrEmpty(sPitch) && string.IsNullOrEmpty(sContour) && string.IsNullOrEmpty(sRange) && string.IsNullOrEmpty(sRate) && string.IsNullOrEmpty(sDuration) && string.IsNullOrEmpty(sVolume)) + { + ThrowFormatException(SRID.MissingRequiredAttribute, "pitch, contour, range, rate, duration, volume", "prosody"); + } + + ssmlAttributes._fragmentState.Prosody = prosody; + + engine.ProcessProsody(sPitch, sRange, sRate, sVolume, sDuration, sContour); + + // Process child elements. + SsmlElement possibleChild = SsmlElement.ParagraphOrSentence | SsmlElement.AudioMarkTextWithStyle | ElementPromptEngine(ssmlAttributes); + ProcessElement(reader, engine, sElement, possibleChild, ssmlAttributes, fIgnore, extraAttributes); + + // Notify the engine that the element is processed + engine.EndElement(); + } + + private static void ParseSayAs(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + string sElement = ValidateElement(element, SsmlElement.SayAs, reader.Name); + + // Make a local copy of the ssmlAttribute + SsmlAttributes ssmlAttributes = new(); + List extraAttributes = null; + + // This is equivalent to a memcpy + ssmlAttributes = ssmAttributesParent; + + string sInterpretAs = null; + string sFormat = null; + string sDetail = null; + System.Speech.Synthesis.TtsEngine.SayAs sayAs = new(); + while (reader.MoveToNextAttribute()) + { + // Namespace must be empty + bool isInvalidAttribute = reader.NamespaceURI.Length != 0; + + if (!isInvalidAttribute) + { + switch (reader.LocalName) + { + case "type": + case "interpret-as": + CheckForDuplicates(ref sInterpretAs, reader); + sayAs.InterpretAs = sInterpretAs; + break; + + case "format": + CheckForDuplicates(ref sFormat, reader); + sayAs.Format = sFormat; + break; + + case "detail": + CheckForDuplicates(ref sDetail, reader); + sayAs.Detail = sDetail; + break; + + default: + isInvalidAttribute = true; + break; + } + } + if (isInvalidAttribute && !ssmlAttributes.AddUnknowAttribute(reader, ref extraAttributes)) + { + ThrowFormatException(SRID.InvalidItemAttribute, reader.Name); + } + } + + if (string.IsNullOrEmpty(sInterpretAs)) + { + ThrowFormatException(SRID.MissingRequiredAttribute, "interpret-as", "say-as"); + } + + // Create SayAs attribute + ssmlAttributes._fragmentState.SayAs = sayAs; + + engine.ProcessSayAs(sInterpretAs, sFormat, sDetail); + + // Process child elements. + ProcessElement(reader, engine, sElement, SsmlElement.Text, ssmlAttributes, fIgnore, extraAttributes); + + // Notify the engine that the element is processed + engine.EndElement(); + } + + private static void ParseSub(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + string sElement = ValidateElement(element, SsmlElement.Sub, reader.Name); + + // Make a local copy of the ssmlAttribute + SsmlAttributes ssmlAttributes = new(); + List extraAttributes = null; + + // This is equivalent to a memcpy + ssmlAttributes = ssmAttributesParent; + + string sAlias = null; + int textPosition = 0; + while (reader.MoveToNextAttribute()) + { + // Namespace must be empty + bool isInvalidAttribute = reader.NamespaceURI.Length != 0; + + if (!isInvalidAttribute) + { + switch (reader.LocalName) + { + // The W3C spec says ignore + case "alias": + CheckForDuplicates(ref sAlias, reader); + XmlTextReader textReader = reader as XmlTextReader; + if (textReader != null && engine.Ssml != null) + { + textPosition = engine.Ssml.IndexOf(reader.Value, textReader.LinePosition + reader.LocalName.Length, StringComparison.Ordinal); + } + break; + + default: + isInvalidAttribute = true; + break; + } + } + if (isInvalidAttribute && !ssmlAttributes.AddUnknowAttribute(reader, ref extraAttributes)) + { + ThrowFormatException(SRID.InvalidItemAttribute, reader.Name); + } + } + + if (string.IsNullOrEmpty(sAlias)) + { + ThrowFormatException(SRID.MissingRequiredAttribute, "alias", "sub"); + } + + engine.ProcessSub(sAlias, ssmlAttributes._voice, ref ssmlAttributes._fragmentState, textPosition, fIgnore); + + // The only allowed children element is text. Ignore it + ProcessElement(reader, engine, sElement, SsmlElement.Text, ssmlAttributes, true, extraAttributes); + + // Notify the engine that the element is processed + engine.EndElement(); + } + private static void ParseVoice(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + string sElement = ValidateElement(element, SsmlElement.Voice, reader.Name); + + // Cannot have a voice element in a Prompt bout + if (ssmAttributesParent._cPromptOutput > 0) + { + ThrowFormatException(SRID.InvalidVoiceElementInPromptOutput); + } + + // Make a local copy of the ssmlAttribute + SsmlAttributes ssmlAttributes = new(); + + // This is equivalent to a memcpy + ssmlAttributes = ssmAttributesParent; + + string sCulture = null; + string sGender = null; + string sVariant = null; + string sName = null; + string sAge = null; + string xmlns = null; + CultureInfo culture = null; + int variant = -1; + + List extraAttributes = null; + List extraAttributesVoice = null; + List localUnknownNamespaces = null; + + while (reader.MoveToNextAttribute()) + { + bool isInvalidAttribute = false; + + // empty namespace + if (reader.NamespaceURI.Length == 0) + { + switch (reader.LocalName) + { + case "gender": + CheckForDuplicates(ref sGender, reader); + VoiceGender gender; + if (!SsmlParserHelpers.TryConvertGender(sGender, out gender)) + { + isInvalidAttribute = true; + } + else + { + ssmlAttributes._gender = gender; + } + break; + + case "age": + CheckForDuplicates(ref sAge, reader); + VoiceAge age; + if (!SsmlParserHelpers.TryConvertAge(sAge, out age)) + { + isInvalidAttribute = true; + } + else + { + ssmlAttributes._age = age; + } + break; + + case "variant": + // Ignore this field. We have no way with the current tokens to + // use it + CheckForDuplicates(ref sVariant, reader); + if (!int.TryParse(sVariant, out variant) || variant <= 0) + { + isInvalidAttribute = true; + } + break; + + case "name": + CheckForDuplicates(ref sName, reader); + break; + + default: + isInvalidAttribute = true; + break; + } + } + else + { + if (reader.Prefix == "xmlns" && reader.Value == xmlNamespacePrompt) + { + CheckForDuplicates(ref xmlns, reader); + } + else + { + if (reader.NamespaceURI == xmlNamespace) + { + switch (reader.LocalName) + { + // The W3C spec says ignore + case "lang": + CheckForDuplicates(ref sCulture, reader); + try + { + culture = new CultureInfo(sCulture); + } + catch (ArgumentException) + { + isInvalidAttribute = true; + } + break; + + default: + isInvalidAttribute = true; + break; + } + } + else if (reader.NamespaceURI == xmlNamespaceXmlns) + { + if (reader.Value != xmlNamespaceSsml) + { + if (localUnknownNamespaces == null) + { + localUnknownNamespaces = new List(); + } + + SsmlXmlAttribute ns = new(reader.Prefix, reader.LocalName, reader.Value, reader.NamespaceURI); + localUnknownNamespaces.Add(ns); + ssmlAttributes._unknownNamespaces.Add(ns); + } + } + else + { + if (extraAttributesVoice == null) + { + extraAttributesVoice = new List(); + } + extraAttributesVoice.Add(new SsmlXmlAttribute(reader.Prefix, reader.LocalName, reader.Value, reader.NamespaceURI)); + } + } + } + if (isInvalidAttribute && !ssmlAttributes.AddUnknowAttribute(reader, ref extraAttributes)) + { + ThrowFormatException(SRID.InvalidItemAttribute, reader.Name); + } + } + + // append the local attributes to list of unknown attributes + if (extraAttributesVoice != null) + { + foreach (SsmlXmlAttribute attribute in extraAttributesVoice) + { + ssmlAttributes.AddUnknowAttribute(attribute, ref extraAttributes); + } + } + + if (string.IsNullOrEmpty(sCulture) && string.IsNullOrEmpty(sGender) && string.IsNullOrEmpty(sAge) && string.IsNullOrEmpty(sVariant) && string.IsNullOrEmpty(sName) && string.IsNullOrEmpty(xmlns)) + { + ThrowFormatException(SRID.MissingRequiredAttribute, "'xml:lang' or 'gender' or 'age' or 'variant' or 'name'", "voice"); + } + + // Try to change the voice + culture = culture == null ? new CultureInfo(ssmlAttributes._fragmentState.LangId) : culture; + bool fNewCulture = culture.LCID != ssmlAttributes._fragmentState.LangId; + ssmlAttributes._voice = engine.ProcessVoice(sName, culture, ssmlAttributes._gender, ssmlAttributes._age, variant, fNewCulture, localUnknownNamespaces); + ssmlAttributes._fragmentState.LangId = culture.LCID; + + // Process child elements. + SsmlElement possibleChild = SsmlElement.ParagraphOrSentence | SsmlElement.AudioMarkTextWithStyle | ElementPromptEngine(ssmlAttributes); + ProcessElement(reader, engine, sElement, possibleChild, ssmlAttributes, fIgnore, extraAttributes); + + // remove the local namespaces + if (localUnknownNamespaces != null) + { + foreach (SsmlXmlAttribute ns in localUnknownNamespaces) + { + ssmlAttributes._unknownNamespaces.Remove(ns); + } + } + + // Notify the engine that the element is processed + engine.EndElement(); + } + + private static void ParseLexicon(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + string sElement = ValidateElement(element, SsmlElement.Lexicon, reader.Name); + + // Make a local copy of the ssmlAttribute + SsmlAttributes ssmlAttributes = new(); + List extraAttributes = null; + + // This is equivalent to a memcpy + ssmlAttributes = ssmAttributesParent; + + string sUri = null; + string sMediaType = null; + while (reader.MoveToNextAttribute()) + { + // Namespace must be empty + bool isInvalidAttribute = reader.NamespaceURI.Length != 0; + + if (!isInvalidAttribute) + { + switch (reader.LocalName) + { + case "uri": + CheckForDuplicates(ref sUri, reader); + break; + + case "type": + CheckForDuplicates(ref sMediaType, reader); + break; + + default: + isInvalidAttribute = true; + break; + } + } + if (isInvalidAttribute && !ssmlAttributes.AddUnknowAttribute(reader, ref extraAttributes)) + { + ThrowFormatException(SRID.InvalidItemAttribute, reader.Name); + } + } + + if (string.IsNullOrEmpty(sUri)) + { + ThrowFormatException(SRID.MissingRequiredAttribute, "uri", "lexicon"); + } + + // Add the base path if it exist + Uri uri = new(sUri, UriKind.RelativeOrAbsolute); + if (!uri.IsAbsoluteUri && ssmlAttributes._baseUri != null) + { + sUri = ssmlAttributes._baseUri + '/' + sUri; + uri = new Uri(sUri, UriKind.RelativeOrAbsolute); + } + + engine.ProcessLexicon(uri, sMediaType); + + // No Children allowed. + ProcessElement(reader, engine, sElement, 0, ssmlAttributes, true, extraAttributes); + + // Notify the engine that the element is processed + engine.EndElement(); + } + + #region Prompt Engine + + private delegate bool ProcessPromptEngine0(object voice); + private delegate bool ProcessPromptEngine1(object voice, string value); + + private static void ParsePromptEngine0(XmlReader reader, ISsmlParser engine, SsmlElement elementAllowed, SsmlElement element, ProcessPromptEngine0 process, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + string sElement = ValidateElement(elementAllowed, element, reader.Name); + + // Make a local copy of the ssmlAttribute + SsmlAttributes ssmlAttributes = new(); + + // This is equivalent to a memcpy + ssmlAttributes = ssmAttributesParent; + + // No attributes allowed + while (reader.MoveToNextAttribute()) + { + if (reader.NamespaceURI == xmlNamespaceXmlns && reader.Value == xmlNamespacePrompt) + { + engine.ContainsPexml(reader.LocalName); + } + else + { + ThrowFormatException(SRID.InvalidItemAttribute, reader.Name); + } + } + + // Notify the engine that the element is processed + if (!process(ssmlAttributes._voice)) + { + ThrowFormatException(SRID.InvalidElement, reader.Name); + } + + // Process Children + ProcessElement(reader, engine, sElement, SsmlElement.AudioMarkTextWithStyle | ElementPromptEngine(ssmlAttributes), ssmlAttributes, fIgnore, null); + } + + private static string ParsePromptEngine1(XmlReader reader, ISsmlParser engine, SsmlElement elementAllowed, SsmlElement element, string attribute, ProcessPromptEngine1 process, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + string sElement = ValidateElement(elementAllowed, element, reader.Name); + + // Make a local copy of the ssmlAttribute + SsmlAttributes ssmlAttributes = new(); + + // This is equivalent to a memcpy + ssmlAttributes = ssmAttributesParent; + + // 1 attribute + string value = null; + while (reader.MoveToNextAttribute()) + { + if (reader.LocalName == attribute) + { + CheckForDuplicates(ref value, reader); + } + else + { + ThrowFormatException(SRID.InvalidItemAttribute, reader.Name); + } + } + + // Notify the engine that the element is processed + if (!process(ssmlAttributes._voice, value)) + { + ThrowFormatException(SRID.InvalidElement, reader.Name); + } + + // No Children allowed + ProcessElement(reader, engine, sElement, SsmlElement.AudioMarkTextWithStyle | ElementPromptEngine(ssmlAttributes), ssmlAttributes, fIgnore, null); + return value; + } + + private static void ParsePromptOutput(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Increase the ref count for the Prompt output + ssmAttributesParent._cPromptOutput++; + + ParsePromptEngine0(reader, engine, element, SsmlElement.PromptEngineOutput, new ProcessPromptEngine0(engine.BeginPromptEngineOutput), ssmAttributesParent, fIgnore); + + // Notify the engine that the element is processed + engine.EndElement(); + + // Decrease the ref count for the Prompt output + ssmAttributesParent._cPromptOutput--; + engine.EndPromptEngineOutput(ssmAttributesParent._voice); + } + + private static void ParseDiv(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + ParsePromptEngine0(reader, engine, element, SsmlElement.PromptEngineDiv, new ProcessPromptEngine0(engine.ProcessPromptEngineDiv), ssmAttributesParent, fIgnore); + + // Notify the engine that the element is processed + engine.EndElement(); + } + + private static void ParseDatabase(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + // Validate the SSML markup + string sElement = ValidateElement(element, SsmlElement.PromptEngineDatabase, reader.Name); + + // Make a local copy of the ssmlAttribute + SsmlAttributes ssmlAttributes = new(); + + // This is equivalent to a memcpy + ssmlAttributes = ssmAttributesParent; + + // No attributes allowed + string fname = null; + string delta = null; + string idset = null; + while (reader.MoveToNextAttribute()) + { + // Namespace must be empty + bool isInvalidAttribute = false; + + if (!isInvalidAttribute) + { + switch (reader.LocalName) + { + case "fname": + CheckForDuplicates(ref fname, reader); + break; + + case "idset": + CheckForDuplicates(ref idset, reader); + break; + + case "delta": + CheckForDuplicates(ref delta, reader); + break; + + default: + isInvalidAttribute = true; + break; + } + } + if (isInvalidAttribute) + { + ThrowFormatException(SRID.InvalidItemAttribute, reader.Name); + } + } + // Notify the engine that the element is processed + if (!engine.ProcessPromptEngineDatabase(ssmlAttributes._voice, fname, delta, idset)) + { + ThrowFormatException(SRID.InvalidElement, reader.Name); + } + + // No Children allowed + ProcessElement(reader, engine, sElement, 0, ssmlAttributes, fIgnore, null); + + // Notify the engine that the element is processed + engine.EndElement(); + } + + private static void ParseId(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + ParsePromptEngine1(reader, engine, element, SsmlElement.PromptEngineId, "id", new ProcessPromptEngine1(engine.ProcessPromptEngineId), ssmAttributesParent, fIgnore); + + // Notify the engine that the element is processed + engine.EndElement(); + } + + private static void ParseTts(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + ParsePromptEngine0(reader, engine, element, SsmlElement.PromptEngineTTS, new ProcessPromptEngine0(engine.BeginPromptEngineTts), ssmAttributesParent, fIgnore); + + // Notify the engine that the element is processed + engine.EndElement(); + engine.EndPromptEngineTts(ssmAttributesParent._voice); + } + + private static void ParseWithTag(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + string tag = ParsePromptEngine1(reader, engine, element, SsmlElement.PromptEngineWithTag, "tag", new ProcessPromptEngine1(engine.BeginPromptEngineWithTag), ssmAttributesParent, fIgnore); + + // Notify the engine that the element is processed + engine.EndElement(); + engine.EndPromptEngineWithTag(ssmAttributesParent._voice, tag); + } + + private static void ParseRule(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmAttributesParent, bool fIgnore) + { + string name = ParsePromptEngine1(reader, engine, element, SsmlElement.PromptEngineRule, "name", new ProcessPromptEngine1(engine.BeginPromptEngineRule), ssmAttributesParent, fIgnore); + + // Notify the engine that the element is processed + engine.EndElement(); + engine.EndPromptEngineRule(ssmAttributesParent._voice, name); + } + + #endregion + + private static void CheckForDuplicates(ref string dest, XmlReader reader) + { + if (!string.IsNullOrEmpty(dest)) + { + StringBuilder attribute = new(reader.LocalName); + if (reader.NamespaceURI.Length > 0) + { + attribute.Append(reader.NamespaceURI); + attribute.Append(':'); + } + ThrowFormatException(SRID.InvalidAttributeDefinedTwice, reader.Value, attribute); + } + dest = reader.Value; + } + + private static int ParseCSS2Time(string time) + { + time = time.Trim(Helpers._achTrimChars); + int pos = time.IndexOf("ms", StringComparison.Ordinal); + int duration = -1; + float fDuration; + if (pos > 0 && time.Length == pos + 2) + { + if (!float.TryParse(time.Substring(0, pos), out fDuration)) + { + duration = -1; + } + else + { + duration = (int)(fDuration + 0.5); + } + } + else + if ((pos = time.IndexOf('s')) > 0 && time.Length == pos + 1) + { + if (!float.TryParse(time.Substring(0, pos), out fDuration)) + { + duration = -1; + } + else + { + duration = (int)(fDuration * 1000); + } + } + return duration; + } + + private static ContourPoint[] ParseContour(string contour) + { + char[] achContour = contour.ToCharArray(); + List points = new(); + int start = 0; + + try + { + while (start < achContour.Length) + { + bool percent, ignored, hz; + // Form is (0%, +20Hz) + if ((start = NextChar(achContour, start, '(', false, out ignored)) < 0) + { + // End of the string found exit + break; + } + + int comma = NextChar(achContour, start, ',', true, out percent); + int parenthesis = NextChar(achContour, comma, ')', true, out ignored); + + ProsodyNumber timePosition = new(); + ProsodyNumber target = new(); + + // Parse the 2 numbers + if (!percent || !TryParseNumber(contour.Substring(start, comma - (start + 1)), ref timePosition) || timePosition.SsmlAttributeId == ProsodyNumber.AbsoluteNumber) + { + return null; + } + if (!TryParseHz(contour.Substring(comma, parenthesis - (comma + 1)), ref target, true, out hz)) + { + return null; + } + + // First point + if (points.Count == 0) + { + // fake a zero entry if none is provided by duplicating the first entry + if (timePosition.Number > 0 && timePosition.Number < 100) + { + points.Add(new ContourPoint(0, target.Number, ContourPointChangeType.Hz)); + } + } + else + { + // Accept only increasing start points + // Add a 100% if necessary + if (points[points.Count - 1].Start > timePosition.Number) + { + return null; + } + } + + if (timePosition.Number >= 0 && timePosition.Number <= 1) + { + points.Add(new ContourPoint(timePosition.Number, target.Number, (hz ? ContourPointChangeType.Hz : ContourPointChangeType.Percentage))); + } + start = parenthesis; + } + } + catch (InvalidOperationException) + { + return null; + } + + if (points.Count < 1) + { + return null; + } + + // Add a 100% if necessary + if (!points[points.Count - 1].Start.Equals(1.0)) + { + points.Add(new ContourPoint(1, points[points.Count - 1].Change, points[points.Count - 1].ChangeType)); + } + return points.ToArray(); + } + + private static int NextChar(char[] ach, int start, char expected, bool skipDigit, out bool percent) + { + percent = false; + + // skip the whitespace + while (start < ach.Length && (ach[start] == ' ' || ach[start] == '\t' || ach[start] == '\n' || ach[start] == '\r')) + { + start++; + } + + // skip the digits + if (skipDigit) + { + while (start < ach.Length && ach[start] != expected && ((percent = ach[start] == '%') || char.IsDigit(ach[start]) || ach[start] == 'H' || ach[start] == 'z' || ach[start] == '.' || ach[start] == '+' || ach[start] == '-')) + { + start++; + } + + // skip the trailing white spaces + while (start < ach.Length && (ach[start] == ' ' || ach[start] == '\t' || ach[start] == '\n' || ach[start] == '\r')) + { + start++; + } + } + + // Check if we found the character we wanted + if (!(start < ach.Length && ach[start] == expected)) + { + // Check for the end of the string + if (!skipDigit && start == ach.Length) + { + return -1; + } + // bail out + throw new InvalidOperationException(); + } + return start + 1; + } + + private static bool ParseNumberHz(XmlReader reader, ref string attribute, string[] attributeValues, int[] attributeConst, ref ProsodyNumber number) + { + bool isInvalidAttribute = false; + bool isHz; + + CheckForDuplicates(ref attribute, reader); + int pos = Array.BinarySearch(attributeValues, attribute); + if (pos < 0) + { + if (!TryParseHz(attribute, ref number, false, out isHz)) + { + isInvalidAttribute = true; + } + } + else + { + number = new ProsodyNumber(attributeConst[pos]); + } + return isInvalidAttribute; + } + + private static bool ParseNumberRelative(XmlReader reader, ref string attribute, string[] attributeValues, int[] attributeConst, ref ProsodyNumber number) + { + bool isInvalidAttribute = false; + + CheckForDuplicates(ref attribute, reader); + int pos = Array.BinarySearch(attributeValues, attribute); + if (pos < 0) + { + if (!TryParseNumber(attribute, ref number)) + { + isInvalidAttribute = true; + } + } + else + { + number = new ProsodyNumber(attributeConst[pos]); + } + return isInvalidAttribute; + } + + private static bool TryParseNumber(string sNumber, ref ProsodyNumber number) + { + bool fResult = false; + decimal value = 0; + + // always reset the unit to Default + number.Unit = ProsodyUnit.Default; + sNumber = sNumber.Trim(Helpers._achTrimChars); + if (!string.IsNullOrEmpty(sNumber)) + { + if (!decimal.TryParse(sNumber, out value)) + { + if (sNumber[sNumber.Length - 1] == '%') + { + if (decimal.TryParse(sNumber.Substring(0, sNumber.Length - 1), out value)) + { + float percent = (float)value / 100f; + if (sNumber[0] != '+' && sNumber[0] != '-') + { + number.Number = number.Number * percent; + } + else + { + number.Number += number.Number * (percent); + } + + fResult = true; + } + } + } + else + { + if (sNumber[0] != '+' && sNumber[0] != '-') + { + number.Number = (float)value; + number.SsmlAttributeId = ProsodyNumber.AbsoluteNumber; + } + else + { + if (number.IsNumberPercent) + { + number.Number *= (float)value; + } + else + { + number.Number += (float)value; + } + } + number.IsNumberPercent = false; + fResult = true; + } + } + return fResult; + } + + private static bool TryParseHz(string sNumber, ref ProsodyNumber number, bool acceptHzRelative, out bool isHz) + { + isHz = false; + + // Find the Hz at the end of the number + bool fResult = false; + number.SsmlAttributeId = ProsodyNumber.AbsoluteNumber; + ProsodyUnit unit = ProsodyUnit.Default; + + sNumber = sNumber.Trim(Helpers._achTrimChars); + if (sNumber.IndexOf("Hz", StringComparison.Ordinal) == sNumber.Length - 2) + { + unit = ProsodyUnit.Hz; + } + else if (sNumber.IndexOf("st", StringComparison.Ordinal) == sNumber.Length - 2) + { + unit = ProsodyUnit.Semitone; + } + + if (unit != ProsodyUnit.Default) + { + // Try as an Absolute Hz value + fResult = TryParseNumber(sNumber.Substring(0, sNumber.Length - 2), ref number) && (acceptHzRelative || number.SsmlAttributeId == ProsodyNumber.AbsoluteNumber); + isHz = true; + } + else + { + // Must be a relative number + fResult = TryParseNumber(sNumber, ref number) && number.SsmlAttributeId == ProsodyNumber.AbsoluteNumber; + } + + return fResult; + } + + /// + /// Ensure the this element is properly placed in the SSML markup + /// + private static string ValidateElement(SsmlElement possibleElements, SsmlElement currentElement, string sElement) + { + if ((possibleElements & currentElement) == 0) + { + ThrowFormatException(SRID.InvalidElement, sElement); + } + return sElement; + } + + /// + /// Throws an Exception with the error specified by the resource ID. + /// + private static void ThrowFormatException(SRID id, params object[] args) + { + throw new FormatException(SR.Get(id, args)); + } + + /// + /// Throws an Exception with the error specified by the resource ID. + /// + private static void ThrowFormatException(Exception innerException, SRID id, params object[] args) + { + throw new FormatException(SR.Get(id, args), innerException); + } + + /// + /// Non speakable element + /// + private static void NoOp(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmlAttributes, bool fIgnore) + { + // No Children allowed . + ProcessElement(reader, engine, null, 0, ssmlAttributes, true, null); + } + + private static SsmlElement ElementPromptEngine(SsmlAttributes ssmlAttributes) + { + return ssmlAttributes._cPromptOutput > 0 ? SsmlElement.PromptEngineChildren : 0; + } + + private static int GetColumnPosition(XmlReader reader) + { + XmlTextReader textReader = reader as XmlTextReader; + return textReader != null ? textReader.LinePosition - 1 : 0; + } + + #endregion + + #region Private Types + + private struct SsmlAttributes + { + internal object _voice; + internal FragmentState _fragmentState; + internal bool _fRenderDesc; + internal VoiceAge _age; + internal VoiceGender _gender; + internal string _baseUri; + internal short _cPromptOutput; + internal List _unknownNamespaces; + + internal bool AddUnknowAttribute(SsmlXmlAttribute attribute, ref List extraAttributes) + { + foreach (SsmlXmlAttribute ns in _unknownNamespaces) + { + if (ns._name == attribute._prefix) + { + if (extraAttributes == null) + { + extraAttributes = new List(); + } + extraAttributes.Add(attribute); + return true; + } + } + return false; + } + + internal bool AddUnknowAttribute(XmlReader reader, ref List extraAttributes) + { + foreach (SsmlXmlAttribute ns in _unknownNamespaces) + { + if (ns._name == reader.Prefix) + { + if (extraAttributes == null) + { + extraAttributes = new List(); + } + extraAttributes.Add(new SsmlXmlAttribute(reader.Prefix, reader.LocalName, reader.Value, reader.NamespaceURI)); + return true; + } + } + return false; + } + + internal bool IsOtherNamespaceElement(XmlReader reader) + { + foreach (SsmlXmlAttribute ns in _unknownNamespaces) + { + if (ns._name == reader.Prefix) + { + return true; + } + } + return false; + } + } + + private delegate void ParseElementDelegates(XmlReader reader, ISsmlParser engine, SsmlElement element, SsmlAttributes ssmlAttributes, bool fIgnore); + + #endregion + + #region Private Fields + + private static readonly string[] s_elementsName = new string[] + { + "audio", + "break", + "database", + "desc", + "div", + "emphasis", + "id", + "lexicon", + "mark", + "meta", + "metadata", + "p", + "paragraph", + "phoneme", + "prompt_output", + "prosody", + "rule", + "s", + "say-as", + "sentence", + "speak", + "sub", + "tts", + "voice", + "withtag", + }; + + private static readonly ParseElementDelegates[] s_parseElements = new ParseElementDelegates[] + { + new ParseElementDelegates (ParseAudio), + new ParseElementDelegates (ParseBreak), + new ParseElementDelegates (ParseDatabase), + new ParseElementDelegates (ParseDesc), + new ParseElementDelegates (ParseDiv), + new ParseElementDelegates (ParseEmphasis), + new ParseElementDelegates (ParseId), + new ParseElementDelegates (ParseLexicon), + new ParseElementDelegates (ParseMark), + new ParseElementDelegates (NoOp), + new ParseElementDelegates (ParseMetaData), + new ParseElementDelegates (ParseParagraph), + new ParseElementDelegates (ParseParagraph), + new ParseElementDelegates (ParsePhoneme), + new ParseElementDelegates (ParsePromptOutput), + new ParseElementDelegates (ParseProsody), + new ParseElementDelegates (ParseRule), + new ParseElementDelegates (ParseSentence), + new ParseElementDelegates (ParseSayAs), + new ParseElementDelegates (ParseSentence), + new ParseElementDelegates (NoOp), + new ParseElementDelegates (ParseSub), + new ParseElementDelegates (ParseTts), + new ParseElementDelegates (ParseVoice), + new ParseElementDelegates (ParseWithTag) + }; + + private static readonly string[] s_breakStrength = new string[] + { + "medium", "none", "strong", "weak", "x-strong", "x-weak" + }; + + /// + /// Must be in the same order as the _breakStrength enumeration + /// + private static readonly EmphasisBreak[] s_breakEmphasis = new EmphasisBreak[] + { + EmphasisBreak.Medium, EmphasisBreak.None, EmphasisBreak.Strong, EmphasisBreak.Weak, EmphasisBreak.ExtraStrong, EmphasisBreak.ExtraWeak + }; + + private static readonly string[] s_emphasisNames = new string[] + { + "moderate", "none", "reduced", "strong" + }; + + /// + /// Must be in the same order as the _emphasisNames enumeration + /// + private static readonly EmphasisWord[] s_emphasisWord = new EmphasisWord[] + { + EmphasisWord.Moderate, EmphasisWord.None, EmphasisWord.Reduced, EmphasisWord.Strong + }; + + /// + /// Must be in the same order as the _emphasisNames enumeration + /// + private static readonly int[] s_pitchWords = new int[] + { + (int) ProsodyPitch.Default, (int) ProsodyPitch.High, (int) ProsodyPitch.Low, (int) ProsodyPitch.Medium, (int) ProsodyPitch.ExtraHigh, (int) ProsodyPitch.ExtraLow + }; + + private static readonly string[] s_pitchNames = new string[] + { + "default", "high", "low", "medium", "x-high", "x-low", + }; + + /// + /// Must be in the same order as the _emphasisNames enumeration + /// + private static readonly int[] s_rangeWords = new int[] + { + (int) ProsodyRange.Default, (int) ProsodyRange.High, (int) ProsodyRange.Low, (int) ProsodyRange.Medium, (int) ProsodyRange.ExtraHigh, (int) ProsodyRange.ExtraLow + }; + + private static readonly string[] s_rangeNames = new string[] + { + "default", "high", "low", "medium", "x-high", "x-low", + }; + + /// + /// Must be in the same order as the _emphasisNames enumeration + /// + private static readonly int[] s_rateWords = new int[] + { + (int) ProsodyRate.Default, (int) ProsodyRate.Fast, (int) ProsodyRate.Medium, (int) ProsodyRate.Slow, (int) ProsodyRate.ExtraFast, (int) ProsodyRate.ExtraSlow + }; + + private static readonly string[] s_rateNames = new string[] + { + "default", "fast", "medium", "slow", "x-fast", "x-slow", + }; + + /// + /// Must be in the same order as the _emphasisNames enumeration + /// + private static readonly int[] s_volumeWords = new int[] + { + (int) ProsodyVolume.Default, (int) ProsodyVolume.Loud, (int) ProsodyVolume.Medium, (int) ProsodyVolume.Silent, (int) ProsodyVolume.Soft, (int) ProsodyVolume.ExtraLoud, (int) ProsodyVolume.ExtraSoft + }; + + private static readonly string[] s_volumeNames = new string[] + { + "default", "loud", "medium", "silent", "soft", "x-loud", "x-soft", + }; + + private const string xmlNamespace = "http://www.w3.org/XML/1998/namespace"; + private const string xmlNamespaceSsml = "http://www.w3.org/2001/10/synthesis"; + private const string xmlNamespaceXmlns = "http://www.w3.org/2000/xmlns/"; + private const string xmlNamespacePrompt = "http://schemas.microsoft.com/Speech/2003/03/PromptEngine"; + + #endregion + } + + internal static class SsmlParserHelpers + { + internal static bool TryConvertAge(string sAge, out VoiceAge age) + { + bool fResult = false; + int iAge; + age = VoiceAge.NotSet; + + switch (sAge) + { + case "child": + age = VoiceAge.Child; + break; + + case "teenager": + case "teen": + age = VoiceAge.Teen; + break; + + case "adult": + age = VoiceAge.Adult; + break; + + case "elder": + case "senior": + age = VoiceAge.Senior; + break; + } + if (age != VoiceAge.NotSet) + { + fResult = true; + } + else if (int.TryParse(sAge, out iAge)) + { + if (iAge <= ((int)VoiceAge.Teen + (int)VoiceAge.Child) / 2) + { + age = VoiceAge.Child; + } + else if (iAge <= ((int)VoiceAge.Adult + (int)VoiceAge.Teen) / 2) + { + age = VoiceAge.Teen; + } + else if (iAge <= ((int)VoiceAge.Senior + (int)VoiceAge.Adult) / 2) + { + age = VoiceAge.Adult; + } + else + { + age = VoiceAge.Senior; + } + fResult = true; + } + return fResult; + } + + internal static bool TryConvertGender(string sGender, out VoiceGender gender) + { + bool fResult = false; + gender = VoiceGender.NotSet; + + int pos = Array.BinarySearch(s_genderNames, sGender); + if (pos >= 0) + { + gender = s_genders[pos]; + fResult = true; + } + return fResult; + } + + private static readonly string[] s_genderNames = new string[] + { + "female", "male", "neutral" + }; + + /// + /// Must be in the same order as the _genderNames enumeration + /// + private static readonly VoiceGender[] s_genders = new VoiceGender[] + { + VoiceGender.Female, VoiceGender.Male, VoiceGender.Neutral + }; + } + + #region Internal Types + + [Flags] + internal enum SsmlElement + { + Speak = 0x0001, + Voice = 0x0002, + Audio = 0x0004, + Lexicon = 0x0008, + Meta = 0x0010, + MetaData = 0x0020, + Sentence = 0x0040, + Paragraph = 0x0080, + SayAs = 0x0100, + Phoneme = 0x0200, + Sub = 0x0400, + Emphasis = 0x0800, + Break = 0x1000, + Prosody = 0x2000, + Mark = 0x4000, + Desc = 0x8000, + Text = 0x10000, + PromptEngineOutput = 0x20000, + PromptEngineDatabase = 0x40000, + PromptEngineDiv = 0x80000, + PromptEngineId = 0x100000, + PromptEngineTTS = 0x200000, + PromptEngineWithTag = 0x400000, + PromptEngineRule = 0x800000, + + ParagraphOrSentence = Sentence | Paragraph, + + AudioMarkTextWithStyle = Audio | Mark | Break | Emphasis | Phoneme | Prosody | SayAs | Sub | Voice | Text | PromptEngineOutput, + PromptEngineChildren = PromptEngineDatabase | PromptEngineDiv | PromptEngineId | PromptEngineTTS | PromptEngineWithTag | PromptEngineRule + } + + #endregion +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/SafeNativeMethods.cs b/src/libraries/System.Speech/src/Internal/Synthesis/SafeNativeMethods.cs new file mode 100644 index 00000000000000..f0c380b5e919e5 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/SafeNativeMethods.cs @@ -0,0 +1,216 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; + +namespace System.Speech.Internal.Synthesis +{ + // This class *MUST* be internal for security purposes + //CASRemoval:[SuppressUnmanagedCodeSecurity] + internal static class SafeNativeMethods + { + /// + /// This function prepares a waveform data block for playback. + /// + /// Handle to the waveform-audio output device. + /// Pointer to a WaveHeader structure that identifies the data + /// block to be prepared. The buffer's base address must be aligned with the + /// respect to the sample size. + /// Size, in bytes, of the WaveHeader structure. + /// MMSYSERR + [DllImport("winmm.dll")] + internal static extern MMSYSERR waveOutPrepareHeader(IntPtr hwo, IntPtr pwh, int cbwh); + + /// + /// This function sends a data block to the specified waveform output device. + /// + /// Handle to the waveform-audio output device. + /// Pointer to a WaveHeader structure containing information + /// about the data block. + /// Size, in bytes, of the WaveHeader structure. + /// MMSYSERR + [DllImport("winmm.dll")] + internal static extern MMSYSERR waveOutWrite(IntPtr hwo, IntPtr pwh, int cbwh); + + /// + /// This function cleans up the preparation performed by waveOutPrepareHeader. + /// The function must be called after the device driver is finished with a data + /// block. You must call this function before freeing the data buffer. + /// + /// Handle to the waveform-audio output device. + /// Pointer to a WaveHeader structure identifying the data block + /// to be cleaned up. + /// Size, in bytes, of the WaveHeader structure. + /// MMSYSERR + [DllImport("winmm.dll")] + internal static extern MMSYSERR waveOutUnprepareHeader(IntPtr hwo, IntPtr pwh, int cbwh); + + /// + /// This function opens a specified waveform output device for playback. + /// + /// Address filled with a handle identifying the open + /// waveform-audio output device. Use the handle to identify the device + /// when calling other waveform-audio output functions. This parameter might + /// be NULL if the WAVE_FORMAT_QUERY flag is specified for fdwOpen. + /// Identifier of the waveform-audio output device to + /// open. It can be either a device identifier or a Handle to an open + /// waveform-audio input device. + /// Pointer to a WaveFormat structure that identifies + /// the format of the waveform-audio data to be sent to the device. You can + /// free this structure immediately after passing it to waveOutOpen. + /// Specifies the address of a fixed callback function, + /// an event handle, a handle to a window, or the identifier of a thread to be + /// called during waveform-audio playback to process messages related to the + /// progress of the playback. If no callback function is required, this value + /// can be zero. + /// Specifies user-instance data passed to the + /// callback mechanism. This parameter is not used with the window callback + /// mechanism. + /// Flags for opening the device. + /// MMSYSERR + [DllImport("winmm.dll")] + internal static extern MMSYSERR waveOutOpen(ref IntPtr phwo, int uDeviceID, byte[] pwfx, WaveOutProc dwCallback, IntPtr dwInstance, uint fdwOpen); + + /// + /// This function closes the specified waveform output device. + /// + /// Handle to the waveform-audio output device. If the function + /// succeeds, the handle is no longer valid after this call. + /// MMSYSERR + [DllImport("winmm.dll")] + internal static extern MMSYSERR waveOutClose(IntPtr hwo); + + /// + /// This function stops playback on a specified waveform output device and + /// resets the current position to 0. All pending playback buffers are marked + /// as done and returned to the application. + /// + /// Handle to the waveform-audio output device. + /// MMSYSERR + [DllImport("winmm.dll")] + internal static extern MMSYSERR waveOutReset(IntPtr hwo); + + /// + /// This function pauses playback on a specified waveform output device. The + /// current playback position is saved. Use waveOutRestart to resume playback + /// from the current playback position. + /// + /// Handle to the waveform-audio output device. + /// MMSYSERR + [DllImport("winmm.dll")] + internal static extern MMSYSERR waveOutPause(IntPtr hwo); + + /// + /// This function restarts a paused waveform output device. + /// + /// Handle to the waveform-audio output device. + /// MMSYSERR + [DllImport("winmm.dll")] + internal static extern MMSYSERR waveOutRestart(IntPtr hwo); + + internal delegate void WaveOutProc(IntPtr hwo, MM_MSG uMsg, IntPtr dwInstance, IntPtr dwParam1, IntPtr dwParam2); + +#pragma warning disable CA1823 // unused fields + internal struct WAVEOUTCAPS + { + private ushort wMid; + private ushort wPid; + private uint vDriverVersion; + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] + internal string szPname; + private uint dwFormats; + private ushort wChannels; + private ushort wReserved1; + private ushort dwSupport; + } +#pragma warning restore CA1823 + + /// + /// This function queries a specified waveform device to determine its + /// capabilities. + /// + /// Identifier of the waveform-audio output device. + /// It can be either a device identifier or a Handle to an open waveform-audio + /// output device. + /// Pointer to a WAVEOUTCAPS structure to be filled with + /// information about the capabilities of the device. + /// Size, in bytes, of the WAVEOUTCAPS structure. + /// MMSYSERR + [DllImport("winmm.dll")] + internal static extern MMSYSERR waveOutGetDevCaps(IntPtr uDeviceID, ref WAVEOUTCAPS caps, int cbwoc); + + /// + /// This function retrieves the number of waveform output devices present + /// in the system. + /// + /// The number of devices indicates success. Zero indicates that + /// no devices are present or that an error occurred. + [DllImport("winmm.dll")] + internal static extern int waveOutGetNumDevs(); + + // Used by MMTIME.wType + internal const uint TIME_MS = 0x0001; + internal const uint TIME_SAMPLES = 0x0002; + internal const uint TIME_BYTES = 0x0004; + internal const uint TIME_TICKS = 0x0020; + + // Flag specifying the use of a callback window for sound messages + internal const uint CALLBACK_WINDOW = 0x10000; + internal const uint CALLBACK_NULL = 0x00000000; + internal const uint CALLBACK_FUNCTION = 0x00030000; + } + + #region Internal Types + + /// + /// MM WAVEHDR structure + /// + [StructLayout(LayoutKind.Sequential)] + internal struct WAVEHDR + { + internal IntPtr lpData; // disposed by the GCHandle + internal uint dwBufferLength; + internal uint dwBytesRecorded; + internal uint dwUser; + internal uint dwFlags; + internal uint dwLoops; + internal IntPtr lpNext; // unused + internal uint reserved; + } + + // Enum equivalent to MMSYSERR_* + internal enum MMSYSERR : int + { + NOERROR = 0, + ERROR = (1), + BADDEVICEID = (2), + NOTENABLED = (3), + ALLOCATED = (4), + INVALHANDLE = (5), + NODRIVER = (6), + NOMEM = (7), + NOTSUPPORTED = (8), + BADERRNUM = (9), + INVALFLAG = (10), + INVALPARAM = (11), + HANDLEBUSY = (12), + INVALIDALIAS = (13), + BADDB = (14), + KEYNOTFOUND = (15), + READERROR = (16), + WRITEERROR = (17), + DELETEERROR = (18), + VALNOTFOUND = (19), + NODRIVERCB = (20), + LASTERROR = (20) + } + + internal enum MM_MSG + { + MM_WOM_OPEN = 0x03BB, + MM_WOM_CLOSE = 0x03BC, + MM_WOM_DONE = 0x03BD + } + + #endregion +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/SpeakInfo.cs b/src/libraries/System.Speech/src/Internal/Synthesis/SpeakInfo.cs new file mode 100644 index 00000000000000..ee73b6e1f4a660 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/SpeakInfo.cs @@ -0,0 +1,167 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Speech.Synthesis; +using System.Speech.Synthesis.TtsEngine; + +#pragma warning disable 56524 // The _voiceSynthesis member is not created in this module and should not be disposed + +namespace System.Speech.Internal.Synthesis +{ + internal sealed class SpeakInfo + { + #region Constructors + /// Voice synthesizer used + /// Default engine to use + internal SpeakInfo(VoiceSynthesis voiceSynthesis, TTSVoice ttsVoice) + { + _voiceSynthesis = voiceSynthesis; + _ttsVoice = ttsVoice; + } + + #endregion + + #region Internal Properties + + internal TTSVoice Voice + { + get + { + return _ttsVoice; + } + } + + #endregion + + #region Internal Methods + + internal void SetVoice(string name, CultureInfo culture, VoiceGender gender, VoiceAge age, int variant) + { + TTSVoice ttsVoice = _voiceSynthesis.GetEngine(name, culture, gender, age, variant, false); + if (!ttsVoice.Equals(_ttsVoice)) + { + _ttsVoice = ttsVoice; + _fNotInTextSeg = true; + } + } + + internal void AddAudio(AudioData audio) + { + AddNewSeg(null, audio); + _fNotInTextSeg = true; + } + + internal void AddText(TTSVoice ttsVoice, TextFragment textFragment) + { + if (_fNotInTextSeg || ttsVoice != _ttsVoice) + { + AddNewSeg(ttsVoice, null); + _fNotInTextSeg = false; + } + _lastSeg.AddFrag(textFragment); + } + + internal SpeechSeg RemoveFirst() + { + SpeechSeg speechSeg = null; + if (_listSeg.Count > 0) + { + speechSeg = _listSeg[0]; + _listSeg.RemoveAt(0); + } + return speechSeg; + } + + #endregion + + #region Private Method + + private void AddNewSeg(TTSVoice pCurrVoice, AudioData audio) + { + SpeechSeg pNew = new(pCurrVoice, audio); + + _listSeg.Add(pNew); + _lastSeg = pNew; + } + + #endregion + + #region private Fields + + // default TTS voice + private TTSVoice _ttsVoice; + + // If true then a new segment is required for the next Add Text + private bool _fNotInTextSeg = true; + + // list of segments (text or audio) + private List _listSeg = new(); + + // current segment + private SpeechSeg _lastSeg; + + // Reference to the VoiceSynthesizer that created it + private VoiceSynthesis _voiceSynthesis; + + #endregion + } + + #region Private Types + + internal class AudioData : IDisposable + { + internal AudioData(Uri uri, ResourceLoader resourceLoader) + { + _uri = uri; + _resourceLoader = resourceLoader; + Uri baseAudio; + _stream = _resourceLoader.LoadFile(uri, out _mimeType, out baseAudio, out _localFile); + } + + /// + /// Needed by IEnumerable!!! + /// + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + ~AudioData() + { + Dispose(false); + } + + internal Uri _uri; + internal string _mimeType; + internal Stream _stream; + + protected virtual void Dispose(bool disposing) + { + if (disposing) + { + // unload the file from the cache + if (_localFile != null) + { + _resourceLoader.UnloadFile(_localFile); + } + + if (_stream != null) + { + _stream.Dispose(); + _stream = null; + _localFile = null; + _uri = null; + } + } + } + + private string _localFile; + private ResourceLoader _resourceLoader; + } + + #endregion +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/SpeechSeg.cs b/src/libraries/System.Speech/src/Internal/Synthesis/SpeechSeg.cs new file mode 100644 index 00000000000000..2fe2edb936b298 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/SpeechSeg.cs @@ -0,0 +1,83 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Speech.Synthesis.TtsEngine; + +namespace System.Speech.Internal.Synthesis +{ + + internal class SpeechSeg + { + #region Constructors + + internal SpeechSeg(TTSVoice voice, AudioData audio) + { + _voice = voice; + _audio = audio; + } + + #endregion + + #region Internal Properties + + internal List FragmentList + { + get + { + return _textFragments; + } + } + + internal AudioData Audio + { + get + { + return _audio; + } + } + + internal TTSVoice Voice + { + get + { + return _voice; + } + } + + internal bool IsText + { + get + { + return _audio == null; + } + } + + #endregion + + #region Internal Methods + + internal void AddFrag(TextFragment textFragment) + { + if (_audio != null) + { + throw new InvalidOperationException(); + } + + _textFragments.Add(textFragment); + } + + #endregion + + #region private Fields + + private TTSVoice _voice; + private List _textFragments = new(); +#pragma warning disable 56524 // The _audio are not created in this module and should not be disposed + private AudioData _audio; +#pragma warning restore 56524 + + #endregion + + } +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/TTSEngineProxy.cs b/src/libraries/System.Speech/src/Internal/Synthesis/TTSEngineProxy.cs new file mode 100644 index 00000000000000..b405ecda756b15 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/TTSEngineProxy.cs @@ -0,0 +1,212 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Speech.Synthesis.TtsEngine; + +namespace System.Speech.Internal.Synthesis +{ + internal abstract class ITtsEngineProxy + { + internal ITtsEngineProxy(int lcid) + { + _alphabetConverter = new AlphabetConverter(lcid); + } + + internal abstract IntPtr GetOutputFormat(IntPtr targetFormat); + internal abstract void AddLexicon(Uri lexicon, string mediaType); + internal abstract void RemoveLexicon(Uri lexicon); + internal abstract void Speak(List frags, byte[] wfx); + internal abstract void ReleaseInterface(); + internal abstract char[] ConvertPhonemes(char[] phones, AlphabetType alphabet); + internal abstract AlphabetType EngineAlphabet { get; } + internal AlphabetConverter AlphabetConverter { get { return _alphabetConverter; } } + + protected AlphabetConverter _alphabetConverter; + } + + internal class TtsProxySsml : ITtsEngineProxy + { + #region Constructors + + internal TtsProxySsml(TtsEngineSsml ssmlEngine, ITtsEngineSite site, int lcid) + : base(lcid) + { + _ssmlEngine = ssmlEngine; + _site = site; + } + + #endregion + + #region Internal Methods + + internal override IntPtr GetOutputFormat(IntPtr targetFormat) + { + return _ssmlEngine.GetOutputFormat(SpeakOutputFormat.WaveFormat, targetFormat); + } + + internal override void AddLexicon(Uri lexicon, string mediaType) + { + _ssmlEngine.AddLexicon(lexicon, mediaType, _site); + } + + internal override void RemoveLexicon(Uri lexicon) + { + _ssmlEngine.RemoveLexicon(lexicon, _site); + } + + internal override void Speak(List frags, byte[] wfx) + { + GCHandle gc = GCHandle.Alloc(wfx, GCHandleType.Pinned); + try + { + IntPtr waveFormat = gc.AddrOfPinnedObject(); + _ssmlEngine.Speak(frags.ToArray(), waveFormat, _site); + } + finally + { + gc.Free(); + } + } + + internal override char[] ConvertPhonemes(char[] phones, AlphabetType alphabet) + { + if (alphabet == AlphabetType.Ipa) + { + return phones; + } + else + { + return _alphabetConverter.SapiToIpa(phones); + } + } + + internal override AlphabetType EngineAlphabet + { + get + { + return AlphabetType.Ipa; + } + } + + /// + /// Release the COM interface for COM object + /// + internal override void ReleaseInterface() + { + } + + #endregion + + #region private Fields + + private TtsEngineSsml _ssmlEngine; + private ITtsEngineSite _site; + + #endregion + } + + internal class TtsProxySapi : ITtsEngineProxy + { + #region Constructors + + internal TtsProxySapi(ITtsEngine sapiEngine, IntPtr iSite, int lcid) + : base(lcid) + { + _iSite = iSite; + _sapiEngine = sapiEngine; + } + + #endregion + + #region Internal Methods + + internal override IntPtr GetOutputFormat(IntPtr preferedFormat) + { + // Initialize TTS Engine + Guid formatId = SAPIGuids.SPDFID_WaveFormatEx; + Guid guidNull = new(); + IntPtr coMem = IntPtr.Zero; + + _sapiEngine.GetOutputFormat(ref formatId, preferedFormat, out guidNull, out coMem); + return coMem; + } + + internal override void AddLexicon(Uri lexicon, string mediaType) + { + // SAPI: Ignore + } + + internal override void RemoveLexicon(Uri lexicon) + { + // SAPI: Ignore + } + + internal override void Speak(List frags, byte[] wfx) + { + GCHandle gc = GCHandle.Alloc(wfx, GCHandleType.Pinned); + try + { + IntPtr waveFormat = gc.AddrOfPinnedObject(); + GCHandle spvTextFragment = new(); + + if (ConvertTextFrag.ToSapi(frags, ref spvTextFragment)) + { + Guid formatId = SAPIGuids.SPDFID_WaveFormatEx; + try + { + _sapiEngine.Speak(0, ref formatId, waveFormat, spvTextFragment.AddrOfPinnedObject(), _iSite); + } + finally + { + ConvertTextFrag.FreeTextSegment(ref spvTextFragment); + } + } + } + finally + { + gc.Free(); + } + } + + internal override AlphabetType EngineAlphabet + { + get + { + return AlphabetType.Sapi; + } + } + + internal override char[] ConvertPhonemes(char[] phones, AlphabetType alphabet) + { + if (alphabet == AlphabetType.Ipa) + { + return _alphabetConverter.IpaToSapi(phones); + } + else + { + return phones; + } + } + + /// + /// Release the COM interface for COM object + /// + internal override void ReleaseInterface() + { + Marshal.ReleaseComObject(_sapiEngine); + } + + #endregion + + #region private Fields + + private ITtsEngine _sapiEngine; + + // This variable is stored here but never created or deleted + private IntPtr _iSite; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/TTSEvent.cs b/src/libraries/System.Speech/src/Internal/Synthesis/TTSEvent.cs new file mode 100644 index 00000000000000..d2f578e8ddc1f5 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/TTSEvent.cs @@ -0,0 +1,178 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Speech.Synthesis; +using System.Speech.Synthesis.TtsEngine; + +namespace System.Speech.Internal.Synthesis +{ + + internal class TTSEvent + { + #region Constructors + + internal TTSEvent(TtsEventId id, Prompt prompt, Exception exception, VoiceInfo voice) + { + _evtId = id; + _prompt = prompt; + _exception = exception; + _voice = voice; + } + + internal TTSEvent(TtsEventId id, Prompt prompt, Exception exception, VoiceInfo voice, TimeSpan audioPosition, long streamPosition, string bookmark, uint wParam, IntPtr lParam) + : this(id, prompt, exception, voice) + { + _audioPosition = audioPosition; + _bookmark = bookmark; + _wParam = wParam; + _lParam = lParam; + } + + private TTSEvent() + { + } + + internal static TTSEvent CreatePhonemeEvent(string phoneme, string nextPhoneme, + TimeSpan duration, SynthesizerEmphasis emphasis, + Prompt prompt, TimeSpan audioPosition) + { + TTSEvent ttsEvent = new(); + ttsEvent._evtId = TtsEventId.Phoneme; + ttsEvent._audioPosition = audioPosition; + ttsEvent._prompt = prompt; + ttsEvent._phoneme = phoneme; + ttsEvent._nextPhoneme = nextPhoneme; + ttsEvent._phonemeDuration = duration; + ttsEvent._phonemeEmphasis = emphasis; + + return ttsEvent; + } + + #endregion + + #region Internal Properties + + internal TtsEventId Id + { + get + { + return _evtId; + } + } + + internal Exception Exception + { + get + { + return _exception; + } + } + + internal Prompt Prompt + { + get + { + return _prompt; + } + } + + internal VoiceInfo Voice + { + get + { + return _voice; + } + } + + internal TimeSpan AudioPosition + { + get + { + return _audioPosition; + } + } + + internal string Bookmark + { + get + { + return _bookmark; + } + } + + internal IntPtr LParam + { + get + { + return _lParam; + } + } + + internal uint WParam + { + get + { + return _wParam; + } + } + + internal SynthesizerEmphasis PhonemeEmphasis + { + get + { + return _phonemeEmphasis; + } + } + + internal string Phoneme + { + get + { + return _phoneme; + } + } + + internal string NextPhoneme + { + get + { + return _nextPhoneme; + } + set + { + _nextPhoneme = value; + } + } + + internal TimeSpan PhonemeDuration + { + get + { + return _phonemeDuration; + } + } + + #endregion + + #region private Fields + + private TtsEventId _evtId; + private Exception _exception; + private VoiceInfo _voice; + private TimeSpan _audioPosition; + private string _bookmark; + private uint _wParam; + private IntPtr _lParam; + private Prompt _prompt; + + // + // Data for phoneme event + // + private string _phoneme; + private string _nextPhoneme; + private TimeSpan _phonemeDuration; + private SynthesizerEmphasis _phonemeEmphasis; + #endregion + + } +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/TTSVoice.cs b/src/libraries/System.Speech/src/Internal/Synthesis/TTSVoice.cs new file mode 100644 index 00000000000000..6bdec2eeedd53f --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/TTSVoice.cs @@ -0,0 +1,158 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Speech.Synthesis; + +namespace System.Speech.Internal.Synthesis +{ + internal class TTSVoice + { + #region Constructors + + internal TTSVoice(ITtsEngineProxy engine, VoiceInfo voiceId) + { + _engine = engine; + _voiceId = voiceId; + } + + #endregion + + #region public Methods + + /// + /// Tests whether two objects are equivalent + /// + public override bool Equals(object obj) + { + TTSVoice voice = obj as TTSVoice; + return voice != null && (_voiceId.Equals(voice.VoiceInfo)); + } + + /// + /// Overrides Object.GetHashCode() + /// + public override int GetHashCode() + { + return _voiceId.GetHashCode(); + } + + #endregion + + #region Internal Methods + + internal void UpdateLexicons(List lexicons) + { + // Remove the lexicons that are defined in this voice but are not in the list + for (int i = _lexicons.Count - 1; i >= 0; i--) + { + LexiconEntry entry = _lexicons[i]; + if (!lexicons.Contains(entry)) + { + // Remove the entry first, just in case the RemoveLexicon throws + _lexicons.RemoveAt(i); + TtsEngine.RemoveLexicon(entry._uri); + } + } + + // Add the lexicons that are defined in this voice but are not in the list + foreach (LexiconEntry entry in lexicons) + { + if (!_lexicons.Contains(entry)) + { + // Remove the entry first, just in case the RemoveLexicon throws + TtsEngine.AddLexicon(entry._uri, entry._mediaType); + _lexicons.Add(entry); + } + } + } + + internal byte[] WaveFormat(byte[] targetWaveFormat) + { + // Get the Wave header if it has not been set by the user + if (targetWaveFormat == null && _waveFormat == null) + { + // The registry values contains a default rate + if (VoiceInfo.SupportedAudioFormats.Count > 0) + { + // Create the array of bytes containing the format + targetWaveFormat = VoiceInfo.SupportedAudioFormats[0].WaveFormat; + } + } + + // No input specified and we already got the default + if (targetWaveFormat == null && _waveFormat != null) + { + return _waveFormat; + } + + // New waveFormat provided? + if (_waveFormat == null || !Array.Equals(targetWaveFormat, _waveFormat)) + { + IntPtr waveFormat = IntPtr.Zero; + GCHandle targetFormat = new(); + + if (targetWaveFormat != null) + { + targetFormat = GCHandle.Alloc(targetWaveFormat, GCHandleType.Pinned); + } + try + { + waveFormat = _engine.GetOutputFormat(targetWaveFormat != null ? targetFormat.AddrOfPinnedObject() : IntPtr.Zero); + } + finally + { + if (targetWaveFormat != null) + { + targetFormat.Free(); + } + } + + if (waveFormat != IntPtr.Zero) + { + _waveFormat = WAVEFORMATEX.ToBytes(waveFormat); + + // Free the buffer + Marshal.FreeCoTaskMem(waveFormat); + } + else + { + _waveFormat = WAVEFORMATEX.Default.ToBytes(); + } + } + return _waveFormat; + } + + #endregion + + #region Internal Properties + + internal ITtsEngineProxy TtsEngine + { + get + { + return _engine; + } + } + + internal VoiceInfo VoiceInfo + { + get + { + return _voiceId; + } + } + + #endregion + + #region private Fields + + private ITtsEngineProxy _engine; + private VoiceInfo _voiceId; + private List _lexicons = new(); + private byte[] _waveFormat; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/TextFragmentEngine.cs b/src/libraries/System.Speech/src/Internal/Synthesis/TextFragmentEngine.cs new file mode 100644 index 00000000000000..79c64e3799cd25 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/TextFragmentEngine.cs @@ -0,0 +1,321 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Speech.Synthesis; +using System.Speech.Synthesis.TtsEngine; +using System.Text; +using System.Xml; + +namespace System.Speech.Internal.Synthesis +{ + internal class TextFragmentEngine : ISsmlParser + { + #region Constructors + + internal TextFragmentEngine(SpeakInfo speakInfo, string ssmlText, bool pexml, ResourceLoader resourceLoader, List lexicons) + { + _lexicons = lexicons; + _ssmlText = ssmlText; + _speakInfo = speakInfo; + _resourceLoader = resourceLoader; + } + + #endregion + + #region Internal Methods + + public object ProcessSpeak(string sVersion, string sBaseUri, CultureInfo culture, List extraNamespace) + { + _speakInfo.SetVoice(null, culture, VoiceGender.NotSet, VoiceAge.NotSet, 1); + return _speakInfo.Voice; + } + + public void ProcessText(string text, object voice, ref FragmentState fragmentState, int position, bool fIgnore) + { + if (!fIgnore) + { + TtsEngineAction action = fragmentState.Action; + if (_paragraphStarted) + { + fragmentState.Action = TtsEngineAction.StartParagraph; + _speakInfo.AddText((TTSVoice)voice, new TextFragment(fragmentState)); + _paragraphStarted = false; + + // Always add the start sentence. + _sentenceStarted = true; + } + if (_sentenceStarted) + { + fragmentState.Action = TtsEngineAction.StartSentence; + _speakInfo.AddText((TTSVoice)voice, new TextFragment(fragmentState)); + _sentenceStarted = false; + } + fragmentState.Action = ActionTextFragment(action); + _speakInfo.AddText((TTSVoice)voice, new TextFragment(fragmentState, text, _ssmlText, position, text.Length)); + fragmentState.Action = action; + } + } + + public void ProcessAudio(object voice, string sUri, string baseUri, bool fIgnore) + { + if (!fIgnore) + { + // Prepend the base Uri if necessary + Uri uri = new(sUri, UriKind.RelativeOrAbsolute); + if (!uri.IsAbsoluteUri && !string.IsNullOrEmpty(baseUri)) + { + if (baseUri[baseUri.Length - 1] != '/' && baseUri[baseUri.Length - 1] != '\\') + { + int posSlash = baseUri.LastIndexOf('/'); + if (posSlash < 0) + { + posSlash = baseUri.LastIndexOf('\\'); + } + if (posSlash >= 0) + { + baseUri = baseUri.Substring(0, posSlash); + } + baseUri += '/'; + } + StringBuilder sb = new(baseUri); + sb.Append(sUri); + uri = new Uri(sb.ToString(), UriKind.RelativeOrAbsolute); + } + + // This checks if we can read the file + { + _speakInfo.AddAudio(new AudioData(uri, _resourceLoader)); + } + } + } + + public void ProcessBreak(object voice, ref FragmentState fragmentState, EmphasisBreak eBreak, int time, bool fIgnore) + { + if (!fIgnore) + { + TtsEngineAction action = fragmentState.Action; + fragmentState.Action = ActionTextFragment(fragmentState.Action); + _speakInfo.AddText((TTSVoice)voice, new TextFragment(fragmentState)); + fragmentState.Action = action; + } + } + + public void ProcessDesc(CultureInfo culture) + { + } + + public void ProcessEmphasis(bool noLevel, EmphasisWord word) + { + } + + public void ProcessMark(object voice, ref FragmentState fragmentState, string name, bool fIgnore) + { + if (!fIgnore) + { + TtsEngineAction action = fragmentState.Action; + fragmentState.Action = ActionTextFragment(fragmentState.Action); + _speakInfo.AddText((TTSVoice)voice, new TextFragment(fragmentState, name)); + fragmentState.Action = action; + } + } + + public object ProcessTextBlock(bool isParagraph, object voice, ref FragmentState fragmentState, CultureInfo culture, bool newCulture, VoiceGender gender, VoiceAge age) + { + if (culture != null && newCulture) + { + _speakInfo.SetVoice(null, culture, gender, age, 1); + } + if (isParagraph) + { + _paragraphStarted = true; + } + else + { + _sentenceStarted = true; + } + return _speakInfo.Voice; + } + + public void EndProcessTextBlock(bool isParagraph) + { + if (isParagraph) + { + _paragraphStarted = true; + } + else + { + _sentenceStarted = true; + } + } + + public void ProcessPhoneme(ref FragmentState fragmentState, AlphabetType alphabet, string ph, char[] phoneIds) + { + fragmentState.Action = TtsEngineAction.Pronounce; + fragmentState.Phoneme = _speakInfo.Voice.TtsEngine.ConvertPhonemes(phoneIds, alphabet); + } + + public void ProcessProsody(string pitch, string range, string rate, string volume, string duration, string points) + { + } + + public void ProcessSayAs(string interpretAs, string format, string detail) + { + } + + public void ProcessSub(string alias, object voice, ref FragmentState fragmentState, int position, bool fIgnore) + { + ProcessText(alias, voice, ref fragmentState, position, fIgnore); + } + + public object ProcessVoice(string name, CultureInfo culture, VoiceGender gender, VoiceAge age, int variant, bool fNewCulture, List extraNamespace) + { + _speakInfo.SetVoice(name, culture, gender, age, variant); + return _speakInfo.Voice; + } + + public void ProcessLexicon(Uri uri, string type) + { + _lexicons.Add(new LexiconEntry(uri, type)); + } + + public void ProcessUnknownElement(object voice, ref FragmentState fragmentState, XmlReader reader) + { + StringWriter sw = new(CultureInfo.InvariantCulture); + XmlTextWriter writer = new(sw); + writer.WriteNode(reader, false); + writer.Close(); + string text = sw.ToString(); + + AddParseUnknownFragment(voice, ref fragmentState, text); + } + + public void StartProcessUnknownAttributes(object voice, ref FragmentState fragmentState, string element, List extraAttributes) + { + StringBuilder sb = new(); + sb.AppendFormat(CultureInfo.InvariantCulture, "<{0}", element); + foreach (SsmlXmlAttribute attribute in extraAttributes) + { + sb.AppendFormat(CultureInfo.InvariantCulture, " {0}:{1}=\"{2}\" xmlns:{3}=\"{4}\"", attribute._prefix, attribute._name, attribute._value, attribute._prefix, attribute._ns); + } + sb.Append('>'); + + AddParseUnknownFragment(voice, ref fragmentState, sb.ToString()); + } + + public void EndProcessUnknownAttributes(object voice, ref FragmentState fragmentState, string element, List extraAttributes) + { + AddParseUnknownFragment(voice, ref fragmentState, string.Format(CultureInfo.InvariantCulture, "", element)); + } + + #region Prompt Engine + + public void ContainsPexml(string pexmlPrefix) + { + } + + public bool BeginPromptEngineOutput(object voice) + { + return false; + } + + public void EndPromptEngineOutput(object voice) + { + } + + public bool ProcessPromptEngineDatabase(object voice, string fname, string delta, string idset) + { + return false; + } + + public bool ProcessPromptEngineDiv(object voice) + { + return false; + } + + public bool ProcessPromptEngineId(object voice, string id) + { + return false; + } + + public bool BeginPromptEngineTts(object voice) + { + return false; + } + + public void EndPromptEngineTts(object voice) + { + } + + public bool BeginPromptEngineWithTag(object voice, string tag) + { + return false; + } + + public void EndPromptEngineWithTag(object voice, string tag) + { + } + + public bool BeginPromptEngineRule(object voice, string name) + { + return false; + } + + public void EndPromptEngineRule(object voice, string name) + { + } + #endregion + + public void EndElement() + { + } + + public void EndSpeakElement() + { + } + + #endregion + + #region Internal Properties + + public string Ssml + { + get + { + return _ssmlText; + } + } + + #endregion + + #region Private Methods + + private static TtsEngineAction ActionTextFragment(TtsEngineAction action) + { + return action; + } + + private void AddParseUnknownFragment(object voice, ref FragmentState fragmentState, string text) + { + TtsEngineAction action = fragmentState.Action; + fragmentState.Action = TtsEngineAction.ParseUnknownTag; + _speakInfo.AddText((TTSVoice)voice, new TextFragment(fragmentState, text)); + fragmentState.Action = action; + } + + #endregion + + #region Private Fields + + private List _lexicons; + private SpeakInfo _speakInfo; + private string _ssmlText; + private bool _paragraphStarted = true; + private bool _sentenceStarted = true; + private ResourceLoader _resourceLoader; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/TextWriterEngine.cs b/src/libraries/System.Speech/src/Internal/Synthesis/TextWriterEngine.cs new file mode 100644 index 00000000000000..e33eedcebad857 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/TextWriterEngine.cs @@ -0,0 +1,385 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Globalization; +using System.Speech.Synthesis; +using System.Speech.Synthesis.TtsEngine; +using System.Xml; + +#pragma warning disable 56524 // The _xmlWriter member is not created in this module and should not be disposed + +namespace System.Speech.Internal.Synthesis +{ + internal class TextWriterEngine : ISsmlParser + { + #region Constructors + + internal TextWriterEngine(XmlTextWriter writer, CultureInfo culture) + { + _writer = writer; + _culture = culture; + } + + #endregion + + #region Internal Methods + + public object ProcessSpeak(string sVersion, string baseUri, CultureInfo culture, List extraNamespace) + { + if (!string.IsNullOrEmpty(baseUri)) + { + throw new ArgumentException(SR.Get(SRID.InvalidSpeakAttribute, "baseUri", "speak"), nameof(baseUri)); + } + + bool fNewCulture = culture != null && !culture.Equals(_culture); + if (fNewCulture || !string.IsNullOrEmpty(_pexmlPrefix) || extraNamespace.Count > 0) + { + _writer.WriteStartElement("voice"); + + // Always add the culture info as the voice element cannot not be empty (namespaces declaration don't count) + _writer.WriteAttributeString("xml", "lang", null, culture != null ? culture.Name : _culture.Name); + + // write all the additional namespace + foreach (SsmlXmlAttribute ns in extraNamespace) + { + _writer.WriteAttributeString("xmlns", ns._name, ns._ns, ns._value); + } + + // If the prompt builder is used with to add prompt engine data, add the namespace + if (!string.IsNullOrEmpty(_pexmlPrefix)) + { + _writer.WriteAttributeString("xmlns", _pexmlPrefix, null, xmlNamespacePrompt); + } + + _closeSpeak = true; + } + + return null; + } + + public void ProcessText(string text, object voice, ref FragmentState fragmentState, int position, bool fIgnore) + { + _writer.WriteString(text); + } + + public void ProcessAudio(object voice, string uri, string baseUri, bool fIgnore) + { + _writer.WriteStartElement("audio"); + _writer.WriteAttributeString("src", uri); + } + + public void ProcessBreak(object voice, ref FragmentState fragmentState, EmphasisBreak eBreak, int time, bool fIgnore) + { + _writer.WriteStartElement("break"); + if (time > 0 && eBreak == EmphasisBreak.None) + { + _writer.WriteAttributeString("time", time.ToString(CultureInfo.InvariantCulture) + "ms"); + } + else + { + string value = null; + switch (eBreak) + { + case EmphasisBreak.None: + value = "none"; + break; + + case EmphasisBreak.ExtraWeak: + value = "x-weak"; + break; + + case EmphasisBreak.Weak: + value = "weak"; + break; + + case EmphasisBreak.Medium: + value = "medium"; + break; + + case EmphasisBreak.Strong: + value = "strong"; + break; + + case EmphasisBreak.ExtraStrong: + value = "x-strong"; + break; + } + if (!string.IsNullOrEmpty(value)) + { + _writer.WriteAttributeString("strength", value); + } + } + } + + public void ProcessDesc(CultureInfo culture) + { + _writer.WriteStartElement("desc"); + if (culture != null) + { + _writer.WriteAttributeString("xml", "lang", null, culture.Name); + } + } + + public void ProcessEmphasis(bool noLevel, EmphasisWord word) + { + _writer.WriteStartElement("emphasis"); + if (word != EmphasisWord.Default) + { + _writer.WriteAttributeString("level", word.ToString().ToLowerInvariant()); + } + } + + public void ProcessMark(object voice, ref FragmentState fragmentState, string name, bool fIgnore) + { + _writer.WriteStartElement("mark"); + _writer.WriteAttributeString("name", name); + } + + public object ProcessTextBlock(bool isParagraph, object voice, ref FragmentState fragmentState, CultureInfo culture, bool newCulture, VoiceGender gender, VoiceAge age) + { + _writer.WriteStartElement(isParagraph ? "p" : "s"); + if (culture != null) + { + _writer.WriteAttributeString("xml", "lang", null, culture.Name); + } + return null; + } + + public void EndProcessTextBlock(bool isParagraph) + { + } + + public void ProcessPhoneme(ref FragmentState fragmentState, AlphabetType alphabet, string ph, char[] phoneIds) + { + _writer.WriteStartElement("phoneme"); + if (alphabet != AlphabetType.Ipa) + { + _writer.WriteAttributeString("alphabet", alphabet == AlphabetType.Sapi ? "x-microsoft-sapi" : "x-microsoft-ups"); + System.Diagnostics.Debug.Assert(alphabet == AlphabetType.Ups || alphabet == AlphabetType.Sapi); + } + _writer.WriteAttributeString("ph", ph); + } + + public void ProcessProsody(string pitch, string range, string rate, string volume, string duration, string points) + { + _writer.WriteStartElement("prosody"); + if (!string.IsNullOrEmpty(range)) + { + _writer.WriteAttributeString("range", range); + } + if (!string.IsNullOrEmpty(rate)) + { + _writer.WriteAttributeString("rate", rate); + } + if (!string.IsNullOrEmpty(volume)) + { + _writer.WriteAttributeString("volume", volume); + } + if (!string.IsNullOrEmpty(duration)) + { + _writer.WriteAttributeString("duration", duration); + } + if (!string.IsNullOrEmpty(points)) + { + _writer.WriteAttributeString("range", points); + } + } + + public void ProcessSayAs(string interpretAs, string format, string detail) + { + _writer.WriteStartElement("say-as"); + _writer.WriteAttributeString("interpret-as", interpretAs); + if (!string.IsNullOrEmpty(format)) + { + _writer.WriteAttributeString("format", format); + } + if (!string.IsNullOrEmpty(detail)) + { + _writer.WriteAttributeString("detail", detail); + } + } + + public void ProcessSub(string alias, object voice, ref FragmentState fragmentState, int position, bool fIgnore) + { + _writer.WriteStartElement("sub"); + _writer.WriteAttributeString("alias", alias); + } + public object ProcessVoice(string name, CultureInfo culture, VoiceGender gender, VoiceAge age, int variant, bool fNewCulture, List extraNamespace) + { + _writer.WriteStartElement("voice"); + if (!string.IsNullOrEmpty(name)) + { + _writer.WriteAttributeString("name", name); + } + if (fNewCulture && culture != null) + { + _writer.WriteAttributeString("xml", "lang", null, culture.Name); + } + if (gender != VoiceGender.NotSet) + { + _writer.WriteAttributeString("gender", gender.ToString().ToLowerInvariant()); + } + if (age != VoiceAge.NotSet) + { + _writer.WriteAttributeString("age", ((int)age).ToString(CultureInfo.InvariantCulture)); + } + if (variant > 0) + { + _writer.WriteAttributeString("variant", (variant).ToString(CultureInfo.InvariantCulture)); + } + + // write all the additional namespace + if (extraNamespace != null) + { + foreach (SsmlXmlAttribute ns in extraNamespace) + { + _writer.WriteAttributeString("xmlns", ns._name, ns._ns, ns._value); + } + } + return null; + } + + public void ProcessLexicon(Uri uri, string type) + { + _writer.WriteStartElement("lexicon"); + _writer.WriteAttributeString("uri", uri.ToString()); + if (!string.IsNullOrEmpty(type)) + { + _writer.WriteAttributeString("type", type); + } + } + + public void EndElement() + { + _writer.WriteEndElement(); + } + + public void EndSpeakElement() + { + if (_closeSpeak) + { + _writer.WriteEndElement(); + } + } + + public void ProcessUnknownElement(object voice, ref FragmentState fragmentState, XmlReader reader) + { + _writer.WriteNode(reader, false); + } + + public void StartProcessUnknownAttributes(object voice, ref FragmentState fragmentState, string sElement, List extraAttributes) + { + // write all the additional namespace + foreach (SsmlXmlAttribute attribute in extraAttributes) + { + _writer.WriteAttributeString(attribute._prefix, attribute._name, attribute._ns, attribute._value); + } + } + + public void EndProcessUnknownAttributes(object voice, ref FragmentState fragmentState, string sElement, List extraAttributes) + { + } + + #region Prompt Engine + + public void ContainsPexml(string pexmlPrefix) + { + _pexmlPrefix = pexmlPrefix; + } + + private bool ProcessPromptEngine(string element, params KeyValuePair[] attributes) + { + _writer.WriteStartElement(_pexmlPrefix, element, xmlNamespacePrompt); + + if (attributes != null) + { + foreach (KeyValuePair kp in attributes) + { + if (kp.Value != null) + { + _writer.WriteAttributeString(kp.Key, kp.Value); + } + } + } + return true; + } + + public bool BeginPromptEngineOutput(object voice) + { + return ProcessPromptEngine("prompt_output"); + } + + public bool ProcessPromptEngineDatabase(object voice, string fname, string delta, string idset) + { + return ProcessPromptEngine("database", new KeyValuePair[] { new KeyValuePair("fname", fname), new KeyValuePair("delta", delta), new KeyValuePair("idset", idset) }); + } + + public bool ProcessPromptEngineDiv(object voice) + { + return ProcessPromptEngine("div"); + } + + public bool ProcessPromptEngineId(object voice, string id) + { + return ProcessPromptEngine("id", new KeyValuePair[] { new KeyValuePair("id", id) }); + } + + public bool BeginPromptEngineTts(object voice) + { + return ProcessPromptEngine("tts"); + } + + public void EndPromptEngineTts(object voice) + { + } + + public bool BeginPromptEngineWithTag(object voice, string tag) + { + return ProcessPromptEngine("withtag", new KeyValuePair[] { new KeyValuePair("tag", tag) }); + } + + public void EndPromptEngineWithTag(object voice, string tag) + { + } + + public bool BeginPromptEngineRule(object voice, string name) + { + return ProcessPromptEngine("rule", new KeyValuePair[] { new KeyValuePair("name", name) }); + } + + public void EndPromptEngineRule(object voice, string name) + { + } + + public void EndPromptEngineOutput(object voice) + { + } + + #endregion + + #endregion + + #region Internal Properties + + public string Ssml + { + get + { + return null; + } + } + + #endregion + + #region Private Fields + + private XmlTextWriter _writer; + private CultureInfo _culture; + private bool _closeSpeak; + private string _pexmlPrefix; + private const string xmlNamespacePrompt = "http://schemas.microsoft.com/Speech/2003/03/PromptEngine"; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/VoiceSynthesis.cs b/src/libraries/System.Speech/src/Internal/Synthesis/VoiceSynthesis.cs new file mode 100644 index 00000000000000..b45768358f9037 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/VoiceSynthesis.cs @@ -0,0 +1,1853 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Globalization; +using System.IO; +using System.Reflection; +using System.Runtime.ExceptionServices; +using System.Runtime.InteropServices; +using System.Speech.AudioFormat; +using System.Speech.Internal.ObjectTokens; +using System.Speech.Synthesis; +using System.Speech.Synthesis.TtsEngine; +using System.Text; +using System.Threading; + +#pragma warning disable 56502 // Empty catch statements + +namespace System.Speech.Internal.Synthesis +{ + internal sealed class VoiceSynthesis : IDisposable + { + #region Constructors + + internal VoiceSynthesis(WeakReference speechSynthesizer) + { + _asyncWorker = new AsyncSerializedWorker(new WaitCallback(ProcessPostData), null); + _asyncWorkerUI = new AsyncSerializedWorker(null, SynchronizationContext.Current); + + // Setup the event dispatcher for state changed events + _eventStateChanged = new WaitCallback(OnStateChanged); + + // Setup the event dispatcher for all other events + _signalWorkerCallback = new WaitCallback(SignalWorkerThread); + + // + _speechSyntesizer = speechSynthesizer; + + // Initialize the engine site; + _resourceLoader = new ResourceLoader(); + _site = new EngineSite(_resourceLoader); + + // No pending work and speaking is done + _evtPendingSpeak.Reset(); + + // Create the default audio device (speaker) + _waveOut = new AudioDeviceOut(SAPICategories.DefaultDeviceOut(), _asyncWorker); + + // Build the installed voice collection on first run + if (s_allVoices == null) + { + s_allVoices = BuildInstalledVoices(this); + + // If no voice are installed, then bail out. + if (s_allVoices.Count == 0) + { + s_allVoices = null; + throw new PlatformNotSupportedException(SR.Get(SRID.SynthesizerVoiceFailed)); + } + } + + // Create a dynamic list of installed voices from the list of all available voices. + _installedVoices = new List(s_allVoices.Count); + foreach (InstalledVoice installedVoice in s_allVoices) + { + _installedVoices.Add(new InstalledVoice(this, installedVoice.VoiceInfo)); + } + + // Get the default rate + _site.VoiceRate = _defaultRate = (int)GetDefaultRate(); + + // Start the worker thread + _workerThread = new Thread(new ThreadStart(ThreadProc)) + { + IsBackground = true + }; + _workerThread.Start(); + + // Default TTS engines events to be notified + SetInterest(_ttsEvents); + } + + ~VoiceSynthesis() + { + Dispose(false); + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + #endregion + + #region Internal Methods + + #region SpeechSynthesis 'public' API implementation + internal void Speak(Prompt prompt) + { + bool done = false; + EventHandler eventHandler = delegate (object sender, StateChangedEventArgs args) + { + if (prompt.IsCompleted && args.State == SynthesizerState.Ready) + { + done = true; + _workerWaitHandle.Set(); + } + }; + + try + { + _stateChanged += eventHandler; + _asyncWorkerUI.AsyncMode = false; + _asyncWorkerUI.WorkItemPending += _signalWorkerCallback; + + // SpeakAsync the prompt + QueuePrompt(prompt); + + while (!done && !_isDisposed) + { + _workerWaitHandle.WaitOne(); + _asyncWorkerUI.ConsumeQueue(); + } + + // Throw if an exception occurred + if (prompt.Exception != null) + { + ExceptionDispatchInfo.Throw(prompt.Exception); + } + } + finally + { + _asyncWorkerUI.AsyncMode = true; + _asyncWorkerUI.WorkItemPending -= _signalWorkerCallback; + _stateChanged -= eventHandler; + } + } + internal void SpeakAsync(Prompt prompt) + { + QueuePrompt(prompt); + } + + #region Speech Synthesis events + + internal void OnSpeakStarted(SpeakStartedEventArgs e) + { + if (_speakStarted != null) + { + _asyncWorkerUI.PostOperation(_speakStarted, _speechSyntesizer.Target, e); + } + } + + internal void FireSpeakCompleted(object sender, SpeakCompletedEventArgs e) + { + if (_speakCompleted != null && !e.Prompt._syncSpeak) + { + _speakCompleted(sender, e); + } + e.Prompt.Synthesizer = null; + } + + internal void OnSpeakCompleted(SpeakCompletedEventArgs e) + { + e.Prompt.IsCompleted = true; + _asyncWorkerUI.PostOperation(new EventHandler(FireSpeakCompleted), _speechSyntesizer.Target, e); + } + + internal void OnSpeakProgress(SpeakProgressEventArgs e) + { + if (_speakProgress != null) + { + string text = string.Empty; + if (e.Prompt._media == SynthesisMediaType.Ssml) + { + int length = e.CharacterCount; + text = RemoveEscapeString(e.Prompt._text, e.CharacterPosition, length, out length); + e.CharacterCount = length; + } + else + { + text = e.Prompt._text.Substring(e.CharacterPosition, e.CharacterCount); + } + + e.Text = text; + _asyncWorkerUI.PostOperation(_speakProgress, _speechSyntesizer.Target, e); + } + } + + private string RemoveEscapeString(string text, int start, int length, out int newLength) + { + newLength = length; + + // Find the pos '>' from the start position and so substitution from this point on + int startInXml = text.LastIndexOf('>', start); + + System.Diagnostics.Debug.Assert(startInXml >= 0); + + // Check for special character strings "%gt;", etc... and convert them to "<" etc... + int curPos = startInXml; + StringBuilder sb = new(text.Substring(0, curPos)); + + do + { + // Look for one of the Xml escape string + int iEscapeString = -1; + int pos = int.MaxValue; + for (int i = 0; i < _xmlEscapeStrings.Length; i++) + { + int idx; + if ((idx = text.IndexOf(_xmlEscapeStrings[i], curPos, StringComparison.Ordinal)) >= 0) + { + if (pos > idx) + { + pos = idx; + iEscapeString = i; + } + } + } + + if (iEscapeString < 0) + { + // If no special string have been found then the current position is the end of the string. + pos = text.Length; + } + else if (pos >= startInXml) + { + // For the character that is replacing the escape sequence. + newLength += _xmlEscapeStrings[iEscapeString].Length - 1; + } + else + { + // Found an escape sequence but it is it before the current text fragment. + pos += _xmlEscapeStrings[iEscapeString].Length; + iEscapeString = -1; + } + + // add the new string + int len = pos - curPos; + sb.Append(text.Substring(curPos, len)); + if (iEscapeString >= 0) + { + sb.Append(_xmlEscapeChars[iEscapeString]); + int lenEscape = _xmlEscapeStrings[iEscapeString].Length; + pos += lenEscape; + } + curPos = pos; + } + while (start + length > sb.Length); + return sb.ToString().Substring(start, length); + } + + internal void OnBookmarkReached(BookmarkReachedEventArgs e) + { + if (_bookmarkReached != null) + { + _asyncWorkerUI.PostOperation(_bookmarkReached, _speechSyntesizer.Target, e); + } + } + + internal void OnVoiceChange(VoiceChangeEventArgs e) + { + if (_voiceChange != null) + { + _asyncWorkerUI.PostOperation(_voiceChange, _speechSyntesizer.Target, e); + } + } + + internal void OnPhonemeReached(PhonemeReachedEventArgs e) + { + if (_phonemeReached != null) + { + _asyncWorkerUI.PostOperation(_phonemeReached, _speechSyntesizer.Target, e); + } + } + + private void OnVisemeReached(VisemeReachedEventArgs e) + { + if (_visemeReached != null) + { + _asyncWorkerUI.PostOperation(_visemeReached, _speechSyntesizer.Target, e); + } + } + + private void OnStateChanged(object o) + { + // For all other events the lock is done in the dispatch method + lock (_thisObjectLock) + { + StateChangedEventArgs e = (StateChangedEventArgs)o; + if (_stateChanged != null) + { + _asyncWorkerUI.PostOperation(_stateChanged, _speechSyntesizer.Target, e); + } + } + } + + internal void AddEvent(TtsEventId ttsEvent, ref EventHandler internalEventHandler, EventHandler eventHandler) where T : PromptEventArgs + { + lock (_thisObjectLock) + { + Helpers.ThrowIfNull(eventHandler, nameof(eventHandler)); + + // could through if unsuccessful - delay the SetEventInterest + bool fSetSapiInterest = internalEventHandler == null; + internalEventHandler += eventHandler; + + if (fSetSapiInterest) + { + _ttsEvents |= (1 << (int)ttsEvent); + + SetInterest(_ttsEvents); + } + } + } + + internal void RemoveEvent(TtsEventId ttsEvent, ref EventHandler internalEventHandler, EventHandler eventHandler) where T : EventArgs + { + lock (_thisObjectLock) + { + Helpers.ThrowIfNull(eventHandler, nameof(eventHandler)); + + // could through if unsuccessful - delay the SetEventInterest + internalEventHandler -= eventHandler; + + if (internalEventHandler == null) + { + _ttsEvents &= ~(1 << (int)ttsEvent); + + SetInterest(_ttsEvents); + } + } + } + + #endregion + + #endregion + internal void SetOutput(Stream stream, SpeechAudioFormatInfo formatInfo, bool headerInfo) + { + lock (_pendingSpeakQueue) + { + // Output is not supposed to change while speaking. + if (State == SynthesizerState.Speaking) + { + throw new InvalidOperationException(SR.Get(SRID.SynthesizerSetOutputSpeaking)); + } + + if (State == SynthesizerState.Paused) + { + throw new InvalidOperationException(SR.Get(SRID.SynthesizerSyncSetOutputWhilePaused)); + } + + lock (_processingSpeakLock) + { + if (stream == null) + { + _waveOut = new AudioDeviceOut(SAPICategories.DefaultDeviceOut(), _asyncWorker); + } + else + { + _waveOut = new AudioFileOut(stream, formatInfo, headerInfo, _asyncWorker); + } + } + } + } + + /// + /// Description: + /// This method synchronously purges all data that is currently in the + /// rendering pipeline. + /// + internal void Abort() + { + //--- Purge all pending speak requests and reset the voice + lock (_pendingSpeakQueue) + { + lock (_site) + { + if (_currentPrompt != null) + { + _site.Abort(); + _waveOut.Abort(); + } + } + lock (_processingSpeakLock) + { + Parameters[] parameters = _pendingSpeakQueue.ToArray(); + foreach (Parameters parameter in parameters) + { + ParametersSpeak paramSpeak = parameter._parameter as ParametersSpeak; + if (paramSpeak != null) + { + paramSpeak._prompt.Exception = new OperationCanceledException(SR.Get(SRID.PromptAsyncOperationCancelled)); + } + } + // Restart the worker thread + _evtPendingSpeak.Set(); + } + } + } + + /// + /// Description: + /// This method synchronously purges all data that is currently in the + /// rendering pipeline. + /// + internal void Abort(Prompt prompt) + { + //--- Purge all pending speak requests and reset the voice + lock (_pendingSpeakQueue) + { + bool found = false; + foreach (Parameters parameters in _pendingSpeakQueue) + { + ParametersSpeak paramSpeak = parameters._parameter as ParametersSpeak; + if (paramSpeak._prompt == prompt) + { + paramSpeak._prompt.Exception = new OperationCanceledException(SR.Get(SRID.PromptAsyncOperationCancelled)); + found = true; + break; + } + } + + if (!found) + { + // Not in the list, it could be the current prompt + lock (_site) + { + if (_currentPrompt == prompt) + { + _site.Abort(); + _waveOut.Abort(); + } + } + // Wait for completion + lock (_processingSpeakLock) + { + } + } + } + } + + /// + /// Pause the audio + /// + internal void Pause() + { + lock (_waveOut) + { + if (_waveOut != null) + { + _waveOut.Pause(); + } + + lock (_pendingSpeakQueue) + { + // The pause arrived after a speak call was initiated but before it started to speak + // Simulated a Re + if (_pendingSpeakQueue.Count > 0 && State == SynthesizerState.Ready) + { + OnStateChanged(SynthesizerState.Speaking); + } + OnStateChanged(SynthesizerState.Paused); + } + } + } + + /// + /// Resume the audio + /// + internal void Resume() + { + lock (_waveOut) + { + if (_waveOut != null) + { + _waveOut.Resume(); + } + lock (_pendingSpeakQueue) + { + if (_pendingSpeakQueue.Count > 0 || _currentPrompt != null) + { + OnStateChanged(SynthesizerState.Speaking); + } + else + { + // The state could be set to paused if the Paused happened after the speak happened + if (State == SynthesizerState.Paused) + { + OnStateChanged(SynthesizerState.Speaking); + } + OnStateChanged(SynthesizerState.Ready); + } + } + } + } + + internal void AddLexicon(Uri uri, string mediaType) + { + LexiconEntry lexiconEntry = new(uri, mediaType); + lock (_processingSpeakLock) + { + foreach (LexiconEntry lexicon in _lexicons) + { + if (lexicon._uri.Equals(uri)) + { + throw new InvalidOperationException(SR.Get(SRID.DuplicatedEntry)); + } + } + _lexicons.Add(lexiconEntry); + } + } + + internal void RemoveLexicon(Uri uri) + { + lock (_processingSpeakLock) + { + foreach (LexiconEntry lexicon in _lexicons) + { + if (lexicon._uri.Equals(uri)) + { + _lexicons.Remove(lexicon); + + // Bail out found + return; + } + } + throw new InvalidOperationException(SR.Get(SRID.FileNotFound, uri.ToString())); + } + } + + /// + /// This method is used to create the Engine voice and initialize the culture + /// + internal TTSVoice GetEngine(string name, CultureInfo culture, VoiceGender gender, VoiceAge age, int variant, bool switchContext) + { + TTSVoice defaultVoice = _currentVoice != null ? _currentVoice : GetVoice(switchContext); + + return GetEngineWithVoice(defaultVoice, null, name, culture, gender, age, variant, switchContext); + } + + /// + /// Returns the voices for a given (or all cultures) + /// + /// Culture or null for all culture + internal ReadOnlyCollection GetInstalledVoices(CultureInfo culture) + { + if (culture == null || culture == CultureInfo.InvariantCulture) + { + return new ReadOnlyCollection(_installedVoices); + } + else + { + Collection voices = new(); + + // loop all the available voices in the registry + // no check if the voice are valid + foreach (InstalledVoice voice in _installedVoices) + { + // Either all voices if culture is + if (culture.Equals(voice.VoiceInfo.Culture)) + { + voices.Add(voice); + } + } + return new ReadOnlyCollection(voices); + } + } + + #endregion + + #region Internal Properties + internal Prompt Prompt + { + get + { + lock (_pendingSpeakQueue) + { + return _currentPrompt; + } + } + } + internal SynthesizerState State + { + get + { + return _synthesizerState; + } + } + internal int Rate + { + get + { + return _site.VoiceRate; + } + set + { + _site.VoiceRate = _defaultRate = value; + } + } + internal int Volume + { + get + { + return _site.VoiceVolume; + } + set + { + _site.VoiceVolume = value; + } + } + + /// + /// Set/Get the default voice + /// + internal TTSVoice Voice + { + set + { + lock (_defaultVoiceLock) + { + if (_currentVoice == _defaultVoice && value == null) + { + _defaultVoiceInitialized = false; + } + _currentVoice = value; + } + } + } + + /// + /// Set/Get the default voice + /// + internal TTSVoice CurrentVoice(bool switchContext) + { + lock (_defaultVoiceLock) + { + // If no voice defined then get the default voice + if (_currentVoice == null) + { + GetVoice(switchContext); + } + return _currentVoice; + } + } + + #endregion + + #region Internal Fields + + // Internal event handlers + internal EventHandler _stateChanged; + // Internal event handlers + internal EventHandler _speakStarted; + internal EventHandler _speakCompleted; + internal EventHandler _speakProgress; + internal EventHandler _bookmarkReached; + internal EventHandler _voiceChange; + + internal EventHandler _phonemeReached; + + internal EventHandler _visemeReached; + + #endregion + + #region Private Members + + // + //=== ISpThreadTask ================================================================ + // + // These methods implement the ISpThreadTask interface. They will all be called on + // a worker thread. + + /// + /// This method is the task proc used for text rendering and for event + /// forwarding. It may be called on a worker thread for asynchronous speaking, or + /// it may be called on the client thread for synchronous speaking. If it is + /// called on the client thread, the hExitThreadEvent handle will be null. + /// + private void ThreadProc() + { + while (true) + { + Parameters parameters; + + _evtPendingSpeak.WaitOne(); + + //--- Get the next speak item + lock (_pendingSpeakQueue) + { + if (_pendingSpeakQueue.Count > 0) + { + parameters = _pendingSpeakQueue.Dequeue(); + ParametersSpeak paramSpeak = parameters._parameter as ParametersSpeak; + if (paramSpeak != null) + { + lock (_site) + { + if (_currentPrompt == null && State != SynthesizerState.Paused) + { + OnStateChanged(SynthesizerState.Speaking); + } + _currentPrompt = paramSpeak._prompt; + _waveOut.IsAborted = false; + } + } + else + { + _currentPrompt = null; + } + } + else + { + parameters = null; + } + } + + // The client thread may have cleared the list to abort the audio + if (parameters != null) + { + switch (parameters._action) + { + case Action.GetVoice: + { + try + { + _pendingVoice = null; + _pendingException = null; + _pendingVoice = GetProxyEngine((VoiceInfo)parameters._parameter); + } +#pragma warning disable 6500 + catch (Exception e) + { + // this thread cannot be terminated. + _pendingException = e; + } +#pragma warning restore 6500 + finally + { + // unlock the client + _evtPendingGetProxy.Set(); + } + } + break; + + case Action.SpeakText: + { + ParametersSpeak paramSpeak = (ParametersSpeak)parameters._parameter; + try + { + InjectEvent(TtsEventId.StartInputStream, paramSpeak._prompt, paramSpeak._prompt.Exception, null); + + if (paramSpeak._prompt.Exception == null) + { + // No lexicon yet + List lexicons = new(); ; + + //--- Create a single speak info structure for all the text + TTSVoice voice = _currentVoice != null ? _currentVoice : GetVoice(false); + //--- Create the speak info + + SpeakInfo speakInfo = new(this, voice); + + if (paramSpeak._textToSpeak != null) + { + //--- Make sure we have a voice defined by now + if (!paramSpeak._isXml) + { + FragmentState fragmentState = new(); + fragmentState.Action = TtsEngineAction.Speak; + fragmentState.Prosody = new Prosody(); + TextFragment textFragment = new(fragmentState, paramSpeak._textToSpeak); + speakInfo.AddText(voice, textFragment); + } + else + { + TextFragmentEngine engine = new(speakInfo, paramSpeak._textToSpeak, _pexml, _resourceLoader, lexicons); + SsmlParser.Parse(paramSpeak._textToSpeak, engine, speakInfo.Voice); + } + } + else + { + speakInfo.AddAudio(new AudioData(paramSpeak._audioFile, _resourceLoader)); + } + + // Add the global synthesizer lexicon + lexicons.AddRange(_lexicons); + + System.Diagnostics.Debug.Assert(speakInfo != null); + SpeakText(speakInfo, paramSpeak._prompt, lexicons); + } + ChangeStateToReady(paramSpeak._prompt, paramSpeak._prompt.Exception); + } + +#pragma warning disable 6500 + + catch (Exception e) + { + //--- Always inject the end of stream and complete even on failure + // Note: we're not getting the return codes from these so we + // don't overwrite a possible error from above. Also we + // really don't care about these errors. + ChangeStateToReady(paramSpeak._prompt, e); + } + } + break; + +#pragma warning restore 6500 + + default: + System.Diagnostics.Debug.Assert(false, "Unknown Action!"); + break; + } + } + + //--- Get the next speak item + lock (_pendingSpeakQueue) + { + // if nothing left then reset the wait handle. + if (_pendingSpeakQueue.Count == 0) + { + _evtPendingSpeak.Reset(); + } + } + + // check if we need to terminate this thread + if (_fExitWorkerThread) + { + _synthesizerState = SynthesizerState.Ready; + break; + } + } + } + + private void AddSpeakParameters(Parameters param) + { + lock (_pendingSpeakQueue) + { + _pendingSpeakQueue.Enqueue(param); + + // Start the worker thread if the list was empty + if (_pendingSpeakQueue.Count == 1) + { + _evtPendingSpeak.Set(); + } + } + } + + /// + /// This method renders the current speak info structure. It may be + /// made up of one or more speech segments, each intended for a different + /// voice/engine. + /// + private void SpeakText(SpeakInfo speakInfo, Prompt prompt, List lexicons) + { + VoiceInfo currrentVoiceId = null; + + //=== Main processing loop =========================================== + for (SpeechSeg speechSeg; (speechSeg = speakInfo.RemoveFirst()) != null;) + { + TTSVoice voice; + + //--- Update the current rendering engine + voice = speechSeg.Voice; + + // Fire the voice change object token if necessary + if (voice != null && (currrentVoiceId == null || !currrentVoiceId.Equals(voice.VoiceInfo))) + { + currrentVoiceId = voice.VoiceInfo; + InjectEvent(TtsEventId.VoiceChange, prompt, null, currrentVoiceId); + } + + lock (_processingSpeakLock) + { + if (speechSeg.IsText) + { + //--- Speak the segment + lock (_site) + { + if (_waveOut.IsAborted) + { + _waveOut.IsAborted = false; + //--- Always inject the end of stream and complete event on failure + throw new OperationCanceledException(SR.Get(SRID.PromptAsyncOperationCancelled)); + } + _site.InitRun(_waveOut, _defaultRate, prompt); + _waveOut.Begin(voice.WaveFormat(_waveOut.WaveFormat)); + } + + // Set the Lexicons if any + try + { + // Update the lexicon and set the default events to trap + voice.UpdateLexicons(lexicons); + _site.SetEventsInterest(_ttsInterest); + + // Calls GetOutputFormat if needed on the TTS engine + byte[] outputWaveFormat = voice.WaveFormat(_waveOut.WaveFormat); + + // Get the TTS engine or a backup voice + ITtsEngineProxy engineProxy = voice.TtsEngine; + + // Set the events specific to the desktop + if ((_ttsInterest & (1 << (int)TtsEventId.Phoneme)) != 0 && engineProxy.EngineAlphabet != AlphabetType.Ipa) + { + _site.EventMapper = new PhonemeEventMapper(_site, PhonemeEventMapper.PhonemeConversion.SapiToIpa, engineProxy.AlphabetConverter); + } + else + { + _site.EventMapper = null; + } + // Call the TTS engine to perform the speak through the proxy layer that + // converts SSML fragments to whatever the TTS engine supports + _site.LastException = null; + engineProxy.Speak(speechSeg.FragmentList, outputWaveFormat); + } + finally + { + _waveOut.WaitUntilDone(); + _waveOut.End(); + } + } + else + { + System.Diagnostics.Debug.Assert(speechSeg.Audio != null); + + _waveOut.PlayWaveFile(speechSeg.Audio); + + // Done with the audio, release the underlying stream + speechSeg.Audio.Dispose(); + } + lock (_site) + { + // The current prompt has now been played + _currentPrompt = null; + + // Check for abort or errors during the play + if (_waveOut.IsAborted || _site.LastException != null) + { + _waveOut.IsAborted = false; + + if (_site.LastException != null) + { + Exception lastException = _site.LastException; + _site.LastException = null; + ExceptionDispatchInfo.Throw(lastException); + } + //--- Always inject the end of stream and complete event on failure + throw new OperationCanceledException(SR.Get(SRID.PromptAsyncOperationCancelled)); + } + } + } + } + } + + /// + /// Get the user's default rate from the registry + /// + private static uint GetDefaultRate() + { + //--- Read the current user's default rate + uint lCurrRateAd = 0; + using (ObjectTokenCategory category = ObjectTokenCategory.Create(SAPICategories.CurrentUserVoices)) + { + if (category != null) + { + category.TryGetDWORD(defaultVoiceRate, ref lCurrRateAd); + } + } + return lCurrRateAd; + } + + private void InjectEvent(TtsEventId evtId, Prompt prompt, Exception exception, VoiceInfo voiceInfo) + { + // If the prompt is terminated, release it ASAP + if (evtId == TtsEventId.EndInputStream) + { + if (_site.EventMapper != null) + { + _site.EventMapper.FlushEvent(); + } + prompt.Exception = exception; + } + + int evtMask = 1 << (int)evtId; + if ((evtMask & _ttsInterest) != 0) + { + TTSEvent ttsEvent = new(evtId, prompt, exception, voiceInfo); + _asyncWorker.Post(ttsEvent); + } + } + + /// + /// Calls the client notification delegate. + /// + private void OnStateChanged(SynthesizerState state) + { + if (_synthesizerState != state) + { + // Keep the last state + SynthesizerState previousState = _synthesizerState; + _synthesizerState = state; + + // Fire the events + if (_eventStateChanged != null) + { + _asyncWorker.PostOperation(_eventStateChanged, new StateChangedEventArgs(state, previousState)); + } + } + } + + /// + /// Set the state to ready if nothing anymore needs to be spoken. + /// + private void ChangeStateToReady(Prompt prompt, Exception exception) + { + lock (_waveOut) + { + //--- Get the next speak item + lock (_pendingSpeakQueue) + { + // if nothing left then reset the wait handle. + if (_pendingSpeakQueue.Count == 0) + { + _currentPrompt = null; + System.Diagnostics.Debug.Assert(State == SynthesizerState.Speaking || State == SynthesizerState.Paused); + + if (State != SynthesizerState.Paused) + { + // Keep the last state + SynthesizerState previousState = _synthesizerState; + _synthesizerState = SynthesizerState.Ready; + + // Fire the notification for end of prompt + InjectEvent(TtsEventId.EndInputStream, prompt, exception, null); + if (_eventStateChanged != null) + { + _asyncWorker.PostOperation(_eventStateChanged, new StateChangedEventArgs(_synthesizerState, previousState)); + } + } + else + { + // Pause mode. Send a single notification for end of prompt + InjectEvent(TtsEventId.EndInputStream, prompt, exception, null); + } + } + else + { + // More prompts to play. + // Send a single notification that this one is over. + InjectEvent(TtsEventId.EndInputStream, prompt, exception, null); + } + } + } + } + + /// + /// This method is used to create the Engine voice and initialize + /// + private TTSVoice GetVoice(VoiceInfo voiceInfo, bool switchContext) + { + TTSVoice voice = null; + + lock (_voiceDictionary) + { + if (!_voiceDictionary.TryGetValue(voiceInfo, out voice)) + { + if (switchContext) + { + ExecuteOnBackgroundThread(Action.GetVoice, voiceInfo); + + // Voice is null if exception occurred + voice = _pendingException == null ? _pendingVoice : null; + } + else + { + // Get the voice + voice = GetProxyEngine(voiceInfo); + } + } + } + return voice; + } + + private void ExecuteOnBackgroundThread(Action action, object parameter) + { + //--- Get the voice on the worker thread + lock (_pendingSpeakQueue) + { + _evtPendingGetProxy.Reset(); + _pendingSpeakQueue.Enqueue(new Parameters(action, parameter)); + + // Start the worker thread if the list was empty + if (_pendingSpeakQueue.Count == 1) + { + _evtPendingSpeak.Set(); + } + } + _evtPendingGetProxy.WaitOne(); + } + + private TTSVoice GetEngineWithVoice(TTSVoice defaultVoice, VoiceInfo defaultVoiceId, string name, CultureInfo culture, VoiceGender gender, VoiceAge age, int variant, bool switchContext) + { + TTSVoice voice = null; + + // The list of enabled voices can be changed by a speech application + lock (_enabledVoicesLock) + { + // Do we have a name? + if (!string.IsNullOrEmpty(name)) + { + // try to find a voice for a given name + voice = MatchVoice(name, variant, switchContext); + } + + // Still no voice loop to find a matching one. + if (voice == null) + { + InstalledVoice viDefault = null; + + // Easy out if the voice is the default voice + if (defaultVoice != null || defaultVoiceId != null) + { + // try to select the default voice + viDefault = InstalledVoice.Find(_installedVoices, defaultVoice != null ? defaultVoice.VoiceInfo : defaultVoiceId); + + if (viDefault != null && viDefault.Enabled && variant == 1) + { + VoiceInfo vi = viDefault.VoiceInfo; + if (viDefault.Enabled && vi.Culture.Equals(culture) && (gender == VoiceGender.NotSet || gender == VoiceGender.Neutral || gender == vi.Gender) && (age == VoiceAge.NotSet || age == vi.Age)) + { + voice = defaultVoice; + } + } + } + + // Pick the first one in the list as the backup default + while (voice == null && _installedVoices.Count > 0) + { + if (viDefault == null) + { + viDefault = InstalledVoice.FirstEnabled(_installedVoices, CultureInfo.CurrentUICulture); + } + + if (viDefault != null) + { + voice = MatchVoice(culture, gender, age, variant, switchContext, ref viDefault); + } + else + { + break; + } + } + } + + //--- Create the default voice + if (voice == null) + { + if (defaultVoice == null) + { + throw new InvalidOperationException(SR.Get(SRID.SynthesizerVoiceFailed)); + } + else + { + voice = defaultVoice; + } + } + } + return voice; + } + + /// + /// Try to find a voice for a given name + /// + private TTSVoice MatchVoice(string name, int variant, bool switchContext) + { + TTSVoice voice = null; + // Look for it in the object tokens + VoiceInfo voiceInfo = null; + int cVariant = variant; + + foreach (InstalledVoice sysVoice in _installedVoices) + { + int firstCharacter; + if (sysVoice.Enabled && (firstCharacter = name.IndexOf(sysVoice.VoiceInfo.Name, StringComparison.Ordinal)) >= 0) + { + int lastCharacter = firstCharacter + sysVoice.VoiceInfo.Name.Length; + if ((firstCharacter == 0 || name[firstCharacter - 1] == ' ') && (lastCharacter == name.Length || name[lastCharacter] == ' ')) + { + voiceInfo = sysVoice.VoiceInfo; + if (cVariant-- == 1) + { + break; + } + } + } + } + + // If we had a name, try to get engine from it + if (voiceInfo != null) + { + // Do we already have an voice for this voiceInfo? + voice = GetVoice(voiceInfo, switchContext); + } + return voice; + } + + private TTSVoice MatchVoice(CultureInfo culture, VoiceGender gender, VoiceAge age, int variant, bool switchContext, ref InstalledVoice viDefault) + { + TTSVoice voice = null; + + // Build a list with all the tokens + List tokens = new(_installedVoices); + + // Remove all the voices that are disabled + for (int i = tokens.Count - 1; i >= 0; i--) + { + if (!tokens[i].Enabled) + { + tokens.RemoveAt(i); + } + } + + // Try to select the best available voice + for (; voice == null && tokens.Count > 0;) + { + InstalledVoice sysVoice = MatchVoice(viDefault, culture, gender, age, variant, tokens); + if (sysVoice != null) + { + // Find a voice and a match engine! + voice = GetVoice(sysVoice.VoiceInfo, switchContext); + + if (voice == null) + { + // The voice associated with this token cannot be instantiated. + // Remove it from the list of possible voices + tokens.Remove(sysVoice); + sysVoice.SetEnabledFlag(false, switchContext); + if (sysVoice == viDefault) + { + viDefault = null; + } + } + break; + } + } + return voice; + } + + private static InstalledVoice MatchVoice(InstalledVoice defaultTokenInfo, CultureInfo culture, VoiceGender gender, VoiceAge age, int variant, List tokensInfo) + { + // Set the default return value + InstalledVoice sysVoice = defaultTokenInfo; + int bestMatch = CalcMatchValue(culture, gender, age, sysVoice.VoiceInfo); + int iPosDefault = -1; + + // calc the best possible match + for (int iToken = 0; iToken < tokensInfo.Count; iToken++) + { + InstalledVoice ti = tokensInfo[iToken]; + if (ti.Enabled) + { + int matchValue = CalcMatchValue(culture, gender, age, ti.VoiceInfo); + + if (ti.Equals(defaultTokenInfo)) + { + iPosDefault = iToken; + } + + // Is this a better match? + if (matchValue > bestMatch) + { + sysVoice = ti; + bestMatch = matchValue; + } + + // If we cannot get a better voice, exit + if (matchValue == 0x7 && (variant == 1 || iPosDefault >= 0)) + { + break; + } + } + } + + if (variant > 1) + { + // Set the default voice as the first entry + tokensInfo[iPosDefault] = tokensInfo[0]; + tokensInfo[0] = defaultTokenInfo; + int requestedVariant = variant; + + do + { + foreach (InstalledVoice ti in tokensInfo) + { + if (ti.Enabled && CalcMatchValue(culture, gender, age, ti.VoiceInfo) == bestMatch) + { + // If we are looking for a variant and are matching the best match, switch voice + --variant; + sysVoice = ti; + } + if (variant == 0) + { + break; + } + } + + // if the variant number is large, calc the modulo and restart from there + if (variant > 0) + { + variant = requestedVariant % (requestedVariant - variant); + } + } + while (variant > 0); + } + return sysVoice; + } + + private static int CalcMatchValue(CultureInfo culture, VoiceGender gender, VoiceAge age, VoiceInfo voiceInfo) + { + int matchValue; + + if (voiceInfo != null) + { + matchValue = 0; + CultureInfo tokCulture = voiceInfo.Culture; + + if (culture != null && Helpers.CompareInvariantCulture(tokCulture, culture)) + { + // Exact Culture match has priority over gender and age. + if (culture.Equals(tokCulture)) + { + matchValue |= 0x4; + } + + // Male / Female has priority over age + if (gender == VoiceGender.NotSet || voiceInfo.Gender == gender) + { + matchValue |= 0x2; + } + + // Age check + if (age == VoiceAge.NotSet || voiceInfo.Age == age) + { + matchValue |= 0x1; + } + } + } + else + { + matchValue = -1; + } + return matchValue; + } + + private TTSVoice GetProxyEngine(VoiceInfo voiceInfo) + { + // Create the TTS voice + + // Try to get a managed SSML engine + ITtsEngineProxy engineProxy = GetSsmlEngine(voiceInfo); + + // Try to get a COM engine + if (engineProxy == null) + { + engineProxy = GetComEngine(voiceInfo); + } + + // store the proxy object + TTSVoice voice = null; + if (engineProxy != null) + { + voice = new TTSVoice(engineProxy, voiceInfo); + _voiceDictionary.Add(voiceInfo, voice); + } + return voice; + } + + private ITtsEngineProxy GetSsmlEngine(VoiceInfo voiceInfo) + { + // Try first to get a TtsEngineSsml for it + ITtsEngineProxy engineProxy = null; + try + { + Assembly assembly; + if (!string.IsNullOrEmpty(voiceInfo.AssemblyName) && (assembly = Assembly.Load(voiceInfo.AssemblyName)) != null) + { + Type[] types = assembly.GetTypes(); + TtsEngineSsml ssmlEngine = null; + foreach (Type type in types) + { + if (type.IsSubclassOf(typeof(TtsEngineSsml))) + { + string[] args = new string[] { voiceInfo.Clsid }; + ssmlEngine = assembly.CreateInstance(type.ToString(), false, BindingFlags.Default, null, args, CultureInfo.CurrentUICulture, null) as TtsEngineSsml; + break; + } + } + if (ssmlEngine != null) + { + // Create the engine site if not yet available + engineProxy = new TtsProxySsml(ssmlEngine, _site, voiceInfo.Culture.LCID); + } + } + } + catch (ArgumentException) + { + } + catch (IOException) + { + } + catch (BadImageFormatException) + { + } + return engineProxy; + } + + private ITtsEngineProxy GetComEngine(VoiceInfo voiceInfo) + { + ITtsEngineProxy engineProxy = null; + try + { + ObjectToken token = ObjectToken.Open(null, voiceInfo.RegistryKeyPath, false); + if (token != null) + { + object engine = token.CreateObjectFromToken("CLSID"); + + if (engine != null) + { + ITtsEngine iTtsEngine = engine as ITtsEngine; + if (iTtsEngine != null) + { + engineProxy = new TtsProxySapi(iTtsEngine, ComEngineSite, voiceInfo.Culture.LCID); + } + } + } + } + catch (ArgumentException) + { + } + catch (IOException) + { + } + catch (BadImageFormatException) + { + } + catch (COMException) + { + } + catch (FormatException) + { + } + return engineProxy; + } + + /// + /// Returns the default voice for the synth + /// + private TTSVoice GetVoice(bool switchContext) + { + lock (_defaultVoiceLock) + { + if (!_defaultVoiceInitialized) + { + _defaultVoice = null; + ObjectToken defaultVoice = SAPICategories.DefaultToken("Voices"); + + if (defaultVoice != null) + { + // Try to load a default voice from the default token parameters + VoiceGender gender = VoiceGender.NotSet; + VoiceAge age = VoiceAge.NotSet; + SsmlParserHelpers.TryConvertGender(defaultVoice.Gender.ToLowerInvariant(), out gender); + SsmlParserHelpers.TryConvertAge(defaultVoice.Age.ToLowerInvariant(), out age); + + _defaultVoice = GetEngineWithVoice(null, new VoiceInfo(defaultVoice), defaultVoice.TokenName(), defaultVoice.Culture, gender, age, 1, switchContext); + + // If failed to get the default, then reset the default token to null. + defaultVoice = null; + } + + if (_defaultVoice == null) + { + // Try to find a default voice that matches the current UI culture + VoiceInfo defaultInfo = defaultVoice != null ? new VoiceInfo(defaultVoice) : null; + _defaultVoice = GetEngineWithVoice(null, defaultInfo, null, CultureInfo.CurrentUICulture, VoiceGender.NotSet, VoiceAge.NotSet, 1, switchContext); + } + _defaultVoiceInitialized = true; + _currentVoice = _defaultVoice; + } + } + return _defaultVoice; + } + + private static List BuildInstalledVoices(VoiceSynthesis voiceSynthesizer) + { + List voices = new(); + + using (ObjectTokenCategory category = ObjectTokenCategory.Create(SAPICategories.Voices)) + { + if (category != null) + { + // Build a list with all the voicesInfo + foreach (ObjectToken voiceToken in category.FindMatchingTokens(null, null)) + { + if (voiceToken != null && voiceToken.Attributes != null) + { + voices.Add(new InstalledVoice(voiceSynthesizer, new VoiceInfo(voiceToken))); + } + } + } + } + return voices; + } + + #region Signal Client application + + private void SignalWorkerThread(object ignored) + { + if (_asyncWorkerUI.AsyncMode == false) + { + _workerWaitHandle.Set(); + } + } + + private void ProcessPostData(object arg) + { + TTSEvent ttsEvent = arg as TTSEvent; + if (ttsEvent == null) + { + Debug.WriteLine("ProcessPostData: post data is not a TTSEvent object"); + return; + } + lock (_thisObjectLock) + { + if (!_isDisposed) + { + DispatchEvent(ttsEvent); + } + } + } + + private void DispatchEvent(TTSEvent ttsEvent) + { + Prompt prompt = ttsEvent.Prompt; + Debug.Assert(prompt != null); + + // Raise the appropriate events + TtsEventId eventId = ttsEvent.Id; + prompt.Exception = ttsEvent.Exception; + switch (eventId) + { + case TtsEventId.StartInputStream: + // SpeakStarted + OnSpeakStarted(new SpeakStartedEventArgs(prompt)); + break; + + case TtsEventId.EndInputStream: + // SpeakCompleted + OnSpeakCompleted(new SpeakCompletedEventArgs(prompt)); + break; + + case TtsEventId.SentenceBoundary: + break; + + case TtsEventId.WordBoundary: + // SpeakProgressChanged + OnSpeakProgress(new SpeakProgressEventArgs(prompt, ttsEvent.AudioPosition, (int)ttsEvent.LParam, (int)ttsEvent.WParam)); + break; + + case TtsEventId.Bookmark: + // BookmarkDetected + OnBookmarkReached(new BookmarkReachedEventArgs(prompt, ttsEvent.Bookmark, ttsEvent.AudioPosition)); + break; + + case TtsEventId.VoiceChange: + VoiceInfo voice = ttsEvent.Voice; + OnVoiceChange(new VoiceChangeEventArgs(prompt, voice)); + break; + + case TtsEventId.Phoneme: + // SynthesizePhoneme + OnPhonemeReached(new PhonemeReachedEventArgs( + prompt, // Prompt + ttsEvent.Phoneme, // Current phoneme + ttsEvent.AudioPosition, // audioPosition + ttsEvent.PhonemeDuration, + ttsEvent.PhonemeEmphasis, + ttsEvent.NextPhoneme)); // next phoneme + break; + + case TtsEventId.Viseme: + // SynthesizeViseme + OnVisemeReached(new VisemeReachedEventArgs( + prompt, // Prompt + (int)ttsEvent.LParam & 0xFFFF, // currentViseme + ttsEvent.AudioPosition, // audioPosition + TimeSpan.FromMilliseconds(ttsEvent.WParam >> 16), // duration + (SynthesizerEmphasis)((uint)ttsEvent.LParam >> 16), // Emphasis + (int)(ttsEvent.WParam & 0xFFFF))); // nextViseme + break; + + default: + throw new InvalidOperationException(SR.Get(SRID.SynthesizerUnknownEvent)); + } + } + + #endregion + + private void Dispose(bool disposing) + { + if (!_isDisposed) + { + lock (_thisObjectLock) + { + _fExitWorkerThread = true; + + // Wait for 2 second max for any pending speak + Abort(); + for (int i = 0; i < 20 && State != SynthesizerState.Ready; i++) + { + Thread.Sleep(100); + } + if (disposing) + { + _evtPendingSpeak.Set(); + + // Wait for the background thread to be done. + _workerThread.Join(); + + // Free the COM resources used + foreach (KeyValuePair kv in _voiceDictionary) + { + if (kv.Value != null) + { + kv.Value.TtsEngine.ReleaseInterface(); + } + } + _voiceDictionary.Clear(); + + _evtPendingSpeak.Close(); + _evtPendingGetProxy.Close(); + _workerWaitHandle.Close(); + } + + // If the TTS engine was a COM object, release it. + if (_iSite != IntPtr.Zero) + { + Marshal.Release(_iSite); + } + + // Mark this object as disposed + _isDisposed = true; + } + } + } + private void QueuePrompt(Prompt prompt) + { + // Call Sapi Speak with the appropriate flags based on mediaType + switch (prompt._media) + { + case SynthesisMediaType.Text: + // Synthesize the speech based on plain text + Speak(prompt._text, prompt, false); + break; + + case SynthesisMediaType.Ssml: + // Synthesize the speech based on Ssml input + Speak(prompt._text, prompt, true); + break; + + case SynthesisMediaType.WaveAudio: + // Synthesize the speech based for Audio + SpeakStream(prompt._audio, prompt); + break; + + default: + throw new ArgumentException(SR.Get(SRID.SynthesizerUnknownMediaType)); + } + } + + /// + /// This method is used to speak a text buffer. + /// + private void Speak(string textToSpeak, Prompt prompt, bool fIsXml) + { + Helpers.ThrowIfNull(textToSpeak, nameof(textToSpeak)); + + if (_isDisposed) + { + throw new ObjectDisposedException("VoiceSynthesis"); + } + + //--- Add the Speak info to the pending TTS rendering list + AddSpeakParameters(new Parameters(Action.SpeakText, new ParametersSpeak(textToSpeak, prompt, fIsXml, null))); + } + + private void SpeakStream(Uri audio, Prompt prompt) + { + //--- Add the Speak info to the pending TTS rendering list + AddSpeakParameters(new Parameters(Action.SpeakText, new ParametersSpeak(null, prompt, false, audio))); + } + private void SetInterest(int ttsInterest) + { + _ttsInterest = ttsInterest; + //--- Purge all pending speak requests and reset the voice + lock (_pendingSpeakQueue) + { + _site.SetEventsInterest(_ttsInterest); + } + } + + #endregion + + #region Private Properties + + private IntPtr ComEngineSite + { + get + { + // Get the local EngineSite as a COM component + if (_iSite == IntPtr.Zero) + { + _siteSapi = new EngineSiteSapi(_site, _resourceLoader); + _iSite = Marshal.GetComInterfaceForObject(_siteSapi, typeof(ISpEngineSite)); + } + return _iSite; + } + } + + #endregion + + #region Private Types + +#pragma warning disable 56524 // No instances of a class created in this module and should not be disposed + + private enum Action + { + GetVoice, + SpeakText, + } + + private class Parameters + { + internal Parameters(Action action, object parameter) + { + _action = action; + _parameter = parameter; + } + + internal Action _action; + internal object _parameter; + } + + private class ParametersSpeak + { + internal ParametersSpeak(string textToSpeak, Prompt prompt, bool isXml, Uri audioFile) + { + _textToSpeak = textToSpeak; + _prompt = prompt; + _isXml = isXml; + _audioFile = audioFile; + } + + internal string _textToSpeak; + internal Prompt _prompt; + internal bool _isXml; + internal Uri _audioFile; + } + +#pragma warning restore 56524 // No instances of a class created in this module and should not be disposed + + #endregion + + #region Private Fields + + // Notifications + private WaitCallback _eventStateChanged; + private WaitCallback _signalWorkerCallback; + + // Engine site references + private readonly ResourceLoader _resourceLoader; + private readonly EngineSite _site; + private EngineSiteSapi _siteSapi; + private IntPtr _iSite; + private int _ttsInterest; + + // Background synchronization + private ManualResetEvent _evtPendingSpeak = new(false); + private ManualResetEvent _evtPendingGetProxy = new(false); + private Exception _pendingException; + private Queue _pendingSpeakQueue = new(); + private TTSVoice _pendingVoice; + + // Background thread + private Thread _workerThread; + private bool _fExitWorkerThread; + private object _processingSpeakLock = new(); + + // Voices info + private Dictionary _voiceDictionary = new(); + private List _installedVoices; + private static List s_allVoices; + private object _enabledVoicesLock = new(); + + // Default voice + private TTSVoice _defaultVoice; + private TTSVoice _currentVoice; + private bool _defaultVoiceInitialized; + private object _defaultVoiceLock = new(); + + private AudioBase _waveOut; + private int _defaultRate; + + // Is the object disposed? + private bool _isDisposed; + + // Lexicons associated with this voice + private List _lexicons = new(); + + // output object + private SynthesizerState _synthesizerState = SynthesizerState.Ready; + + // Currently played prompt + private Prompt _currentPrompt; + + private const string defaultVoiceRate = "DefaultTTSRate"; + + private AsyncSerializedWorker _asyncWorker, _asyncWorkerUI; + + // Prompt Engine + private const bool _pexml = false; + + /// + /// Could be a phrase of an SSML doc or a file reference + /// + private int _ttsEvents = (1 << (int)TtsEventId.StartInputStream) | (1 << (int)TtsEventId.EndInputStream); + + // make sure the object is always in safe state + private object _thisObjectLock = new(); + + private AutoResetEvent _workerWaitHandle = new(false); + + private WeakReference _speechSyntesizer; + + private readonly string[] _xmlEscapeStrings = new string[] { """, "'", "&", "<", ">" }; + private readonly char[] _xmlEscapeChars = new char[] { '"', '\'', '&', '<', '>' }; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Internal/Synthesis/WaveHeader.cs b/src/libraries/System.Speech/src/Internal/Synthesis/WaveHeader.cs new file mode 100644 index 00000000000000..ea569ba86ff350 --- /dev/null +++ b/src/libraries/System.Speech/src/Internal/Synthesis/WaveHeader.cs @@ -0,0 +1,154 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; + +namespace System.Speech.Internal.Synthesis +{ + + internal sealed class WaveHeader : IDisposable + { + #region Constructors + + /// + /// Initialize an instance of a byte array. + /// + /// MMSYSERR.NOERROR if successful + internal WaveHeader(byte[] buffer) + { + _dwBufferLength = buffer.Length; + _gcHandle = GCHandle.Alloc(buffer, GCHandleType.Pinned); + } + + /// + /// Frees any memory allocated for the buffer. + /// + ~WaveHeader() + { + Dispose(false); + } + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// + /// Frees any memory allocated for the buffer. + /// + private void Dispose(bool disposing) + { + if (disposing) + { + ReleaseData(); + if (_gcHandleWaveHdr.IsAllocated) + { + _gcHandleWaveHdr.Free(); + } + } + } + + #endregion + + #region Internal Methods + + internal void ReleaseData() + { + if (_gcHandle.IsAllocated) + { + _gcHandle.Free(); + } + } + + #endregion + + #region Internal Properties + internal GCHandle WAVEHDR + { + get + { + if (!_gcHandleWaveHdr.IsAllocated) + { + _waveHdr.lpData = _gcHandle.AddrOfPinnedObject(); + _waveHdr.dwBufferLength = (uint)_dwBufferLength; + _waveHdr.dwBytesRecorded = 0; + _waveHdr.dwUser = 0; + _waveHdr.dwFlags = 0; + _waveHdr.dwLoops = 0; + _waveHdr.lpNext = IntPtr.Zero; + _gcHandleWaveHdr = GCHandle.Alloc(_waveHdr, GCHandleType.Pinned); + } + return _gcHandleWaveHdr; + } + } + + internal int SizeHDR + { + get + { + return Marshal.SizeOf(_waveHdr); + } + } + + #endregion + + #region Internal Fields + + /// + /// Used by dwFlags in WaveHeader + /// Set by the device driver to indicate that it is finished with the buffer + /// and is returning it to the application. + /// + internal const int WHDR_DONE = 0x00000001; + /// + /// Used by dwFlags in WaveHeader + /// Set by Windows to indicate that the buffer has been prepared with the + /// waveInPrepareHeader or waveOutPrepareHeader function. + /// + internal const int WHDR_PREPARED = 0x00000002; + /// + /// Used by dwFlags in WaveHeader + /// This buffer is the first buffer in a loop. This flag is used only with + /// output buffers. + /// + internal const int WHDR_BEGINLOOP = 0x00000004; + /// + /// Used by dwFlags in WaveHeader + /// This buffer is the last buffer in a loop. This flag is used only with + /// output buffers. + /// + internal const int WHDR_ENDLOOP = 0x00000008; + /// + /// Used by dwFlags in WaveHeader + /// Set by Windows to indicate that the buffer is queued for playback. + /// + internal const int WHDR_INQUEUE = 0x00000010; + + /// + /// Set in WaveFormat.wFormatTag to specify PCM data. + /// + internal const int WAVE_FORMAT_PCM = 1; + + #endregion + + #region private Fields + + /// + /// Long pointer to the address of the waveform buffer. This buffer must + /// be block-aligned according to the nBlockAlign member of the + /// WaveFormat structure used to open the device. + /// + private GCHandle _gcHandle; + + private GCHandle _gcHandleWaveHdr; + + private WAVEHDR _waveHdr; + + /// + /// Specifies the length, in bytes, of the buffer. + /// + internal int _dwBufferLength; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/AudioLevelUpdatedEventArgs.cs b/src/libraries/System.Speech/src/Recognition/AudioLevelUpdatedEventArgs.cs new file mode 100644 index 00000000000000..572a393a85a5bb --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/AudioLevelUpdatedEventArgs.cs @@ -0,0 +1,33 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Recognition +{ + // EventArgs used in the AudioLevelUpdatedEventArgs event. + + public class AudioLevelUpdatedEventArgs : EventArgs + { + #region Constructors + + internal AudioLevelUpdatedEventArgs(int audioLevel) + { + _audioLevel = audioLevel; + } + + #endregion + + #region public Properties + public int AudioLevel + { + get { return _audioLevel; } + } + + #endregion + + #region Private Fields + + private int _audioLevel; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/AudioSignalProblem.cs b/src/libraries/System.Speech/src/Recognition/AudioSignalProblem.cs new file mode 100644 index 00000000000000..d75bae5da19169 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/AudioSignalProblem.cs @@ -0,0 +1,29 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Recognition +{ + public enum AudioSignalProblem + { + // No signal problem. + None = 0, + + // The audio input is too noisy for accurate recognition of the input phrase. + TooNoisy, + + // The audio input does not contain any audio signal (flat line). + NoSignal, + + // The audio input is too loud, resulting in clipping of the signal. + TooLoud, + + // The audio input is too soft, resulting in sub-optimal recognition of the input phrase. + TooSoft, + + // The audio input is too fast for optimal recognition. + TooFast, + + // The audio input is too slow for optimal recognition. + TooSlow + } +} diff --git a/src/libraries/System.Speech/src/Recognition/AudioSignalProblemOccurredEventArgs.cs b/src/libraries/System.Speech/src/Recognition/AudioSignalProblemOccurredEventArgs.cs new file mode 100644 index 00000000000000..317d290f951b25 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/AudioSignalProblemOccurredEventArgs.cs @@ -0,0 +1,51 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Recognition +{ + // EventArgs used in the AudioSignalProblemOccurredEventArgs event. + + public class AudioSignalProblemOccurredEventArgs : EventArgs + { + #region Constructors + + internal AudioSignalProblemOccurredEventArgs(AudioSignalProblem audioSignalProblem, int audioLevel, TimeSpan audioPosition, TimeSpan recognizerPosition) + { + _audioSignalProblem = audioSignalProblem; + _audioLevel = audioLevel; + _audioPosition = audioPosition; + _recognizerPosition = recognizerPosition; + } + + #endregion + + #region public Properties + public AudioSignalProblem AudioSignalProblem + { + get { return _audioSignalProblem; } + } + public int AudioLevel + { + get { return _audioLevel; } + } + public TimeSpan AudioPosition + { + get { return _audioPosition; } + } + public TimeSpan RecognizerAudioPosition + { + get { return _recognizerPosition; } + } + + #endregion + + #region Private Fields + + private AudioSignalProblem _audioSignalProblem; + private TimeSpan _recognizerPosition; + private TimeSpan _audioPosition; + private int _audioLevel; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/AudioState.cs b/src/libraries/System.Speech/src/Recognition/AudioState.cs new file mode 100644 index 00000000000000..2a44ec5b3728c1 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/AudioState.cs @@ -0,0 +1,18 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Recognition +{ + // Current audio state. + public enum AudioState + { + // The audio input is stopped. + Stopped, + + // The audio input contains silence. + Silence, + + // The audio input contains speech signal. + Speech + } +} diff --git a/src/libraries/System.Speech/src/Recognition/AudioStateChangedEventArgs.cs b/src/libraries/System.Speech/src/Recognition/AudioStateChangedEventArgs.cs new file mode 100644 index 00000000000000..6128ab245c1497 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/AudioStateChangedEventArgs.cs @@ -0,0 +1,33 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Recognition +{ + // EventArgs used in the AudioStateChangedEventArgs event. + + public class AudioStateChangedEventArgs : EventArgs + { + #region Constructors + + internal AudioStateChangedEventArgs(AudioState audioState) + { + _audioState = audioState; + } + + #endregion + + #region public Properties + public AudioState AudioState + { + get { return _audioState; } + } + + #endregion + + #region Private Fields + + private AudioState _audioState; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/Choices.cs b/src/libraries/System.Speech/src/Recognition/Choices.cs new file mode 100644 index 00000000000000..86884acea7df97 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/Choices.cs @@ -0,0 +1,85 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; +using System.Speech.Internal; +using System.Speech.Internal.GrammarBuilding; + +namespace System.Speech.Recognition +{ + [DebuggerDisplay("{_oneOf.DebugSummary}")] + public class Choices + { + #region Constructors + + public Choices() + { + } + + public Choices(params string[] phrases) + { + Helpers.ThrowIfNull(phrases, nameof(phrases)); + + Add(phrases); + } + + public Choices(params GrammarBuilder[] alternateChoices) + { + Helpers.ThrowIfNull(alternateChoices, nameof(alternateChoices)); + + Add(alternateChoices); + } + + #endregion + + #region Public Methods + + public void Add(params string[] phrases) + { + Helpers.ThrowIfNull(phrases, nameof(phrases)); + + foreach (string phrase in phrases) + { + Helpers.ThrowIfEmptyOrNull(phrase, "phrase"); + + _oneOf.Add(phrase); + } + } + + public void Add(params GrammarBuilder[] alternateChoices) + { + Helpers.ThrowIfNull(alternateChoices, nameof(alternateChoices)); + + foreach (GrammarBuilder alternateChoice in alternateChoices) + { + Helpers.ThrowIfNull(alternateChoice, "alternateChoice"); + + _oneOf.Items.Add(new ItemElement(alternateChoice)); + } + } + public GrammarBuilder ToGrammarBuilder() + { + return new GrammarBuilder(this); + } + + #endregion + + #region Internal Properties + + internal OneOfElement OneOf + { + get + { + return _oneOf; + } + } + + #endregion + + #region Private Fields + + private OneOfElement _oneOf = new(); + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/DictationGrammar.cs b/src/libraries/System.Speech/src/Recognition/DictationGrammar.cs new file mode 100644 index 00000000000000..758da033e35356 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/DictationGrammar.cs @@ -0,0 +1,57 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; + +namespace System.Speech.Recognition +{ + // Class for grammars based on a statistical language model for doing dictation. + + public class DictationGrammar : Grammar + { + // The implementation of DictationGrammar stores a Uri in the Grammar.Uri field. + // Then when LoadGrammar is called the Uri handling part of LoadGrammar is modified to check + // if the grammar object is a DictationGrammar, in which case the SAPI dictation methods are called. + // The Uri is "grammar:dictation" for regular dictation and "grammar:dictation#spelling" for a spelling. + + #region Constructors + + // Load the generic dictation language model. + public DictationGrammar() : base(s_defaultDictationUri, null, null) + { + } + + // Load a specific topic. The topic is of the form "grammar:dictation#topic" + public DictationGrammar(string topic) : base(new Uri(topic, UriKind.RelativeOrAbsolute), null, null) + { + } + + #endregion + + #region Public Methods + public void SetDictationContext(string precedingText, string subsequentText) + { + if (State != GrammarState.Loaded) + { + throw new InvalidOperationException(SR.Get(SRID.GrammarNotLoaded)); + } + // Note: You can only call this method after the Grammar is Loaded. + // In theory we could support this more generally but there doesn't seem to be a lot of point. + Debug.Assert(Recognizer != null); + + Recognizer.SetDictationContext(this, precedingText, subsequentText); + } + + #endregion + + #region Internal Methods + + #endregion + + #region Private Fields + + private static Uri s_defaultDictationUri = new("grammar:dictation"); + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/EmulateRecognizeCompletedEventArgs.cs b/src/libraries/System.Speech/src/Recognition/EmulateRecognizeCompletedEventArgs.cs new file mode 100644 index 00000000000000..68320b64330458 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/EmulateRecognizeCompletedEventArgs.cs @@ -0,0 +1,34 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.ComponentModel; + +namespace System.Speech.Recognition +{ + public class EmulateRecognizeCompletedEventArgs : AsyncCompletedEventArgs + { + #region Constructors + + internal EmulateRecognizeCompletedEventArgs(RecognitionResult result, Exception error, bool cancelled, object userState) + : base(error, cancelled, userState) + { + _result = result; + } + + #endregion + + #region Public Properties + public RecognitionResult Result + { + get { return _result; } + } + + #endregion + + #region Private Fields + + private RecognitionResult _result; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/Grammar.cs b/src/libraries/System.Speech/src/Recognition/Grammar.cs new file mode 100644 index 00000000000000..827fc8b56fd5c4 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/Grammar.cs @@ -0,0 +1,1166 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Diagnostics; +using System.Globalization; +using System.IO; +using System.Reflection; +using System.Runtime.ExceptionServices; +using System.Speech.Internal; +using System.Speech.Internal.SrgsCompiler; +using System.Speech.Recognition.SrgsGrammar; +using System.Text; + +#pragma warning disable 56500 // Remove all the catch all statements warnings used by the interop layer + +namespace System.Speech.Recognition +{ + // Class for grammars which are to be loaded from SRGS or CFG. + // In contrast to dictation grammars which inherit from this. + [DebuggerDisplay("Grammar: {(_uri != null ? \"uri=\" + _uri.ToString () + \" \" : \"\") + \"rule=\" + _ruleName }")] + public class Grammar + { + #region Constructors + +#pragma warning disable 6504 +#pragma warning disable 6507 + internal Grammar(Uri uri, string ruleName, object[] parameters) + { + Helpers.ThrowIfNull(uri, nameof(uri)); + + _uri = uri; + InitialGrammarLoad(ruleName, parameters, false); + } + public Grammar(string path) + : this(path, (string)null, null) + { + } + public Grammar(string path, string ruleName) + : this(path, ruleName, null) + { + } + public Grammar(string path, string ruleName, object[] parameters) + { + try + { + _uri = new Uri(path, UriKind.Relative); + } + catch (UriFormatException e) + { + throw new ArgumentException(SR.Get(SRID.RecognizerGrammarNotFound), nameof(path), e); + } + + InitialGrammarLoad(ruleName, parameters, false); + } + public Grammar(SrgsDocument srgsDocument) + : this(srgsDocument, null, null, null) + { + } + public Grammar(SrgsDocument srgsDocument, string ruleName) + : this(srgsDocument, ruleName, null, null) + { + } + public Grammar(SrgsDocument srgsDocument, string ruleName, object[] parameters) + : this(srgsDocument, ruleName, null, parameters) + { + } + [EditorBrowsable(EditorBrowsableState.Advanced)] + public Grammar(SrgsDocument srgsDocument, string ruleName, Uri baseUri) + : this(srgsDocument, ruleName, baseUri, null) + { + } + [EditorBrowsable(EditorBrowsableState.Advanced)] + public Grammar(SrgsDocument srgsDocument, string ruleName, Uri baseUri, object[] parameters) + { + Helpers.ThrowIfNull(srgsDocument, nameof(srgsDocument)); + + _srgsDocument = srgsDocument; + _isSrgsDocument = srgsDocument != null; + _baseUri = baseUri; + InitialGrammarLoad(ruleName, parameters, false); + } + public Grammar(Stream stream) + : this(stream, null, null, null) + { + } + public Grammar(Stream stream, string ruleName) + : this(stream, ruleName, null, null) + { + } + public Grammar(Stream stream, string ruleName, object[] parameters) + : this(stream, ruleName, null, parameters) + { + } + [EditorBrowsable(EditorBrowsableState.Advanced)] + public Grammar(Stream stream, string ruleName, Uri baseUri) + : this(stream, ruleName, baseUri, null) + { + } + [EditorBrowsable(EditorBrowsableState.Advanced)] + public Grammar(Stream stream, string ruleName, Uri baseUri, object[] parameters) + { + Helpers.ThrowIfNull(stream, nameof(stream)); + + if (!stream.CanRead) + { + throw new ArgumentException(SR.Get(SRID.StreamMustBeReadable), nameof(stream)); + } + _appStream = stream; + _baseUri = baseUri; + InitialGrammarLoad(ruleName, parameters, false); + } + + public Grammar(GrammarBuilder builder) + { + Helpers.ThrowIfNull(builder, nameof(builder)); + + _grammarBuilder = builder; + InitialGrammarLoad(null, null, false); + } + + private Grammar(string onInitParameters, Stream stream, string ruleName) + { + _appStream = stream; + _onInitParameters = onInitParameters; + InitialGrammarLoad(ruleName, null, true); + } + protected Grammar() + { + } + protected void StgInit(object[] parameters) + { + _parameters = parameters; + LoadAndCompileCfgData(false, true); + } + +#pragma warning restore 6504 +#pragma warning restore 6507 + + #endregion + + #region Public Methods + public static Grammar LoadLocalizedGrammarFromType(Type type, params object[] onInitParameters) + { + Helpers.ThrowIfNull(type, nameof(type)); + + if (type == typeof(Grammar) || !type.IsSubclassOf(typeof(Grammar))) + { + throw new ArgumentException(SR.Get(SRID.StrongTypedGrammarNotAGrammar), nameof(type)); + } + + Assembly assembly = Assembly.GetAssembly(type); + + foreach (Type typeTarget in assembly.GetTypes()) + { + string cultureId = null; + if (typeTarget == type || typeTarget.IsSubclassOf(type)) + { + if (typeTarget.GetField("__cultureId") != null) + { + // Get the association table + try + { + cultureId = (string)typeTarget.InvokeMember("__cultureId", BindingFlags.GetField, null, null, null, null); + } + catch (Exception e) + { + if (!(e is System.MissingFieldException)) + { + throw; + } + } + if (Helpers.CompareInvariantCulture(new CultureInfo(int.Parse(cultureId, CultureInfo.InvariantCulture)), CultureInfo.CurrentUICulture)) + { + try + { + return (Grammar)assembly.CreateInstance(typeTarget.FullName, false, BindingFlags.CreateInstance, null, onInitParameters, null, null); + } + catch (MissingMemberException) + { + throw new ArgumentException(SR.Get(SRID.RuleScriptInvalidParameters, typeTarget.Name, typeTarget.Name)); + } + } + } + } + } + return null; + } + + #endregion + + #region public Properties + + // Standard properties to control grammar: + + // Controls whether this grammar is actually included in the recognition. True by default. Can be set at any point. + public bool Enabled + { + get { return _enabled; } + set + { + // Note: you can still set or get this property regardless of whether the Grammar is loaded or not. + // In theory we could throw in certain scenarios but this is probably simplest. + if (_grammarState != GrammarState.Unloaded && _enabled != value) + { + _recognizer.SetGrammarState(this, value); + } + _enabled = value; // Only on success + } + } + + // Relative weight of this Grammar/Rule. + public float Weight + { + get { return _weight; } + set + { + if (value < 0.0 || value > 1.0) + { + throw new ArgumentOutOfRangeException(nameof(value), SR.Get(SRID.GrammarInvalidWeight)); + } + // Note: you can still set or get this property regardless of whether the Grammar is loaded or not. + // In theory we could throw in certain scenarios but this is probably simplest. + if (_grammarState != GrammarState.Unloaded && !_weight.Equals(value)) + { + _recognizer.SetGrammarWeight(this, value); + } + _weight = value; // Only on success + } + } + + // Priority of this Grammar/Rule. + // If different grammars have paths which match the same words, + // then the result will be returned for the grammar with the highest priority. + // Default value zero {lowest value}. + public int Priority + { + get { return _priority; } + set + { + if (value < -128 || value > 127) + { + // We could have used sbyte in the signature of this property but int is probably simpler. + throw new ArgumentOutOfRangeException(nameof(value), SR.Get(SRID.GrammarInvalidPriority)); + } + if (_grammarState != GrammarState.Unloaded && _priority != value) + { + _recognizer.SetGrammarPriority(this, value); + } + _priority = value; // Only on success. + } + } + + // Simple property that allows a name to be attached to the Grammar. + // This has no effect but could be convenient for certain apps. + public string Name + { + get { return _grammarName; } + set + { +#pragma warning disable 6507 +#pragma warning disable 6526 + if (value == null) { value = string.Empty; } + _grammarName = value; +#pragma warning restore 6507 +#pragma warning restore 6526 + } + } + public string RuleName + { + get { return _ruleName; } + } + public bool Loaded + { + get { return _grammarState == GrammarState.Loaded; } + } + internal Uri Uri + { + get { return _uri; } + } + + #endregion + + #region public Events + + // The event fired upon a recognition. + public event EventHandler SpeechRecognized; + + #endregion + + #region Internal Properties + + internal IRecognizerInternal Recognizer + { + get { return _recognizer; } + set { _recognizer = value; } + } + + // The load-state of the grammar. + // - Set to New by constructor and also kept as New if a synchronous load fails. + // - Set to Loaded when any grammar load completes. + // - Set to Unloaded when a grammar is unloaded from the Recognizer. + // There are two additional states used for async grammar loading: + // - Set to Loading when an Async load is in progress. + // - Set to LoadFailed when an async load fails but the grammar is still in the Grammars collection. + internal GrammarState State + { + get { return _grammarState; } + set + { + Debug.Assert(value >= GrammarState.Unloaded && value <= GrammarState.LoadFailed); + + // Check state diagram for State. Possible paths: + // Unloaded -> Loaded -> Unloaded {LoadGrammar succeeded}. + // Unloaded {LoadGrammar failed}. + // Unloaded -> Loading -> Loaded -> Unloaded {LoadGrammarAsync succeeded}. + // Unloaded -> Loading -> Unloaded {LoadGrammarAsync cancelled}. + // Unloaded -> Loading -> LoadFailed -> Unloaded {LoadGrammarAsync failed}. + Debug.Assert((_grammarState == GrammarState.Unloaded && (value == GrammarState.Unloaded || value == GrammarState.Loading || value == GrammarState.Loaded)) || + (_grammarState == GrammarState.Loading && (value == GrammarState.LoadFailed || value == GrammarState.Loaded || value == GrammarState.Unloaded)) || + (_grammarState == GrammarState.Loaded && value == GrammarState.Unloaded) || + (_grammarState == GrammarState.LoadFailed && value == GrammarState.Unloaded) + ); + + // If we are unloaded also reset these parameters. + if (value == GrammarState.Unloaded) + { + // Remove references to these objects so they can be garbage collected. + _loadException = null; + _recognizer = null; + + // Don't reset _uri and _ruleName - allows re-use. + // Don't reset _internalData - leave this to the recognizer. + + // Note: After a Grammar is unloaded you can still get and set the Weight, Enabled etc. + } + else if (value == GrammarState.Loaded || value == GrammarState.LoadFailed) + { + Debug.Assert(_recognizer != null); // Must be set before changing state. + + // Don't update any properties - the recognizer owns pulling this data from the Grammar. + } + + _grammarState = value; // On success + } + } + + internal Exception LoadException + { + get { return _loadException; } + set { _loadException = value; } + } + + // There properties are read-only: + + internal byte[] CfgData + { + get { return _cfgData; } + } + + internal Uri BaseUri + { + get { return _baseUri; } + } + + internal bool Sapi53Only + { + get { return _sapi53Only; } + } + + internal uint SapiGrammarId + { + get { return _sapiGrammarId; } + set { _sapiGrammarId = value; } + } + + /// + /// Is the grammar a strongly typed grammar? + /// + protected internal virtual bool IsStg + { + get { return _isStg; } + } + + /// + /// Is the grammar built from an srgs document? + /// + internal bool IsSrgsDocument + { + get { return _isSrgsDocument; } + } + + // Arbitrary data that is attached and removed by the RecognizerBase. + // This allow RecognizerBase.Grammars to be a simple list without the extra data being stored separately. + internal InternalGrammarData InternalData + { + get { return _internalData; } + set { _internalData = value; } + } + + #endregion + + #region Internal Methods + + /// + /// Called by the grammar resource loader to load ruleref. Ruleref have a name, a rule name et eventually + /// parameters. + /// + /// The grammar name can be either pointing to a CFG, an Srgs or DLL (stand alone or GAC). + /// + internal static Grammar Create(string grammarName, string ruleName, string onInitParameter, out Uri redirectUri) + { + redirectUri = null; + + // Look for tell-tell sign that it is an assembly + grammarName = grammarName.Trim(); + + // Get an Uri for the grammar. Could fail for GACed values. + Uri uriGrammar; + bool hasUri = Uri.TryCreate(grammarName, UriKind.Absolute, out uriGrammar); + + int posDll = grammarName.IndexOf(".dll", StringComparison.OrdinalIgnoreCase); + if (!hasUri || (posDll > 0 && posDll == grammarName.Length - 4)) + { + Assembly assembly; + if (hasUri) + { + // regular dll, should use LoadFrom () + if (uriGrammar.IsFile) + { + assembly = Assembly.LoadFrom(uriGrammar.LocalPath); + } + else + { + throw new InvalidOperationException(); + } + } + else + { + // Dll in the GAC use Load () + assembly = Assembly.Load(grammarName); + } + return LoadGrammarFromAssembly(assembly, ruleName, onInitParameter); + } + + try + { + // Standard Srgs or CFG, just create the grammar + string localPath; + using (Stream stream = s_resourceLoader.LoadFile(uriGrammar, out localPath, out redirectUri)) + { + try + { + return new Grammar(onInitParameter, stream, ruleName); + } + finally + { + s_resourceLoader.UnloadFile(localPath); + } + } + } + catch + { + // It was not a CFG or an Srgs, try again as dll + Assembly assembly = Assembly.LoadFrom(grammarName); + return LoadGrammarFromAssembly(assembly, ruleName, onInitParameter); + } + } + + // Method called from the recognizer when a recognition has occurred. + // Only called for SpeechRecognition events, not SpeechRecognitionRejected. + internal void OnRecognitionInternal(SpeechRecognizedEventArgs eventArgs) + { + Debug.Assert(eventArgs.Result.Grammar == this); + + EventHandler recognitionHandler = SpeechRecognized; + if (recognitionHandler != null) + { + recognitionHandler(this, eventArgs); + } + } + + // Helper method used to indicate if this grammar has a dictation Uri or not. + // This is here because the functionality needs to be a common place. + internal static bool IsDictationGrammar(Uri uri) + { + // Note that must check IsAbsoluteUri before Scheme because Uri.Scheme may throw on a relative Uri + if (uri == null || !uri.IsAbsoluteUri || uri.Scheme != "grammar" || + !string.IsNullOrEmpty(uri.Host) || !string.IsNullOrEmpty(uri.Authority) || + !string.IsNullOrEmpty(uri.Query) || uri.PathAndQuery != "dictation") + { + return false; + } + return true; + } + + // Helper method used to indicate if this grammar has a dictation Uri or not. + // This is here because the functionality needs to be a common place. + internal bool IsDictation(Uri uri) + { + bool isDictationGrammar = IsDictationGrammar(uri); + + // Note that must check IsAbsoluteUri before Scheme because Uri.Scheme may throw on a relative Uri + if (!isDictationGrammar && this is DictationGrammar) + { + throw new ArgumentException(SR.Get(SRID.DictationInvalidTopic), nameof(uri)); + } + return isDictationGrammar; + } + + /// + /// Find a grammar in a tree or rule refs grammar from the SAPI grammar Id + /// + /// SAPI id + /// null if not found + internal Grammar Find(long grammarId) + { + if (_ruleRefs != null) + { + foreach (Grammar ruleRef in _ruleRefs) + { + Grammar found; + + if (grammarId == ruleRef._sapiGrammarId) + { + return ruleRef; + } + if ((found = ruleRef.Find(grammarId)) != null) + { + return found; + } + } + } + return null; + } + + /// + /// Find a grammar in a tree or rule refs grammar from a rule name + /// + /// null if not found + internal Grammar Find(string ruleName) + { + if (_ruleRefs != null) + { + foreach (Grammar ruleRef in _ruleRefs) + { + Grammar found; + + if (ruleName == ruleRef.RuleName) + { + return ruleRef; + } + if ((found = ruleRef.Find(ruleName)) != null) + { + return found; + } + } + } + return null; + } + + /// + /// Add a rule ref grammar to a grammar. + /// + internal void AddRuleRef(Grammar ruleRef, uint grammarId) + { + if (_ruleRefs == null) + { + _ruleRefs = new Collection(); + } + _ruleRefs.Add(ruleRef); + _sapiGrammarId = grammarId; + } + + internal MethodInfo MethodInfo(string method) + { + return GetType().GetMethod(method, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + } + + #endregion + + #region Internal Fields + + internal GrammarOptions _semanticTag; + + internal System.Speech.Internal.SrgsCompiler.AppDomainGrammarProxy _proxy; + + internal ScriptRef[] _scripts; + + #endregion + + #region Protected Methods + protected string ResourceName + { + get + { + return _resources; + } + set + { + Helpers.ThrowIfEmptyOrNull(value, nameof(value)); + _resources = value; + } + } + + #endregion + + #region Private Methods + + // Called to initialize the grammar from the passed in data. + // In SpeechFX this is called at construction time. + // In MSS this is {currently} called when GetCfg is called. + // The cfg data is stored in the _cfgData field, which is not currently reset to null ever. + // After calling this method the passed in Stream / SrgsDocument are set to null. + private void LoadAndCompileCfgData(bool isImportedGrammar, bool stgInit) + { +#if DEBUG + Debug.Assert(!_loaded); + _loaded = true; +#endif + + // If strongly typed grammar, load the cfg from the resources otherwise load the IL from within the CFG + Stream stream = IsStg ? LoadCfgFromResource(stgInit) : LoadCfg(isImportedGrammar, stgInit); + + // Check if the grammar needs to be rebuilt + SrgsRule[] extraRules = RunOnInit(IsStg); // list of extra rule to append to the current CFG + if (extraRules != null) + { + MemoryStream streamCombined = CombineCfg(_ruleName, stream, extraRules); + + // Release the old stream since a new one contains the CFG + stream.Close(); + stream = streamCombined; + } + // Note LoadCfg, LoadCfgFromResource and CombineCfg all reset Stream position to zero. + + _cfgData = Helpers.ReadStreamToByteArray(stream, (int)stream.Length); + stream.Close(); + + // Reset these - no longer needed + _srgsDocument = null; + _appStream = null; + } + + /// + /// Returns a stream object for a grammar. + /// + private MemoryStream LoadCfg(bool isImportedGrammar, bool stgInit) + { + // No parameters to the constructors + Uri uriGrammar = Uri; + MemoryStream stream = new(); + + if (uriGrammar != null) + { + throw new PlatformNotSupportedException(); + } + else if (_srgsDocument != null) + { + // If srgs, compile to a stream + SrgsGrammarCompiler.Compile(_srgsDocument, stream); + if (_baseUri == null && _srgsDocument.BaseUri != null) + { + // If we loaded the SrgsDocument from a file then that should be used as the base path. + // But it should not override any baseUri supplied directly to the Grammar constructor or in the xmlBase attribute in the xml. + _baseUri = _srgsDocument.BaseUri; + + // So the priority order for getting the base path is: + // 1. The xml:base attribute in the xml. + // 2. The baseUri passed to the Grammar constructor. + // 3. The path the xml was originally loaded from. + } + } + else if (_grammarBuilder != null) + { + // If GrammarBuilder, compile to a stream + _grammarBuilder.Compile(stream); + } + else + { + // If stream, load + SrgsGrammarCompiler.CompileXmlOrCopyCfg(_appStream, stream, null); + } + + stream.Position = 0; + + // Update the rule name + _ruleName = CheckRuleName(stream, _ruleName, isImportedGrammar, stgInit, out _sapi53Only, out _semanticTag); + + // Create an app domain for the grammar code if any + CreateSandbox(stream); + + stream.Position = 0; + return stream; + } + + /// + /// Look for a grammar by rule name in a loaded assembly. + /// + /// The search goes over the base type for the grammar "rule name" and all of its derived language + /// dependent classes. + /// The matching algorithm pick a class that match the culture. + /// + private static Grammar LoadGrammarFromAssembly(Assembly assembly, string ruleName, string onInitParameters) + { + Type grammarType = typeof(Grammar); + Type matchingType = null; + + foreach (Type typeTarget in assembly.GetTypes()) + { + // must be a grammar object + if (typeTarget.IsSubclassOf(grammarType)) + { + string cultureId = null; + + // Set the base class for this rule + if (typeTarget.Name == ruleName) + { + matchingType = typeTarget; + } + + // Pick a class that derives from rulename + if (typeTarget == matchingType || (matchingType != null && typeTarget.IsSubclassOf(matchingType))) + { + // Check if the language match + if (typeTarget.GetField("__cultureId") != null) + { + // Get the association table + try + { + cultureId = (string)typeTarget.InvokeMember("__cultureId", BindingFlags.GetField, null, null, null, null); + } + catch (Exception e) + { + if (!(e is System.MissingFieldException)) + { + throw; + } + } + + // Check for the current culture or any compatible culture (parent en-us or en for e.g.) + if (Helpers.CompareInvariantCulture(new CultureInfo(int.Parse(cultureId, CultureInfo.InvariantCulture)), CultureInfo.CurrentUICulture)) + { + try + { + object[] initParams = MatchInitParameters(typeTarget, onInitParameters, assembly.GetName().Name, ruleName); + + // The CLR does the match for the right constructor based on the onInitParameters types + return (Grammar)assembly.CreateInstance(typeTarget.FullName, false, BindingFlags.CreateInstance, null, initParams, null, null); + } + catch (MissingMemberException) + { + throw new ArgumentException(SR.Get(SRID.RuleScriptInvalidParameters, typeTarget.Name, typeTarget.Name)); + } + } + } + } + } + } + return null; + } + + /// + /// Construct a list of parameters from a sapi:params string. + /// + private static object[] MatchInitParameters(Type type, string onInitParameters, string grammar, string rule) + { + ConstructorInfo[] cis = type.GetConstructors(); + NameValuePair[] pairs = ParseInitParams(onInitParameters); + object[] values = new object[pairs.Length]; + bool foundConstructor = false; + for (int iCtor = 0; iCtor < cis.Length && !foundConstructor; iCtor++) + { + ParameterInfo[] paramInfo = cis[iCtor].GetParameters(); + + // Check if enough parameters are provided. + if (paramInfo.Length > pairs.Length) + { + continue; + } + foundConstructor = true; + for (int i = 0; i < pairs.Length && foundConstructor; i++) + { + NameValuePair pair = pairs[i]; + + // anonymous + if (pair._name == null) + { + values[i] = pair._value; + } + else + { + bool foundParameter = false; + for (int j = 0; j < paramInfo.Length; j++) + { + if (paramInfo[j].Name == pair._name) + { + values[j] = ParseValue(paramInfo[j].ParameterType, pair._value); + foundParameter = true; + break; + } + } + if (!foundParameter) + { + foundConstructor = false; + } + } + } + } + if (!foundConstructor) + { + throw new FormatException(SR.Get(SRID.CantFindAConstructor, grammar, rule, FormatConstructorParameters(cis))); + } + return values; + } + + /// + /// Parse the value for a type from a string to a strong type. + /// If the type does not support the Parse method then the operation fails. + /// + private static object ParseValue(Type type, string value) + { + if (type == typeof(string)) + { + return value; + } + return type.InvokeMember("Parse", BindingFlags.InvokeMethod, null, null, new object[] { value }, CultureInfo.InvariantCulture); + } + + /// + /// Returns the list of the possible parameter names and type for a grammar + /// + private static string FormatConstructorParameters(ConstructorInfo[] cis) + { + StringBuilder sb = new(); + for (int iCtor = 0; iCtor < cis.Length; iCtor++) + { + sb.Append(iCtor > 0 ? " or sapi:parms=\"" : "sapi:parms=\""); + ParameterInfo[] pis = cis[iCtor].GetParameters(); + for (int i = 0; i < pis.Length; i++) + { + if (i > 0) + { + sb.Append(';'); + } + ParameterInfo pi = pis[i]; + sb.Append(pi.Name); + sb.Append(':'); + sb.Append(pi.ParameterType.Name); + } + sb.Append('"'); + } + return sb.ToString(); + } + + /// + /// Split the init parameter strings into an array of name/values + /// The format must be "name:value". If the ':' then parameter is anonymous. + /// + private static NameValuePair[] ParseInitParams(string initParameters) + { + if (string.IsNullOrEmpty(initParameters)) + { + return Array.Empty(); ; + } + + string[] parameters = initParameters.Split(new char[] { ';' }, StringSplitOptions.None); + NameValuePair[] pairs = new NameValuePair[parameters.Length]; + + for (int i = 0; i < parameters.Length; i++) + { + string parameter = parameters[i]; + int posColon = parameter.IndexOf(':'); + if (posColon >= 0) + { + pairs[i]._name = parameter.Substring(0, posColon); + pairs[i]._value = parameter.Substring(posColon + 1); + } + else + { + pairs[i]._value = parameter; + } + } + return pairs; + } + + private void InitialGrammarLoad(string ruleName, object[] parameters, bool isImportedGrammar) + { + _ruleName = ruleName; + _parameters = parameters; + + // Bail out if it is a dictation grammar + if (!IsDictation(_uri)) + { + LoadAndCompileCfgData(isImportedGrammar, false); + } + } + + private void CreateSandbox(MemoryStream stream) + { + // Checks if it contains .NET Semantic code + byte[] assemblyContent; + byte[] assemblyDebugSymbols; + ScriptRef[] scripts; + stream.Position = 0; + + // This must be before the SAPI load to avoid some conflict with SAPI server when getting at the + // the stream + if (System.Speech.Internal.SrgsCompiler.CfgGrammar.LoadIL(stream, out assemblyContent, out assemblyDebugSymbols, out scripts)) + { + // Check all methods referenced in the rule; availability, public and arguments + Assembly executingAssembly = Assembly.GetExecutingAssembly(); + _proxy = new AppDomainGrammarProxy(); + _proxy.Init(_ruleName, assemblyContent, assemblyDebugSymbols); + _scripts = scripts; + } + } + + // Loads a strongly typed grammar from a resource in the Assembly. + private Stream LoadCfgFromResource(bool stgInit) + { + // Strongly typed grammar get the Cfg data + Assembly assembly = Assembly.GetAssembly(GetType()); + + Stream stream = assembly.GetManifestResourceStream(ResourceName); + + if (stream == null) + { + throw new FormatException(SR.Get(SRID.RecognizerInvalidBinaryGrammar)); + } + try + { + ScriptRef[] scripts = CfgGrammar.LoadIL(stream); + if (scripts == null) + { + throw new ArgumentException(SR.Get(SRID.CannotLoadDotNetSemanticCode)); + } + _scripts = scripts; + } + catch (Exception e) + { + throw new ArgumentException(SR.Get(SRID.CannotLoadDotNetSemanticCode), e); + } + stream.Position = 0; + + // Update the rule name + _ruleName = CheckRuleName(stream, GetType().Name, false, stgInit, out _sapi53Only, out _semanticTag); + + _isStg = true; + return stream; + } + + private static MemoryStream CombineCfg(string rule, Stream stream, SrgsRule[] extraRules) + { + using (MemoryStream streamExtra = new()) + { + // Create an SrgsDocument from the set of rules + SrgsDocument sgrsDocument = new(); + sgrsDocument.TagFormat = SrgsTagFormat.KeyValuePairs; + foreach (SrgsRule srgsRule in extraRules) + { + sgrsDocument.Rules.Add(srgsRule); + } + + SrgsGrammarCompiler.Compile(sgrsDocument, streamExtra); + + using (StreamMarshaler streamMarshaler = new(stream)) + { + long endSeekPosition = stream.Position; + Backend backend = new(streamMarshaler); + stream.Position = endSeekPosition; + + streamExtra.Position = 0; + MemoryStream streamCombined = new(); + using (StreamMarshaler streamExtraMarshaler = new(streamExtra)) + { + Backend extra = new(streamExtraMarshaler); + Backend combined = Backend.CombineGrammar(rule, backend, extra); + + using (StreamMarshaler streamCombinedMarshaler = new(streamCombined)) + { + combined.Commit(streamCombinedMarshaler); + streamCombined.Position = 0; + return streamCombined; + } + } + } + } + } + +#pragma warning disable 56507 // check for null or empty strings + + private SrgsRule[] RunOnInit(bool stg) + { + SrgsRule[] extraRules = null; + bool onInitInvoked = false; + + // Get the name of the onInit method to run + string methodName = ScriptRef.OnInitMethod(_scripts, _ruleName); + + if (methodName != null) + { + if (_proxy != null) + { + Exception appDomainException; + extraRules = _proxy.OnInit(methodName, _parameters, _onInitParameters, out appDomainException); + onInitInvoked = true; + if (appDomainException != null) + { + ExceptionDispatchInfo.Throw(appDomainException); + } + } + else + { + // call OnInit if any - should be based on Rule + Type[] types = new Type[_parameters.Length]; + + for (int i = 0; i < _parameters.Length; i++) + { + types[i] = _parameters[i].GetType(); + } + MethodInfo onInit = GetType().GetMethod(methodName, types); + + // If somehow we failed to find a constructor, let the system handle it + if (onInit != null) + { + System.Diagnostics.Debug.Assert(_parameters != null); + extraRules = (SrgsRule[])onInit.Invoke(this, _parameters); + onInitInvoked = true; + } + else + { + throw new ArgumentException(SR.Get(SRID.RuleScriptInvalidParameters, _ruleName, _ruleName)); + } + } + } + + // Cannot have onInit parameters if onInit has not been invoked. + if (!stg && !onInitInvoked && _parameters != null) + { + throw new ArgumentException(SR.Get(SRID.RuleScriptInvalidParameters, _ruleName, _ruleName)); + } + return extraRules; + } + + // Pulls the required data out of a stream containing a cfg. + // Stream must point to start of cfg on entry and is reset to same point on exit. + private static string CheckRuleName(Stream stream, string rulename, bool isImportedGrammar, bool stgInit, out bool sapi53Only, out GrammarOptions grammarOptions) + { + sapi53Only = false; + long initialPosition = stream.Position; + + CfgGrammar.CfgHeader header; + using (StreamMarshaler streamHelper = new(stream)) // Use StreamMarshaler which helps deserialize certain data types + { + CfgGrammar.CfgSerializedHeader serializedHeader = null; + header = CfgGrammar.ConvertCfgHeader(streamHelper, false, true, out serializedHeader); + + StringBlob symbols = header.pszSymbols; + + // Calc the root rule + string rootRule = header.ulRootRuleIndex != 0xffffffff && header.ulRootRuleIndex < header.rules.Length ? symbols.FromOffset(header.rules[header.ulRootRuleIndex]._nameOffset) : null; + + // Get if we have semantic interpretation + sapi53Only = (header.GrammarOptions & (GrammarOptions.MssV1 | GrammarOptions.W3cV1 | GrammarOptions.STG | GrammarOptions.IpaPhoneme)) != 0; + + // Check that the rule name is valid + if (rootRule == null && string.IsNullOrEmpty(rulename)) + { + throw new ArgumentException(SR.Get(SRID.SapiErrorNoRulesToActivate)); + } + + if (!string.IsNullOrEmpty(rulename)) + { + // Convert the CFG script reference to ScriptRef + bool fFoundRule = false; + foreach (CfgRule cfgRule in header.rules) + { + if (symbols.FromOffset(cfgRule._nameOffset) == rulename) + { + // Private rule are not allowed + fFoundRule = cfgRule.Export || stgInit || (!isImportedGrammar ? cfgRule.TopLevel || rulename == rootRule : false); + break; + } + } + + // check that the name exists + if (!fFoundRule) + { + throw new ArgumentException(SR.Get(SRID.RecognizerRuleNotFoundStream, rulename)); + } + } + else + { + rulename = rootRule; + } + + grammarOptions = header.GrammarOptions & GrammarOptions.TagFormat; + } + stream.Position = initialPosition; + return rulename; + } + + #endregion + + #region Private Fields + +#pragma warning disable 56524 // You cannot dispose an object we don't create + + private byte[] _cfgData; + + private Stream _appStream; + private bool _isSrgsDocument; + private SrgsDocument _srgsDocument; + + private GrammarBuilder _grammarBuilder; + +#pragma warning restore 56524 + + private IRecognizerInternal _recognizer; + private GrammarState _grammarState; + private Exception _loadException; + private Uri _uri; + private Uri _baseUri; + private string _ruleName; + private string _resources; + private object[] _parameters; + private string _onInitParameters; + private bool _enabled = true; + private bool _isStg; + private bool _sapi53Only; + private uint _sapiGrammarId; + private float _weight = 1.0f; + private int _priority; + private InternalGrammarData _internalData; + private string _grammarName = string.Empty; + private Collection _ruleRefs; + private static ResourceLoader s_resourceLoader = new(); + +#if DEBUG + private bool _loaded; +#endif + + #endregion + + #region Private Types + + private struct NameValuePair + { + internal string _name; + internal string _value; + } + + #endregion + } + + // Grammar load-state. Not public. + internal enum GrammarState + { + Unloaded, + Loading, + Loaded, + LoadFailed, + } +} diff --git a/src/libraries/System.Speech/src/Recognition/GrammarBuilder.cs b/src/libraries/System.Speech/src/Recognition/GrammarBuilder.cs new file mode 100644 index 00000000000000..c08faeafd2dbf9 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/GrammarBuilder.cs @@ -0,0 +1,534 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Globalization; +using System.IO; +using System.Speech.Internal; +using System.Speech.Internal.GrammarBuilding; +using System.Speech.Internal.SrgsCompiler; +using System.Speech.Internal.SrgsParser; +using System.Text; + +namespace System.Speech.Recognition +{ + [DebuggerDisplay("{DebugSummary}")] + public class GrammarBuilder + { + #region Constructors + + public GrammarBuilder() + { + _grammarBuilder = new InternalGrammarBuilder(); + } + + public GrammarBuilder(string phrase) + : this() + { + Append(phrase); + } + + public GrammarBuilder(string phrase, SubsetMatchingMode subsetMatchingCriteria) + : this() + { + Append(phrase, subsetMatchingCriteria); + } + + public GrammarBuilder(string phrase, int minRepeat, int maxRepeat) + : this() + { + Append(phrase, minRepeat, maxRepeat); + } + + public GrammarBuilder(GrammarBuilder builder, int minRepeat, int maxRepeat) + : this() + { + Append(builder, minRepeat, maxRepeat); + } + + public GrammarBuilder(Choices alternateChoices) + : this() + { + Append(alternateChoices); + } + + public GrammarBuilder(SemanticResultKey key) + : this() + { + Append(key); + } + + public GrammarBuilder(SemanticResultValue value) + : this() + { + Append(value); + } + + #endregion Constructors + + #region Public Methods + + // Append connecting words + + public void Append(string phrase) + { + Helpers.ThrowIfEmptyOrNull(phrase, nameof(phrase)); + + AddItem(new GrammarBuilderPhrase(phrase)); + } + + public void Append(string phrase, SubsetMatchingMode subsetMatchingCriteria) + { + Helpers.ThrowIfEmptyOrNull(phrase, nameof(phrase)); + GrammarBuilder.ValidateSubsetMatchingCriteriaArgument(subsetMatchingCriteria, nameof(subsetMatchingCriteria)); + + AddItem(new GrammarBuilderPhrase(phrase, subsetMatchingCriteria)); + } + + public void Append(string phrase, int minRepeat, int maxRepeat) + { + Helpers.ThrowIfEmptyOrNull(phrase, nameof(phrase)); + GrammarBuilder.ValidateRepeatArguments(minRepeat, maxRepeat, "minRepeat", "maxRepeat"); + + // Wrap the phrase in an item if min and max repeat are set + GrammarBuilderPhrase elementPhrase = new(phrase); + if (minRepeat != 1 || maxRepeat != 1) + { + AddItem(new ItemElement(elementPhrase, minRepeat, maxRepeat)); + } + else + { + AddItem(elementPhrase); + } + } + + // Append list of rulerefs + + public void Append(GrammarBuilder builder) + { + Helpers.ThrowIfNull(builder, nameof(builder)); + + // Should never happens has it is a RO value + Helpers.ThrowIfNull(builder.InternalBuilder, "builder.InternalBuilder"); + Helpers.ThrowIfNull(builder.InternalBuilder.Items, "builder.InternalBuilder.Items"); + + // Clone the items if we are playing with the local list. + foreach (GrammarBuilderBase item in builder.InternalBuilder.Items) + { + if (item == null) + { + // This should never happen! + throw new ArgumentException(SR.Get(SRID.ArrayOfNullIllegal), nameof(builder)); + } + } + + // Clone the items if we are playing with the local list. + List items = builder == this ? builder.Clone().InternalBuilder.Items : builder.InternalBuilder.Items; + + foreach (GrammarBuilderBase item in items) + { + AddItem(item); + } + } + + // Append one-of + + public void Append(Choices alternateChoices) + { + Helpers.ThrowIfNull(alternateChoices, nameof(alternateChoices)); + + AddItem(alternateChoices.OneOf); + } + + public void Append(SemanticResultKey key) + { + Helpers.ThrowIfNull(key, "builder"); + + AddItem(key.SemanticKeyElement); + } + + public void Append(SemanticResultValue value) + { + Helpers.ThrowIfNull(value, "builder"); + + AddItem(value.Tag); + } + + public void Append(GrammarBuilder builder, int minRepeat, int maxRepeat) + { + Helpers.ThrowIfNull(builder, nameof(builder)); + GrammarBuilder.ValidateRepeatArguments(minRepeat, maxRepeat, "minRepeat", "maxRepeat"); + + // Should never happens has it is a RO value + Helpers.ThrowIfNull(builder.InternalBuilder, "builder.InternalBuilder"); + + // Wrap the phrase in an item if min and max repeat are set + if (minRepeat != 1 || maxRepeat != 1) + { + AddItem(new ItemElement(builder.InternalBuilder.Items, minRepeat, maxRepeat)); + } + else + { + Append(builder); + } + } + + // Append dictation element + + public void AppendDictation() + { + AddItem(new GrammarBuilderDictation()); + } + + public void AppendDictation(string category) + { + Helpers.ThrowIfEmptyOrNull(category, nameof(category)); + + AddItem(new GrammarBuilderDictation(category)); + } + + // Append wildcard element + + public void AppendWildcard() + { + AddItem(new GrammarBuilderWildcard()); + } + + /// + /// Append external rule ref + /// + public void AppendRuleReference(string path) + { + Helpers.ThrowIfEmptyOrNull(path, nameof(path)); + Uri uri; + + try + { + uri = new Uri(path, UriKind.RelativeOrAbsolute); + } + catch (UriFormatException e) + { + throw new ArgumentException(e.Message, path, e); + } + + AddItem(new GrammarBuilderRuleRef(uri, null)); + } + + /// + /// Append external rule ref + /// + public void AppendRuleReference(string path, string rule) + { + Helpers.ThrowIfEmptyOrNull(path, nameof(path)); + Helpers.ThrowIfEmptyOrNull(rule, nameof(rule)); + Uri uri; + + try + { + uri = new Uri(path, UriKind.RelativeOrAbsolute); + } + catch (UriFormatException e) + { + throw new ArgumentException(e.Message, path, e); + } + + AddItem(new GrammarBuilderRuleRef(uri, rule)); + } + public string DebugShowPhrases + { + get + { + return DebugSummary; + } + } + + #endregion Constructors + + #region Public Properties + public CultureInfo Culture + { + get + { + return _culture; + } + set + { + if (value == null) + { + throw new ArgumentNullException(nameof(value)); + } + + _culture = value; + } + } + + #endregion + + #region Operator Overloads + + public static GrammarBuilder operator +(string phrase, GrammarBuilder builder) + { + return Add(phrase, builder); + } + + public static GrammarBuilder Add(string phrase, GrammarBuilder builder) + { + Helpers.ThrowIfNull(builder, nameof(builder)); + + GrammarBuilder grammar = new(phrase); + grammar.Append(builder); + return grammar; + } + + public static GrammarBuilder operator +(GrammarBuilder builder, string phrase) + { + return Add(builder, phrase); + } + + public static GrammarBuilder Add(GrammarBuilder builder, string phrase) + { + Helpers.ThrowIfNull(builder, nameof(builder)); + + GrammarBuilder grammar = builder.Clone(); + grammar.Append(phrase); + return grammar; + } + + public static GrammarBuilder operator +(Choices choices, GrammarBuilder builder) + { + return Add(choices, builder); + } + + public static GrammarBuilder Add(Choices choices, GrammarBuilder builder) + { + Helpers.ThrowIfNull(choices, nameof(choices)); + Helpers.ThrowIfNull(builder, nameof(builder)); + + GrammarBuilder grammar = new(choices); + grammar.Append(builder); + return grammar; + } + + public static GrammarBuilder operator +(GrammarBuilder builder, Choices choices) + { + return Add(builder, choices); + } + + public static GrammarBuilder Add(GrammarBuilder builder, Choices choices) + { + Helpers.ThrowIfNull(builder, nameof(builder)); + Helpers.ThrowIfNull(choices, nameof(choices)); + + GrammarBuilder grammar = builder.Clone(); + grammar.Append(choices); + return grammar; + } + + public static GrammarBuilder operator +(GrammarBuilder builder1, GrammarBuilder builder2) + { + return Add(builder1, builder2); + } + + public static GrammarBuilder Add(GrammarBuilder builder1, GrammarBuilder builder2) + { + Helpers.ThrowIfNull(builder1, nameof(builder1)); + Helpers.ThrowIfNull(builder2, nameof(builder2)); + + GrammarBuilder grammar = builder1.Clone(); + grammar.Append(builder2); + return grammar; + } + public static implicit operator GrammarBuilder(string phrase) { return new GrammarBuilder(phrase); } + public static implicit operator GrammarBuilder(Choices choices) { return new GrammarBuilder(choices); } + public static implicit operator GrammarBuilder(SemanticResultKey semanticKey) { return new GrammarBuilder(semanticKey); } + public static implicit operator GrammarBuilder(SemanticResultValue semanticValue) { return new GrammarBuilder(semanticValue); } + + #endregion + + #region Internal Methods + + internal static void ValidateRepeatArguments(int minRepeat, int maxRepeat, string minParamName, string maxParamName) + { + if (minRepeat < 0) + { + throw new ArgumentOutOfRangeException(minParamName, SR.Get(SRID.InvalidMinRepeat, minRepeat)); + } + if (minRepeat > maxRepeat) + { + throw new ArgumentException(SR.Get(SRID.MinGreaterThanMax), maxParamName); + } + } + + internal static void ValidateSubsetMatchingCriteriaArgument(SubsetMatchingMode subsetMatchingCriteria, string paramName) + { + switch (subsetMatchingCriteria) + { + case SubsetMatchingMode.OrderedSubset: + case SubsetMatchingMode.OrderedSubsetContentRequired: + case SubsetMatchingMode.Subsequence: + case SubsetMatchingMode.SubsequenceContentRequired: + break; + default: + throw new ArgumentException(SR.Get(SRID.EnumInvalid, paramName), paramName); + } + } + + internal void CreateGrammar(IElementFactory elementFactory) + { + // Create a new Identifier Collection which will provide unique ids + // for each rule + IdentifierCollection ruleIds = new(); + elementFactory.Grammar.Culture = Culture; + + _grammarBuilder.CreateElement(elementFactory, null, null, ruleIds); + } + + internal void Compile(Stream stream) + { + Backend backend = new(); + CustomGrammar cg = new(); + SrgsElementCompilerFactory elementFactory = new(backend, cg); + CreateGrammar(elementFactory); + + // Optimize in-memory graph representation of the grammar. + backend.Optimize(); + + using (StreamMarshaler streamHelper = new(stream)) + { + backend.Commit(streamHelper); + } + + stream.Position = 0; + } + + internal GrammarBuilder Clone() + { + GrammarBuilder builder = new(); + builder._grammarBuilder = (InternalGrammarBuilder)_grammarBuilder.Clone(); + + return builder; + } + + #endregion + + #region Internal Properties + + internal virtual string DebugSummary + { + get + { + StringBuilder sb = new(); + + foreach (GrammarBuilderBase item in InternalBuilder.Items) + { + if (sb.Length > 0) + { + sb.Append(' '); + } + sb.Append(item.DebugSummary); + } + return sb.ToString(); + } + } + + internal BuilderElements InternalBuilder + { + get + { + return _grammarBuilder; + } + } + + #endregion + + #region Private Methods + + private void AddItem(GrammarBuilderBase item) + { + InternalBuilder.Items.Add(item.Clone()); + } + + #endregion + + #region Private Fields + + private InternalGrammarBuilder _grammarBuilder; + + private CultureInfo _culture = CultureInfo.CurrentUICulture; + + #endregion + + #region Private Type + + private class InternalGrammarBuilder : BuilderElements + { + #region Internal Methods + + internal override GrammarBuilderBase Clone() + { + InternalGrammarBuilder newGrammarbuilder = new(); + foreach (GrammarBuilderBase i in Items) + { + newGrammarbuilder.Items.Add(i.Clone()); + } + return newGrammarbuilder; + } + + internal override IElement CreateElement(IElementFactory elementFactory, IElement parent, IRule rule, IdentifierCollection ruleIds) + { + Collection newRules = new(); + CalcCount(null); + Optimize(newRules); + + foreach (GrammarBuilderBase baseRule in newRules) + { + Items.Add(baseRule); + } + + // The id of the root rule + string rootId = ruleIds.CreateNewIdentifier("root"); + + // Set the grammar's root rule + elementFactory.Grammar.Root = rootId; + elementFactory.Grammar.TagFormat = System.Speech.Recognition.SrgsGrammar.SrgsTagFormat.KeyValuePairs; + + // Create the root rule + IRule root = elementFactory.Grammar.CreateRule(rootId, RulePublic.False, RuleDynamic.NotSet, false); + + // Create all the rules + foreach (GrammarBuilderBase item in Items) + { + if (item is RuleElement) + { + item.CreateElement(elementFactory, root, root, ruleIds); + } + } + // Create an item which represents the grammar + foreach (GrammarBuilderBase item in Items) + { + if (!(item is RuleElement)) + { + IElement element = item.CreateElement(elementFactory, root, root, ruleIds); + + if (element != null) + { + element.PostParse(root); + elementFactory.AddElement(root, element); + } + } + } + // Post parse the root rule + root.PostParse(elementFactory.Grammar); + + elementFactory.Grammar.PostParse(null); + return null; + } + + #endregion + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/IRecognizerInternal.cs b/src/libraries/System.Speech/src/Recognition/IRecognizerInternal.cs new file mode 100644 index 00000000000000..8a9dad4261d692 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/IRecognizerInternal.cs @@ -0,0 +1,23 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Recognition +{ + // Interface that all recognizers must implement in order to connect to Grammar and RecognitionResult. + internal interface IRecognizerInternal + { + #region Internal Methods + + void SetGrammarState(Grammar grammar, bool enabled); + + void SetGrammarWeight(Grammar grammar, float weight); + + void SetGrammarPriority(Grammar grammar, int priority); + + Grammar GetGrammarFromId(ulong id); + + void SetDictationContext(Grammar grammar, string precedingText, string subsequentText); + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/LoadGrammarCompletedEventArgs.cs b/src/libraries/System.Speech/src/Recognition/LoadGrammarCompletedEventArgs.cs new file mode 100644 index 00000000000000..1453382aa0be92 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/LoadGrammarCompletedEventArgs.cs @@ -0,0 +1,39 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.ComponentModel; + +namespace System.Speech.Recognition +{ + // Event args used in the LoadGrammarCompleted event. + + public class LoadGrammarCompletedEventArgs : AsyncCompletedEventArgs + { + #region Constructors + + internal LoadGrammarCompletedEventArgs(Grammar grammar, Exception error, bool cancelled, object userState) + : base(error, cancelled, userState) + { + _grammar = grammar; + } + + #endregion + + #region Public Properties + public Grammar Grammar + { + get { return _grammar; } + } + + #endregion + + #region Private Fields + +#pragma warning disable 6524 + private Grammar _grammar; +#pragma warning restore 6524 + + #endregion + + } +} diff --git a/src/libraries/System.Speech/src/Recognition/RecognizeCompletedEventArgs.cs b/src/libraries/System.Speech/src/Recognition/RecognizeCompletedEventArgs.cs new file mode 100644 index 00000000000000..bb22a7cc8e213c --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/RecognizeCompletedEventArgs.cs @@ -0,0 +1,60 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.ComponentModel; + +namespace System.Speech.Recognition +{ + public class RecognizeCompletedEventArgs : AsyncCompletedEventArgs + { + #region Constructors + + internal RecognizeCompletedEventArgs(RecognitionResult result, bool initialSilenceTimeout, bool babbleTimeout, + bool inputStreamEnded, TimeSpan audioPosition, + Exception error, bool cancelled, object userState) + : base(error, cancelled, userState) + { + _result = result; + _initialSilenceTimeout = initialSilenceTimeout; + _babbleTimeout = babbleTimeout; + _inputStreamEnded = inputStreamEnded; + _audioPosition = audioPosition; + } + + #endregion + + #region Public Properties + public RecognitionResult Result + { + get { return _result; } + } + public bool InitialSilenceTimeout + { + get { return _initialSilenceTimeout; } + } + public bool BabbleTimeout + { + get { return _babbleTimeout; } + } + public bool InputStreamEnded + { + get { return _inputStreamEnded; } + } + public TimeSpan AudioPosition + { + get { return _audioPosition; } + } + + #endregion + + #region Private Fields + + private RecognitionResult _result; + private bool _initialSilenceTimeout; + private bool _babbleTimeout; + private bool _inputStreamEnded; + private TimeSpan _audioPosition; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/RecognizeMode.cs b/src/libraries/System.Speech/src/Recognition/RecognizeMode.cs new file mode 100644 index 00000000000000..841e854ba59b48 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/RecognizeMode.cs @@ -0,0 +1,11 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Recognition +{ + public enum RecognizeMode + { + Single, + Multiple + } +} diff --git a/src/libraries/System.Speech/src/Recognition/RecognizerBase.cs b/src/libraries/System.Speech/src/Recognition/RecognizerBase.cs new file mode 100644 index 00000000000000..bc565820121337 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/RecognizerBase.cs @@ -0,0 +1,3255 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Globalization; +using System.IO; +using System.Runtime.CompilerServices; +using System.Runtime.ExceptionServices; +using System.Runtime.InteropServices; +using System.Runtime.InteropServices.ComTypes; +using System.Speech.AudioFormat; +using System.Speech.Internal; +using System.Speech.Internal.ObjectTokens; +using System.Speech.Internal.SapiInterop; +using System.Threading; + +namespace System.Speech.Recognition +{ + internal class RecognizerBase : IRecognizerInternal, IDisposable, +ISpGrammarResourceLoader + { + #region Constructors + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + ~RecognizerBase() + { + Dispose(false); + } + + #endregion + + #region Internal Methods + + #region Methods to Load and Unload grammars: + + // Synchronous: + internal void LoadGrammar(Grammar grammar) + { + try + { + ValidateGrammar(grammar, GrammarState.Unloaded); + + // Stream and SrgsDocument Grammars get reset on Unload and can't be loaded again. Url Grammars can be reloaded. + if (!_supportsSapi53) + { + CheckGrammarOptionsOnSapi51(grammar); + } + + // Create sapi grammar + // Make the sapi grammar and the id + ulong grammarId; + SapiGrammar sapiGrammar = CreateNewSapiGrammar(out grammarId); + + // Load the data into SAPI: + try + { + LoadSapiGrammar(grammar, sapiGrammar, grammar.Enabled, grammar.Weight, grammar.Priority); + } + catch + { + // Release the SAPI object on error. + sapiGrammar.Dispose(); + + // Set the State to Unloaded. + grammar.State = GrammarState.Unloaded; + grammar.InternalData = null; + + // re-throw exception + throw; + } + + // Create the InternalGrammarData object: + grammar.InternalData = new InternalGrammarData(grammarId, sapiGrammar, grammar.Enabled, grammar.Weight, grammar.Priority); + + // Add to collection: + lock (SapiRecognizer) // Lock to prevent anyone enumerating _grammars from failing + { + _grammars.Add(grammar); + } + + grammar.Recognizer = this; + grammar.State = GrammarState.Loaded; + + // Note on failure in LoadGrammar() the state remains at New and the Grammar is not added to the collection. + // This is in contrast to an asynchronous load where the state is set to LoadFailed and the Grammar is added. + } + catch (Exception e) + { + _loadException = e; + throw; + } + } + + // Asynchronous: + internal void LoadGrammarAsync(Grammar grammar) + { + // Stream and SrgsDocument Grammars get reset on Unload and can't be loaded again. Url Grammars can be reloaded. + if (!_supportsSapi53) + { + CheckGrammarOptionsOnSapi51(grammar); + } + ValidateGrammar(grammar, GrammarState.Unloaded); + + // Various methods like SetGrammarState get simpler if there's a SAPI grammar attached to every Grammar. + // So create sapi grammar and attach to the Internal data before starting the load. + ulong grammarId; + SapiGrammar sapiGrammar = CreateNewSapiGrammar(out grammarId); + + // Make the container for the sapiGrammar and cached property values. + grammar.InternalData = new InternalGrammarData(grammarId, sapiGrammar, grammar.Enabled, grammar.Weight, grammar.Priority); + + // Add to collection: + lock (SapiRecognizer) // Lock to prevent anyone enumerating _grammars from failing + { + _grammars.Add(grammar); + } + + grammar.Recognizer = this; + grammar.State = GrammarState.Loading; + + // Increment the OperationLock to indicate we are loading a grammar asynchronously. + _waitForGrammarsToLoad.StartOperation(); + + // Do the actual load on a thread pool callback. + if (!ThreadPool.QueueUserWorkItem(new WaitCallback(LoadGrammarAsyncCallback), grammar)) + { + throw new OperationCanceledException(SR.Get(SRID.OperationAborted)); + } + } + + // Unload grammars: + internal void UnloadGrammar(Grammar grammar) + { + // Currently we have no good way of deleting grammars that are still being loaded. + ValidateGrammar(grammar, GrammarState.Loaded, GrammarState.LoadFailed); + + // Delete SAPI grammar + InternalGrammarData grammarData = grammar.InternalData; + // Both in the Loaded and LoadFailed state the sapi grammar should still exist. + if (grammarData != null) + { + Debug.Assert(grammarData._sapiGrammar != null); + grammarData._sapiGrammar.Dispose(); + } + + // Remove from collection + lock (SapiRecognizer) // Lock to prevent anyone enumerating _grammars from failing + { + _grammars.Remove(grammar); + } + + // Mark grammar as dead + grammar.State = GrammarState.Unloaded; + grammar.InternalData = null; + } + internal void UnloadAllGrammars() + { + // Use a new collection as otherwise can't delete from current enumeration. + List snapshotGrammars; + lock (SapiRecognizer) + { + snapshotGrammars = new List(_grammars); + } + + // If there is any grammar being loaded asynchronously, wait for the operation to finish first + _waitForGrammarsToLoad.WaitForOperationsToFinish(); + + foreach (Grammar grammar in snapshotGrammars) + { + UnloadGrammar(grammar); + } + + // At the moment there's no way to delete all RecoGrammars in SAPI without individually releasing each one. + // If there was such a mechanism it might be faster than looping through every Grammar. + } + + #endregion + + #region IRecognizerInternal implementation + + void IRecognizerInternal.SetGrammarState(Grammar grammar, bool enabled) + { + Debug.Assert(grammar != null); + Debug.Assert(grammar.Recognizer == this); + + // Note: In all states where Grammar is attached to Recognizer {Loading, Loaded, LoadFailed) + // then the sapiGrammar will be non-null. + + InternalGrammarData grammarData = grammar.InternalData; + Debug.Assert(grammarData != null && grammarData._sapiGrammar != null); + + // Take the lock so things like the changing of the grammar state to Loaded, or the completion of the load + // and call to SetSapiGrammarProperties cannot be happening on the background thread. + lock (_grammarDataLock) + { + // If the grammar is actually loaded then update its state in sapi. + if (grammar.Loaded) + { + grammarData._sapiGrammar.SetGrammarState(enabled ? SPGRAMMARSTATE.SPGS_ENABLED : SPGRAMMARSTATE.SPGS_DISABLED); + } + + // Otherwise just update the local copy so it gets set correctly when Loaded. + grammarData._grammarEnabled = enabled; + } + + // Note - after disabling a Grammar no pending results will be fired on the Grammar because the event handler throws the events away. + } + + void IRecognizerInternal.SetGrammarWeight(Grammar grammar, float weight) + { + Debug.Assert(grammar != null); + Debug.Assert(grammar.Recognizer == this); + + if (!_supportsSapi53) + { + throw new NotSupportedException(SR.Get(SRID.NotSupportedWithThisVersionOfSAPI2, "Weight")); + } + + InternalGrammarData grammarData = grammar.InternalData; + Debug.Assert(grammarData != null && grammarData._sapiGrammar != null); + + lock (_grammarDataLock) + { + if (grammar.Loaded) + { + if (grammar.IsDictation(grammar.Uri)) + { + grammarData._sapiGrammar.SetDictationWeight(weight); + } + else + { + grammarData._sapiGrammar.SetRuleWeight(grammar.RuleName, 0, weight); + } + } + grammarData._grammarWeight = weight; + } + } + + void IRecognizerInternal.SetGrammarPriority(Grammar grammar, int priority) + { + Debug.Assert(grammar != null); + Debug.Assert(grammar.Recognizer == this); + + if (!_supportsSapi53) + { + throw new NotSupportedException(SR.Get(SRID.NotSupportedWithThisVersionOfSAPI2, "Priority")); + } + + InternalGrammarData grammarData = grammar.InternalData; + Debug.Assert(grammarData != null && grammarData._sapiGrammar != null); + + lock (_grammarDataLock) + { + if (grammar.Loaded) + { + if (grammar.IsDictation(grammar.Uri)) + { + // This is not supported in SAPI currently. + // but not necessarily always. + throw new NotSupportedException(SR.Get(SRID.CannotSetPriorityOnDictation)); + } + else + { + grammarData._sapiGrammar.SetRulePriority(grammar.RuleName, 0, priority); + } + } + grammarData._grammarPriority = priority; + } + } + + // This method is used to get the Grammar object back from the id returned in the sapi recognition events. + Grammar IRecognizerInternal.GetGrammarFromId(ulong id) + { + lock (SapiRecognizer) // Lock to prevent enumerating _grammars from failing if list is modified on main thread + { + foreach (Grammar grammar in _grammars) + { + InternalGrammarData grammarData = grammar.InternalData; + if (grammarData._grammarId == id) + { + Debug.Assert(grammar.State == GrammarState.Loaded && grammar.Recognizer == this); + return grammar; + } + } + } + + return null; // The grammar has already been unloaded + } + + void IRecognizerInternal.SetDictationContext(Grammar grammar, string precedingText, string subsequentText) + { + if (precedingText == null) { precedingText = string.Empty; } + if (subsequentText == null) { subsequentText = string.Empty; } + + SPTEXTSELECTIONINFO selectionInfo = new(0, 0, (uint)precedingText.Length, 0); + string textString = precedingText + subsequentText + "\0\0"; + + SapiGrammar sapiGrammar = grammar.InternalData._sapiGrammar; + sapiGrammar.SetWordSequenceData(textString, selectionInfo); + } + + #endregion + internal RecognitionResult EmulateRecognize(string inputText) + { + Helpers.ThrowIfEmptyOrNull(inputText, nameof(inputText)); + + return InternalEmulateRecognize(inputText, SpeechEmulationCompareFlags.SECFDefault, false, null); + } + internal void EmulateRecognizeAsync(string inputText) + { + Helpers.ThrowIfEmptyOrNull(inputText, nameof(inputText)); + + InternalEmulateRecognizeAsync(inputText, SpeechEmulationCompareFlags.SECFDefault, false, null); + } + internal RecognitionResult EmulateRecognize(string inputText, CompareOptions compareOptions) + { + Helpers.ThrowIfEmptyOrNull(inputText, nameof(inputText)); + + bool defaultCasing = compareOptions == CompareOptions.IgnoreCase || compareOptions == CompareOptions.OrdinalIgnoreCase; + + // In Sapi 5.1 the only option is case-sensitive search with extendedWordFormat checking. + // We still let you use the default EmulateRecognize although the behavior is slightly different. + // Disable additional flags even with SAPI 5.3 until final EmulateRecognition design completed. + if (!_supportsSapi53 && !defaultCasing) + { + // Disable async grammar loading on SAPI 5.1 because of threading model issues. + // Note that even if there are no threading issues, baseUri is not supported with SAPI 5.1. + throw new NotSupportedException(SR.Get(SRID.NotSupportedWithThisVersionOfSAPICompareOption)); + } + + return InternalEmulateRecognize(inputText, ConvertCompareOptions(compareOptions), !defaultCasing, null); + } + internal void EmulateRecognizeAsync(string inputText, CompareOptions compareOptions) + { + Helpers.ThrowIfEmptyOrNull(inputText, nameof(inputText)); + + bool defaultCasing = compareOptions == CompareOptions.IgnoreCase || compareOptions == CompareOptions.OrdinalIgnoreCase; + + // In Sapi 5.1 the only option is case-sensitive search with extendedWordFormat checking. + // We still let you use the default EmulateRecognize although the behavior is slightly different. + // Disable additional flags even with SAPI 5.3 until final EmulateRecognition design completed. + if (!_supportsSapi53 && !defaultCasing) + { + // Disable async grammar loading on SAPI 5.1 because of threading model issues. + // Note that even if there are no threading issues, baseUri is not supported with SAPI 5.1. + throw new NotSupportedException(SR.Get(SRID.NotSupportedWithThisVersionOfSAPICompareOption)); + } + + InternalEmulateRecognizeAsync(inputText, ConvertCompareOptions(compareOptions), !defaultCasing, null); + } + internal RecognitionResult EmulateRecognize(RecognizedWordUnit[] wordUnits, CompareOptions compareOptions) + { + // In Sapi 5.1 the only option is case-sensitive search with extendedWordFormat checking. + // We still let you use the default EmulateRecognize although the behavior is slightly different. + // Disable additional flags even with SAPI 5.3 until final EmulateRecognition design completed. + if (!_supportsSapi53) + { + // Disable async grammar loading on SAPI 5.1 because of threading model issues. + // Note that even if there are no threading issues, baseUri is not supported with SAPI 5.1. + throw new NotSupportedException(SR.Get(SRID.NotSupportedWithThisVersionOfSAPI)); + } + Helpers.ThrowIfNull(wordUnits, nameof(wordUnits)); + + foreach (RecognizedWordUnit wordUnit in wordUnits) + { + if (wordUnit == null) + { + throw new ArgumentException(SR.Get(SRID.ArrayOfNullIllegal), nameof(wordUnits)); + } + } + + return InternalEmulateRecognize(null, ConvertCompareOptions(compareOptions), true, wordUnits); + } + internal void EmulateRecognizeAsync(RecognizedWordUnit[] wordUnits, CompareOptions compareOptions) + { + // In Sapi 5.1 the only option is case-sensitive search with extendedWordFormat checking. + // We still let you use the default EmulateRecognize although the behavior is slightly different. + // Disable additional flags even with SAPI 5.3 until final EmulateRecognition design completed. + if (!_supportsSapi53) + { + // Disable async grammar loading on SAPI 5.1 because of threading model issues. + // Note that even if there are no threading issues, baseUri is not supported with SAPI 5.1. + throw new NotSupportedException(SR.Get(SRID.NotSupportedWithThisVersionOfSAPI)); + } + Helpers.ThrowIfNull(wordUnits, nameof(wordUnits)); + + foreach (RecognizedWordUnit wordUnit in wordUnits) + { + if (wordUnit == null) + { + throw new ArgumentException(SR.Get(SRID.ArrayOfNullIllegal), nameof(wordUnits)); + } + } + + InternalEmulateRecognizeAsync(null, ConvertCompareOptions(compareOptions), true, wordUnits); + } + + // Methods to pause the recognizer to do atomic updates: + internal void RequestRecognizerUpdate() + { + RequestRecognizerUpdate(null); + } + internal void RequestRecognizerUpdate(object userToken) + { + uint bookmarkId = AddBookmarkItem(userToken); + + // This fires the bookmark as soon as possible so we set the time as zero and don't set the SPBO_AHEAD flag. + SapiContext.Bookmark(SPBOOKMARKOPTIONS.SPBO_PAUSE, 0, new IntPtr(bookmarkId)); + } + internal void RequestRecognizerUpdate(object userToken, TimeSpan audioPositionAheadToRaiseUpdate) + { + if (audioPositionAheadToRaiseUpdate < TimeSpan.Zero) + { + throw new NotSupportedException(SR.Get(SRID.NegativeTimesNotSupported)); + } + if (!_supportsSapi53) + { + throw new NotSupportedException(SR.Get(SRID.NotSupportedWithThisVersionOfSAPI)); + } + + uint bookmarkId = AddBookmarkItem(userToken); + + // This always fires the bookmark ahead of the current position. + // So calling this with zero will wait until the recognizer catches up with the current audio position before firing. + SapiContext.Bookmark(SPBOOKMARKOPTIONS.SPBO_PAUSE | SPBOOKMARKOPTIONS.SPBO_AHEAD | SPBOOKMARKOPTIONS.SPBO_TIME_UNITS, + (ulong)audioPositionAheadToRaiseUpdate.Ticks, new IntPtr(bookmarkId)); + } + + internal void Initialize(SapiRecognizer recognizer, bool inproc) + { + // Create RecoContext: + _sapiRecognizer = recognizer; + _inproc = inproc; + + _recoThunk = new RecognizerBaseThunk(this); + + try + { + _sapiContext = _sapiRecognizer.CreateRecoContext(); + } + catch (COMException e) + { + // SAPI 5.1 can throw this error when no recognizer + if (!_supportsSapi53 && (SAPIErrorCodes)e.ErrorCode == SAPIErrorCodes.SPERR_NOT_FOUND) + { + throw new PlatformNotSupportedException(SR.Get(SRID.RecognitionNotSupported)); + } + throw ExceptionFromSapiCreateRecognizerError(e); + } + + // See if SAPI 5.3 features are supported. + _supportsSapi53 = recognizer.IsSapi53; + + if (_supportsSapi53) + { + _sapiContext.SetGrammarOptions(SPGRAMMAROPTIONS.SPGO_ALL); + } + + try + { + ISpPhoneticAlphabetSelection alphabetSelection = _sapiContext as ISpPhoneticAlphabetSelection; + if (alphabetSelection != null) + { + alphabetSelection.SetAlphabetToUPS(true); + } + else + { + Trace.TraceInformation("SAPI does not implement phonetic alphabet selection."); + } + } + catch (COMException) + { + Trace.TraceError("Cannot force SAPI to set the alphabet to UPS"); + } + + _sapiContext.SetAudioOptions(SPAUDIOOPTIONS.SPAO_RETAIN_AUDIO, IntPtr.Zero, IntPtr.Zero); + + // Enable alternates with default max. + MaxAlternates = 10; + + ResetBookmarkTable(); + + // Set basic SR event interests that are routed to the end user. + // Hypothesis and AudioLevelChange events are raised frequently and are less commonly used. + // So their interests will be registered individually. + _eventInterest = (1ul << (int)SPEVENTENUM.SPEI_RESERVED1) | + (1ul << (int)SPEVENTENUM.SPEI_RESERVED2) | + (1ul << (int)SPEVENTENUM.SPEI_START_SR_STREAM) | + (1ul << (int)SPEVENTENUM.SPEI_PHRASE_START) | + (1ul << (int)SPEVENTENUM.SPEI_FALSE_RECOGNITION) | + (1ul << (int)SPEVENTENUM.SPEI_RECOGNITION) | + (1ul << (int)SPEVENTENUM.SPEI_RECO_OTHER_CONTEXT) | + (1ul << (int)SPEVENTENUM.SPEI_END_SR_STREAM) | + (1ul << (int)SPEVENTENUM.SPEI_SR_BOOKMARK); + _sapiContext.SetInterest(_eventInterest, _eventInterest); + + _asyncWorker = new AsyncSerializedWorker(new WaitCallback(DispatchEvents), null); + + _asyncWorkerUI = new AsyncSerializedWorker(null, SynchronizationContext.Current); + _asyncWorkerUI.WorkItemPending += new WaitCallback(SignalHandlerThread); + + _eventNotify = _sapiContext.CreateEventNotify(_asyncWorker, _supportsSapi53); + + _grammars = new List(); + _readOnlyGrammars = new ReadOnlyCollection(_grammars); + UpdateAudioFormat(null); + InitialSilenceTimeout = TimeSpan.FromSeconds(30); + } + + internal void RecognizeAsync(RecognizeMode mode) + { + lock (SapiRecognizer) // Lock to protect _isRecognizing and _haveInputSource + { + if (_isRecognizing) + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerAlreadyRecognizing)); + } + if (!_haveInputSource) + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerNoInputSource)); + } + + _isRecognizing = true; + + // The call to RecognizeAsync may happen before the event for the start stream arrives so remove the assert. + //Debug.Assert (_detectingInitialSilenceTimeout == false); + Debug.Assert(_detectingBabbleTimeout == false); + Debug.Assert(_initialSilenceTimeoutReached == false); + Debug.Assert(_babbleTimeoutReached == false); + Debug.Assert(_isRecognizeCancelled == false); + Debug.Assert(_lastResult == null); + Debug.Assert(_lastException == null); + } // Not recognizing so no events firing - can unlock now + + _recognizeMode = mode; // This is always Multiple for SpeechRecognizer. If Automatic stop after each recognition. + + if (_supportsSapi53) + { + // On another thread - wait for grammar loading to complete and start the recognizer. + if (!ThreadPool.QueueUserWorkItem(new WaitCallback(RecognizeAsyncWaitForGrammarsToLoad))) + { + throw new OperationCanceledException(SR.Get(SRID.OperationAborted)); + } + } + else + { + // Don't support async grammar loading and can't call this on another thread because of threading model issues. + // So just start and throw if there's a problem starting the audio. + try + { + SapiRecognizer.SetRecoState(SPRECOSTATE.SPRST_ACTIVE_ALWAYS); + Debug.WriteLine("Grammar loads completed, recognition started."); + } + catch (COMException comException) + { + Debug.WriteLine("Problem starting recognition - sapi exception."); + throw ExceptionFromSapiStreamError((SAPIErrorCodes)comException.ErrorCode); + } + catch + { + Debug.WriteLine("Problem starting recognition - unknown exception."); + throw; + } + } + } + + internal RecognitionResult Recognize(TimeSpan initialSilenceTimeout) + { + //let InitialSilenceTimeout property below do validation on the TimeSpan parameter + + RecognitionResult result = null; + bool completed = false; + bool hasPendingTask = false; + bool canceled = false; + + EventHandler eventHandler = delegate (object sender, RecognizeCompletedEventArgs eventArgs) + { + result = eventArgs.Result; + completed = true; + }; + + TimeSpan oldInitialSilenceTimeout = _initialSilenceTimeout; + this.InitialSilenceTimeout = initialSilenceTimeout; + + RecognizeCompletedSync += eventHandler; + + //InitialSilenceTimeout bookmark should keep this function from hanging forever, but also have a timeout + //here in case something's wrong with the audio and the bookmark never gets hit. + TimeSpan eventTimeout = TimeSpan.FromTicks(Math.Max(initialSilenceTimeout.Ticks, _defaultTimeout.Ticks)); + + try + { + _asyncWorkerUI.AsyncMode = false; + RecognizeAsync(RecognizeMode.Single); + while (!completed && !_disposed) + { + if (!canceled) + { + hasPendingTask = _handlerWaitHandle.WaitOne(eventTimeout, false); + if (!hasPendingTask) + { + EndRecognitionWithTimeout(); + canceled = true; + } + } + else + { + // We have canceled the recognition, so now we only wait to process remaining events + // until SPEI_END_SR_STREAM event arrives. + hasPendingTask = _handlerWaitHandle.WaitOne(eventTimeout, false); + } + + if (hasPendingTask) + { + _asyncWorkerUI.ConsumeQueue(); + } + } + } + finally + { + RecognizeCompletedSync -= eventHandler; + _initialSilenceTimeout = oldInitialSilenceTimeout; + _asyncWorkerUI.AsyncMode = true; + } + + return result; + } + + internal void RecognizeAsyncCancel() + { + bool doCancel = false; + + lock (SapiRecognizer) // Lock to protect _isRecognizing and _isRecognizeCancelled + { + if (_isRecognizing) + { + if (!_isEmulateRecognition) + { + doCancel = true; + _isRecognizeCancelled = true; // Set this flag so the RecognizeCompleted event shows the operation was cancelled. + } + else + { + // Reset all the recognition flags if an emulate recognition is in progress + _isRecognizing = _isEmulateRecognition = false; + } + } + } + + if (doCancel) + { + // Don't hold the lock while we do this. + try + { + SapiRecognizer.SetRecoState(SPRECOSTATE.SPRST_INACTIVE_WITH_PURGE); + } + catch (COMException e) + { + throw ExceptionFromSapiCreateRecognizerError(e); + } + } + } + + internal void RecognizeAsyncStop() + { + bool doCancel = false; + + lock (SapiRecognizer) // Lock to protect _isRecognizing and _isRecognizeCancelled + { + if (_isRecognizing) + { + doCancel = true; + _isRecognizeCancelled = true; // Still set the flag as this is a kind of cancel. + } + } + + if (doCancel) + { + // Don't hold the lock while we do this. + try + { + SapiRecognizer.SetRecoState(SPRECOSTATE.SPRST_INACTIVE); + } + catch (COMException e) + { + throw ExceptionFromSapiCreateRecognizerError(e); + } + } + } + + // Controls whether the recognizer is paused after each recognition. + // This is always true for the SpeechRecognitionEngine and is customizable {default false} for the SpeechRecognizer. + internal bool PauseRecognizerOnRecognition + { + // No need to lock anything as this value is non-touched in the event handling code and we are only enumerating _grammars on main thread. + get { return _pauseRecognizerOnRecognition; } + set + { + if (value != _pauseRecognizerOnRecognition) + { + _pauseRecognizerOnRecognition = value; + + lock (SapiRecognizer) + { + foreach (Grammar grammar in _grammars) + { + SapiGrammar sapiGrammar = grammar.InternalData._sapiGrammar; + ActivateRule(sapiGrammar, grammar.Uri, grammar.RuleName); + } + } + } + } + } + + /// + /// Set the current input for the recognizer to a file + /// + internal void SetInput(string path) + { + Stream inputStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read); + SetInput(inputStream, null); + + // Keep track of the local stream + _inputStream = inputStream; + } + + /// + /// Set the current input for the recognizer to a file + /// + internal void SetInput(Stream stream, SpeechAudioFormatInfo audioFormat) + { + lock (SapiRecognizer) // Lock to protect _isRecognizing and _haveInputSource + { + if (_isRecognizing) + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerAlreadyRecognizing)); + } + + try + { + // Detach the input stream from the recognizer + if (stream == null) + { + SapiRecognizer.SetInput(null, false); + _haveInputSource = false; + } + else + { + SapiRecognizer.SetInput(new SpAudioStreamWrapper(stream, audioFormat), false); + _haveInputSource = true; + } + } + catch (COMException e) + { + throw ExceptionFromSapiCreateRecognizerError(e); + } + + CloseCachedInputStream(); + UpdateAudioFormat(audioFormat); + } + } + + /// + /// Reset the recognizer input stream to the default audio device + /// + internal void SetInputToDefaultAudioDevice() + { + lock (SapiRecognizer) // Lock to protect _isRecognizing and _haveInputSource + { + if (_isRecognizing) + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerAlreadyRecognizing)); + } + + ISpObjectTokenCategory category = (ISpObjectTokenCategory)new SpObjectTokenCategory(); + try + { + category.SetId(SAPICategories.AudioIn, false); + + string tokenId; + category.GetDefaultTokenId(out tokenId); + + ISpObjectToken token = (ISpObjectToken)new SpObjectToken(); + try + { + token.SetId(null, tokenId, false); + SapiRecognizer.SetInput(token, true); + } + catch (COMException e) + { + throw ExceptionFromSapiCreateRecognizerError(e); + } + finally + { + Marshal.ReleaseComObject(token); + } + } + catch (COMException e) + { + throw ExceptionFromSapiCreateRecognizerError(e); + } + finally + { + Marshal.ReleaseComObject(category); + } + + UpdateAudioFormat(null); + _haveInputSource = true; // On success + } + } + + internal int QueryRecognizerSettingAsInt(string settingName) + { + Helpers.ThrowIfEmptyOrNull(settingName, nameof(settingName)); + + // See if property is an int. + return SapiRecognizer.GetPropertyNum(settingName); + } + + internal object QueryRecognizerSetting(string settingName) + { + Helpers.ThrowIfEmptyOrNull(settingName, nameof(settingName)); + + // See if property is an int. + try + { + return SapiRecognizer.GetPropertyNum(settingName); + } + catch (Exception e) + { + if (e is COMException || e is InvalidOperationException || e is KeyNotFoundException) + { + return SapiRecognizer.GetPropertyString(settingName); + } + throw; + } + } + + internal void UpdateRecognizerSetting(string settingName, string updatedValue) + { + Helpers.ThrowIfEmptyOrNull(settingName, nameof(settingName)); + + SapiRecognizer.SetPropertyString(settingName, updatedValue); + } + + internal void UpdateRecognizerSetting(string settingName, int updatedValue) + { + Helpers.ThrowIfEmptyOrNull(settingName, nameof(settingName)); + + SapiRecognizer.SetPropertyNum(settingName, updatedValue); + } + + internal static Exception ExceptionFromSapiCreateRecognizerError(COMException e) + { + return ExceptionFromSapiCreateRecognizerError((SAPIErrorCodes)e.ErrorCode); + } + + internal static Exception ExceptionFromSapiCreateRecognizerError(SAPIErrorCodes errorCode) + { + SRID srid = SapiConstants.SapiErrorCode2SRID(errorCode); + switch (errorCode) + { + case SAPIErrorCodes.CLASS_E_CLASSNOTAVAILABLE: + case SAPIErrorCodes.REGDB_E_CLASSNOTREG: + { + OperatingSystem OS = Environment.OSVersion; + if (IntPtr.Size == 8 && // 64-bit system + OS.Platform == PlatformID.Win32NT && // On Windows NT or above + OS.Version.Major == 5) // Windows 2000 / XP / Server 2003 + { + return new NotSupportedException(SR.Get(SRID.RecognitionNotSupportedOn64bit)); + } + else + { + return new PlatformNotSupportedException(SR.Get(SRID.RecognitionNotSupported)); + } + } + + case SAPIErrorCodes.SPERR_SHARED_ENGINE_DISABLED: + case SAPIErrorCodes.SPERR_RECOGNIZER_NOT_FOUND: + return new PlatformNotSupportedException(SR.Get(srid)); + + default: + Exception exReturn = null; ; + if (srid >= 0) + { + exReturn = new InvalidOperationException(SR.Get(srid)); + } + else + { + try + { + Marshal.ThrowExceptionForHR((int)errorCode); + } + catch (Exception ex) + { + exReturn = ex; + } + } + return exReturn; + } + } + + #endregion + + #region Internal Properties + + // Note on locking implementation: + // + // In general operations are not locked on the RecognizerBase - there's no single lock that makes everything thread safe. + // This is the normal .NET design pattern. + // + // However, because there is processing of sapi events, going on different threads that the app does not control, + // we need to protect certain members. + // + // This is generally done with "lock (SapiRecognizer)" - the choice of SapiRecognizer is arbitrary - any object could have been used. + // Anything that's touched both by sapi event code and by public methods need this lock. + // {For sanity this includes bool like _isRecognizing even though setting these is atomic}. + // Similarly when enumerating the Grammars collection we need to ensure no other thread can be adding or removing items. + // + // Some other well encapsulated fields also lock themselves e.g. the bookmark table. + // + // In addition, the EventNotify class holds a lock to prevent events being fired more that one at a time. + // It is required that Dispose also takes this lock. + + internal TimeSpan InitialSilenceTimeout + { + // lock to protect _initialSilenceTimeout and _isRecognizing + get { lock (SapiRecognizer) { return _initialSilenceTimeout; } } + set + { + if (value < TimeSpan.Zero) + { + throw new ArgumentOutOfRangeException(nameof(value), SR.Get(SRID.NegativeTimesNotSupported)); + } + + lock (SapiRecognizer) + { + if (_isRecognizing) + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerAlreadyRecognizing)); + } + _initialSilenceTimeout = value; + } + } + } + + internal TimeSpan BabbleTimeout + { + // lock to protect _babbleTimeout and _isRecognizing + get { lock (SapiRecognizer) { return _babbleTimeout; } } + set + { + if (value < TimeSpan.Zero) + { + throw new ArgumentOutOfRangeException(nameof(value), SR.Get(SRID.NegativeTimesNotSupported)); + } + + lock (SapiRecognizer) + { + if (_isRecognizing) + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerAlreadyRecognizing)); + } + _babbleTimeout = value; + } + } + } + + internal RecognizerState State + { + get + { + try + { + SPRECOSTATE sapiState; + sapiState = SapiRecognizer.GetRecoState(); // This does not wait for engine sync point so should be fast. + if (sapiState == SPRECOSTATE.SPRST_ACTIVE || sapiState == SPRECOSTATE.SPRST_ACTIVE_ALWAYS) + { + return RecognizerState.Listening; + } + else + { + return RecognizerState.Stopped; + } + } + catch (COMException e) + { + throw ExceptionFromSapiCreateRecognizerError(e); + } + } + } + + internal bool Enabled + { + get + { + lock (SapiRecognizer) // Lock to protect _enabled + { + return _enabled; + } + } + set + { + lock (SapiRecognizer) // Lock to protect _enabled + { + if (value != _enabled) + { + try + { + SapiContext.SetContextState(value ? SPCONTEXTSTATE.SPCS_ENABLED : SPCONTEXTSTATE.SPCS_DISABLED); + _enabled = value; + } + catch (COMException e) + { + throw ExceptionFromSapiCreateRecognizerError(e); + } + } + } + } + } + + // Gives access to the collection of grammars that are currently active. Read-only. + internal ReadOnlyCollection Grammars + { + get { return _readOnlyGrammars; } + } + + // Gives access to the set of attributes exposed by this recognizer. + internal RecognizerInfo RecognizerInfo + { + get + { + if (_recognizerInfo == null) + { + try + { + _recognizerInfo = SapiRecognizer.GetRecognizerInfo(); + } + catch (COMException e) + { + throw ExceptionFromSapiCreateRecognizerError(e); + } + } + + return _recognizerInfo; + } + } + + // Data on the audio stream the recognizer is processing + internal AudioState AudioState + { + get + { + if (!_haveInputSource) + { + // If we don't have an audio source return an empty status. + return AudioState.Stopped; + } + return _audioState; + } + set + { + _audioState = value; + } + } + + internal int AudioLevel + { + get + { + // If we don't have an audio source return 0 + int level = 0; + if (_haveInputSource) + { + SPRECOGNIZERSTATUS recoStatus; + + try + { + // These calls do not wait for engine sync point so should be fast. + recoStatus = SapiRecognizer.GetStatus(); + + lock (SapiRecognizer) // Lock to protect _audioStatus. + { + if (_supportsSapi53) + { + level = (int)recoStatus.AudioStatus.dwAudioLevel; + } + else + { + level = 0; // This is not implemented in SAPI 5.1 so will always be zero. + } + } + } + catch (COMException e) + { + throw ExceptionFromSapiCreateRecognizerError(e); + } + } + + return level; + } + } + + internal TimeSpan AudioPosition + { + get + { + if (!_haveInputSource) + { + // If we don't have an audio source return an empty status. + return TimeSpan.Zero; + } + + SPRECOGNIZERSTATUS recoStatus; + + try + { + // These calls do not wait for engine sync point so should be fast. + recoStatus = SapiRecognizer.GetStatus(); + + lock (SapiRecognizer) // Lock to protect _audioStatus. + { + SpeechAudioFormatInfo audioFormat = AudioFormat; + return audioFormat.AverageBytesPerSecond > 0 ? new TimeSpan((long)((recoStatus.AudioStatus.CurDevicePos * TimeSpan.TicksPerSecond) / (ulong)audioFormat.AverageBytesPerSecond)) : TimeSpan.Zero; + } + } + catch (COMException e) + { + throw ExceptionFromSapiCreateRecognizerError(e); + } + } + } + + internal TimeSpan RecognizerAudioPosition + { + get + { + if (!_haveInputSource) + { + // If we don't have an audio source return an empty status. + return TimeSpan.Zero; + } + + SPRECOGNIZERSTATUS recoStatus; + + try + { + // These calls do not wait for engine sync point so should be fast. + recoStatus = SapiRecognizer.GetStatus(); + + lock (SapiRecognizer) // Lock to protect _audioStatus. + { + // RecognizerPosition and AudioPosition get reset to zero at the start of each stream so can be used directly. + return new TimeSpan((long)recoStatus.ullRecognitionStreamTime); + } + } + catch (COMException e) + { + throw ExceptionFromSapiCreateRecognizerError(e); + } + } + } + internal SpeechAudioFormatInfo AudioFormat + { + get + { + lock (SapiRecognizer) // Lock to protect _audioFormat and _haveInputSource + { + if (!_haveInputSource) + { + // If we don't have an audio source trying to return data about the audio doesn't make sense. + return null; + } + + if (_audioFormat == null) + { + _audioFormat = GetSapiAudioFormat(); + } + } + return _audioFormat; + } + } + internal int MaxAlternates + { + get { return _maxAlternates; } + set + { + if (value < 0) + { + throw new ArgumentOutOfRangeException(nameof(value), SR.Get(SRID.MaxAlternatesInvalid)); + } + if (value != _maxAlternates) + { + SapiContext.SetMaxAlternates((uint)value); + _maxAlternates = value; // On success + } + } + } + + #endregion + + #region Internal Events + + // Internal event used to hook up the SpeechRecognitionEngine RecognizeCompleted event. + internal event EventHandler RecognizeCompleted; + + // Fired when the RecognizeAsync process completes. + internal event EventHandler EmulateRecognizeCompleted; + + // Internal event used to hook up the SpeechRecognizer StateChanged event. + internal event EventHandler StateChanged; + internal event EventHandler LoadGrammarCompleted; + + // The event fired when speech is detected. Used for barge-in. + internal event EventHandler SpeechDetected; + + // The event fired on a recognition. + internal event EventHandler SpeechRecognized; + + // The event fired on a no recognition + internal event EventHandler SpeechRecognitionRejected; + +#pragma warning disable 6504 + // Occurs when a spoken phrase is partially recognized. + internal event EventHandler SpeechHypothesized + { + [MethodImplAttribute(MethodImplOptions.Synchronized)] + add + { + if (_speechHypothesizedDelegate == null) + { + AddEventInterest(1ul << (int)SPEVENTENUM.SPEI_HYPOTHESIS); + } + _speechHypothesizedDelegate += value; + } + + [MethodImplAttribute(MethodImplOptions.Synchronized)] + remove + { + _speechHypothesizedDelegate -= value; + if (_speechHypothesizedDelegate == null) + { + RemoveEventInterest(1ul << (int)SPEVENTENUM.SPEI_HYPOTHESIS); + } + } + } + internal event EventHandler AudioSignalProblemOccurred + { + [MethodImplAttribute(MethodImplOptions.Synchronized)] + add + { + if (_audioSignalProblemOccurredDelegate == null) + { + AddEventInterest(1ul << (int)SPEVENTENUM.SPEI_INTERFERENCE); + } + _audioSignalProblemOccurredDelegate += value; + } + + [MethodImplAttribute(MethodImplOptions.Synchronized)] + remove + { + _audioSignalProblemOccurredDelegate -= value; + if (_audioSignalProblemOccurredDelegate == null) + { + RemoveEventInterest(1ul << (int)SPEVENTENUM.SPEI_INTERFERENCE); + } + } + } + internal event EventHandler AudioLevelUpdated + { + [MethodImplAttribute(MethodImplOptions.Synchronized)] + add + { + if (_audioLevelUpdatedDelegate == null) + { + AddEventInterest(1ul << (int)SPEVENTENUM.SPEI_SR_AUDIO_LEVEL); + } + _audioLevelUpdatedDelegate += value; + } + + [MethodImplAttribute(MethodImplOptions.Synchronized)] + remove + { + _audioLevelUpdatedDelegate -= value; + if (_audioLevelUpdatedDelegate == null) + { + RemoveEventInterest(1ul << (int)SPEVENTENUM.SPEI_SR_AUDIO_LEVEL); + } + } + } + internal event EventHandler AudioStateChanged + { + [MethodImplAttribute(MethodImplOptions.Synchronized)] + add + { + _audioStateChangedDelegate += value; + } + + [MethodImplAttribute(MethodImplOptions.Synchronized)] + remove + { + _audioStateChangedDelegate -= value; + } + } + +#pragma warning restore 6504 + internal event EventHandler RecognizerUpdateReached; + + #endregion + + #region Protected Methods + protected virtual void Dispose(bool disposing) + { + if (!_disposed) + { + if (disposing) + { + // Lock to wait for event dispatching to finish + lock (_thisObjectLock) + { + // Make sure no pending posts are sent, no events are dispatched as we are disposing + + if (_asyncWorkerUI != null) + { + _asyncWorkerUI.Enabled = false; + _asyncWorkerUI.Purge(); + _asyncWorker.Enabled = false; + _asyncWorker.Purge(); + } + + // Dispose unmanaged resources in event notification and detach from ISpEventSource. + // Release grammar resources. + if (_sapiContext != null) + { + _sapiContext.DisposeEventNotify(_eventNotify); + _handlerWaitHandle.Close(); + UnloadAllGrammars(); + _waitForGrammarsToLoad.Dispose(); + } + CloseCachedInputStream(); + + // Release SAPI recognizer/recoContext interfaces. + // We do not need to release additional references copy onto the same RCW. + if (_sapiContext != null) + { + _sapiContext.Dispose(); + _sapiContext = null; + } + if (_sapiRecognizer != null) + { + _sapiRecognizer.Dispose(); + _sapiRecognizer = null; + } + + if (_recognizerInfo != null) + { + _recognizerInfo.Dispose(); + _recognizerInfo = null; + } + + _disposed = true; + } + } + } + } + + #endregion + + #region Private Properties + + // Properties to get access to the underlying SAPI objects and to throw if disposed. + + private SapiRecoContext SapiContext + { + // Also this method is not public. +#pragma warning disable 6503 + get { if (_disposed) { throw new ObjectDisposedException("RecognizerBase"); } return _sapiContext; } +#pragma warning restore 6503 + } + + private SapiRecognizer SapiRecognizer + { +#pragma warning disable 6503 + get { if (_disposed) { throw new ObjectDisposedException("RecognizerBase"); } return _sapiRecognizer; } +#pragma warning restore 6503 + } + + #endregion + + #region Private Methods + + // Method called from LoadGrammar and LoadGrammarAsync to load the data from a Grammar into sapiGrammar. + // Grammar is unchanged by this method. + private void LoadSapiGrammar(Grammar grammar, SapiGrammar sapiGrammar, bool enabled, float weight, int priority) + { + Uri baseUri = grammar.BaseUri; + + if (_supportsSapi53 && baseUri == null && grammar.Uri != null) + { + // If the base Uri has not been set any other way, then set the base Uri for this file + string uri = grammar.Uri.OriginalString; + int posSlash = uri.LastIndexOfAny(new char[] { '\\', '/' }); + if (posSlash >= 0) + { + baseUri = new Uri(uri.Substring(0, posSlash + 1), UriKind.RelativeOrAbsolute); + } + } + + // For dictation grammar, pass the Uri to SAPI. + // For anything else, load it locally to figure out if it is a + // strongly typed grammar. + if (grammar.IsDictation(grammar.Uri)) + { + // If uri load + LoadSapiDictationGrammar(sapiGrammar, grammar.Uri, grammar.RuleName, enabled, weight, priority); + return; + } + LoadSapiGrammarFromCfg(sapiGrammar, grammar, baseUri, enabled, weight, priority); + } + + // Actually load the uri into the sapiGrammar. This does not touch the Grammar object or InternalGrammarData. + // This must be called on a new SapiGrammar that does not already have a grammar loaded {for SetSapiGrammarProperties}. + private void LoadSapiDictationGrammar(SapiGrammar sapiGrammar, Uri uri, string ruleName, bool enabled, float weight, int priority) + { + try + { + if (Grammar.IsDictationGrammar(uri)) + { + // Note: checking whether the grammar is a dictation grammar is somewhat messy. + // This is done because SAPI has different methods to load and activate dictation as it does CFGs. + // Other options here include: + // - Modify SAPI so LoadCmdFromFile works with dictation Uris. + // - Modify the engine and use a regular grammar with a special ruleref to dictation. + // - Call back to the Grammar and let it manage the loading activation. + string topicName = string.IsNullOrEmpty(uri.Fragment) ? null : uri.Fragment.Substring(1, uri.Fragment.Length - 1); + sapiGrammar.LoadDictation(topicName, SPLOADOPTIONS.SPLO_STATIC); + } + else + { + System.Diagnostics.Debug.Assert(false); + } + } + catch (COMException e) + { + switch ((SAPIErrorCodes)e.ErrorCode) + { + case SAPIErrorCodes.SPERR_NOT_FOUND: + { + throw new ArgumentException(SR.Get(SRID.DictationTopicNotFound, uri), e); + } + + default: + { + ThrowIfSapiErrorCode((SAPIErrorCodes)e.ErrorCode); + throw; + } + } + } + + SetSapiGrammarProperties(sapiGrammar, uri, ruleName, enabled, weight, priority); + } + + #region Resource loader implementation + + /// + /// Called to load a grammar and all of its dependent rule refs. + /// + /// Returns the CFG data for a given file and builds a tree of rule ref dependencies. + /// + int ISpGrammarResourceLoader.LoadResource(string bstrResourceUri, bool fAlwaysReload, out IStream pStream, ref string pbstrMIMEType, ref short pfModified, ref string pbstrRedirectUrl) + { + try + { + // Look for the OnInitParameters + int posGreaterThan = bstrResourceUri.IndexOf('>'); + string onInitParameters = null; + if (posGreaterThan > 0) + { + onInitParameters = bstrResourceUri.Substring(posGreaterThan + 1); + bstrResourceUri = bstrResourceUri.Substring(0, posGreaterThan); + } + + // Hack to get the parent and children grammar. + string ruleName = pbstrMIMEType; + + // The parent is the first + string[] ids = pbstrRedirectUrl.Split(new char[] { ' ' }, StringSplitOptions.None); + System.Diagnostics.Debug.Assert(ids.Length == 2); + + uint parentGrammarId = uint.Parse(ids[0], CultureInfo.InvariantCulture); + uint grammarId = uint.Parse(ids[1], CultureInfo.InvariantCulture); + + // Create the grammar for that resources. + Uri redirectedUri; + Grammar grammar = Grammar.Create(bstrResourceUri, ruleName, onInitParameters, out redirectedUri); + + // If http:// then set the redirect Uri + if (redirectedUri != null) + { + pbstrRedirectUrl = redirectedUri.ToString(); + } + + // Could fail for SRGS + if (grammar == null) + { + throw new FormatException(SR.Get(SRID.SapiErrorRuleNotFound2, ruleName, bstrResourceUri)); + } + + // Save the SAPI grammar id for that grammar + grammar.SapiGrammarId = grammarId; + + // Find the grammar this ruleref belongs to and add it to the appropriate grammar + Grammar parent = _topLevel.Find(parentGrammarId); + if (parent == null) + { + _topLevel.AddRuleRef(grammar, grammarId); + } + else + { + parent.AddRuleRef(grammar, grammarId); + } + + // Must return and IStream to enable SAPI to retrieve the data + MemoryStream stream = new(grammar.CfgData); + SpStreamWrapper spStream = new(stream); + pStream = spStream; + pfModified = 0; + + return 0; + } + catch (Exception e) + { + // Something failed. + // Save the exception and return an error to SAPI. + pStream = null; + _loadException = e; + return (int)SAPIErrorCodes.SPERR_INVALID_IMPORT; + } + } + + /// + /// Unused + /// + string ISpGrammarResourceLoader.GetLocalCopy(Uri resourcePath, out string mimeType, out Uri redirectUrl) + { + redirectUrl = null; + mimeType = null; + return null; + } + + /// + /// Unused + /// + void ISpGrammarResourceLoader.ReleaseLocalCopy(string path) + { + } + + #endregion + + // Actually load the stream into the sapiGrammar. This does not touch the Grammar object or InternalGrammarData. + // This must be called on a new SapiGrammar that does not already have a grammar loaded {for SetSapiGrammarProperties}. + private void LoadSapiGrammarFromCfg(SapiGrammar sapiGrammar, Grammar grammar, Uri baseUri, bool enabled, float weight, int priority) + { + byte[] data = grammar.CfgData; + + // Pin the array: + GCHandle gcHandle = GCHandle.Alloc(data, GCHandleType.Pinned); + IntPtr dataPtr = gcHandle.AddrOfPinnedObject(); + + // Load the data into SAPI: + try + { + if (_supportsSapi53) + { + _loadException = null; + _topLevel = grammar; + + if (_inproc) + { + // Use the resource loader for Sapi 5.3 and above + // The rulerefs will be resolved locally. + + sapiGrammar.SetGrammarLoader(_recoThunk); + } + sapiGrammar.LoadCmdFromMemory2(dataPtr, SPLOADOPTIONS.SPLO_STATIC, null, baseUri == null ? null : baseUri.ToString()); + } + else + { + sapiGrammar.LoadCmdFromMemory(dataPtr, SPLOADOPTIONS.SPLO_STATIC); + } + } + catch (COMException e) + { + switch ((SAPIErrorCodes)e.ErrorCode) + { + case SAPIErrorCodes.SPERR_UNSUPPORTED_FORMAT: + { + throw new FormatException(SR.Get(SRID.RecognizerInvalidBinaryGrammar), e); + } + case SAPIErrorCodes.SPERR_INVALID_IMPORT: + { + throw new FormatException(SR.Get(SRID.SapiErrorInvalidImport), e); + } + case SAPIErrorCodes.SPERR_TOO_MANY_GRAMMARS: + { + throw new NotSupportedException(SR.Get(SRID.SapiErrorTooManyGrammars), e); + } + case SAPIErrorCodes.SPERR_NOT_FOUND: + { + throw new FileNotFoundException(SR.Get(SRID.ReferencedGrammarNotFound), e); + } + + case ((SAPIErrorCodes)(-1)): + if (_loadException != null) + { + ExceptionDispatchInfo.Throw(_loadException); + } + ThrowIfSapiErrorCode((SAPIErrorCodes)e.ErrorCode); + break; + + default: + ThrowIfSapiErrorCode((SAPIErrorCodes)e.ErrorCode); + break; + } + throw; + } + catch (ArgumentException e) + { + throw new FormatException(SR.Get(SRID.RecognizerInvalidBinaryGrammar), e); + } + finally + { + gcHandle.Free(); + } + + SetSapiGrammarProperties(sapiGrammar, null, grammar.RuleName, enabled, weight, priority); + } + + // Update a new SAPI grammar with relevant enabled, weight and priority and activate the desired rule. + // SetRuleState on the rule is always set to active - theSetGrammarState API is used to enable or disable the grammar. + // This needs to be a new grammar only because it only bothers to update the values of they are different to the default. + private void SetSapiGrammarProperties(SapiGrammar sapiGrammar, Uri uri, string ruleName, bool enabled, float weight, int priority) + { + if (!enabled) + { + // SetGrammarState is ENABLED by default so only call if changed. + sapiGrammar.SetGrammarState(SPGRAMMARSTATE.SPGS_DISABLED); + } + + if (_supportsSapi53) + { + if (priority != 0) + { + if (Grammar.IsDictationGrammar(uri)) + { + throw new NotSupportedException(SR.Get(SRID.CannotSetPriorityOnDictation)); + } + else + { + sapiGrammar.SetRulePriority(ruleName, 0, priority); + } + } + if (!weight.Equals(1.0f)) + { + if (Grammar.IsDictationGrammar(uri)) + { + sapiGrammar.SetDictationWeight(weight); + } + else + { + sapiGrammar.SetRuleWeight(ruleName, 0, weight); + } + } + } + else if (priority != 0 || !weight.Equals(1.0f)) + { + throw new NotSupportedException(SR.Get(SRID.NotSupportedWithThisVersionOfSAPI)); + } + + // Always activate the rule + // Do this after calling SetGrammarState so we don't accidentally enable the Grammar for recognition. + ActivateRule(sapiGrammar, uri, ruleName); + } + + // Method called on background thread to do actual grammar loading. +#pragma warning disable 56500 // Transferring exceptions to another thread + private void LoadGrammarAsyncCallback(object grammarObject) + { + Debug.WriteLine("Loading grammar asynchronously."); + + // Note all of the items called on Grammar are simple properties so we don't + // have any special locking even though this method could be called on different threads. + + Grammar grammar = (Grammar)grammarObject; + InternalGrammarData grammarData = grammar.InternalData; + + // Right now you can't unload a grammar while it is being loaded, so the state must still be being "Loading" + Debug.Assert(grammar.State == GrammarState.Loading); + Debug.Assert(grammar.Recognizer == this); + Debug.Assert(grammarData != null && grammarData._sapiGrammar != null); + + // Now load the grammar: + + // Keep track of any exceptions which we will store in the completed event args. + Exception exception = null; + try + { + // Take the lock here so if an app is updating properties on the grammar at this point on the main thread, + // then the value is pulled and sapi updated atomically. + // Note: This locks properties like Grammar.Enabled so if they are called while an async Grammar load is + // in progress then they will block. This is probably okay for System.Speech, and could be avoided + // by removing the actual call to load the grammar into sapi out of the lock. + lock (_grammarDataLock) + { + // The sapi grammar has already been created, so load the grammar data into SAPI: + LoadSapiGrammar(grammar, grammarData._sapiGrammar, + grammarData._grammarEnabled, grammarData._grammarWeight, grammarData._grammarPriority); + + // Successful load - set the state: + grammar.State = GrammarState.Loaded; + } + + Debug.WriteLine("Finished Loading grammar asynchronously."); + } + catch (Exception e) + { + exception = e; + } + finally + { + if (exception != null) + { + Debug.WriteLine("Failed to load grammar asynchronously."); + + // Need to do special logic to add grammar to collection but with LoadFailed state. + grammar.State = GrammarState.LoadFailed; + grammar.LoadException = exception; + // Wait until UnloadGrammar to release the sapi grammar object. + } + + // Always release reader lock so if RecognizeAsync wants to start it can do so + _waitForGrammarsToLoad.FinishOperation(); + + // Always fire completed event + _asyncWorkerUI.PostOperation(new WaitCallback(LoadGrammarAsyncCompletedCallback), grammarObject); + } + } + +#pragma warning restore 56500 + + // Method called by AsyncOperationManager on appropriate thread when async grammar loading completes. + private void LoadGrammarAsyncCompletedCallback(object grammarObject) + { + Debug.WriteLine("Raising LoadGrammarCompleted event."); + + Grammar grammar = (Grammar)grammarObject; + EventHandler loadGrammarCompletedHandler = LoadGrammarCompleted; + if (loadGrammarCompletedHandler != null) + { + // When a LoadGrammarAsync completes all we must do is raise the LoadGrammarCompleted event. + loadGrammarCompletedHandler(this, new LoadGrammarCompletedEventArgs(grammar, grammar.LoadException, false, null)); + } + } + + // Create a new sapi grammarId and SapiGrammar object. + // The algorithm starts at '1' and increments. + // Eventually the numbers wrap around so you'll end up at 0 etc. which is fine. + // We also check if a value is in use and then skip it. + private SapiGrammar CreateNewSapiGrammar(out ulong grammarId) + { + ulong initialGrammarIdValue = _currentGrammarId; + // No need to lock as enumerating _grammars on the main thread and only gets altered on the main thread + do + { + _currentGrammarId++; + + bool foundCollision = false; + lock (SapiRecognizer) + { + foreach (Grammar g in _grammars) + { + if (_currentGrammarId == g.InternalData._grammarId) + { + // This can only be hit if _currentGrammarId has wrapped around past 2^64. + foundCollision = true; + break; + } + } + } + if (!foundCollision) + { + SapiGrammar sapiGrammar = SapiContext.CreateGrammar(_currentGrammarId); + grammarId = _currentGrammarId; + return sapiGrammar; + } + } + while (_currentGrammarId != initialGrammarIdValue); + + // This is not a realistic scenario because you'd need to have 2^64 grammars loaded to hit this, but it removes at least + // a theoretical infinite loop. + throw new InvalidOperationException(SR.Get(SRID.SapiErrorTooManyGrammars)); + } + + // Do some basic parameter validation on a passed in Grammar + private void ValidateGrammar(Grammar grammar, params GrammarState[] validStates) + { + Helpers.ThrowIfNull(grammar, nameof(grammar)); + + // Check if grammar is in a valid state for the caller. + foreach (GrammarState state in validStates) + { + if (grammar.State == state) + { + // Grammar is in a valid state, but is this the right Recognizer? + if (grammar.State != GrammarState.Unloaded && grammar.Recognizer != this) + { + throw new InvalidOperationException(SR.Get(SRID.GrammarWrongRecognizer)); + } + + // Everything is fine - return. + return; + } + } + + // Grammar was not in correct state - produce exception. + switch (grammar.State) + { + case GrammarState.Unloaded: + throw new InvalidOperationException(SR.Get(SRID.GrammarNotLoaded)); + case GrammarState.Loading: + throw new InvalidOperationException(SR.Get(SRID.GrammarLoadingInProgress)); + case GrammarState.LoadFailed: + throw new InvalidOperationException(SR.Get(SRID.GrammarLoadFailed)); + case GrammarState.Loaded: + throw new InvalidOperationException(SR.Get(SRID.GrammarAlreadyLoaded)); + } + } + + private RecognitionResult InternalEmulateRecognize(string phrase, SpeechEmulationCompareFlags flag, bool useReco2, RecognizedWordUnit[] wordUnits) + { + RecognitionResult result = null; + bool completed = false; + EventHandler eventHandler = delegate (object sender, EmulateRecognizeCompletedEventArgs eventArgs) + { + result = eventArgs.Result; + completed = true; + }; + + EmulateRecognizeCompletedSync += eventHandler; + + try + { + _asyncWorkerUI.AsyncMode = false; + InternalEmulateRecognizeAsync(phrase, flag, useReco2, wordUnits); + do + { + _handlerWaitHandle.WaitOne(); + _asyncWorkerUI.ConsumeQueue(); + } while (!completed && !_disposed); + } + finally + { + EmulateRecognizeCompletedSync -= eventHandler; + _asyncWorkerUI.AsyncMode = true; + } + + return result; + } + + // Pass the Emulation information to SAPI + private void InternalEmulateRecognizeAsync(string phrase, SpeechEmulationCompareFlags flag, bool useReco2, RecognizedWordUnit[] wordUnits) + { + lock (SapiRecognizer) // Lock to protect _isRecognizing and _haveInputSource + { + if (_isRecognizing) + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerAlreadyRecognizing)); + } + + _isRecognizing = true; + _isEmulateRecognition = true; + } // Not recognizing so no events firing - can unlock now + + if (useReco2 || _supportsSapi53) + { + // Create the structure to pass the recognition engine. + IntPtr data; + GCHandle[] memHandles = null; + ISpPhrase iSpPhrase = null; + + if (wordUnits == null) + { + iSpPhrase = SPPHRASE.CreatePhraseFromText(phrase.Trim(), RecognizerInfo.Culture, out memHandles, out data); + } + else + { + iSpPhrase = SPPHRASE.CreatePhraseFromWordUnits(wordUnits, RecognizerInfo.Culture, out memHandles, out data); + } + + try + { + SAPIErrorCodes hr = SapiRecognizer.EmulateRecognition(iSpPhrase, (uint)(flag)); + if (hr != SAPIErrorCodes.S_OK) + { + EmulateRecognizedFailReportError(hr); + } + } + finally + { + foreach (GCHandle memHandle in memHandles) + { + memHandle.Free(); + } + Marshal.FreeCoTaskMem(data); + } + } + else + { + // Fast case + SAPIErrorCodes hr = SapiRecognizer.EmulateRecognition(phrase); + if (hr != SAPIErrorCodes.S_OK) + { + EmulateRecognizedFailReportError(hr); + } + } + } + + private void EmulateRecognizedFailReportError(SAPIErrorCodes hr) + { + _lastException = ExceptionFromSapiCreateRecognizerError(hr); + + // + // Do not fire the recognize completed event if we know that we will receive + // a recognition event eventually; as doing so will lead to premature completion + // of the recognition task without raising any recognition events. + // + + // + // We do not have recognition event for SP_NO_ACTIVE_RULE (thus should complete immediately), + // but we have (false) recognition for the other two SP_NO_PARSE_FOUND and S_FALSE. + // + if ((int)hr < 0 || hr == SAPIErrorCodes.SP_NO_RULE_ACTIVE) + { + FireEmulateRecognizeCompletedEvent(null, _lastException, true); + } + } + + // Set the desired rule to either the active or active_with_auto_pause state. + // This method is used when a grammar is first loaded, and if the PauseRecognizerOnRecognition property is changed. + private void ActivateRule(SapiGrammar sapiGrammar, Uri uri, string ruleName) + { + SPRULESTATE ruleState = _pauseRecognizerOnRecognition ? SPRULESTATE.SPRS_ACTIVE_WITH_AUTO_PAUSE : SPRULESTATE.SPRS_ACTIVE; + + SAPIErrorCodes errorCode; + if (Grammar.IsDictationGrammar(uri)) + { + errorCode = sapiGrammar.SetDictationState(ruleState); + } + else + { + errorCode = sapiGrammar.SetRuleState(ruleName, ruleState); + } + + if (errorCode == SAPIErrorCodes.SPERR_NOT_TOPLEVEL_RULE || errorCode == SAPIErrorCodes.SP_NO_RULES_TO_ACTIVATE) + { + if (uri == null) + { + if (string.IsNullOrEmpty(ruleName)) + { + throw new FormatException(SR.Get(SRID.RecognizerNoRootRuleToActivate)); + } + else + { + throw new ArgumentException(SR.Get(SRID.RecognizerRuleNotFoundStream, ruleName), nameof(ruleName)); + } + } + else + { + if (string.IsNullOrEmpty(ruleName)) + { + throw new FormatException(SR.Get(SRID.RecognizerNoRootRuleToActivate1, uri)); + } + else + { + throw new ArgumentException(SR.Get(SRID.RecognizerRuleNotFound, ruleName, uri), nameof(ruleName)); + } + } + } + + // We can proceed if the audio is not found as this call could be for emulation. + else if (errorCode != SAPIErrorCodes.SPERR_AUDIO_NOT_FOUND && errorCode < 0) + { + ThrowIfSapiErrorCode(errorCode); + throw new COMException(SR.Get(SRID.RecognizerRuleActivationFailed), (int)errorCode); + } + } + + // Method called on background thread {from RecognizeAsync} to start recognition process. +#pragma warning disable 56500 // Transferring exceptions to another thread + + private void RecognizeAsyncWaitForGrammarsToLoad(object unused) + { + Debug.WriteLine("Waiting for any pending grammar loads to complete."); + // First we must wait until all pending grammars have loaded. + // Once we have the lock can release immediately - there's no need to hold on to it + _waitForGrammarsToLoad.WaitForOperationsToFinish(); + + Exception exception = null; // Keep track of any error we need to throw + bool cancelled = false; // If you call cancel while grammars are loading we don't bother starting recognition. + + lock (SapiRecognizer) + { + foreach (Grammar grammar in _grammars) + { + // Note all of the items called on Grammar are simple properties so we don't + // have any special locking even though this method could be called on different threads. + + if (grammar.State == GrammarState.LoadFailed) + { + // Note: For now there's no special exception for when RecognizeAsync fails because a grammar load failed. + // Instead just use whatever grammar exception was fired. + Debug.WriteLine("Problem loading grammars."); + exception = grammar.LoadException; + break; + } + } + + Debug.Assert(_isRecognizing); + + // The app may have called RecognizeAsyncCancel by no so abort at this point and don't bother starting SAPI. + if (_isRecognizeCancelled) + { + Debug.WriteLine("Recognition cancelled while waiting for grammars to load."); + cancelled = true; + } + } + + // Now start the recognizer there was no exception and we are not cancelled. + if (exception == null && !cancelled) + { + try + { + if (!_isEmulateRecognition) + { + SapiRecognizer.SetRecoState(SPRECOSTATE.SPRST_ACTIVE_ALWAYS); + Debug.WriteLine("Grammar loads completed, recognition started."); + } + } + catch (COMException comException) + { + Debug.WriteLine("Problem starting recognition - sapi exception."); + exception = ExceptionFromSapiStreamError((SAPIErrorCodes)comException.ErrorCode); + } + catch (Exception fatalException) + { + Debug.WriteLine("Problem starting recognition - unknown exception."); + exception = fatalException; + } + } + + // If either an exception or the cancellation has occurred then we need to throw the RecognizeCompleted right away. + // Otherwise it will be thrown later when SAPI sends the EndStream event. + if (exception != null || cancelled) + { + RecognizeCompletedEventArgs eventArgs = new(null, false, false, false, TimeSpan.Zero, exception, cancelled, null); + _asyncWorkerUI.PostOperation(new WaitCallback(RecognizeAsyncWaitForGrammarsToLoadFailed), eventArgs); + } + } +#pragma warning restore 56500 + + // Method called on app thread model used to fire the RecognizeCompelted event args if recognition stopped prematurely + private void RecognizeAsyncWaitForGrammarsToLoadFailed(object eventArgs) + { + Debug.WriteLine("Firing RecognizeCompleted because recognition didn't start as expected."); + Debug.Assert(eventArgs != null); + + lock (SapiRecognizer) // Lock to protect _isRecognizing and _isRecognizeCancelled + { + // Might have got here because recognition was cancelled so reset flags. + Debug.Assert(_isRecognizing); + _isRecognizeCancelled = false; + _isRecognizing = false; + } + + // Now raise RecognizeCompleted event. + EventHandler recognizeCompletedHandler = RecognizeCompleted; + if (recognizeCompletedHandler != null) + { + recognizeCompletedHandler(this, (RecognizeCompletedEventArgs)eventArgs); + } + } + + // This method will be called asynchronously + private void SignalHandlerThread(object ignored) + { + if (_asyncWorkerUI.AsyncMode == false) + { + _handlerWaitHandle.Set(); + } + } + + // Main handler of sapi events. This method will be called asynchronously + private void DispatchEvents(object eventData) + { + lock (_thisObjectLock) + { + SpeechEvent speechEvent = eventData as SpeechEvent; + if (!_disposed && eventData != null) + { + switch (speechEvent.EventId) + { + case SPEVENTENUM.SPEI_START_SR_STREAM: + ProcessStartStreamEvent(); + break; + + case SPEVENTENUM.SPEI_PHRASE_START: + ProcessPhraseStartEvent(speechEvent); + break; + + case SPEVENTENUM.SPEI_SR_BOOKMARK: + ProcessBookmarkEvent(speechEvent); + break; + + case SPEVENTENUM.SPEI_HYPOTHESIS: + ProcessHypothesisEvent(speechEvent); + break; + + case SPEVENTENUM.SPEI_FALSE_RECOGNITION: + case SPEVENTENUM.SPEI_RECOGNITION: + ProcessRecognitionEvent(speechEvent); + break; + + case SPEVENTENUM.SPEI_RECO_OTHER_CONTEXT: + ProcessRecoOtherContextEvent(); + break; + + case SPEVENTENUM.SPEI_END_SR_STREAM: + ProcessEndStreamEvent(speechEvent); + break; + + case SPEVENTENUM.SPEI_INTERFERENCE: + ProcessInterferenceEvent((uint)speechEvent.LParam); + break; + + case SPEVENTENUM.SPEI_SR_AUDIO_LEVEL: + ProcessAudioLevelEvent((int)speechEvent.WParam); + break; + } + } + } + } + + private void ProcessStartStreamEvent() + { + lock (SapiRecognizer) + { + _audioState = AudioState.Silence; + } + + // Fire events + FireAudioStateChangedEvent(_audioState); + FireStateChangedEvent(RecognizerState.Listening); + + // Set the initial silence timeout running. + // We wait until this event in case there was some error that prevented the recognition from starting. + + TimeSpan initialSilenceTimeout = InitialSilenceTimeout; // This gets the value in a thread-safe manner. + + // Add bookmark at desired InitialSilence Timeout + if (_recognizeMode == RecognizeMode.Single && initialSilenceTimeout != TimeSpan.Zero) + { + if (_supportsSapi53) + { + SapiContext.Bookmark(SPBOOKMARKOPTIONS.SPBO_TIME_UNITS | SPBOOKMARKOPTIONS.SPBO_PAUSE, + (ulong)initialSilenceTimeout.Ticks, new IntPtr((int)_initialSilenceBookmarkId)); + } + else + { + SapiContext.Bookmark(SPBOOKMARKOPTIONS.SPBO_PAUSE, + TimeSpanToStreamPosition(initialSilenceTimeout), new IntPtr((int)_initialSilenceBookmarkId)); + } + _detectingInitialSilenceTimeout = true; + } + } + + private void ProcessPhraseStartEvent(SpeechEvent speechEvent) + { + // A phrase start event should be followed by a Recognition or False Recognition event + _isWaitingForRecognition = true; + + lock (SapiRecognizer) + { + _audioState = AudioState.Speech; + } + FireAudioStateChangedEvent(_audioState); + + // Set the babble timeout running. + + // Cancel any InitialSilenceTimeout detection. + _detectingInitialSilenceTimeout = false; + + TimeSpan babbleTimeout = BabbleTimeout; // This gets the value in a thread-safe manner. + + // Add bookmark at BabbleTimeout + if (_recognizeMode == RecognizeMode.Single && babbleTimeout != TimeSpan.Zero) + { + // Don't make this a pausing bookmark or it will have to wait for the engine to reach a sync point ... + if (_supportsSapi53) + { + SapiContext.Bookmark(SPBOOKMARKOPTIONS.SPBO_TIME_UNITS, + (ulong)((babbleTimeout + speechEvent.AudioPosition).Ticks), new IntPtr((int)_babbleBookmarkId)); + } + else + { + SapiContext.Bookmark(SPBOOKMARKOPTIONS.SPBO_NONE, + TimeSpanToStreamPosition(babbleTimeout) + speechEvent.AudioStreamOffset, new IntPtr((int)_babbleBookmarkId)); + } + _detectingBabbleTimeout = true; + } + + // Fire the SpeechDetected event. + FireSpeechDetectedEvent(speechEvent.AudioPosition); + } + + private void ProcessBookmarkEvent(SpeechEvent speechEvent) + { + // A bookmark can either be triggered from a timeout, + // in which case the recognition process is stopped; + // or from a call to RequestRecognizerUpdate, in + // which case the RecognizerUpdateReached event is raised. + + uint bookmarkId = (uint)speechEvent.LParam; + + // We always call Resume even on error so have a try - finally block; + try + { + if (bookmarkId == _initialSilenceBookmarkId) + { + if (_detectingInitialSilenceTimeout) // If a phrase start has already happened we still get the bookmark but should ignore it. + { + EndRecognitionWithTimeout(); + } + } + else if (bookmarkId == _babbleBookmarkId) + { + // If a phrase start has already happened we still get the bookmark but should ignore it. + // Similarly don't ever fire both timeouts. + if (_detectingBabbleTimeout && !_initialSilenceTimeoutReached) + { + // Otherwise set the flag and cancel the recognition. + _babbleTimeoutReached = true; + SapiRecognizer.SetRecoState(SPRECOSTATE.SPRST_INACTIVE_WITH_PURGE); + } + } + else // Not a timeout so a real request to pause the engine + { + object userToken = GetBookmarkItemAndRemove(bookmarkId); + + EventHandler updateHandler = RecognizerUpdateReached; + if (updateHandler != null) + { + updateHandler(this, new RecognizerUpdateReachedEventArgs(userToken, speechEvent.AudioPosition)); + } + } + } + catch (COMException e) + { + throw ExceptionFromSapiCreateRecognizerError(e); + } + finally + { + // Always want to call Resume or we can hang the engine in the pause state. + // Currently all bookmarks pause but we check anyway for safety. + if (((SPRECOEVENTFLAGS)speechEvent.WParam & SPRECOEVENTFLAGS.SPREF_AutoPause) != 0) + { + SapiContext.Resume(); + } + } + } + + private void ProcessHypothesisEvent(SpeechEvent speechEvent) + { + RecognitionResult result = CreateRecognitionResult(speechEvent); + + bool enabled; + lock (SapiRecognizer) // Lock to protect _grammarEnabled + { + enabled = _enabled; + } + + // If the result corresponds to a real, active grammar (result.Grammar != null), + // And the Enabled property is set, + // then proceed and raise the event. + // Otherwise, the Grammar has been unloaded or deactivated so skip the event. + if (result.Grammar != null && result.Grammar.Enabled && enabled) + { + Debug.Assert(result.Grammar.State == GrammarState.Loaded); + + // Fire the hypothesis event. + FireSpeechHypothesizedEvent(result); + } + } + + private void ProcessRecognitionEvent(SpeechEvent speechEvent) + { + // First disable timeouts. + _detectingInitialSilenceTimeout = false; + _detectingBabbleTimeout = false; + bool isRecognizeCancelled = true; + bool isEmulate = (speechEvent.WParam & (ulong)SPRECOEVENTFLAGS.SPREF_Emulated) != 0; + + try + { + RecognitionResult result = CreateRecognitionResult(speechEvent); + + bool enabled; + lock (SapiRecognizer) // Lock to protect _grammarEnabled, _isRecognizeCancelled, and _audioStatus. + { + _audioState = AudioState.Silence; + isRecognizeCancelled = _isRecognizeCancelled; + enabled = _enabled; + } + + FireAudioStateChangedEvent(_audioState); + + // If the result corresponds to a real, active grammar (result.Grammar != null), + // Or the result corresponds to an event which belongs to no grammar (result.GrammarId == 0), + // And the Enabled property is set, + // then proceed and raise the event. + // Otherwise, the Grammar has been unloaded or deactivated so skip the event. + // Note: this doesn't absolutely guarantee an event won't be fired after the grammar is unloaded + // - there's a small window after this check is done and before the event fires where the grammar could get + // unloaded. To fix this would require more strict locking here. + if (((result.Grammar != null && result.Grammar.Enabled) || + (speechEvent.EventId == SPEVENTENUM.SPEI_FALSE_RECOGNITION && result.GrammarId == 0)) && + enabled) + { + if (speechEvent.EventId == SPEVENTENUM.SPEI_RECOGNITION) + { + // Remember the last result so we can fire it again in the RecognitionCompleted event. + // Note this is only done for Recognition, not for a rejected Recognition. + _lastResult = result; + + // Fire the recognition on the grammar. + SpeechRecognizedEventArgs recognitionEventArgs = new(result); + result.Grammar.OnRecognitionInternal(recognitionEventArgs); + + // Fire the recognition on the recognizer. + FireSpeechRecognizedEvent(recognitionEventArgs); + } + else + { + // Although we send a result in RecognitionRejected event, we would want a null + // result in RecognitionCompleted event. + _lastResult = null; + + // SPEVENTENUM.SPEI_FALSE_RECOGNITION + // Fire the event but if SAPI will fire an empty false recognition after each timeout + // or when the recognition has been shut off. Don't report these events since then don't contain useful info. + if (result.GrammarId != 0 || !(_babbleTimeoutReached || isRecognizeCancelled)) + { + // Fire the rejected recognition on the recognizer. + FireSpeechRecognitionRejectedEvent(result); + } + } + } + // else Grammar has already been unloaded or disabled - so don't fire result + + } + finally // Even if event handler throws we should call this + { + if (_recognizeMode == RecognizeMode.Single) + { + // Always stop recognizer after each recognition or false recognition in Automatic mode. + // - Same as RecognizeAsyncCancel but don't want to set _isRecognizeCancelled flag; + try + { + SapiRecognizer.SetRecoState(SPRECOSTATE.SPRST_INACTIVE_WITH_PURGE); + } + catch (COMException e) + { + throw ExceptionFromSapiCreateRecognizerError(e); + } + } + + if (((SPRECOEVENTFLAGS)speechEvent.WParam & SPRECOEVENTFLAGS.SPREF_AutoPause) != 0) + { + SapiContext.Resume(); + } + } + + // + // Set a flag so we will fire recognition completed event when we receive SR_END_STREAM. + // + // In the inproc case, we will not be able to do simultaneous recognition, so this is + // the recognition we are waiting for. + // In the shared case, we can do emulation during recognition, but we only wait for the + // emulate result. + // + if (_inproc || isEmulate) + { + _isWaitingForRecognition = false; + } + if (isEmulate && !_inproc) + { + // Fire the EmulateRecognizeCompleted event + FireEmulateRecognizeCompletedEvent(_lastResult, _lastException, isRecognizeCancelled); + } + } + + private void ProcessRecoOtherContextEvent() + { + if (_isEmulateRecognition && !_inproc) + { + // Fire the EmulateRecognizeCompleted event + FireEmulateRecognizeCompletedEvent(_lastResult, _lastException, false); + } + + lock (SapiRecognizer) + { + _audioState = AudioState.Silence; + } + FireAudioStateChangedEvent(_audioState); + } + + private void ProcessEndStreamEvent(SpeechEvent speechEvent) + { + // + // Emulation on SAPI5.1 can send bogus end stream events before a recognition + // + if (!_supportsSapi53 && _isEmulateRecognition && _isWaitingForRecognition) + { + return; + } + + // All queued bookmarks can be removed now. + // Don't reset with EmulatedResults - because you can Emulate during a recognition {in SpeechRecognizer}, + // this means multiple EndStreamEvents can be fired together which confuses the BookmarkTable clean-up. + if (((SPENDSRSTREAMFLAGS)speechEvent.WParam & SPENDSRSTREAMFLAGS.SPESF_EMULATED) == 0) + { + ResetBookmarkTable(); + } + + // Remember variables we need later. + bool initialSilenceTimeoutReached = _initialSilenceTimeoutReached; + bool babbleTimeoutReached = _babbleTimeoutReached; + + RecognitionResult lastResult = _lastResult; + Exception lastException = _lastException; + + // Reset all variables so you can restart recognition immediately (from within RecognizeCompleted event handler). + _initialSilenceTimeoutReached = false; + _babbleTimeoutReached = false; + _detectingInitialSilenceTimeout = false; + _detectingBabbleTimeout = false; + _lastResult = null; + _lastException = null; + + bool isStreamReleased = false; + bool isRecognizeCancelled; + lock (SapiRecognizer) // Lock to protect _isRecognizing, _isRecognizeCancelled, _haveInputSource, _audioFormat, _audioStatus. + { + _audioState = AudioState.Stopped; + + if (((SPENDSRSTREAMFLAGS)speechEvent.WParam & SPENDSRSTREAMFLAGS.SPESF_STREAM_RELEASED) == SPENDSRSTREAMFLAGS.SPESF_STREAM_RELEASED) + { + isStreamReleased = true; + _haveInputSource = false; + } + + isRecognizeCancelled = _isRecognizeCancelled; + + _isRecognizeCancelled = false; + _isRecognizing = false; + } + + Debug.Assert(!(initialSilenceTimeoutReached && babbleTimeoutReached)); // Both timeouts should not be set + FireAudioStateChangedEvent(_audioState); + + // Fire the RecognizeCompleted event. (Except in the emulation case) + if (!_isEmulateRecognition) + { + FireRecognizeCompletedEvent(lastResult, initialSilenceTimeoutReached, babbleTimeoutReached, isStreamReleased, speechEvent.AudioPosition, (speechEvent.LParam == 0) ? null : ExceptionFromSapiStreamError((SAPIErrorCodes)speechEvent.LParam), isRecognizeCancelled); + } + else + { + // + // followed by a recognition/false recognition event. But it is not the case at this point as we + // actually receive multiple SR_END_STREAM events for a single emulation, and the first SR_END_STREAM + // is not proceeded by a recognition event. Until we found the problem in SAPI, this is only a workaround + // + + // Fire the EmulateRecognizeCompleted event + // Don't reset with EmulatedResults - because you can Emulate during a recognition {in SpeechRecognizer}, + // this means multiple EndStreamEvents can be fired together which confuses the BookmarkTable clean-up. + + FireEmulateRecognizeCompletedEvent(lastResult, (speechEvent.LParam == 0) ? lastException : ExceptionFromSapiStreamError((SAPIErrorCodes)speechEvent.LParam), isRecognizeCancelled); + } + + // Fire state changed event + FireStateChangedEvent(RecognizerState.Stopped); + } + + private void ProcessInterferenceEvent(uint interference) + { + // Don't actually read the value here because we get it in a call to GetStatus later. + FireSignalProblemOccurredEvent((AudioSignalProblem)interference); + } + + private void ProcessAudioLevelEvent(int audioLevel) + { + // Don't actually read the value here because we get it in a call to GetStatus later. + FireAudioLevelUpdatedEvent(audioLevel); + } + + private void EndRecognitionWithTimeout() + { + _initialSilenceTimeoutReached = true; + + // Got a timeout so cancel Recognition. + // - Same as RecognizeAsyncCancel but don't want to set _isRecognizeCancelled flag; + + SapiRecognizer.SetRecoState(SPRECOSTATE.SPRST_INACTIVE_WITH_PURGE); + + // Note we don't directly raise a SpeechRecognitionRejected event in this scenario. + // However SAPI should always raise a FALSE_RECOGNITION after canceling. + } + + private RecognitionResult CreateRecognitionResult(SpeechEvent speechEvent) + { + // Get the sapi result + ISpRecoResult sapiResult = (ISpRecoResult)Marshal.GetObjectForIUnknown((IntPtr)speechEvent.LParam); + RecognitionResult recoResult = null; + + // Get the serialized unmanaged blob and then delete the sapi result + IntPtr coMemSerializeBlob; + sapiResult.Serialize(out coMemSerializeBlob); + byte[] serializedBlob = null; + + try + { + // Convert the unmanaged blob to managed and delete the unmanaged memory + uint sizeOfSerializedBlob = (uint)Marshal.ReadInt32(coMemSerializeBlob); + serializedBlob = new byte[sizeOfSerializedBlob]; + Marshal.Copy(coMemSerializeBlob, serializedBlob, 0, (int)sizeOfSerializedBlob); + } + finally + { + Marshal.FreeCoTaskMem(coMemSerializeBlob); + } + // Now create a RecognitionResult. + // For normal recognitions and false recognitions this will have all the information in it. + // For a false recognition with no phrase the result should still be valid, just empty. + recoResult = new RecognitionResult(this, sapiResult, serializedBlob, MaxAlternates); + + return recoResult; + } + + // Reset the AudioFormat property - needed when the format might have changed. + // Also update the EventNotify so it can calculate event AudioPositions from byte offsets correctly. + private void UpdateAudioFormat(SpeechAudioFormatInfo audioFormat) + { + lock (SapiRecognizer) // Lock to protect _audioFormat + { + // This code could be skipped for SAPI 5.3 - just reset _audioFormat and _eventNotify.AudioFormat to null. + // But for consistency do the same in both scenarios. + try + { + _audioFormat = GetSapiAudioFormat(); + } + catch (ArgumentException) + { + _audioFormat = audioFormat; + } + _eventNotify.AudioFormat = _audioFormat; // Update EventNotify so subsequent events get correct AudioPosition. + } + } + + // Calls through to Sapi to get the current engine audio format. + private SpeechAudioFormatInfo GetSapiAudioFormat() + { + IntPtr waveFormatPtr = IntPtr.Zero; + SpeechAudioFormatInfo formatInfo = null; + bool hasWaveFormat = false; + try + { + try + { + // Get the format for that engine + waveFormatPtr = SapiRecognizer.GetFormat(SPSTREAMFORMATTYPE.SPWF_SRENGINE); + if (waveFormatPtr != IntPtr.Zero) + { + if ((formatInfo = AudioFormatConverter.ToSpeechAudioFormatInfo(waveFormatPtr)) != null) + { + hasWaveFormat = true; + } + } + } + catch (COMException) + { + } + + // If for some reason the GetFormat fails OR we can't get a wave format, assume 16 Kb, 16 bits, Audio. + if (!hasWaveFormat) + { + formatInfo = new SpeechAudioFormatInfo(16000, AudioBitsPerSample.Sixteen, AudioChannel.Mono); + } + } + finally + { + if (waveFormatPtr != IntPtr.Zero) + { + Marshal.FreeCoTaskMem(waveFormatPtr); + } + } + return formatInfo; + } + + // Convert a TimeSpan such as initialSilenceTimeout to a byte offset using the + // current audio format. This should only needed if not using SAPI 5.3. + private ulong TimeSpanToStreamPosition(TimeSpan time) + { + return (ulong)(time.Ticks * AudioFormat.AverageBytesPerSecond) / TimeSpan.TicksPerSecond; + } + + // Converts COM errors returned by SPEI_END_SR_STREAM or SetRecoState to an appropriate .NET exception. + private static void ThrowIfSapiErrorCode(SAPIErrorCodes errorCode) + { + SRID srid = SapiConstants.SapiErrorCode2SRID(errorCode); + if ((int)srid >= 0) + { + throw new InvalidOperationException(SR.Get(srid)); + } + } + + // Converts COM errors returned by SPEI_END_SR_STREAM or SetRecoState to an appropriate .NET exception. + private static Exception ExceptionFromSapiStreamError(SAPIErrorCodes errorCode) + { + SRID srid = SapiConstants.SapiErrorCode2SRID(errorCode); + if ((int)srid >= 0) + { + return new InvalidOperationException(SR.Get(srid)); + } + else + { + return new COMException(SR.Get(SRID.AudioDeviceInternalError), (int)errorCode); + } + } + + // Convert the .NET CompareOptions into the SAPI SpeechEmulationCompareFlags. + private static SpeechEmulationCompareFlags ConvertCompareOptions(CompareOptions compareOptions) + { + CompareOptions handledOptions = CompareOptions.IgnoreCase | CompareOptions.OrdinalIgnoreCase | CompareOptions.IgnoreKanaType | CompareOptions.IgnoreWidth | CompareOptions.Ordinal; + SpeechEmulationCompareFlags flags = 0; + if ((compareOptions & CompareOptions.IgnoreCase) != 0 || (compareOptions & CompareOptions.OrdinalIgnoreCase) != 0) + { + flags |= SpeechEmulationCompareFlags.SECFIgnoreCase; + } + if ((compareOptions & CompareOptions.IgnoreKanaType) != 0) + { + flags |= SpeechEmulationCompareFlags.SECFIgnoreKanaType; + } + if ((compareOptions & CompareOptions.IgnoreWidth) != 0) + { + flags |= SpeechEmulationCompareFlags.SECFIgnoreWidth; + } + if ((compareOptions & ~handledOptions) != 0) + { + throw new NotSupportedException(SR.Get(SRID.NotSupportedWithThisVersionOfSAPICompareOption)); + } + return flags; + } + + // Methods to add and remove SAPI event interests. + + internal void AddEventInterest(ulong interest) + { + if ((_eventInterest & interest) != interest) + { + _eventInterest |= interest; + SapiContext.SetInterest(_eventInterest, _eventInterest); + } + } + + internal void RemoveEventInterest(ulong interest) + { + if ((_eventInterest & interest) != 0) + { + _eventInterest &= ~interest; + SapiContext.SetInterest(_eventInterest, _eventInterest); + } + } + + // Bookmark related methods: + // A dictionary is used to map between userToken objects supplied to the RequestRecognizerUpdate event + // and the sapi bookmark lparam value. + // The uint key from the dictionary is stored in the sapi event and used to recover the userToken reference. + // The following methods encapsulate this functionality. + // The bookmarks used for the InitialSilenceTimeout and BabbleTimeout are also stored in this table. + // To prevent the dictionary growing too much, each bookmark event removes itself from the hashtable, the end stream event clears the table. + + private uint AddBookmarkItem(object userToken) + { + uint bookmarkId = 0; + if (userToken != null) // Null item always maps to zero id. + { + lock (_bookmarkTable) // Lock to protect _nextBookmarkId and _bookmarkTable + { + bookmarkId = _nextBookmarkId++; // Find the next bookmark id to use. + + if (_nextBookmarkId == 0) + { + // As long as there are not 2^32 outstanding bookmarks this will work fine. + // There's also a case where the bookmark table doesn't completely reset + // during ResetBookmarkTable but this would require 2^32 bookmarks also. + throw new InvalidOperationException(SR.Get(SRID.RecognizerUpdateTableTooLarge)); + } + + _bookmarkTable[unchecked((int)bookmarkId)] = userToken; + Debug.WriteLine("Added bookmark: " + bookmarkId + " " + userToken); + } + } + return bookmarkId; + } + + private void ResetBookmarkTable() + { + lock (_bookmarkTable) // Lock to protect _nextBookmarkId and _bookmarkTable + { + // Don't delete every bookmark, because there's an edge case where a bookmark, + // can be requested just before the EndStream event and be fired just after. + // So only clear the table up to the max value from the PREVIOUS recognition. + + // There's no way to enumerate through the Dictionary while deleting some keys. + // So make a copy of the keys first. + if (_bookmarkTable.Count > 0) + { + int[] keysArray = new int[_bookmarkTable.Count]; + _bookmarkTable.Keys.CopyTo(keysArray, 0); + for (int i = 0; i < keysArray.Length; i++) + { + if (keysArray[i] <= _prevMaxBookmarkId) + { + _bookmarkTable.Remove(keysArray[i]); + } + } + } + + if (_bookmarkTable.Count == 0) + { + // Now reset the _nextBookmarkId. + // Remember that several values are predefined and must not be used, so reset to _intialBookmarkId + _nextBookmarkId = _firstUnusedBookmarkId; + _prevMaxBookmarkId = _firstUnusedBookmarkId - 1; + } + else + { + // If there's still bookmarks in the table that might still fire, + // then update _prevMaxBookmarkId. At the end of the next recognition they will be deleted. + _prevMaxBookmarkId = _nextBookmarkId - 1; + } + //Debug.WriteLine ("Reset bookmarks: count=" + _bookmarkTable.Count + " max=" + _prevMaxBookmarkId + " next=" + _nextBookmarkId); + } + } + + private object GetBookmarkItemAndRemove(uint bookmarkId) + { + object userToken = null; + if (bookmarkId != 0) // Zero is a special case where the lookup table is bypassed. + { + lock (_bookmarkTable) // Lock to protect _bookmarkTable + { + int id = unchecked((int)bookmarkId); + userToken = _bookmarkTable[id]; + _bookmarkTable.Remove(id); + Debug.WriteLine("Fired bookmark: " + bookmarkId + " " + userToken); + } + } + return userToken; + } + + private void CloseCachedInputStream() + { + if (_inputStream != null) + { + _inputStream.Close(); + _inputStream = null; + } + } + + /// + /// Fire audio status changed event + /// + private void FireAudioStateChangedEvent(AudioState audioState) + { + EventHandler audioStateChangedHandler = _audioStateChangedDelegate; + if (audioStateChangedHandler != null) + { + _asyncWorkerUI.PostOperation(audioStateChangedHandler, this, new AudioStateChangedEventArgs(audioState)); + } + } + + /// + /// Fire audio status changed event + /// + private void FireSignalProblemOccurredEvent(AudioSignalProblem audioSignalProblem) + { + EventHandler audioSignalProblemOccuredHandler = _audioSignalProblemOccurredDelegate; + if (audioSignalProblemOccuredHandler != null) + { + TimeSpan recognizerPosition = TimeSpan.Zero; + TimeSpan audioPosition = TimeSpan.Zero; + + try + { + // These calls do not wait for engine sync point so should be fast. + SPRECOGNIZERSTATUS recoStatus; + recoStatus = SapiRecognizer.GetStatus(); + + lock (SapiRecognizer) // Lock to protect _audioStatus. + { + SpeechAudioFormatInfo audioFormat = AudioFormat; + audioPosition = audioFormat.AverageBytesPerSecond > 0 ? new TimeSpan((long)((recoStatus.AudioStatus.CurDevicePos * TimeSpan.TicksPerSecond) / (ulong)audioFormat.AverageBytesPerSecond)) : TimeSpan.Zero; + recognizerPosition = new TimeSpan((long)recoStatus.ullRecognitionStreamTime); + } + } + catch (COMException e) + { + throw ExceptionFromSapiCreateRecognizerError(e); + } + + _asyncWorkerUI.PostOperation(audioSignalProblemOccuredHandler, this, new AudioSignalProblemOccurredEventArgs(audioSignalProblem, AudioLevel, audioPosition, recognizerPosition)); + } + } + + /// + /// Fire audio status changed event + /// + private void FireAudioLevelUpdatedEvent(int audioLevel) + { + EventHandler audioLevelUpdatedHandler = _audioLevelUpdatedDelegate; + if (audioLevelUpdatedHandler != null) + { + _asyncWorkerUI.PostOperation(audioLevelUpdatedHandler, this, new AudioLevelUpdatedEventArgs(audioLevel)); + } + } + + private void FireStateChangedEvent(RecognizerState recognizerState) + { + // Fire state changed event + EventHandler stateChangedHandler = StateChanged; + if (stateChangedHandler != null) + { + _asyncWorkerUI.PostOperation(stateChangedHandler, this, new StateChangedEventArgs(recognizerState)); + } + } + /// + /// Fire the SpeechDetected event. + /// + private void FireSpeechDetectedEvent(TimeSpan audioPosition) + { + EventHandler speechDetectedHandler = SpeechDetected; + if (speechDetectedHandler != null) + { + _asyncWorkerUI.PostOperation(speechDetectedHandler, this, new SpeechDetectedEventArgs(audioPosition)); + } + } + + /// + /// Fire the hypothesis event. + /// + private void FireSpeechHypothesizedEvent(RecognitionResult result) + { + EventHandler speechHypothesizedHandler = _speechHypothesizedDelegate; + if (speechHypothesizedHandler != null) + { + _asyncWorkerUI.PostOperation(speechHypothesizedHandler, this, new SpeechHypothesizedEventArgs(result)); + } + } + + /// + /// Fire the rejected recognition on the recognizer. + /// + private void FireSpeechRecognitionRejectedEvent(RecognitionResult result) + { + EventHandler recognitionHandler = SpeechRecognitionRejected; + SpeechRecognitionRejectedEventArgs recognitionEventArgs = new(result); + if (recognitionHandler != null) + { + _asyncWorkerUI.PostOperation(recognitionHandler, this, recognitionEventArgs); + } + } + + /// + /// Fire the recognition on the grammar. + /// + private void FireSpeechRecognizedEvent(SpeechRecognizedEventArgs recognitionEventArgs) + { + EventHandler recognitionHandler = SpeechRecognized; + if (recognitionHandler != null) + { + _asyncWorkerUI.PostOperation(recognitionHandler, this, recognitionEventArgs); + } + } + + /// + /// Fire the recognition completed event. + /// + private void FireRecognizeCompletedEvent(RecognitionResult result, bool initialSilenceTimeoutReached, bool babbleTimeoutReached, bool isStreamReleased, TimeSpan audioPosition, Exception exception, bool isRecognizeCancelled) + { + // In the synchronous case, fire the private event + EventHandler recognizeCompletedHandler = RecognizeCompletedSync; + if (recognizeCompletedHandler == null) + { + // If not in sync mode, fire the public event. + recognizeCompletedHandler = RecognizeCompleted; + } + + // Fire the completed event + if (recognizeCompletedHandler != null) + { + _asyncWorkerUI.PostOperation(recognizeCompletedHandler, this, new RecognizeCompletedEventArgs(result, initialSilenceTimeoutReached, babbleTimeoutReached, + isStreamReleased, audioPosition, exception, isRecognizeCancelled, null)); + } + } + + /// + /// Fire the emulate completed event. + /// + private void FireEmulateRecognizeCompletedEvent(RecognitionResult result, Exception exception, bool isRecognizeCancelled) + { + EventHandler emulateRecognizeCompletedHandler; + lock (SapiRecognizer) + { + // In the synchronous case, fire the private event + emulateRecognizeCompletedHandler = EmulateRecognizeCompletedSync; + if (emulateRecognizeCompletedHandler == null) + { + // If not in sync mode, fire the public event. + emulateRecognizeCompletedHandler = EmulateRecognizeCompleted; + } + _lastResult = null; + _lastException = null; + _isEmulateRecognition = false; + _isRecognizing = false; + + _isWaitingForRecognition = false; + } + + if (emulateRecognizeCompletedHandler != null) + { + _asyncWorkerUI.PostOperation(emulateRecognizeCompletedHandler, this, new EmulateRecognizeCompletedEventArgs(result, exception, isRecognizeCancelled, null)); + } + } + + private static void CheckGrammarOptionsOnSapi51(Grammar grammar) + { + SRID messageId = (SRID)(-1); + if (grammar.BaseUri != null && !grammar.IsSrgsDocument) + { + messageId = SRID.NotSupportedWithThisVersionOfSAPIBaseUri; + } + else if (grammar.IsStg || grammar.Sapi53Only) + { + messageId = SRID.NotSupportedWithThisVersionOfSAPITagFormat; + } + if (messageId != (SRID)(-1)) + { + throw new NotSupportedException(SR.Get(messageId)); + } + } + + #endregion + + #region Private Fields + + private List _grammars; + private ReadOnlyCollection _readOnlyGrammars; + + private RecognizerInfo _recognizerInfo; + private bool _disposed; + + // Internal Id incremented and passed to SAPI each time a grammar is created + private ulong _currentGrammarId; + + // Associated sapi interfaces + private SapiRecoContext _sapiContext; + private SapiRecognizer _sapiRecognizer; + private bool _supportsSapi53; + + private EventNotify _eventNotify; + private ulong _eventInterest; + + private EventHandler _audioSignalProblemOccurredDelegate; + private EventHandler _audioLevelUpdatedDelegate; + private EventHandler _audioStateChangedDelegate; + private EventHandler _speechHypothesizedDelegate; + + private bool _enabled = true; // Used by SpeechRecognizer to globally deactivate grammars. + + private int _maxAlternates; + internal AudioState _audioState; + private SpeechAudioFormatInfo _audioFormat; + + private RecognizeMode _recognizeMode = RecognizeMode.Multiple; // Default for SpeechRecognizer, set explicitly on SpeechRecognitionEngine + private bool _isRecognizeCancelled; + private bool _isRecognizing; + private bool _isEmulateRecognition; // The end of stream event is not fire on error for emulate recognition in SAPI 5.1 + private bool _isWaitingForRecognition; + + private RecognitionResult _lastResult; // Temporarily store last result but always set to null once recognition completes + private Exception _lastException; // Temporarily store last exception but always set to null once recognition completes + + // Means that the recognizer will be paused after each recognition while the SpeechRecognized event is firing. + // This is always on for the SpeechRecognitionEngine but off by default for the SpeechRecognizer. + private bool _pauseRecognizerOnRecognition = true; + + private bool _detectingInitialSilenceTimeout; + private bool _detectingBabbleTimeout; + private bool _initialSilenceTimeoutReached; + private bool _babbleTimeoutReached; + private TimeSpan _initialSilenceTimeout; + private TimeSpan _babbleTimeout; + + internal bool _haveInputSource; // Tracks if there's an input stream set or not - only used on SpeechRecognitionEngine. + private Stream _inputStream; // track the input stream open if it has been opened by this object + + // Dictionary used to map between sapi bookmark ids and RequestRecognizerUpdate userToken values. + private Dictionary _bookmarkTable = new(); + private uint _nextBookmarkId = _firstUnusedBookmarkId; + private uint _prevMaxBookmarkId = _firstUnusedBookmarkId - 1; + + // Lock used to wait for all pending async grammar loads to complete before starting recognition. + private OperationLock _waitForGrammarsToLoad = new(); + // Lock used to protect properties on the Grammar {Enabled, Weight etc.} from being changed while an async grammar load is in progress. + private object _grammarDataLock = new(); + + // Preset bookmark values. + private const uint _nullBookmarkId = 0; + private const uint _initialSilenceBookmarkId = _nullBookmarkId + 1; // 1 + private const uint _babbleBookmarkId = _initialSilenceBookmarkId + 1; // 2 + private const uint _firstUnusedBookmarkId = _babbleBookmarkId + 1; // 3 + + private AsyncSerializedWorker _asyncWorker, _asyncWorkerUI; + private AutoResetEvent _handlerWaitHandle = new(false); + + private object _thisObjectLock = new(); + + private Exception _loadException; + private Grammar _topLevel; + + private bool _inproc; + + // private event used to hook up the SpeechRecognitionEngine RecognizeCompleted event. + private event EventHandler RecognizeCompletedSync; + private event EventHandler EmulateRecognizeCompletedSync; + + private TimeSpan _defaultTimeout = TimeSpan.FromSeconds(30); + + private RecognizerBaseThunk _recoThunk; + #endregion + + private class RecognizerBaseThunk : ISpGrammarResourceLoader + { + internal RecognizerBaseThunk(RecognizerBase recognizer) + { + _recognizerRef = new WeakReference(recognizer); + } + + internal RecognizerBase Recognizer + { + get + { + return (RecognizerBase)_recognizerRef.Target; + } + } + + /// + /// Called to load a grammar and all of its dependent rule refs. + /// + /// Returns the CFG data for a given file and builds a tree of rule ref dependencies. + /// + int ISpGrammarResourceLoader.LoadResource(string bstrResourceUri, bool fAlwaysReload, out IStream pStream, ref string pbstrMIMEType, ref short pfModified, ref string pbstrRedirectUrl) + { + return ((ISpGrammarResourceLoader)Recognizer).LoadResource(bstrResourceUri, fAlwaysReload, out pStream, ref pbstrMIMEType, ref pfModified, ref pbstrRedirectUrl); + } + + /// + /// Unused + /// + string ISpGrammarResourceLoader.GetLocalCopy(Uri resourcePath, out string mimeType, out Uri redirectUrl) + { + return ((ISpGrammarResourceLoader)Recognizer).GetLocalCopy(resourcePath, out mimeType, out redirectUrl); + } + + /// + /// Unused + /// + void ISpGrammarResourceLoader.ReleaseLocalCopy(string path) + { + ((ISpGrammarResourceLoader)Recognizer).ReleaseLocalCopy(path); + } + + private WeakReference _recognizerRef; + } + } + + // Internal class used to encapsulate all the additional data the RecognizerBase needs about a Grammar. + // This is stored in the Grammar.InternalData property. + internal class InternalGrammarData + { + #region Constructors + + // Keep a copy of enabled, weight and priority because there's a race condition between reading the values from the Grammar + // to initially call SetSapiGrammarProperties and an app setting a property on the Grammar at the same time. + // Thus these copied values are taken under a lock and used to update sapi. + // This is to avoid having a lock which spans both the Grammar and Recognizer which would be awkward. + internal InternalGrammarData(ulong grammarId, SapiGrammar sapiGrammar, bool enabled, float weight, int priority) + { + _grammarId = grammarId; + _sapiGrammar = sapiGrammar; + _grammarEnabled = enabled; + _grammarWeight = weight; + _grammarPriority = priority; + } + + #endregion + + #region Internal Fields + + internal ulong _grammarId; // Id passed to SAPI's CreateGrammar call and returned in result. + internal SapiGrammar _sapiGrammar; + internal bool _grammarEnabled; + internal float _grammarWeight; + internal int _grammarPriority; + + #endregion + } + + // Simple class that keeps track of multiple threads performing an operation, and then allows another thread + // to wait until all operations have completed. This is similar in concept to a ReaderWriterLock, except + // in the ReaderWriterLock all Acquire/Releases must be on the same threads, where here StartOperation and FinishOperation + // can be on different threads. + // This is used in async grammar loading - all LoadGrammarAsync starts an activity, and then later they finished + // (on a different thread). WaitForOperationsToFinish is called by RecognizeAsync to wait for all loads to finish + // before starting recognition. + internal class OperationLock : IDisposable + { + public void Dispose() + { + _event.Close(); + GC.SuppressFinalize(this); + } + + internal void StartOperation() + { + lock (_thisObjectLock) // Not a publicly exposed class so okay to lock. + { + if (_operationCount == 0) + { + _event.Reset(); // Activities in progress so start blocking the WaitForActivitiesToFinish method. + } + _operationCount++; + } + } + + internal void FinishOperation() + { + lock (_thisObjectLock) + { + _operationCount--; + if (_operationCount == 0) + { + _event.Set(); // No more activities in progress so signal event. + } + } + } + + internal void WaitForOperationsToFinish() + { + _event.WaitOne(); + } + + private ManualResetEvent _event = new(true); // In signaled state so initially do not block + private uint _operationCount; + private object _thisObjectLock = new(); + } + + #region Interface + + [ComImport, Guid("2D3D3845-39AF-4850-BBF9-40B49780011D"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISpObjectTokenCategory : ISpDataKey + { + // ISpDataKey Methods + [PreserveSig] + new int SetData([MarshalAs(UnmanagedType.LPWStr)] string valueName, uint cbData, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] byte[] data); + [PreserveSig] + new int GetData([MarshalAs(UnmanagedType.LPWStr)] string valueName, ref uint pcbData, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1), Out] byte[] data); + [PreserveSig] + new int SetStringValue([MarshalAs(UnmanagedType.LPWStr)] string valueName, [MarshalAs(UnmanagedType.LPWStr)] string value); + [PreserveSig] + new void GetStringValue([MarshalAs(UnmanagedType.LPWStr)] string pszValueName, [MarshalAs(UnmanagedType.LPWStr)] out string ppszValue); + [PreserveSig] + new int SetDWORD([MarshalAs(UnmanagedType.LPWStr)] string valueName, uint dwValue); + [PreserveSig] + new int GetDWORD([MarshalAs(UnmanagedType.LPWStr)] string pszValueName, ref uint pdwValue); + [PreserveSig] + new int OpenKey([MarshalAs(UnmanagedType.LPWStr)] string pszSubKeyName, out ISpDataKey ppSubKey); + [PreserveSig] + new int CreateKey([MarshalAs(UnmanagedType.LPWStr)] string subKey, out ISpDataKey ppSubKey); + [PreserveSig] + new int DeleteKey([MarshalAs(UnmanagedType.LPWStr)] string subKey); + [PreserveSig] + new int DeleteValue([MarshalAs(UnmanagedType.LPWStr)] string valueName); + [PreserveSig] + new int EnumKeys(uint index, [MarshalAs(UnmanagedType.LPWStr)] out string ppszSubKeyName); + [PreserveSig] + new int EnumValues(uint Index, [MarshalAs(UnmanagedType.LPWStr)] out string ppszValueName); + + // ISpObjectTokenCategory Methods + void SetId([MarshalAs(UnmanagedType.LPWStr)] string pszCategoryId, [MarshalAs(UnmanagedType.Bool)] bool fCreateIfNotExist); + void GetId([MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemCategoryId); + void Slot14(); // void GetDataKey(System.Speech.Internal.SPDATAKEYLOCATION spdkl, out ISpDataKey ppDataKey); + void EnumTokens([MarshalAs(UnmanagedType.LPWStr)] string pzsReqAttribs, [MarshalAs(UnmanagedType.LPWStr)] string pszOptAttribs, out IEnumSpObjectTokens ppEnum); + void Slot16(); // void SetDefaultTokenId([MarshalAs(UnmanagedType.LPWStr)] string pszTokenId); + void GetDefaultTokenId([MarshalAs(UnmanagedType.LPWStr)] out string ppszCoMemTokenId); + } + + [ComImport, Guid("06B64F9E-7FDA-11D2-B4F2-00C04F797396"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface IEnumSpObjectTokens + { + void Slot1(); // void Next(UInt32 celt, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0), Out] ISpObjectToken[] pelt, out UInt32 pceltFetched); + void Slot2(); // void Skip(UInt32 celt); + void Slot3(); // void Reset(); + void Slot4(); // void Clone(out IEnumSpObjectTokens ppEnum); + void Item(uint Index, out ISpObjectToken ppToken); + void GetCount(out uint pCount); + } + + [ComImport, Guid("EF411752-3736-4CB4-9C8C-8EF4CCB58EFE")] + internal class SpObjectToken { } + + [ComImport, Guid("A910187F-0C7A-45AC-92CC-59EDAFB77B53")] + internal class SpObjectTokenCategory { } + + #endregion +} diff --git a/src/libraries/System.Speech/src/Recognition/RecognizerInfo.cs b/src/libraries/System.Speech/src/Recognition/RecognizerInfo.cs new file mode 100644 index 00000000000000..de1c0181da8e99 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/RecognizerInfo.cs @@ -0,0 +1,156 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Globalization; +using System.Speech.AudioFormat; +using System.Speech.Internal; +using System.Speech.Internal.ObjectTokens; + +namespace System.Speech.Recognition +{ + // This represents the attributes various speech recognizers may, or may not support. + + public class RecognizerInfo : IDisposable + { + #region Constructors + + private RecognizerInfo(ObjectToken token, CultureInfo culture) + { + // Retrieve the token name + _id = token.Name; + + // Retrieve default display name + _description = token.Description; + + // Store full object token id for internal use. + // NOTE - SAPI returns the wrong hive for tokenenum tokens (always HKLM). + // Do not rely on the path to be correct in all cases. + _sapiObjectTokenId = token.Id; + + _name = token.TokenName(); + + _culture = culture; + + // Enum all values and add to custom table + Dictionary attrs = new(); + foreach (string keyName in token.Attributes.GetValueNames()) + { + string attributeValue; + if (token.Attributes.TryGetString(keyName, out attributeValue)) + { + attrs[keyName] = attributeValue; + } + } + _attributes = new ReadOnlyDictionary(attrs); + + string audioFormats; + if (token.Attributes.TryGetString("AudioFormats", out audioFormats)) + { + _supportedAudioFormats = new ReadOnlyCollection(SapiAttributeParser.GetAudioFormatsFromString(audioFormats)); + } + else + { + _supportedAudioFormats = new ReadOnlyCollection(new List()); + } + + _objectToken = token; + } + + internal static RecognizerInfo Create(ObjectToken token) + { + // Token for recognizer should have Attributes. + if (token.Attributes == null) + { + return null; + } + + // Get other attributes + string langId; + + // must have a language id + if (!token.Attributes.TryGetString("Language", out langId)) + { + return null; + } + CultureInfo cultureInfo = SapiAttributeParser.GetCultureInfoFromLanguageString(langId); + if (cultureInfo != null) + { + return new RecognizerInfo(token, cultureInfo); + } + else + { + return null; + } + } + + internal ObjectToken GetObjectToken() + { + return _objectToken; + } + + /// + /// For IDisposable. + /// RecognizerInfo can be constructed through creating a new object token (usage of _recognizerInfo in RecognizerBase), + /// so dispose needs to be called. + /// + public void Dispose() + { + _objectToken.Dispose(); + GC.SuppressFinalize(this); + } + + #endregion + + #region public Properties + public string Id + { + get { return _id; } + } + public string Name + { + get { return _name; } + } + public string Description + { + get { return _description; } + } + public CultureInfo Culture + { + get { return _culture; } + } + public ReadOnlyCollection SupportedAudioFormats + { + get { return _supportedAudioFormats; } + } + public IDictionary AdditionalInfo + { + get { return _attributes; } + } + + #endregion + + #region Internal Properties + + #endregion + + #region Private Fields + + // This table stores each attribute + private ReadOnlyDictionary _attributes; + + // Named attributes - these get initialized in constructor + private string _id; + private string _name; + private string _description; + private string _sapiObjectTokenId; + private CultureInfo _culture; + + private ReadOnlyCollection _supportedAudioFormats; + + private ObjectToken _objectToken; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/RecognizerState.cs b/src/libraries/System.Speech/src/Recognition/RecognizerState.cs new file mode 100644 index 00000000000000..f83c49087d1ba4 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/RecognizerState.cs @@ -0,0 +1,15 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Recognition +{ + // Current recognizer state. + public enum RecognizerState + { + // The recognizer is currently stopped and not listening. + Stopped, + + // The recognizer is currently listening. + Listening + } +} diff --git a/src/libraries/System.Speech/src/Recognition/RecognizerStateChangedEventArgs.cs b/src/libraries/System.Speech/src/Recognition/RecognizerStateChangedEventArgs.cs new file mode 100644 index 00000000000000..d3269b4dd7a4cb --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/RecognizerStateChangedEventArgs.cs @@ -0,0 +1,33 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Recognition +{ + // EventArgs used in the SpeechRecognizer.StateChanged event. + + public class StateChangedEventArgs : EventArgs + { + #region Constructors + + internal StateChangedEventArgs(RecognizerState recognizerState) + { + _recognizerState = recognizerState; + } + + #endregion + + #region public Properties + public RecognizerState RecognizerState + { + get { return _recognizerState; } + } + + #endregion + + #region Private Fields + + private RecognizerState _recognizerState; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/SemanticResultKey.cs b/src/libraries/System.Speech/src/Recognition/SemanticResultKey.cs new file mode 100644 index 00000000000000..34b6466d1c3839 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SemanticResultKey.cs @@ -0,0 +1,77 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; +using System.Speech.Internal; +using System.Speech.Internal.GrammarBuilding; + +namespace System.Speech.Recognition +{ + [DebuggerDisplay("{_semanticKey.DebugSummary}")] + public class SemanticResultKey + { + #region Constructors + + private SemanticResultKey(string semanticResultKey) + : base() + { + Helpers.ThrowIfEmptyOrNull(semanticResultKey, nameof(semanticResultKey)); + + _semanticKey = new SemanticKeyElement(semanticResultKey); + } + + public SemanticResultKey(string semanticResultKey, params string[] phrases) + : this(semanticResultKey) + { + Helpers.ThrowIfEmptyOrNull(semanticResultKey, nameof(semanticResultKey)); + Helpers.ThrowIfNull(phrases, nameof(phrases)); + + // Build a grammar builder with all the phrases + foreach (string phrase in phrases) + { + _semanticKey.Add(phrase); + } + } + + public SemanticResultKey(string semanticResultKey, params GrammarBuilder[] builders) + : this(semanticResultKey) + { + Helpers.ThrowIfEmptyOrNull(semanticResultKey, nameof(semanticResultKey)); + Helpers.ThrowIfNull(builders, "phrases"); + + // Build a grammar builder with all the grammar builders + foreach (GrammarBuilder builder in builders) + { + _semanticKey.Add(builder.Clone()); + } + } + + #endregion + + #region Public Methods + public GrammarBuilder ToGrammarBuilder() + { + return new GrammarBuilder(this); + } + + #endregion + + #region Internal Properties + + internal SemanticKeyElement SemanticKeyElement + { + get + { + return _semanticKey; + } + } + + #endregion + + #region Private Fields + + private readonly SemanticKeyElement _semanticKey; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/SemanticResultValue.cs b/src/libraries/System.Speech/src/Recognition/SemanticResultValue.cs new file mode 100644 index 00000000000000..eb0a597f31b66e --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SemanticResultValue.cs @@ -0,0 +1,63 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; +using System.Speech.Internal; +using System.Speech.Internal.GrammarBuilding; + +namespace System.Speech.Recognition +{ + [DebuggerDisplay("{_tag.DebugSummary}")] + public class SemanticResultValue + { + #region Constructors + public SemanticResultValue(object value) + { + Helpers.ThrowIfNull(value, nameof(value)); + + _tag = new TagElement(value); + } + public SemanticResultValue(string phrase, object value) + { + Helpers.ThrowIfEmptyOrNull(phrase, nameof(phrase)); + Helpers.ThrowIfNull(value, nameof(value)); + + _tag = new TagElement(new GrammarBuilderPhrase(phrase), value); + } + public SemanticResultValue(GrammarBuilder builder, object value) + { + Helpers.ThrowIfNull(builder, nameof(builder)); + Helpers.ThrowIfNull(value, nameof(value)); + + _tag = new TagElement(builder.Clone(), value); + } + + #endregion + + #region Public Methods + public GrammarBuilder ToGrammarBuilder() + { + return new GrammarBuilder(this); + } + + #endregion + + #region Internal Properties + + internal TagElement Tag + { + get + { + return _tag; + } + } + + #endregion + + #region Private Fields + + private TagElement _tag; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/SpeechDetectedEventArgs.cs b/src/libraries/System.Speech/src/Recognition/SpeechDetectedEventArgs.cs new file mode 100644 index 00000000000000..e048b4a8e7d9cc --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SpeechDetectedEventArgs.cs @@ -0,0 +1,33 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Speech.Recognition +{ + // EventArgs used in the SpeechDetected event. + + public class SpeechDetectedEventArgs : EventArgs + { + #region Constructors + + internal SpeechDetectedEventArgs(TimeSpan audioPosition) + { + _audioPosition = audioPosition; + } + + #endregion + + #region public Properties + public TimeSpan AudioPosition + { + get { return _audioPosition; } + } + + #endregion + + #region Private Fields + + private TimeSpan _audioPosition; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/SpeechRecognitionEngine.cs b/src/libraries/System.Speech/src/Recognition/SpeechRecognitionEngine.cs new file mode 100644 index 00000000000000..e13b59a5e2c6cc --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SpeechRecognitionEngine.cs @@ -0,0 +1,690 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Globalization; +using System.IO; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Speech.AudioFormat; +using System.Speech.Internal; +using System.Speech.Internal.ObjectTokens; +using System.Speech.Internal.SapiInterop; + +namespace System.Speech.Recognition +{ + public class SpeechRecognitionEngine : IDisposable + { + #region Constructors + public SpeechRecognitionEngine() + { + Initialize(null); + } + public SpeechRecognitionEngine(CultureInfo culture) + { + Helpers.ThrowIfNull(culture, nameof(culture)); + + if (culture.Equals(CultureInfo.InvariantCulture)) + { + throw new ArgumentException(SR.Get(SRID.InvariantCultureInfo), nameof(culture)); + } + + // Enumerate using collection. It would also be possible to directly access the token from SAPI. + foreach (RecognizerInfo recognizerInfo in InstalledRecognizers()) + { + if (culture.Equals(recognizerInfo.Culture)) + { + Initialize(recognizerInfo); + return; + } + } + // No exact match for the culture, try out with a SR engine of the same base culture. + foreach (RecognizerInfo recognizerInfo in InstalledRecognizers()) + { + if (Helpers.CompareInvariantCulture(recognizerInfo.Culture, culture)) + { + Initialize(recognizerInfo); + return; + } + } + + // No match even with culture having the same parent + throw new ArgumentException(SR.Get(SRID.RecognizerNotFound), nameof(culture)); + } + public SpeechRecognitionEngine(string recognizerId) + { + Helpers.ThrowIfEmptyOrNull(recognizerId, nameof(recognizerId)); + + foreach (RecognizerInfo recognizerInfo in InstalledRecognizers()) + { + if (recognizerId.Equals(recognizerInfo.Id, StringComparison.OrdinalIgnoreCase)) + { + Initialize(recognizerInfo); + return; + } + } + + throw new ArgumentException(SR.Get(SRID.RecognizerNotFound), nameof(recognizerId)); + } + public SpeechRecognitionEngine(RecognizerInfo recognizerInfo) + { + Helpers.ThrowIfNull(recognizerInfo, nameof(recognizerInfo)); + + Initialize(recognizerInfo); + } + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + protected virtual void Dispose(bool disposing) + { + if (disposing && !_disposed) + { + if (_recognizerBase != null) + { + _recognizerBase.Dispose(); + _recognizerBase = null; + } + if (_sapiRecognizer != null) + { + _sapiRecognizer.Dispose(); + _sapiRecognizer = null; + } + _disposed = true; // Don't set RecognizerBase to null as every method will then need to throw ObjectDisposedException. + } + } + + #endregion + + #region Static Methods + + // Get attributes of all the recognizers that are installed + public static ReadOnlyCollection InstalledRecognizers() + { + List recognizers = new(); + + // Get list of ObjectTokens + using (ObjectTokenCategory category = ObjectTokenCategory.Create(SAPICategories.Recognizers)) + { + if (category != null) + { + // For each element in list + foreach (ObjectToken token in (IEnumerable)category) + { + // Create RecognizerInfo + add to collection + RecognizerInfo recognizerInfo = RecognizerInfo.Create(token); + + if (recognizerInfo == null) + { + // But if this entry has a corrupt registry entry then skip it. + // Otherwise one bogus entry prevents the whole method from working. + continue; + } + recognizers.Add(recognizerInfo); + } + } + } + return new ReadOnlyCollection(recognizers); + } + + #endregion + + #region public Properties + + // Settings: + [EditorBrowsable(EditorBrowsableState.Advanced)] + public TimeSpan InitialSilenceTimeout + { + get { return RecoBase.InitialSilenceTimeout; } + set { RecoBase.InitialSilenceTimeout = value; } + } + [EditorBrowsable(EditorBrowsableState.Advanced)] + public TimeSpan BabbleTimeout + { + get { return RecoBase.BabbleTimeout; } + set { RecoBase.BabbleTimeout = value; } + } + [EditorBrowsable(EditorBrowsableState.Advanced)] + public TimeSpan EndSilenceTimeout + { + get { return TimeSpan.FromMilliseconds(RecoBase.QueryRecognizerSettingAsInt(SapiConstants.SPPROP_RESPONSE_SPEED)); } + set + { + if (value.TotalMilliseconds < 0.0f || value.TotalMilliseconds > 10000.0f) + { + throw new ArgumentOutOfRangeException(nameof(value), SR.Get(SRID.EndSilenceOutOfRange)); + } + RecoBase.UpdateRecognizerSetting(SapiConstants.SPPROP_RESPONSE_SPEED, (int)value.TotalMilliseconds); + } + } + [EditorBrowsable(EditorBrowsableState.Advanced)] + public TimeSpan EndSilenceTimeoutAmbiguous + { + get { return TimeSpan.FromMilliseconds(RecoBase.QueryRecognizerSettingAsInt(SapiConstants.SPPROP_COMPLEX_RESPONSE_SPEED)); } + set + { + if (value.TotalMilliseconds < 0.0f || value.TotalMilliseconds > 10000.0f) + { + throw new ArgumentOutOfRangeException(nameof(value), SR.Get(SRID.EndSilenceOutOfRange)); + } + RecoBase.UpdateRecognizerSetting(SapiConstants.SPPROP_COMPLEX_RESPONSE_SPEED, (int)value.TotalMilliseconds); + } + } + + // Gives access to the collection of grammars that are currently active. Read-only. + public ReadOnlyCollection Grammars + { + get { return RecoBase.Grammars; } + } + + // Gives access to the set of attributes exposed by this recognizer. + public RecognizerInfo RecognizerInfo + { + get { return RecoBase.RecognizerInfo; } + } + + // Data on the audio stream the recognizer is processing + public AudioState AudioState + { + get { return RecoBase.AudioState; } + } + + // Data on the audio stream the recognizer is processing + public int AudioLevel + { + get { return RecoBase.AudioLevel; } + } + + // Data on the audio stream the recognizer is processing + public TimeSpan RecognizerAudioPosition + { + get { return RecoBase.RecognizerAudioPosition; } + } + + // Data on the audio stream the recognizer is processing + public TimeSpan AudioPosition + { + get { return RecoBase.AudioPosition; } + } + public SpeechAudioFormatInfo AudioFormat + { + get { return RecoBase.AudioFormat; } + } + public int MaxAlternates + { + get { return RecoBase.MaxAlternates; } + set { RecoBase.MaxAlternates = value; } + } + + #endregion + + #region public Methods + public void SetInputToWaveFile(string path) + { + Helpers.ThrowIfEmptyOrNull(path, nameof(path)); + + RecoBase.SetInput(path); + } + public void SetInputToWaveStream(Stream audioSource) + { + RecoBase.SetInput(audioSource, null); + } + public void SetInputToAudioStream(Stream audioSource, SpeechAudioFormatInfo audioFormat) + { + Helpers.ThrowIfNull(audioSource, nameof(audioSource)); + Helpers.ThrowIfNull(audioFormat, nameof(audioFormat)); + + RecoBase.SetInput(audioSource, audioFormat); + } + + // Detach the audio input + public void SetInputToNull() + { + RecoBase.SetInput(null, null); + } + + // Data on the audio stream the recognizer is processing + public void SetInputToDefaultAudioDevice() + { + RecoBase.SetInputToDefaultAudioDevice(); + } + + // Methods to control recognition process: + + // Does a single synchronous Recognition and then stops the audio stream. + // Returns null if there was a timeout. Throws on error. + public RecognitionResult Recognize() + { + return RecoBase.Recognize(RecoBase.InitialSilenceTimeout); + } + public RecognitionResult Recognize(TimeSpan initialSilenceTimeout) + { + if (Grammars.Count == 0) + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerHasNoGrammar)); + } + + return RecoBase.Recognize(initialSilenceTimeout); + } + + // Does a single asynchronous Recognition and then stops the audio stream. + public void RecognizeAsync() + { + RecognizeAsync(RecognizeMode.Single); + } + + // Can do either a single or multiple recognitions depending on the mode. + public void RecognizeAsync(RecognizeMode mode) + { + if (Grammars.Count == 0) + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerHasNoGrammar)); + } + + RecoBase.RecognizeAsync(mode); + } + + // This method stops recognition immediately without completing processing the audio. Then a RecognizeCompelted event is sent. + public void RecognizeAsyncCancel() + { + RecoBase.RecognizeAsyncCancel(); + } + + // This method stops recognition but audio currently buffered is still processed, so a final SpeechRecognized event may be sent {before the RecognizeCompleted event}. + public void RecognizeAsyncStop() + { + RecoBase.RecognizeAsyncStop(); + } + + // Note: Currently this can't be exposed as a true collection in Yakima {it can't be enumerated}. If we think this would be useful we could do this. + public object QueryRecognizerSetting(string settingName) + { + return RecoBase.QueryRecognizerSetting(settingName); + } + public void UpdateRecognizerSetting(string settingName, string updatedValue) + { + RecoBase.UpdateRecognizerSetting(settingName, updatedValue); + } + public void UpdateRecognizerSetting(string settingName, int updatedValue) + { + RecoBase.UpdateRecognizerSetting(settingName, updatedValue); + } + public void LoadGrammar(Grammar grammar) + { + RecoBase.LoadGrammar(grammar); + } + public void LoadGrammarAsync(Grammar grammar) + { + RecoBase.LoadGrammarAsync(grammar); + } + public void UnloadGrammar(Grammar grammar) + { + RecoBase.UnloadGrammar(grammar); + } + public void UnloadAllGrammars() + { + RecoBase.UnloadAllGrammars(); + } + public RecognitionResult EmulateRecognize(string inputText) + { + return EmulateRecognize(inputText, CompareOptions.IgnoreCase | CompareOptions.IgnoreKanaType | CompareOptions.IgnoreWidth); + } + public RecognitionResult EmulateRecognize(string inputText, CompareOptions compareOptions) + { + if (Grammars.Count == 0) + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerHasNoGrammar)); + } + + return RecoBase.EmulateRecognize(inputText, compareOptions); + } + public RecognitionResult EmulateRecognize(RecognizedWordUnit[] wordUnits, CompareOptions compareOptions) + { + if (Grammars.Count == 0) + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerHasNoGrammar)); + } + + return RecoBase.EmulateRecognize(wordUnits, compareOptions); + } + public void EmulateRecognizeAsync(string inputText) + { + EmulateRecognizeAsync(inputText, CompareOptions.IgnoreCase | CompareOptions.IgnoreKanaType | CompareOptions.IgnoreWidth); + } + public void EmulateRecognizeAsync(string inputText, CompareOptions compareOptions) + { + if (Grammars.Count == 0) + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerHasNoGrammar)); + } + + RecoBase.EmulateRecognizeAsync(inputText, compareOptions); + } + public void EmulateRecognizeAsync(RecognizedWordUnit[] wordUnits, CompareOptions compareOptions) + { + if (Grammars.Count == 0) + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerHasNoGrammar)); + } + + RecoBase.EmulateRecognizeAsync(wordUnits, compareOptions); + } + + // Methods to pause the recognizer to do atomic updates: + public void RequestRecognizerUpdate() + { + RecoBase.RequestRecognizerUpdate(); + } + public void RequestRecognizerUpdate(object userToken) + { + RecoBase.RequestRecognizerUpdate(userToken); + } + public void RequestRecognizerUpdate(object userToken, TimeSpan audioPositionAheadToRaiseUpdate) + { + RecoBase.RequestRecognizerUpdate(userToken, audioPositionAheadToRaiseUpdate); + } + + #endregion + + #region public Events + + // Fired when the RecognizeAsync process completes. + public event EventHandler RecognizeCompleted; + + // Fired when the RecognizeAsync process completes. + public event EventHandler EmulateRecognizeCompleted; + public event EventHandler LoadGrammarCompleted; + + // The event fired when speech is detected. Used for barge-in. + public event EventHandler SpeechDetected; + + // The event fired on a recognition. + public event EventHandler SpeechRecognized; + + // The event fired on a no recognition + public event EventHandler SpeechRecognitionRejected; + public event EventHandler RecognizerUpdateReached; + + // Occurs when a spoken phrase is partially recognized. + public event EventHandler SpeechHypothesized + { + [MethodImplAttribute(MethodImplOptions.Synchronized)] + add + { + Helpers.ThrowIfNull(value, nameof(value)); + if (_speechHypothesizedDelegate == null) + { + RecoBase.SpeechHypothesized += SpeechHypothesizedProxy; + } + _speechHypothesizedDelegate += value; + } + + [MethodImplAttribute(MethodImplOptions.Synchronized)] + remove + { + Helpers.ThrowIfNull(value, nameof(value)); + _speechHypothesizedDelegate -= value; + if (_speechHypothesizedDelegate == null) + { + RecoBase.SpeechHypothesized -= SpeechHypothesizedProxy; + } + } + } + public event EventHandler AudioSignalProblemOccurred + { + [MethodImplAttribute(MethodImplOptions.Synchronized)] + add + { + Helpers.ThrowIfNull(value, nameof(value)); + if (_audioSignalProblemOccurredDelegate == null) + { + RecoBase.AudioSignalProblemOccurred += AudioSignalProblemOccurredProxy; + } + _audioSignalProblemOccurredDelegate += value; + } + + [MethodImplAttribute(MethodImplOptions.Synchronized)] + remove + { + Helpers.ThrowIfNull(value, nameof(value)); + _audioSignalProblemOccurredDelegate -= value; + if (_audioSignalProblemOccurredDelegate == null) + { + RecoBase.AudioSignalProblemOccurred -= AudioSignalProblemOccurredProxy; + } + } + } + public event EventHandler AudioLevelUpdated + { + [MethodImplAttribute(MethodImplOptions.Synchronized)] + add + { + Helpers.ThrowIfNull(value, nameof(value)); + if (_audioLevelUpdatedDelegate == null) + { + RecoBase.AudioLevelUpdated += AudioLevelUpdatedProxy; + } + _audioLevelUpdatedDelegate += value; + } + + [MethodImplAttribute(MethodImplOptions.Synchronized)] + remove + { + Helpers.ThrowIfNull(value, nameof(value)); + _audioLevelUpdatedDelegate -= value; + if (_audioLevelUpdatedDelegate == null) + { + RecoBase.AudioLevelUpdated -= AudioLevelUpdatedProxy; + } + } + } + public event EventHandler AudioStateChanged + { + [MethodImplAttribute(MethodImplOptions.Synchronized)] + add + { + Helpers.ThrowIfNull(value, nameof(value)); + if (_audioStateChangedDelegate == null) + { + RecoBase.AudioStateChanged += AudioStateChangedProxy; + } + _audioStateChangedDelegate += value; + } + + [MethodImplAttribute(MethodImplOptions.Synchronized)] + remove + { + Helpers.ThrowIfNull(value, nameof(value)); + _audioStateChangedDelegate -= value; + if (_audioStateChangedDelegate == null) + { + RecoBase.AudioStateChanged -= AudioStateChangedProxy; + } + } + } + + #endregion + + #region Private Methods + + private void Initialize(RecognizerInfo recognizerInfo) + { + try + { + _sapiRecognizer = new SapiRecognizer(SapiRecognizer.RecognizerType.InProc); + } + catch (COMException e) + { + throw RecognizerBase.ExceptionFromSapiCreateRecognizerError(e); + } + + if (recognizerInfo != null) + { + ObjectToken token = recognizerInfo.GetObjectToken(); + if (token == null) + { + throw new ArgumentException(SR.Get(SRID.NullParamIllegal), nameof(recognizerInfo)); + } + try + { + _sapiRecognizer.SetRecognizer(token.SAPIToken); + } + catch (COMException e) + { + throw new ArgumentException(SR.Get(SRID.RecognizerNotFound), RecognizerBase.ExceptionFromSapiCreateRecognizerError(e)); + } + } + + // For the SpeechRecognitionEngine we don't want recognition to start until the Recognize() or RecognizeAsync() methods are called. + _sapiRecognizer.SetRecoState(SPRECOSTATE.SPRST_INACTIVE); + } + + // Proxy event handlers used to translate the sender from the RecognizerBase to this class: + + private void RecognizeCompletedProxy(object sender, RecognizeCompletedEventArgs e) + { + EventHandler recognizeCompletedHandler = RecognizeCompleted; + if (recognizeCompletedHandler != null) + { + recognizeCompletedHandler(this, e); + } + } + + private void EmulateRecognizeCompletedProxy(object sender, EmulateRecognizeCompletedEventArgs e) + { + EventHandler emulateRecognizeCompletedHandler = EmulateRecognizeCompleted; + if (emulateRecognizeCompletedHandler != null) + { + emulateRecognizeCompletedHandler(this, e); + } + } + + private void LoadGrammarCompletedProxy(object sender, LoadGrammarCompletedEventArgs e) + { + EventHandler loadGrammarCompletedHandler = LoadGrammarCompleted; + if (loadGrammarCompletedHandler != null) + { + loadGrammarCompletedHandler(this, e); + } + } + + private void SpeechDetectedProxy(object sender, SpeechDetectedEventArgs e) + { + EventHandler speechDetectedHandler = SpeechDetected; + if (speechDetectedHandler != null) + { + speechDetectedHandler(this, e); + } + } + + private void SpeechRecognizedProxy(object sender, SpeechRecognizedEventArgs e) + { + EventHandler speechRecognizedHandler = SpeechRecognized; + if (speechRecognizedHandler != null) + { + speechRecognizedHandler(this, e); + } + } + + private void SpeechRecognitionRejectedProxy(object sender, SpeechRecognitionRejectedEventArgs e) + { + EventHandler speechRecognitionRejectedHandler = SpeechRecognitionRejected; + if (speechRecognitionRejectedHandler != null) + { + speechRecognitionRejectedHandler(this, e); + } + } + + private void RecognizerUpdateReachedProxy(object sender, RecognizerUpdateReachedEventArgs e) + { + EventHandler recognizerUpdateReachedHandler = RecognizerUpdateReached; + if (recognizerUpdateReachedHandler != null) + { + recognizerUpdateReachedHandler(this, e); + } + } + + private void SpeechHypothesizedProxy(object sender, SpeechHypothesizedEventArgs e) + { + EventHandler speechHypothesizedHandler = _speechHypothesizedDelegate; + if (speechHypothesizedHandler != null) + { + speechHypothesizedHandler(this, e); + } + } + + private void AudioSignalProblemOccurredProxy(object sender, AudioSignalProblemOccurredEventArgs e) + { + EventHandler audioSignalProblemOccurredHandler = _audioSignalProblemOccurredDelegate; + if (audioSignalProblemOccurredHandler != null) + { + audioSignalProblemOccurredHandler(this, e); + } + } + + private void AudioLevelUpdatedProxy(object sender, AudioLevelUpdatedEventArgs e) + { + EventHandler audioLevelUpdatedHandler = _audioLevelUpdatedDelegate; + if (audioLevelUpdatedHandler != null) + { + audioLevelUpdatedHandler(this, e); + } + } + + private void AudioStateChangedProxy(object sender, AudioStateChangedEventArgs e) + { + EventHandler audioStateChangedHandler = _audioStateChangedDelegate; + if (audioStateChangedHandler != null) + { + audioStateChangedHandler(this, e); + } + } + + #endregion + + #region Private Properties + private RecognizerBase RecoBase + { + get + { + if (_disposed) + { + throw new ObjectDisposedException("SpeechRecognitionEngine"); + } + if (_recognizerBase == null) + { + _recognizerBase = new RecognizerBase(); + _recognizerBase.Initialize(_sapiRecognizer, true); + + // Add event handlers for low-overhead events: + _recognizerBase.RecognizeCompleted += RecognizeCompletedProxy; + _recognizerBase.EmulateRecognizeCompleted += EmulateRecognizeCompletedProxy; + _recognizerBase.LoadGrammarCompleted += LoadGrammarCompletedProxy; + _recognizerBase.SpeechDetected += SpeechDetectedProxy; + _recognizerBase.SpeechRecognized += SpeechRecognizedProxy; + _recognizerBase.SpeechRecognitionRejected += SpeechRecognitionRejectedProxy; + _recognizerBase.RecognizerUpdateReached += RecognizerUpdateReachedProxy; + } + return _recognizerBase; + } + } + #endregion + + #region Private Fields + + private bool _disposed; + private RecognizerBase _recognizerBase; + private SapiRecognizer _sapiRecognizer; + + private EventHandler _audioSignalProblemOccurredDelegate; + private EventHandler _audioLevelUpdatedDelegate; + private EventHandler _audioStateChangedDelegate; + + private EventHandler _speechHypothesizedDelegate; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/SpeechRecognizer.cs b/src/libraries/System.Speech/src/Recognition/SpeechRecognizer.cs new file mode 100644 index 00000000000000..91c01424b63ec9 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SpeechRecognizer.cs @@ -0,0 +1,501 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.ObjectModel; +using System.Globalization; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Speech.AudioFormat; +using System.Speech.Internal; +using System.Speech.Internal.SapiInterop; + +namespace System.Speech.Recognition +{ + public class SpeechRecognizer : IDisposable + { + #region Constructors + public SpeechRecognizer() + { + _sapiRecognizer = new SapiRecognizer(SapiRecognizer.RecognizerType.Shared); + } + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + protected virtual void Dispose(bool disposing) + { + if (disposing && !_disposed) + { + if (_recognizerBase != null) + { + _recognizerBase.Dispose(); + _recognizerBase = null; + } + if (_sapiRecognizer != null) + { + _sapiRecognizer.Dispose(); + _sapiRecognizer = null; + } + _disposed = true; // Don't set RecognizerBase to null as every method will then need to throw ObjectDisposedException. + } + } + + #endregion + + #region public Properties + + // Determines whether the recognizer is listening or not. + public RecognizerState State + { + get { return RecoBase.State; } + } + + // Are the grammars attached to this SpeechRecognizer active? Default = true + public bool Enabled + { + get { return RecoBase.Enabled; } + set { RecoBase.Enabled = value; } + } + public bool PauseRecognizerOnRecognition + { + get { return RecoBase.PauseRecognizerOnRecognition; } + set { RecoBase.PauseRecognizerOnRecognition = value; } + } + + // Gives access to the collection of grammars that are currently active. Read-only. + public ReadOnlyCollection Grammars + { + get { return RecoBase.Grammars; } + } + + // Gives access to the set of attributes exposed by this recognizer. + public RecognizerInfo RecognizerInfo + { + get { return RecoBase.RecognizerInfo; } + } + + // Data on the audio stream the recognizer is processing + public AudioState AudioState + { + get { return RecoBase.AudioState; } + } + + // Data on the audio stream the recognizer is processing + public int AudioLevel + { + get { return RecoBase.AudioLevel; } + } + + // Data on the audio stream the recognizer is processing + public TimeSpan AudioPosition + { + get { return RecoBase.AudioPosition; } + } + + // Data on the audio stream the recognizer is processing + public TimeSpan RecognizerAudioPosition + { + get { return RecoBase.RecognizerAudioPosition; } + } + public SpeechAudioFormatInfo AudioFormat + { + get { return RecoBase.AudioFormat; } + } + public int MaxAlternates + { + get { return RecoBase.MaxAlternates; } + set { RecoBase.MaxAlternates = value; } + } + + #endregion + + #region public Methods + public void LoadGrammar(Grammar grammar) + { + RecoBase.LoadGrammar(grammar); + } + public void LoadGrammarAsync(Grammar grammar) + { + RecoBase.LoadGrammarAsync(grammar); + } + public void UnloadGrammar(Grammar grammar) + { + RecoBase.UnloadGrammar(grammar); + } + public void UnloadAllGrammars() + { + RecoBase.UnloadAllGrammars(); + } + public RecognitionResult EmulateRecognize(string inputText) + { + if (Enabled) + { + return RecoBase.EmulateRecognize(inputText); + } + else + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerNotEnabled)); + } + } + public RecognitionResult EmulateRecognize(string inputText, CompareOptions compareOptions) + { + if (Enabled) + { + return RecoBase.EmulateRecognize(inputText, compareOptions); + } + else + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerNotEnabled)); + } + } + public RecognitionResult EmulateRecognize(RecognizedWordUnit[] wordUnits, CompareOptions compareOptions) + { + if (Enabled) + { + return RecoBase.EmulateRecognize(wordUnits, compareOptions); + } + else + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerNotEnabled)); + } + } + public void EmulateRecognizeAsync(string inputText) + { + if (Enabled) + { + RecoBase.EmulateRecognizeAsync(inputText); + } + else + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerNotEnabled)); + } + } + public void EmulateRecognizeAsync(string inputText, CompareOptions compareOptions) + { + if (Enabled) + { + RecoBase.EmulateRecognizeAsync(inputText, compareOptions); + } + else + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerNotEnabled)); + } + } + public void EmulateRecognizeAsync(RecognizedWordUnit[] wordUnits, CompareOptions compareOptions) + { + if (Enabled) + { + RecoBase.EmulateRecognizeAsync(wordUnits, compareOptions); + } + else + { + throw new InvalidOperationException(SR.Get(SRID.RecognizerNotEnabled)); + } + } + + // Methods to pause the recognizer to do atomic updates: + public void RequestRecognizerUpdate() + { + RecoBase.RequestRecognizerUpdate(); + } + public void RequestRecognizerUpdate(object userToken) + { + RecoBase.RequestRecognizerUpdate(userToken); + } + public void RequestRecognizerUpdate(object userToken, TimeSpan audioPositionAheadToRaiseUpdate) + { + RecoBase.RequestRecognizerUpdate(userToken, audioPositionAheadToRaiseUpdate); + } + + #endregion + + #region public Events + public event EventHandler StateChanged; + + // Fired when the RecognizeAsync process completes. + public event EventHandler EmulateRecognizeCompleted; + public event EventHandler LoadGrammarCompleted; + + // The event fired when speech is detected. Used for barge-in. + public event EventHandler SpeechDetected; + + // The event fired on a recognition. + public event EventHandler SpeechRecognized; + + // The event fired on a no recognition + public event EventHandler SpeechRecognitionRejected; + public event EventHandler RecognizerUpdateReached; + + // Occurs when a spoken phrase is partially recognized. + public event EventHandler SpeechHypothesized + { + [MethodImplAttribute(MethodImplOptions.Synchronized)] + add + { + Helpers.ThrowIfNull(value, nameof(value)); + if (_speechHypothesizedDelegate == null) + { + RecoBase.SpeechHypothesized += SpeechHypothesizedProxy; + } + _speechHypothesizedDelegate += value; + } + + [MethodImplAttribute(MethodImplOptions.Synchronized)] + remove + { + Helpers.ThrowIfNull(value, nameof(value)); + _speechHypothesizedDelegate -= value; + if (_speechHypothesizedDelegate == null) + { + RecoBase.SpeechHypothesized -= SpeechHypothesizedProxy; + } + } + } + public event EventHandler AudioSignalProblemOccurred + { + [MethodImplAttribute(MethodImplOptions.Synchronized)] + add + { + Helpers.ThrowIfNull(value, nameof(value)); + if (_audioSignalProblemOccurredDelegate == null) + { + RecoBase.AudioSignalProblemOccurred += AudioSignalProblemOccurredProxy; + } + _audioSignalProblemOccurredDelegate += value; + } + + [MethodImplAttribute(MethodImplOptions.Synchronized)] + remove + { + Helpers.ThrowIfNull(value, nameof(value)); + _audioSignalProblemOccurredDelegate -= value; + if (_audioSignalProblemOccurredDelegate == null) + { + RecoBase.AudioSignalProblemOccurred -= AudioSignalProblemOccurredProxy; + } + } + } + public event EventHandler AudioLevelUpdated + { + [MethodImplAttribute(MethodImplOptions.Synchronized)] + add + { + Helpers.ThrowIfNull(value, nameof(value)); + if (_audioLevelUpdatedDelegate == null) + { + RecoBase.AudioLevelUpdated += AudioLevelUpdatedProxy; + } + _audioLevelUpdatedDelegate += value; + } + + [MethodImplAttribute(MethodImplOptions.Synchronized)] + remove + { + Helpers.ThrowIfNull(value, nameof(value)); + _audioLevelUpdatedDelegate -= value; + if (_audioLevelUpdatedDelegate == null) + { + RecoBase.AudioLevelUpdated -= AudioLevelUpdatedProxy; + } + } + } + public event EventHandler AudioStateChanged + { + [MethodImplAttribute(MethodImplOptions.Synchronized)] + add + { + Helpers.ThrowIfNull(value, nameof(value)); + if (_audioStateChangedDelegate == null) + { + RecoBase.AudioStateChanged += AudioStateChangedProxy; + } + _audioStateChangedDelegate += value; + } + + [MethodImplAttribute(MethodImplOptions.Synchronized)] + remove + { + Helpers.ThrowIfNull(value, nameof(value)); + _audioStateChangedDelegate -= value; + if (_audioStateChangedDelegate == null) + { + RecoBase.AudioStateChanged -= AudioStateChangedProxy; + } + } + } + + #endregion + + #region Private Methods + + // Proxy event handlers used to translate the sender from the RecognizerBase to this class: + + private void StateChangedProxy(object sender, StateChangedEventArgs e) + { + EventHandler stateChangedHandler = StateChanged; + if (stateChangedHandler != null) + { + stateChangedHandler(this, e); + } + } + + private void EmulateRecognizeCompletedProxy(object sender, EmulateRecognizeCompletedEventArgs e) + { + EventHandler emulateRecognizeCompletedHandler = EmulateRecognizeCompleted; + if (emulateRecognizeCompletedHandler != null) + { + emulateRecognizeCompletedHandler(this, e); + } + } + + private void LoadGrammarCompletedProxy(object sender, LoadGrammarCompletedEventArgs e) + { + EventHandler loadGrammarCompletedHandler = LoadGrammarCompleted; + if (loadGrammarCompletedHandler != null) + { + loadGrammarCompletedHandler(this, e); + } + } + + private void SpeechDetectedProxy(object sender, SpeechDetectedEventArgs e) + { + EventHandler speechDetectedHandler = SpeechDetected; + if (speechDetectedHandler != null) + { + speechDetectedHandler(this, e); + } + } + + private void SpeechRecognizedProxy(object sender, SpeechRecognizedEventArgs e) + { + EventHandler speechRecognizedHandler = SpeechRecognized; + if (speechRecognizedHandler != null) + { + speechRecognizedHandler(this, e); + } + } + + private void SpeechRecognitionRejectedProxy(object sender, SpeechRecognitionRejectedEventArgs e) + { + EventHandler speechRecognitionRejectedHandler = SpeechRecognitionRejected; + if (speechRecognitionRejectedHandler != null) + { + speechRecognitionRejectedHandler(this, e); + } + } + + private void RecognizerUpdateReachedProxy(object sender, RecognizerUpdateReachedEventArgs e) + { + EventHandler recognizerUpdateReachedHandler = RecognizerUpdateReached; + if (recognizerUpdateReachedHandler != null) + { + recognizerUpdateReachedHandler(this, e); + } + } + + private void SpeechHypothesizedProxy(object sender, SpeechHypothesizedEventArgs e) + { + EventHandler speechHypothesizedHandler = _speechHypothesizedDelegate; + if (speechHypothesizedHandler != null) + { + speechHypothesizedHandler(this, e); + } + } + + private void AudioSignalProblemOccurredProxy(object sender, AudioSignalProblemOccurredEventArgs e) + { + EventHandler audioSignalProblemOccurredHandler = _audioSignalProblemOccurredDelegate; + if (audioSignalProblemOccurredHandler != null) + { + audioSignalProblemOccurredHandler(this, e); + } + } + + private void AudioLevelUpdatedProxy(object sender, AudioLevelUpdatedEventArgs e) + { + EventHandler audioLevelUpdatedHandler = _audioLevelUpdatedDelegate; + if (audioLevelUpdatedHandler != null) + { + audioLevelUpdatedHandler(this, e); + } + } + + private void AudioStateChangedProxy(object sender, AudioStateChangedEventArgs e) + { + EventHandler audioStateChangedHandler = _audioStateChangedDelegate; + if (audioStateChangedHandler != null) + { + audioStateChangedHandler(this, e); + } + } + + #endregion + + #region Private Properties + private RecognizerBase RecoBase + { + get + { + if (_disposed) + { + throw new ObjectDisposedException("SpeechRecognitionEngine"); + } + + if (_recognizerBase == null) + { + _recognizerBase = new RecognizerBase(); + + try + { + _recognizerBase.Initialize(_sapiRecognizer, false); + } + catch (COMException e) + { + throw RecognizerBase.ExceptionFromSapiCreateRecognizerError(e); + } + + // This means the SpeechRecognizer will, by default, not pause after every recognition to allow updates. + PauseRecognizerOnRecognition = false; + + // We always have an input on the SpeechRecognizer. + _recognizerBase._haveInputSource = true; + + // If audio is already being processed then update AudioState. + if (AudioPosition != TimeSpan.Zero) + { + _recognizerBase.AudioState = AudioState.Silence; // Technically it might be Speech but that's okay. + } + + // For the SpeechRecognizer the RecoState is never altered: + // - By default that will mean recognition will progress as long as one grammar is loaded and enabled. + + // Add event handlers for low-overhead events: + _recognizerBase.StateChanged += StateChangedProxy; + _recognizerBase.EmulateRecognizeCompleted += EmulateRecognizeCompletedProxy; + _recognizerBase.LoadGrammarCompleted += LoadGrammarCompletedProxy; + _recognizerBase.SpeechDetected += SpeechDetectedProxy; + _recognizerBase.SpeechRecognized += SpeechRecognizedProxy; + _recognizerBase.SpeechRecognitionRejected += SpeechRecognitionRejectedProxy; + _recognizerBase.RecognizerUpdateReached += RecognizerUpdateReachedProxy; + } + + return _recognizerBase; + } + } + #endregion + + #region Private Fields + + private bool _disposed; + private RecognizerBase _recognizerBase; + private SapiRecognizer _sapiRecognizer; + + private EventHandler _audioSignalProblemOccurredDelegate; + private EventHandler _audioLevelUpdatedDelegate; + private EventHandler _audioStateChangedDelegate; + private EventHandler _speechHypothesizedDelegate; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/SpeechUI.cs b/src/libraries/System.Speech/src/Recognition/SpeechUI.cs new file mode 100644 index 00000000000000..68acc806d06a04 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SpeechUI.cs @@ -0,0 +1,21 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Speech.Internal; + +namespace System.Speech.Recognition +{ + public class SpeechUI + { + internal SpeechUI() + { + } + public static bool SendTextFeedback(RecognitionResult result, string feedback, bool isSuccessfulAction) + { + Helpers.ThrowIfNull(result, nameof(result)); + Helpers.ThrowIfEmptyOrNull(feedback, nameof(feedback)); + + return result.SetTextFeedback(feedback, isSuccessfulAction); + } + } +} diff --git a/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsDocument.cs b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsDocument.cs new file mode 100644 index 00000000000000..14020f6bc480df --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsDocument.cs @@ -0,0 +1,425 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.ObjectModel; +using System.Globalization; +using System.Speech.Internal; +using System.Speech.Internal.SrgsCompiler; +using System.Speech.Internal.SrgsParser; +using System.Xml; + +namespace System.Speech.Recognition.SrgsGrammar +{ + /// + /// This class allows a _grammar to be specified in SRGS form. + /// APITODO: needs programmatic access to SRGS DOM; PACOG + /// APITODO: needs rule activation/deactivation methods + /// + [Serializable] + public class SrgsDocument + { + #region Constructors / Destructors + + /// + /// The default constructor - creates an empty SrgsGrammar object + /// + public SrgsDocument() + { + _grammar = new SrgsGrammar(); + } + + public SrgsDocument(string path) + { + Helpers.ThrowIfEmptyOrNull(path, nameof(path)); + + using (XmlTextReader reader = new(path)) + { + Load(reader); + } + } + public SrgsDocument(XmlReader srgsGrammar) + { + Helpers.ThrowIfNull(srgsGrammar, nameof(srgsGrammar)); + + Load(srgsGrammar); + } + public SrgsDocument(GrammarBuilder builder) + { + Helpers.ThrowIfNull(builder, nameof(builder)); + + // New grammar + _grammar = new SrgsGrammar + { +#pragma warning disable 56504 // The Culture property is the Grammar builder is already checked. + Culture = builder.Culture + }; +#pragma warning restore 56504 + + // Creates SrgsDocument elements + IElementFactory elementFactory = new SrgsElementFactory(_grammar); + + // Do it + builder.CreateGrammar(elementFactory); + } + + public SrgsDocument(SrgsRule grammarRootRule) : this() + { + Helpers.ThrowIfNull(grammarRootRule, nameof(grammarRootRule)); + + Root = grammarRootRule; + Rules.Add(grammarRootRule); + } + + #endregion + + #region public methods + public void WriteSrgs(XmlWriter srgsGrammar) + { + Helpers.ThrowIfNull(srgsGrammar, nameof(srgsGrammar)); + + // Make sure the grammar is ok + _grammar.Validate(); + + // Write the data. + _grammar.WriteSrgs(srgsGrammar); + } + + #endregion + + #region Public Properties + + /// + /// Base URI of _grammar (xml:base). + /// + public Uri XmlBase + { + get + { + return _grammar.XmlBase; + } + set + { + // base value can be null +#pragma warning disable 56526 + _grammar.XmlBase = value; +#pragma warning restore 56526 + } + } + + /// + /// Grammar language (xml:lang) + /// + public CultureInfo Culture + { + get + { + return _grammar.Culture; + } + set + { + Helpers.ThrowIfNull(value, nameof(value)); + if (value.Equals(CultureInfo.InvariantCulture)) + { + throw new ArgumentException(SR.Get(SRID.InvariantCultureInfo), nameof(value)); + } + _grammar.Culture = value; + } + } + + /// + /// Root rule (srgs:root) + /// + public SrgsRule Root + { + get + { + return _grammar.Root; + } + set + { + // base value can be null +#pragma warning disable 56526 + _grammar.Root = value; +#pragma warning restore 56526 + } + } + + /// + /// Grammar mode (srgs:mode) - voice, dtmf + /// + public SrgsGrammarMode Mode + { + get + { + return _grammar.Mode == GrammarType.VoiceGrammar ? SrgsGrammarMode.Voice : SrgsGrammarMode.Dtmf; + } + set + { + _grammar.Mode = value == SrgsGrammarMode.Voice ? GrammarType.VoiceGrammar : GrammarType.DtmfGrammar; + } + } + + /// + /// Grammar mode (srgs:mode) - voice, dtmf + /// + public SrgsPhoneticAlphabet PhoneticAlphabet + { + get + { + return (SrgsPhoneticAlphabet)_grammar.PhoneticAlphabet; + } + set + { + _grammar.PhoneticAlphabet = (AlphabetType)value; + _grammar.HasPhoneticAlphabetBeenSet = true; + } + } + + /// + /// A collection of rules that this _grammar houses. + /// + // APITODO: Implementations of Rules and all other SRGS objects not here for now + public SrgsRulesCollection Rules + { + get + { + return _grammar.Rules; + } + } + + /// + /// Programming Language used for the inline code; C#, VB or JScript + /// + public string Language + { + get + { + return _grammar.Language; + } + set + { + // Language can be set to null +#pragma warning disable 56526 + _grammar.Language = value; +#pragma warning restore 56526 + } + } + + /// + /// namespace + /// + public string Namespace + { + get + { + return _grammar.Namespace; + } + set + { + // namespace can be set to null +#pragma warning disable 56526 + _grammar.Namespace = value; +#pragma warning restore 56526 + } + } + + /// + /// CodeBehind + /// + public Collection CodeBehind + { + get + { + return _grammar.CodeBehind; + } + } + + /// + /// Add #line statements to the inline scripts if set + /// + public bool Debug + { + get + { + return _grammar.Debug; + } + set + { + _grammar.Debug = value; + } + } + + /// + /// language + /// + public string Script + { + get + { + return _grammar.Script; + } + set + { + Helpers.ThrowIfEmptyOrNull(value, nameof(value)); + _grammar.Script = value; + } + } + + /// + /// ImportNameSpaces + /// + public Collection ImportNamespaces + { + get + { + return _grammar.ImportNamespaces; + } + } + + /// + /// ImportNameSpaces + /// + public Collection AssemblyReferences + { + get + { + return _grammar.AssemblyReferences; + } + } + + #endregion + + #region Internal methods + + // Initialize an SrgsDocument from an Srgs text source. + internal void Load(XmlReader srgsGrammar) + { + // New grammar + _grammar = new SrgsGrammar + { + // For SrgsGrammar, the default is IPA, for xml grammars, it is sapi. + PhoneticAlphabet = AlphabetType.Sapi + }; + + // create an XMl Parser + XmlParser srgsParser = new(srgsGrammar, null); + + // Creates SrgsDocument elements + srgsParser.ElementFactory = new SrgsElementFactory(_grammar); + + // Do it + srgsParser.Parse(); + + // This provides the path the XML was loaded from. + // {Note potentially this may also be overridden by an xml:base attribute in the XML itself. + // But for this scenario that doesn't matter since this is used to calculate the correct base path.} + if (!string.IsNullOrEmpty(srgsGrammar.BaseURI)) + { + _baseUri = new Uri(srgsGrammar.BaseURI); + } + } + + internal static GrammarOptions TagFormat2GrammarOptions(SrgsTagFormat value) + { + GrammarOptions newValue = 0; + + switch (value) + { + case SrgsTagFormat.KeyValuePairs: + newValue = GrammarOptions.KeyValuePairSrgs; + break; + + case SrgsTagFormat.MssV1: + newValue = GrammarOptions.MssV1; + break; + + case SrgsTagFormat.W3cV1: + newValue = GrammarOptions.W3cV1; + break; + } + return newValue; + } + + internal static SrgsTagFormat GrammarOptions2TagFormat(GrammarOptions value) + { + SrgsTagFormat tagFormat = SrgsTagFormat.Default; + + switch (value & GrammarOptions.TagFormat) + { + case GrammarOptions.MssV1: + tagFormat = SrgsTagFormat.MssV1; + break; + + case GrammarOptions.W3cV1: + tagFormat = SrgsTagFormat.W3cV1; + break; + + case GrammarOptions.KeyValuePairSrgs: + case GrammarOptions.KeyValuePairs: + tagFormat = SrgsTagFormat.KeyValuePairs; + break; + } + return tagFormat; + } + + #endregion + + #region Internal Properties + + /// + /// Tag format (srgs:tag-format) + /// summary> + internal SrgsTagFormat TagFormat + { + set + { + _grammar.TagFormat = value; + } + } + + internal Uri BaseUri + { + get + { + return _baseUri; + } + } + + internal SrgsGrammar Grammar + { + get + { + return _grammar; + } + } + + #endregion + + #region Private Fields + + private SrgsGrammar _grammar; + + // Path the grammar was actually loaded from, if this exists. + // Note this is different to SrgsGrammar.XmlBase which is the value of the xml:base attribute in the document itself. + private Uri _baseUri; + + #endregion Fields + } + + #region Enumerations + // Grammar mode. Voice, Dtmf + public enum SrgsGrammarMode + { + Voice, + Dtmf + } + // Grammar mode. Voice, Dtmf + public enum SrgsPhoneticAlphabet + { + Sapi, + Ipa, + Ups + } + + #endregion Enumerations +} diff --git a/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsElement.cs b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsElement.cs new file mode 100644 index 00000000000000..f371e01a7464b2 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsElement.cs @@ -0,0 +1,87 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; +using System.Speech.Internal.SrgsParser; +using System.Xml; + +namespace System.Speech.Recognition.SrgsGrammar +{ + /// + /// Base class for all SRGS object to build XML fragment corresponding to the object. + /// + [Serializable] + [DebuggerDisplay("SrgsElement Children:[{_items.Count}]")] + [DebuggerTypeProxy(typeof(SrgsElementDebugDisplay))] + public abstract class SrgsElement : MarshalByRefObject, IElement + { + protected SrgsElement() + { + } + + #region Internal methods + + // Write the XML fragment describing the object. + internal abstract void WriteSrgs(XmlWriter writer); + + // Debugger display string. + internal abstract string DebuggerDisplayString(); + + // Validate the SRGS element. + /// + /// Validate each element and recurse through all the children srgs + /// elements if any. + /// Any derived class implementing this method must call the base class + /// in order for the children to be processed. + /// + internal virtual void Validate(SrgsGrammar grammar) + { + foreach (SrgsElement element in Children) + { + // Child validation + element.Validate(grammar); + } + } + + void IElement.PostParse(IElement parent) + { + } + + #endregion + + #region Protected Properties + + internal virtual SrgsElement[] Children + { + get + { + return Array.Empty(); + } + } + + #endregion + + #region Private Types + + // Used by the debugger display attribute + internal class SrgsElementDebugDisplay + { + public SrgsElementDebugDisplay(SrgsElement element) + { + _elements = element.Children; + } + [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] + public SrgsElement[] AKeys + { + get + { + return _elements; + } + } + + private SrgsElement[] _elements; + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsElementFactory.cs b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsElementFactory.cs new file mode 100644 index 00000000000000..06af30b0818674 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsElementFactory.cs @@ -0,0 +1,221 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#region Using directives + +using System.Speech.Internal; +using System.Speech.Internal.SrgsParser; + +#endregion + +namespace System.Speech.Recognition.SrgsGrammar +{ + internal class SrgsElementFactory : IElementFactory + { + internal SrgsElementFactory(SrgsGrammar grammar) + { + _grammar = grammar; + } + + /// + /// Clear all the rules + /// + void IElementFactory.RemoveAllRules() + { + } + + IPropertyTag IElementFactory.CreatePropertyTag(IElement parent) + { + return new SrgsNameValueTag(); + } + + ISemanticTag IElementFactory.CreateSemanticTag(IElement parent) + { + return new SrgsSemanticInterpretationTag(); + } + + IElementText IElementFactory.CreateText(IElement parent, string value) + { + return new SrgsText(value); + } + + IToken IElementFactory.CreateToken(IElement parent, string content, string pronunciation, string display, float reqConfidence) + { + SrgsToken token = new(content); + if (!string.IsNullOrEmpty(pronunciation)) + { + // Check if the pronunciations are ok + string sPron = pronunciation; + for (int iCurPron = 0, iDeliminator = 0; iCurPron < sPron.Length; iCurPron = iDeliminator + 1) + { + // Find semi-colon delimiter and replace with null + iDeliminator = pronunciation.IndexOfAny(s_pronSeparator, iCurPron); + if (iDeliminator == -1) + { + iDeliminator = sPron.Length; + } + + string sSubPron = sPron.Substring(iCurPron, iDeliminator - iCurPron); + + // make sure this goes through + switch (_grammar.PhoneticAlphabet) + { + case AlphabetType.Sapi: + sSubPron = PhonemeConverter.ConvertPronToId(sSubPron, _grammar.Culture.LCID); + break; + + case AlphabetType.Ipa: + PhonemeConverter.ValidateUpsIds(sSubPron); + break; + + case AlphabetType.Ups: + sSubPron = PhonemeConverter.UpsConverter.ConvertPronToId(sSubPron); + break; + } + } + + token.Pronunciation = pronunciation; + } + + if (!string.IsNullOrEmpty(display)) + { + token.Display = display; + } + + if (reqConfidence >= 0) + { + throw new NotSupportedException(SR.Get(SRID.ReqConfidenceNotSupported)); + } + return token; + } + + IItem IElementFactory.CreateItem(IElement parent, IRule rule, int minRepeat, int maxRepeat, float repeatProbability, float weight) + { + SrgsItem item = new(); + if (minRepeat != 1 || maxRepeat != 1) + { + item.SetRepeat(minRepeat, maxRepeat); + } + item.RepeatProbability = repeatProbability; + item.Weight = weight; + return item; + } + + IRuleRef IElementFactory.CreateRuleRef(IElement parent, Uri srgsUri) + { + return new SrgsRuleRef(srgsUri); + } + + IRuleRef IElementFactory.CreateRuleRef(IElement parent, Uri srgsUri, string semanticKey, string parameters) + { + return new SrgsRuleRef(semanticKey, parameters, srgsUri); + } + + IOneOf IElementFactory.CreateOneOf(IElement parent, IRule rule) + { + return new SrgsOneOf(); + } + + ISubset IElementFactory.CreateSubset(IElement parent, string text, MatchMode matchMode) + { + SubsetMatchingMode matchingMode = SubsetMatchingMode.Subsequence; + + switch (matchMode) + { + case MatchMode.OrderedSubset: + matchingMode = SubsetMatchingMode.OrderedSubset; + break; + + case MatchMode.OrderedSubsetContentRequired: + matchingMode = SubsetMatchingMode.OrderedSubsetContentRequired; + break; + + case MatchMode.Subsequence: + matchingMode = SubsetMatchingMode.Subsequence; + break; + + case MatchMode.SubsequenceContentRequired: + matchingMode = SubsetMatchingMode.SubsequenceContentRequired; + break; + } + return new SrgsSubset(text, matchingMode); + } + + void IElementFactory.InitSpecialRuleRef(IElement parent, IRuleRef special) + { + } + + void IElementFactory.AddScript(IGrammar grammar, string sRule, string code) + { + SrgsGrammar srgsGrammar = (SrgsGrammar)grammar; + SrgsRule rule = srgsGrammar.Rules[sRule]; + if (rule != null) + { + rule.Script = rule.Script + code; + } + else + { + srgsGrammar.AddScript(sRule, code); + } + } + + string IElementFactory.AddScript(IGrammar grammar, string sRule, string code, string filename, int line) + { + return code; + } + + void IElementFactory.AddScript(IGrammar grammar, string script, string filename, int line) + { + SrgsGrammar srgsGrammar = (SrgsGrammar)grammar; + srgsGrammar.AddScript(null, script); + } + + void IElementFactory.AddItem(IOneOf oneOf, IItem value) + { + ((SrgsOneOf)oneOf).Add((SrgsItem)value); + } + + void IElementFactory.AddElement(IRule rule, IElement value) + { + ((SrgsRule)rule).Elements.Add((SrgsElement)value); + } + + void IElementFactory.AddElement(IItem item, IElement value) + { + ((SrgsItem)item).Elements.Add((SrgsElement)value); + } + + IGrammar IElementFactory.Grammar + { + get + { + return _grammar; + } + } + + IRuleRef IElementFactory.Null + { + get + { + return SrgsRuleRef.Null; + } + } + IRuleRef IElementFactory.Void + { + get + { + return SrgsRuleRef.Void; + } + } + IRuleRef IElementFactory.Garbage + { + get + { + return SrgsRuleRef.Garbage; + } + } + private SrgsGrammar _grammar; + + private static readonly char[] s_pronSeparator = new char[] { ' ', '\t', '\n', '\r', ';' }; + } +} diff --git a/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsElementList.cs b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsElementList.cs new file mode 100644 index 00000000000000..2bfaeaf1dc08a7 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsElementList.cs @@ -0,0 +1,23 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.ObjectModel; +using System.Speech.Internal; + +namespace System.Speech.Recognition.SrgsGrammar +{ + [Serializable] + internal class SrgsElementList : Collection + { + #region Interfaces Implementations + + protected override void InsertItem(int index, SrgsElement element) + { + Helpers.ThrowIfNull(element, nameof(element)); + + base.InsertItem(index, element); + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsGrammar.cs b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsGrammar.cs new file mode 100644 index 00000000000000..7837767ebc84f9 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsGrammar.cs @@ -0,0 +1,698 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Globalization; +using System.Speech.Internal; +using System.Speech.Internal.SrgsParser; +using System.Xml; + +#pragma warning disable 56500 // Remove all the catch all statements warnings used by the interop layer + +namespace System.Speech.Recognition.SrgsGrammar +{ + [Serializable] + internal sealed class SrgsGrammar : IGrammar + { + #region Constructors + + /// + /// Initializes a new instance of the Grammar class. + /// + internal SrgsGrammar() + { + _rules = new SrgsRulesCollection(); + } + + #endregion + + #region Internal Methods + + /// + /// Write the XML fragment describing the object. + /// + /// XmlWriter to which to write the XML fragment. + internal void WriteSrgs(XmlWriter writer) + { + // Write + writer.WriteStartElement("grammar", XmlParser.srgsNamespace); + writer.WriteAttributeString("xml", "lang", null, _culture.ToString()); + + if (_root != null) + { + writer.WriteAttributeString("root", _root.Id); + } + + // Write the attributes for strongly typed grammars + WriteSTGAttributes(writer); + if (_isModeSet) + { + switch (_mode) + { + case SrgsGrammarMode.Voice: + writer.WriteAttributeString("mode", "voice"); + break; + + case SrgsGrammarMode.Dtmf: + writer.WriteAttributeString("mode", "dtmf"); + break; + } + } + + // Write the tag format if any + string tagFormat = null; + switch (_tagFormat) + { + case SrgsTagFormat.Default: + // Nothing to do + break; + + case SrgsTagFormat.MssV1: + tagFormat = "semantics-ms/1.0"; + break; + + case SrgsTagFormat.W3cV1: + tagFormat = "semantics/1.0"; + break; + + case SrgsTagFormat.KeyValuePairs: + tagFormat = "properties-ms/1.0"; + break; + + default: + System.Diagnostics.Debug.Assert(false, "Unknown Tag Format!!!"); + break; + } + + if (tagFormat != null) + { + writer.WriteAttributeString("tag-format", tagFormat); + } + + // Write the Alphabet type if not SAPI + if (_hasPhoneticAlphabetBeenSet || (_phoneticAlphabet != SrgsPhoneticAlphabet.Sapi && HasPronunciation)) + { + string alphabet = _phoneticAlphabet == SrgsPhoneticAlphabet.Ipa ? "ipa" : _phoneticAlphabet == SrgsPhoneticAlphabet.Ups ? "x-microsoft-ups" : "x-microsoft-sapi"; + + writer.WriteAttributeString("sapi", "alphabet", XmlParser.sapiNamespace, alphabet); + } + + if (_xmlBase != null) + { + writer.WriteAttributeString("xml:base", _xmlBase.ToString()); + } + + writer.WriteAttributeString("version", "1.0"); + + writer.WriteAttributeString("xmlns", XmlParser.srgsNamespace); + + if (_isSapiExtensionUsed) + { + writer.WriteAttributeString("xmlns", "sapi", null, XmlParser.sapiNamespace); + } + + foreach (SrgsRule rule in _rules) + { + // Validate child _rules + rule.Validate(this); + } + + // Write the tag elements if any + foreach (string tag in _globalTags) + { + writer.WriteElementString("tag", tag); + } + + //Write the references to the referenced assemblies and the various scripts + WriteGrammarElements(writer); + + writer.WriteEndElement(); + } + + /// + /// Validate the SRGS element. + /// + internal void Validate() + { + // Validation set the pronunciation so reset it to zero + HasPronunciation = HasSapiExtension = false; + + // validate all the rules + foreach (SrgsRule rule in _rules) + { + // Validate child _rules + rule.Validate(this); + } + + // Initial values for ContainsCOde and SapiExtensionUsed. + _isSapiExtensionUsed |= HasPronunciation; + _fContainsCode |= _language != null || _script.Length > 0 || _usings.Count > 0 || _assemblyReferences.Count > 0 || _codebehind.Count > 0 || _namespace != null || _fDebug; + _isSapiExtensionUsed |= _fContainsCode; + // If the grammar contains no pronunciations, set the phonetic alphabet to SAPI. + // This way, the CFG data can be loaded by SAPI 5.1. + if (!HasPronunciation) + { + PhoneticAlphabet = AlphabetType.Sapi; + } + + // Validate root rule reference + if (_root != null) + { + if (!_rules.Contains(_root)) + { + XmlParser.ThrowSrgsException(SRID.RootNotDefined, _root.Id); + } + } + + if (_globalTags.Count > 0) + { + _tagFormat = SrgsTagFormat.W3cV1; + } + + // Force the tag format to Sapi properties if .NET semantics are used. + if (_fContainsCode) + { + if (_tagFormat == SrgsTagFormat.Default) + { + _tagFormat = SrgsTagFormat.KeyValuePairs; + } + + // SAPI semantics only for .NET Semantics + if (_tagFormat != SrgsTagFormat.KeyValuePairs) + { + XmlParser.ThrowSrgsException(SRID.InvalidSemanticProcessingType); + } + } + } + + IRule IGrammar.CreateRule(string id, RulePublic publicRule, RuleDynamic dynamic, bool hasScript) + { + SrgsRule rule = new(id); + if (publicRule != RulePublic.NotSet) + { + rule.Scope = publicRule == RulePublic.True ? SrgsRuleScope.Public : SrgsRuleScope.Private; + } + rule.Dynamic = dynamic; + return rule; + } + + void IElement.PostParse(IElement parent) + { + // Check that the root rule is defined + if (_sRoot != null) + { + bool found = false; + foreach (SrgsRule rule in Rules) + { + if (rule.Id == _sRoot) + { + Root = rule; + found = true; + break; + } + } + if (!found) + { + // "Root rule ""%s"" is undefined." + XmlParser.ThrowSrgsException(SRID.RootNotDefined, _sRoot); + } + } + + // Resolve the references to the scripts + foreach (XmlParser.ForwardReference script in _scriptsForwardReference) + { + SrgsRule rule = Rules[script._name]; + if (rule != null) + { + rule.Script = rule.Script + script._value; + } + else + { + XmlParser.ThrowSrgsException(SRID.InvalidScriptDefinition); + } + } + // Validate the whole grammar + Validate(); + } + +#pragma warning disable 56507 // check for null or empty strings + + // Add a script to this grammar or to a rule + internal void AddScript(string rule, string code) + { + if (rule == null) + { + _script += code; + } + else + { + _scriptsForwardReference.Add(new XmlParser.ForwardReference(rule, code)); + } + } + + #endregion + + #region Internal Properties + + /// + /// Sets the Root element + /// + string IGrammar.Root + { + get + { + return _sRoot; + } + set + { + _sRoot = value; + } + } + + /// + /// Base URI of grammar (xml:base) + /// + public Uri XmlBase + { + get + { + return _xmlBase; + } + set + { + _xmlBase = value; + } + } + + /// + /// Grammar language (xml:lang) + /// + public CultureInfo Culture + { + get + { + return _culture; + } + set + { + Helpers.ThrowIfNull(value, nameof(value)); + + _culture = value; + } + } + + /// + /// Grammar mode. voice or dtmf + /// + public GrammarType Mode + { + get + { + return _mode == SrgsGrammarMode.Voice ? GrammarType.VoiceGrammar : GrammarType.DtmfGrammar; + } + set + { + _mode = value == GrammarType.VoiceGrammar ? SrgsGrammarMode.Voice : SrgsGrammarMode.Dtmf; + _isModeSet = true; + } + } + + /// + /// Pronunciation Alphabet, IPA or SAPI or UPS + /// + public AlphabetType PhoneticAlphabet + { + get + { + return (AlphabetType)_phoneticAlphabet; + } + set + { + _phoneticAlphabet = (SrgsPhoneticAlphabet)value; + } + } + + /// root + /// Root rule (srgs:root) + /// + public SrgsRule Root + { + get + { + return _root; + } + set + { + _root = value; + } + } + + /// + /// Tag format (srgs:tag-format) + /// + public SrgsTagFormat TagFormat + { + get + { + return _tagFormat; + } + set + { + _tagFormat = value; + } + } + + /// + /// Tag format (srgs:tag-format) + /// + public Collection GlobalTags + { + get + { + return _globalTags; + } + set + { + _globalTags = value; + } + } + + /// + /// language + /// + public string Language + { + get + { + return _language; + } + set + { + _language = value; + } + } + + /// + /// namespace + /// + public string Namespace + { + get + { + return _namespace; + } + set + { + _namespace = value; + } + } + + /// + /// CodeBehind + /// + public Collection CodeBehind + { + get + { + return _codebehind; + } + set + { + throw new InvalidOperationException(); + } + } + + /// + /// Add #line statements to the inline scripts if set + /// + public bool Debug + { + get + { + return _fDebug; + } + set + { + _fDebug = value; + } + } + + /// + /// Scripts + /// + public string Script + { + get + { + return _script; + } + set + { + Helpers.ThrowIfEmptyOrNull(value, nameof(value)); + _script = value; + } + } + + /// + /// ImportNameSpaces + /// + public Collection ImportNamespaces + { + get + { + return _usings; + } + set + { + throw new InvalidOperationException(); + } + } + + /// + /// ImportNameSpaces + /// + public Collection AssemblyReferences + { + get + { + return _assemblyReferences; + } + set + { + throw new InvalidOperationException(); + } + } + #endregion + + #region Internal Properties + + /// + /// A collection of _rules that this grammar houses. + /// + internal SrgsRulesCollection Rules + { + get + { + return _rules; + } + } + + /// + /// A collection of _rules that this grammar houses. + /// + internal bool HasPronunciation + { + get + { + return _hasPronunciation; + } + set + { + _hasPronunciation = value; + } + } + + /// + /// A collection of _rules that this grammar houses. + /// + internal bool HasPhoneticAlphabetBeenSet + { + set + { + _hasPhoneticAlphabetBeenSet = value; + } + } + + /// + /// A collection of _rules that this grammar houses. + /// + internal bool HasSapiExtension + { + get + { + return _isSapiExtensionUsed; + } + set + { + _isSapiExtensionUsed = value; + } + } + + #endregion + + #region Private Methods + + /// + /// Write the attributes of the grammar element for strongly typed grammars + /// + private void WriteSTGAttributes(XmlWriter writer) + { + // Write the 'language' attribute + if (_language != null) + { + writer.WriteAttributeString("sapi", "language", XmlParser.sapiNamespace, _language); + } + + // Write the 'namespace' attribute + if (_namespace != null) + { + writer.WriteAttributeString("sapi", "namespace", XmlParser.sapiNamespace, _namespace); + } + + // Write the 'codebehind' attribute + foreach (string sFile in _codebehind) + { + if (!string.IsNullOrEmpty(sFile)) + { + writer.WriteAttributeString("sapi", "codebehind", XmlParser.sapiNamespace, sFile); + } + } + + // Write the 'debug' attribute + if (_fDebug) + { + writer.WriteAttributeString("sapi", "debug", XmlParser.sapiNamespace, "True"); + } + } + + /// + /// Write the references to the referenced assemblies and the various scripts + /// + private void WriteGrammarElements(XmlWriter writer) + { + // Write all the entries + foreach (string sAssembly in _assemblyReferences) + { + writer.WriteStartElement("sapi", "assemblyReference", XmlParser.sapiNamespace); + writer.WriteAttributeString("sapi", "assembly", XmlParser.sapiNamespace, sAssembly); + writer.WriteEndElement(); + } + + // Write all the entries + foreach (string sNamespace in _usings) + { + if (!string.IsNullOrEmpty(sNamespace)) + { + writer.WriteStartElement("sapi", "importNamespace", XmlParser.sapiNamespace); + writer.WriteAttributeString("sapi", "namespace", XmlParser.sapiNamespace, sNamespace); + writer.WriteEndElement(); + } + } + // Then write the rules + WriteRules(writer); + + // At the very bottom write the scripts shared by all the rules + WriteGlobalScripts(writer); + } + + /// + /// Write all Rules. + /// + private void WriteRules(XmlWriter writer) + { + // Write body and footer. + foreach (SrgsRule rule in _rules) + { + rule.WriteSrgs(writer); + } + } + + /// + /// Write the script that are global to this grammar + /// + private void WriteGlobalScripts(XmlWriter writer) + { + if (_script.Length > 0) + { + writer.WriteStartElement("sapi", "script", XmlParser.sapiNamespace); + writer.WriteCData(_script); + writer.WriteEndElement(); + } + } + #endregion + + #region Private Fields + + private bool _isSapiExtensionUsed; // Set in *.Validate() + + private Uri _xmlBase; + + private CultureInfo _culture = CultureInfo.CurrentUICulture; + + private SrgsGrammarMode _mode = SrgsGrammarMode.Voice; + + private SrgsPhoneticAlphabet _phoneticAlphabet = SrgsPhoneticAlphabet.Ipa; + + private bool _hasPhoneticAlphabetBeenSet; + + private bool _hasPronunciation; + + private SrgsRule _root; + + private SrgsTagFormat _tagFormat = SrgsTagFormat.Default; + + private Collection _globalTags = new(); + + private bool _isModeSet; + + private SrgsRulesCollection _rules; + + private string _sRoot; + + internal bool _fContainsCode; // Set in *.Validate() + + // .NET Language for this grammar + private string _language; + + // .NET Language for this grammar + private Collection _codebehind = new(); + + // namespace for the code behind + private string _namespace; + + // Insert #line statements in the sources code if set + internal bool _fDebug; + + // .NET language script + private string _script = string.Empty; + + // .NET language script + private List _scriptsForwardReference = new(); + + // .NET Namespaces to import + private Collection _usings = new(); + + // .NET Namespaces to import + private Collection _assemblyReferences = new(); + #endregion + + } +} diff --git a/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsGrammarCompiler.cs b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsGrammarCompiler.cs new file mode 100644 index 00000000000000..330cd054026f07 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsGrammarCompiler.cs @@ -0,0 +1,158 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.IO; +using System.Speech.Internal; +using System.Speech.Internal.SrgsCompiler; +using System.Xml; + +namespace System.Speech.Recognition.SrgsGrammar +{ + /// + /// Compiles Xml Srgs data into a CFG + /// + + public static class SrgsGrammarCompiler + { + #region Public Methods + + /// + /// Compiles a grammar to a file + /// + public static void Compile(string inputPath, Stream outputStream) + { + Helpers.ThrowIfEmptyOrNull(inputPath, nameof(inputPath)); + Helpers.ThrowIfNull(outputStream, nameof(outputStream)); + + using (XmlTextReader reader = new(new Uri(inputPath, UriKind.RelativeOrAbsolute).ToString())) + { + SrgsCompiler.CompileStream(new XmlReader[] { reader }, null, outputStream, true, null, null, null); + } + } + + /// + /// Compiles an Srgs document to a file + /// + public static void Compile(SrgsDocument srgsGrammar, Stream outputStream) + { + Helpers.ThrowIfNull(srgsGrammar, nameof(srgsGrammar)); + Helpers.ThrowIfNull(outputStream, nameof(outputStream)); + + SrgsCompiler.CompileStream(srgsGrammar, null, outputStream, true, null, null); + } + + /// + /// Compiles a grammar to a file + /// + public static void Compile(XmlReader reader, Stream outputStream) + { + Helpers.ThrowIfNull(reader, nameof(reader)); + Helpers.ThrowIfNull(outputStream, nameof(outputStream)); + + SrgsCompiler.CompileStream(new XmlReader[] { reader }, null, outputStream, true, null, null, null); + } + + /// + /// Compiles a grammar to a file + /// + public static void CompileClassLibrary(string[] inputPaths, string outputPath, string[] referencedAssemblies, string keyFile) + { + Helpers.ThrowIfNull(inputPaths, nameof(inputPaths)); + Helpers.ThrowIfEmptyOrNull(outputPath, nameof(outputPath)); + + XmlTextReader[] readers = new XmlTextReader[inputPaths.Length]; + try + { + for (int iFile = 0; iFile < inputPaths.Length; iFile++) + { + if (inputPaths[iFile] == null) + { + throw new ArgumentException(SR.Get(SRID.ArrayOfNullIllegal), nameof(inputPaths)); + } + readers[iFile] = new XmlTextReader(new Uri(inputPaths[iFile], UriKind.RelativeOrAbsolute).ToString()); + } + SrgsCompiler.CompileStream(readers, outputPath, null, false, null, referencedAssemblies, keyFile); + } + finally + { + for (int iReader = 0; iReader < readers.Length; iReader++) + { + XmlTextReader srgsGrammar = readers[iReader]; + if (srgsGrammar != null) + { + ((IDisposable)srgsGrammar).Dispose(); + } + } + } + } + + /// + /// Compiles an Srgs document to a file + /// + public static void CompileClassLibrary(SrgsDocument srgsGrammar, string outputPath, string[] referencedAssemblies, string keyFile) + { + Helpers.ThrowIfNull(srgsGrammar, nameof(srgsGrammar)); + Helpers.ThrowIfEmptyOrNull(outputPath, nameof(outputPath)); + + SrgsCompiler.CompileStream(srgsGrammar, outputPath, null, false, referencedAssemblies, keyFile); + } + + /// + /// Compiles a grammar to a file + /// + public static void CompileClassLibrary(XmlReader reader, string outputPath, string[] referencedAssemblies, string keyFile) + { + Helpers.ThrowIfNull(reader, nameof(reader)); + Helpers.ThrowIfEmptyOrNull(outputPath, nameof(outputPath)); + + SrgsCompiler.CompileStream(new XmlReader[] { reader }, outputPath, null, false, null, referencedAssemblies, keyFile); + } + + #endregion + + #region Internal Methods + + // Decide if the input stream is a cfg. + // If not assume it's an xml grammar. + // The stream parameter points to the start of the data on entry and is reset to that point on exit. + private static bool CheckIfCfg(Stream stream, out int cfgLength) + { + long initialPosition = stream.Position; + + bool isCfg = CfgGrammar.CfgSerializedHeader.IsCfg(stream, out cfgLength); + + // Reset stream position: + stream.Position = initialPosition; + return isCfg; + } + + internal static void CompileXmlOrCopyCfg( + Stream inputStream, + Stream outputStream, + Uri orginalUri) + { + // Wrap stream in case Seek is not supported: + SeekableReadStream seekableInputStream = new(inputStream); + + // See if CFG or XML document: + int cfgLength; + bool isCFG = CheckIfCfg(seekableInputStream, out cfgLength); + + seekableInputStream.CacheDataForSeeking = false; // Stop buffering data + + if (isCFG) + { + // Just copy the input to the output: + // {We later check the header on the output stream - we could do it on the input stream but it may not be seekable}. + Helpers.CopyStream(seekableInputStream, outputStream, cfgLength); + } + else + { + // Else compile the Xml: + SrgsCompiler.CompileStream(new XmlReader[] { new XmlTextReader(seekableInputStream) }, null, outputStream, true, orginalUri, null, null); + } + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsItem.cs b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsItem.cs new file mode 100644 index 00000000000000..c26fb7638ef737 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsItem.cs @@ -0,0 +1,396 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Globalization; +using System.Speech.Internal; +using System.Speech.Internal.SrgsParser; +using System.Text; +using System.Xml; + +namespace System.Speech.Recognition.SrgsGrammar +{ + [Serializable] + [DebuggerDisplay("{DebuggerDisplayString ()}")] + [DebuggerTypeProxy(typeof(SrgsItemDebugDisplay))] + public class SrgsItem : SrgsElement, IItem + { + #region Constructors + public SrgsItem() + { + _elements = new SrgsElementList(); + } + public SrgsItem(string text) + : this() + { + Helpers.ThrowIfEmptyOrNull(text, nameof(text)); + + _elements.Add(new SrgsText(text)); + } + public SrgsItem(params SrgsElement[] elements) + : this() + { + Helpers.ThrowIfNull(elements, nameof(elements)); + + for (int iElement = 0; iElement < elements.Length; iElement++) + { + if (elements[iElement] == null) + { + throw new ArgumentNullException(nameof(elements), SR.Get(SRID.ParamsEntryNullIllegal)); + } + _elements.Add(elements[iElement]); + } + } + public SrgsItem(int repeatCount) + : this() + { + SetRepeat(repeatCount); + } + public SrgsItem(int min, int max) + : this() + { + SetRepeat(min, max); + } + + //overloads with setting the repeat. + public SrgsItem(int min, int max, string text) + : this(text) + { + SetRepeat(min, max); + } + public SrgsItem(int min, int max, params SrgsElement[] elements) + : this(elements) + { + SetRepeat(min, max); + } + + #endregion + + #region Public Method + public void SetRepeat(int count) + { + // Negative values are not allowed + if (count < 0 || count > 255) + { + throw new ArgumentOutOfRangeException(nameof(count)); + } + _minRepeat = _maxRepeat = count; + } + public void SetRepeat(int minRepeat, int maxRepeat) + { + // Negative values are not allowed + if (minRepeat < 0 || minRepeat > 255) + { + throw new ArgumentOutOfRangeException(nameof(minRepeat), SR.Get(SRID.InvalidMinRepeat, minRepeat)); + } + if (maxRepeat != int.MaxValue && (maxRepeat < 0 || maxRepeat > 255)) + { + throw new ArgumentOutOfRangeException(nameof(maxRepeat), SR.Get(SRID.InvalidMinRepeat, maxRepeat)); + } + + // Max be greater or equal to min + if (minRepeat > maxRepeat) + { + throw new ArgumentException(SR.Get(SRID.MinGreaterThanMax)); + } + _minRepeat = minRepeat; + _maxRepeat = maxRepeat; + } + public void Add(SrgsElement element) + { + Helpers.ThrowIfNull(element, nameof(element)); + + Elements.Add(element); + } + + #endregion + + #region Public Properties + public Collection Elements + { + get + { + return _elements; + } + } + // The probability that this item will be repeated. + public float RepeatProbability + { + get + { + return _repeatProbability; + } + set + { + if (value < 0.0f || value > 1.0f) + { + throw new ArgumentOutOfRangeException(nameof(value), SR.Get(SRID.InvalidRepeatProbability, value)); + } + + _repeatProbability = value; + } + } + // The minimum number of occurrences this item can/must be repeated. + public int MinRepeat + { + get + { + return _minRepeat == NotSet ? 1 : _minRepeat; + } + } + // The maximum number of occurrences this item can/must be repeated. + public int MaxRepeat + { + get + { + return _maxRepeat == NotSet ? 1 : _maxRepeat; + } + } + public float Weight + { + get + { + return _weight; + } + set + { + if (value <= 0.0f) + { + throw new ArgumentOutOfRangeException(nameof(value), SR.Get(SRID.InvalidWeight, value)); + } + + _weight = value; + } + } + + #endregion + + #region Internal Methods + + /// + /// Write the XML fragment describing the object. + /// + internal override void WriteSrgs(XmlWriter writer) + { + // Write + writer.WriteStartElement("item"); + if (!_weight.Equals(1.0f)) + { + writer.WriteAttributeString("weight", _weight.ToString("0.########", CultureInfo.InvariantCulture)); + } + + if (!_repeatProbability.Equals(0.5f)) + { + writer.WriteAttributeString("repeat-prob", _repeatProbability.ToString("0.########", CultureInfo.InvariantCulture)); + } + + if (_minRepeat == _maxRepeat) + { + // could be because both value are NotSet of equal + if (_minRepeat != NotSet) + { + writer.WriteAttributeString("repeat", string.Format(CultureInfo.InvariantCulture, "{0}", _minRepeat)); + } + } + else if (_maxRepeat == int.MaxValue || _maxRepeat == NotSet) + { + // MinValue Set but not Max Value + writer.WriteAttributeString("repeat", string.Format(CultureInfo.InvariantCulture, "{0}-", _minRepeat)); + } + else + { + // Max Value Set and maybe MinValue + int minRepeat = _minRepeat == NotSet ? 1 : _minRepeat; + writer.WriteAttributeString("repeat", string.Format(CultureInfo.InvariantCulture, "{0}-{1}", minRepeat, _maxRepeat)); + } + + // Write body and footer. + Type previousElementType = null; + + foreach (SrgsElement element in _elements) + { + // Insert space between consecutive SrgsText _elements. + Type elementType = element.GetType(); + + if ((elementType == typeof(SrgsText)) && (elementType == previousElementType)) + { + writer.WriteString(" "); + } + + previousElementType = elementType; + element.WriteSrgs(writer); + } + + writer.WriteEndElement(); + } + + internal override string DebuggerDisplayString() + { + StringBuilder sb = new(); + + if (_elements.Count > 7) + { + sb.Append("SrgsItem Count = "); + sb.Append(_elements.Count.ToString(CultureInfo.InvariantCulture)); + } + else + { + if (_minRepeat != _maxRepeat || _maxRepeat != NotSet) + { + sb.Append('['); + if (_minRepeat == _maxRepeat) + { + sb.Append(_minRepeat.ToString(CultureInfo.InvariantCulture)); + } + else if (_maxRepeat == int.MaxValue || _maxRepeat == NotSet) + { + // MinValue Set but not Max Value + sb.Append(string.Format(CultureInfo.InvariantCulture, "{0},-", _minRepeat)); + } + else + { + // Max Value Set and maybe MinValue + int minRepeat = _minRepeat == NotSet ? 1 : _minRepeat; + sb.Append(string.Format(CultureInfo.InvariantCulture, "{0},{1}", minRepeat, _maxRepeat)); + } + sb.Append("] "); + } + + bool first = true; + foreach (SrgsElement element in _elements) + { + if (!first) + { + sb.Append(' '); + } + sb.Append('{'); + sb.Append(element.DebuggerDisplayString()); + sb.Append('}'); + first = false; + } + } + return sb.ToString(); + } + + #endregion + + #region Protected Properties + + /// + /// Allows the Srgs Element base class to implement + /// features requiring recursion in the elements tree. + /// + internal override SrgsElement[] Children + { + get + { + SrgsElement[] elements = new SrgsElement[_elements.Count]; + int i = 0; + foreach (SrgsElement element in _elements) + { + elements[i++] = element; + } + return elements; + } + } + + #endregion + + #region Private Methods + + #endregion + + #region Private Fields + + private float _weight = 1.0f; + + private float _repeatProbability = 0.5f; + + private int _minRepeat = NotSet; + + private int _maxRepeat = NotSet; + + private SrgsElementList _elements; + + private const int NotSet = -1; + + #endregion + + #region Private Types + + // Used by the debugger display attribute + internal class SrgsItemDebugDisplay + { + public SrgsItemDebugDisplay(SrgsItem item) + { + _weight = item._weight; + _repeatProbability = item._repeatProbability; + _minRepeat = item._minRepeat; + _maxRepeat = item._maxRepeat; + _elements = item._elements; + } + + public object Weight + { + get + { + return _weight; + } + } + + public object MinRepeat + { + get + { + return _minRepeat; + } + } + + public object MaxRepeat + { + get + { + return _maxRepeat; + } + } + + public object RepeatProbability + { + get + { + return _repeatProbability; + } + } + + public object Count + { + get + { + return _elements.Count; + } + } + [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] + public SrgsElement[] AKeys + { + get + { + SrgsElement[] elements = new SrgsElement[_elements.Count]; + for (int i = 0; i < _elements.Count; i++) + { + elements[i] = _elements[i]; + } + return elements; + } + } + + private float _weight = 1.0f; + private float _repeatProbability = 0.5f; + private int _minRepeat = NotSet; + private int _maxRepeat = NotSet; + private SrgsElementList _elements; + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsItemList.cs b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsItemList.cs new file mode 100644 index 00000000000000..86d75c6fc8d49a --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsItemList.cs @@ -0,0 +1,23 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.ObjectModel; +using System.Speech.Internal; + +namespace System.Speech.Recognition.SrgsGrammar +{ + [Serializable] + internal class SrgsItemList : Collection + { + #region Interfaces Implementations + + protected override void InsertItem(int index, SrgsItem item) + { + Helpers.ThrowIfNull(item, nameof(item)); + + base.InsertItem(index, item); + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsNameValueTag.cs b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsNameValueTag.cs new file mode 100644 index 00000000000000..cb134eb1fe614b --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsNameValueTag.cs @@ -0,0 +1,197 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics; +using System.Globalization; +using System.Speech.Internal; +using System.Speech.Internal.SrgsParser; +using System.Text; +using System.Xml; + +namespace System.Speech.Recognition.SrgsGrammar +{ + [Serializable] + [DebuggerDisplay("{DebuggerDisplayString ()}")] + public class SrgsNameValueTag : SrgsElement, IPropertyTag + { + #region Constructors + public SrgsNameValueTag() + { + } + public SrgsNameValueTag(object value) + { + Helpers.ThrowIfNull(value, nameof(value)); + + Value = value; + } + public SrgsNameValueTag(string name, object value) + : this(value) + { + _name = GetTrimmedName(name, "name"); + } + + #endregion + + #region public Properties + // Name of semantic property contained inside the element. + public string Name + { + get + { + return _name; + } + set + { + _name = GetTrimmedName(value, "value"); + } + } + + // Prefast cannot figure out that parameter checking is done +#pragma warning disable 56526 + // Value of semantic property contained inside the element. + public object Value + { + get { return _value; } + set + { + Helpers.ThrowIfNull(value, nameof(value)); + + if ((value is string) || + (value is bool) || + (value is int) || + (value is double)) + { + _value = value; + } + else + { + throw new ArgumentException(SR.Get(SRID.InvalidValueType), nameof(value)); + } + } + } + +#pragma warning restore 56526 + + #endregion + + #region Internal methods + + internal override void WriteSrgs(XmlWriter writer) + { + // Figure out if the tag contains a value. + bool hasValue = Value != null; + + // Do not write the tag if it is empty + bool hasName = !string.IsNullOrEmpty(_name); + // Write text + writer.WriteStartElement("tag"); + + StringBuilder sb = new(); + + if (hasName) + { + sb.Append(_name); + sb.Append('='); + } + + if (hasValue) + { + if (Value is string) + { + sb.AppendFormat(CultureInfo.InvariantCulture, "\"{0}\"", Value.ToString()); + } + else + { + sb.Append(Value.ToString()); + } + } + + writer.WriteString(sb.ToString()); + writer.WriteEndElement(); + } + + internal override void Validate(SrgsGrammar grammar) + { + SrgsTagFormat tagFormat = grammar.TagFormat; + if (tagFormat == SrgsTagFormat.Default) + { + grammar.TagFormat |= SrgsTagFormat.KeyValuePairs; + } + else if (tagFormat != SrgsTagFormat.KeyValuePairs) + { + XmlParser.ThrowSrgsException(SRID.SapiPropertiesAndSemantics); + } + } + + void IPropertyTag.NameValue(IElement parent, string name, object value) + { + _name = name; + _value = value; + } + + internal override string DebuggerDisplayString() + { + StringBuilder sb = new("SrgsNameValue "); + + if (_name != null) + { + sb.Append(_name); + sb.Append(" ("); + } + + if (_value != null) + { + if (_value is string) + { + sb.AppendFormat(CultureInfo.InvariantCulture, "\"{0}\"", _value.ToString()); + } + else + { + sb.Append(_value.ToString()); + } + } + else + { + sb.Append("null"); + } + + if (_name != null) + { + sb.Append(')'); + } + + return sb.ToString(); + } + + #endregion + + #region Private Methods + + /// + /// Checks if the name is not null and just made of blanks + /// Returned the trimmed name + /// + private static string GetTrimmedName(string name, string parameterName) + { + Helpers.ThrowIfEmptyOrNull(name, parameterName); + + // Remove the leading and trailing spaces + name = name.Trim(Helpers._achTrimChars); + + // Run again the validation code + Helpers.ThrowIfEmptyOrNull(name, parameterName); + + return name; + } + + #endregion + + #region Private Fields + + private string _name; + + private object _value; + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsOneOf.cs b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsOneOf.cs new file mode 100644 index 00000000000000..b787331ba27ab3 --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsOneOf.cs @@ -0,0 +1,158 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Speech.Internal; +using System.Speech.Internal.SrgsParser; +using System.Text; +using System.Xml; + +namespace System.Speech.Recognition.SrgsGrammar +{ + [Serializable] + [DebuggerDisplay("{DebuggerDisplayString ()}")] + [DebuggerTypeProxy(typeof(OneOfDebugDisplay))] + public class SrgsOneOf : SrgsElement, IOneOf + { + #region Constructors + public SrgsOneOf() + { + } + public SrgsOneOf(params string[] items) + : this() + { + Helpers.ThrowIfNull(items, nameof(items)); + + for (int i = 0; i < items.Length; i++) + { + if (items[i] == null) + { + throw new ArgumentNullException(nameof(items), SR.Get(SRID.ParamsEntryNullIllegal)); + } + + _items.Add(new SrgsItem(items[i])); + } + } + public SrgsOneOf(params SrgsItem[] items) + : this() + { + Helpers.ThrowIfNull(items, nameof(items)); + + for (int i = 0; i < items.Length; i++) + { + SrgsItem item = items[i]; + if (item == null) + { + throw new ArgumentNullException(nameof(items), SR.Get(SRID.ParamsEntryNullIllegal)); + } + + _items.Add(item); + } + } + + #endregion + + #region public Method + public void Add(SrgsItem item) + { + Helpers.ThrowIfNull(item, nameof(item)); + + Items.Add(item); + } + + #endregion + + #region public Properties + + // ISSUE: Do we need more constructors? Take a look at RuleElementCollection.AddOneOf methods. [Bug# 37115] + public Collection Items + { + get + { + return _items; + } + } + + #endregion + + #region internal Methods + + internal override void WriteSrgs(XmlWriter writer) + { + // Write ... + writer.WriteStartElement("one-of"); + foreach (SrgsItem element in _items) + { + element.WriteSrgs(writer); + } + + writer.WriteEndElement(); + } + + internal override string DebuggerDisplayString() + { + StringBuilder sb = new("SrgsOneOf Count = "); + sb.Append(_items.Count); + return sb.ToString(); + } + + #endregion + + #region Protected Properties + + /// + /// Allows the Srgs Element base class to implement + /// features requiring recursion in the elements tree. + /// + internal override SrgsElement[] Children + { + get + { + SrgsElement[] elements = new SrgsElement[_items.Count]; + int i = 0; + foreach (SrgsItem item in _items) + { + elements[i++] = item; + } + return elements; + } + } + + #endregion + + #region Private Fields + + private SrgsItemList _items = new(); + + #endregion + + #region Private Types + + // Used by the debugger display attribute + internal class OneOfDebugDisplay + { + public OneOfDebugDisplay(SrgsOneOf oneOf) + { + _items = oneOf._items; + } + [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] + public SrgsItem[] AKeys + { + get + { + SrgsItem[] items = new SrgsItem[_items.Count]; + for (int i = 0; i < _items.Count; i++) + { + items[i] = _items[i]; + } + return items; + } + } + + private Collection _items; + } + + #endregion + } +} diff --git a/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsRule.cs b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsRule.cs new file mode 100644 index 00000000000000..35542207f5a26f --- /dev/null +++ b/src/libraries/System.Speech/src/Recognition/SrgsGrammar/SrgsRule.cs @@ -0,0 +1,537 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Speech.Internal; +using System.Speech.Internal.SrgsParser; +using System.Xml; + +namespace System.Speech.Recognition.SrgsGrammar +{ + [Serializable] + [DebuggerDisplay("Rule={_id.ToString()} Scope={_scope.ToString()}")] + [DebuggerTypeProxy(typeof(SrgsRuleDebugDisplay))] + public class SrgsRule : IRule + { + #region Constructors + private SrgsRule() + { + _elements = new SrgsElementList(); + } + public SrgsRule(string id) + : this() + { + XmlParser.ValidateRuleId(id); + Id = id; + } + public SrgsRule(string id, params SrgsElement[] elements) + : this() + { + Helpers.ThrowIfNull(elements, nameof(elements)); + + XmlParser.ValidateRuleId(id); + Id = id; + + for (int iElement = 0; iElement < elements.Length; iElement++) + { + if (elements[iElement] == null) + { + throw new ArgumentNullException(nameof(elements), SR.Get(SRID.ParamsEntryNullIllegal)); + } + _elements.Add(elements[iElement]); + } + } + + #endregion + + #region public Method + public void Add(SrgsElement element) + { + Helpers.ThrowIfNull(element, nameof(element)); + + Elements.Add(element); + } + + #endregion + + #region public Properties + public Collection Elements + { + get + { + return _elements; + } + } + public string Id + { + get + { + return _id; + } + set + { + XmlParser.ValidateRuleId(value); + _id = value; + } + } + public SrgsRuleScope Scope + { + get + { + return _scope; + } + set + { + _scope = value; + _isScopeSet = true; + } + } + + /// + /// classname + /// + public string BaseClass + { + get + { + return _baseclass; + } + set + { + // base value can be null +#pragma warning disable 56526 + _baseclass = value; +#pragma warning restore 56526 + } + } + + /// + /// OnInit + /// + public string Script + { + get + { + return _script; + } + set + { + Helpers.ThrowIfEmptyOrNull(value, nameof(value)); + _script = value; + } + } + + /// + /// OnInit + /// + public string OnInit + { + get + { + return _onInit; + } + set + { + ValidateIdentifier(value); + _onInit = value; + } + } + + /// + /// OnParse + /// + public string OnParse + { + get + { + return _onParse; + } + set + { + ValidateIdentifier(value); + _onParse = value; + } + } + + /// + /// OnError + /// + public string OnError + { + get + { + return _onError; + } + set + { + ValidateIdentifier(value); + _onError = value; + } + } + + /// + /// OnRecognition + /// + public string OnRecognition + { + get + { + return _onRecognition; + } + set + { + ValidateIdentifier(value); + _onRecognition = value; + } + } + + #endregion + + #region Internal Methods + + internal void WriteSrgs(XmlWriter writer) + { + // Empty rule are not allowed + if (Elements.Count == 0) + { + XmlParser.ThrowSrgsException(SRID.InvalidEmptyRule, "rule", _id); + } + + // Write + writer.WriteStartElement("rule"); + writer.WriteAttributeString("id", _id); + if (_isScopeSet) + { + switch (_scope) + { + case SrgsRuleScope.Private: + writer.WriteAttributeString("scope", "private"); + break; + + case SrgsRuleScope.Public: + writer.WriteAttributeString("scope", "public"); + break; + } + } + // Write the 'baseclass' attribute + if (_baseclass != null) + { + writer.WriteAttributeString("sapi", "baseclass", XmlParser.sapiNamespace, _baseclass); + } + // Write + if (_dynamic != RuleDynamic.NotSet) + { + writer.WriteAttributeString("sapi", "dynamic", XmlParser.sapiNamespace, _dynamic == RuleDynamic.True ? "true" : "false"); + } + + // Write the 'onInit' code snippet + if (OnInit != null) + { + writer.WriteAttributeString("sapi", "onInit", XmlParser.sapiNamespace, OnInit); + } + + // Write + if (OnParse != null) + { + writer.WriteAttributeString("sapi", "onParse", XmlParser.sapiNamespace, OnParse); + } + + // Write + if (OnError != null) + { + writer.WriteAttributeString("sapi", "onError", XmlParser.sapiNamespace, OnError); + } + + // Write + if (OnRecognition != null) + { + writer.WriteAttributeString("sapi", "onRecognition", XmlParser.sapiNamespace, OnRecognition); + } + // Write body and footer. + Type previousElementType = null; + + foreach (SrgsElement element in _elements) + { + // Insert space between consecutive SrgsText elements. + Type elementType = element.GetType(); + + if ((elementType == typeof(SrgsText)) && (elementType == previousElementType)) + { + writer.WriteString(" "); + } + + previousElementType = elementType; + element.WriteSrgs(writer); + } + + writer.WriteEndElement(); + + // Write the