mirror of
https://github.com/pbatard/Fido.git
synced 2026-02-28 08:06:49 +01:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ea425ffbec | ||
|
|
41d5b8e79f | ||
|
|
0d5a7fed87 | ||
|
|
2fc1739224 | ||
|
|
96c3637863 | ||
|
|
c034a4e72a | ||
|
|
ce405fa35c |
579
Fido.ps1
579
Fido.ps1
@@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# Fido v1.61 - Feature ISO Downloader, for retail Windows images and UEFI Shell
|
# Fido v1.68 - ISO Downloader, for Microsoft Windows and UEFI Shell
|
||||||
# Copyright © 2019-2024 Pete Batard <pete@akeo.ie>
|
# Copyright © 2019-2026 Pete Batard <pete@akeo.ie>
|
||||||
# Command line support: Copyright © 2021 flx5
|
# Command line support: Copyright © 2021 flx5
|
||||||
# ConvertTo-ImageSource: Copyright © 2016 Chris Carter
|
# ConvertTo-ImageSource: Copyright © 2016 Chris Carter
|
||||||
#
|
#
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
#region Parameters
|
#region Parameters
|
||||||
param(
|
param(
|
||||||
# (Optional) The title to display on the application window.
|
# (Optional) The title to display on the application window.
|
||||||
[string]$AppTitle = "Fido - Feature ISO Downloader",
|
[string]$AppTitle = "Fido - ISO Downloader",
|
||||||
# (Optional) '|' separated UI localization strings.
|
# (Optional) '|' separated UI localization strings.
|
||||||
[string]$LocData,
|
[string]$LocData,
|
||||||
# (Optional) Forced locale
|
# (Optional) Forced locale
|
||||||
@@ -46,6 +46,9 @@ param(
|
|||||||
[string]$Arch,
|
[string]$Arch,
|
||||||
# (Optional) Only display the download URL [Toggles commandline mode]
|
# (Optional) Only display the download URL [Toggles commandline mode]
|
||||||
[switch]$GetUrl = $false,
|
[switch]$GetUrl = $false,
|
||||||
|
# (Optional) Specify the architecture of the underlying CPU.
|
||||||
|
# This avoids a VERY TIME CONSUMING call to WMI to autodetect the arch.
|
||||||
|
[string]$PlatformArch,
|
||||||
# (Optional) Increase verbosity
|
# (Optional) Increase verbosity
|
||||||
[switch]$Verbose = $false,
|
[switch]$Verbose = $false,
|
||||||
# (Optional) Produce debugging information
|
# (Optional) Produce debugging information
|
||||||
@@ -138,12 +141,12 @@ $WindowsVersions = @(
|
|||||||
@(
|
@(
|
||||||
@("Windows 11", "windows11"),
|
@("Windows 11", "windows11"),
|
||||||
@(
|
@(
|
||||||
"24H2 (Build 26100.1742 - 2024.10)",
|
"25H2 (Build 26200.6584 - 2025.10)",
|
||||||
# Thanks to Microsoft's hare-brained decision not to treat ARM64 as a CPU arch,
|
# Thanks to Microsoft's hare-brained decision not to treat ARM64 as a CPU arch,
|
||||||
# like they did for x86 and x64, we have to handle multiple IDs for each release...
|
# like they did for x86 and x64, we have to handle multiple IDs for each release...
|
||||||
@("Windows 11 Home/Pro/Edu", @(3113, 3131)),
|
@("Windows 11 Home/Pro/Edu", @(3262, 3265)),
|
||||||
@("Windows 11 Home China ", @(3115, 3132)),
|
@("Windows 11 Home China ", @(3263, 3266)),
|
||||||
@("Windows 11 Pro China ", @(3114, 3133))
|
@("Windows 11 Pro China ", @(3264, 3267))
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@(
|
@(
|
||||||
@@ -156,6 +159,21 @@ $WindowsVersions = @(
|
|||||||
)
|
)
|
||||||
@(
|
@(
|
||||||
@("UEFI Shell 2.2", "UEFI_SHELL 2.2"),
|
@("UEFI Shell 2.2", "UEFI_SHELL 2.2"),
|
||||||
|
@(
|
||||||
|
"25H2 (edk2-stable202511)",
|
||||||
|
@("Release", 0),
|
||||||
|
@("Debug", 1)
|
||||||
|
),
|
||||||
|
@(
|
||||||
|
"25H1 (edk2-stable202505)",
|
||||||
|
@("Release", 0),
|
||||||
|
@("Debug", 1)
|
||||||
|
),
|
||||||
|
@(
|
||||||
|
"24H2 (edk2-stable202411)",
|
||||||
|
@("Release", 0),
|
||||||
|
@("Debug", 1)
|
||||||
|
),
|
||||||
@(
|
@(
|
||||||
"24H1 (edk2-stable202405)",
|
"24H1 (edk2-stable202405)",
|
||||||
@("Release", 0),
|
@("Release", 0),
|
||||||
@@ -346,17 +364,6 @@ function ConvertTo-ImageSource
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function Throw-Error([object]$Req, [string]$Alt)
|
|
||||||
{
|
|
||||||
$Err = $(GetElementById -Request $Req -Id "errorModalMessage").innerText -replace "<[^>]+>" -replace "\s+", " "
|
|
||||||
if (!$Err) {
|
|
||||||
$Err = $Alt
|
|
||||||
} else {
|
|
||||||
$Err = [System.Text.Encoding]::UTF8.GetString([byte[]][char[]]$Err)
|
|
||||||
}
|
|
||||||
throw $Err
|
|
||||||
}
|
|
||||||
|
|
||||||
# Translate a message string
|
# Translate a message string
|
||||||
function Get-Translation([string]$Text)
|
function Get-Translation([string]$Text)
|
||||||
{
|
{
|
||||||
@@ -398,14 +405,14 @@ function Get-Arch
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Some PowerShells don't have Microsoft.mshtml assembly (comes with MS Office?)
|
# Convert a Microsoft arch type code to a formal architecture name
|
||||||
# so we can't use ParsedHtml or IHTMLDocument[2|3] features there...
|
function Get-Arch-From-Type([int]$Type)
|
||||||
function GetElementById([object]$Request, [string]$Id)
|
|
||||||
{
|
{
|
||||||
try {
|
switch($Type) {
|
||||||
return $Request.ParsedHtml.IHTMLDocument3_GetElementByID($Id)
|
0 { return "x86" }
|
||||||
} catch {
|
1 { return "x64" }
|
||||||
return $Request.AllElements | ? {$_.id -eq $Id}
|
2 { return "ARM64" }
|
||||||
|
default { return "Unknown"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -422,17 +429,6 @@ function Error([string]$ErrorMessage)
|
|||||||
$script:ExitCode = 2
|
$script:ExitCode = 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-RandomDate()
|
|
||||||
{
|
|
||||||
[DateTime]$Min = "1/1/2008"
|
|
||||||
[DateTime]$Max = [DateTime]::Now
|
|
||||||
|
|
||||||
$RandomGen = new-object random
|
|
||||||
$RandomTicks = [Convert]::ToInt64( ($Max.ticks * 1.0 - $Min.Ticks * 1.0 ) * $RandomGen.NextDouble() + $Min.Ticks * 1.0 )
|
|
||||||
$Date = new-object DateTime($RandomTicks)
|
|
||||||
return $Date.ToString("yyyyMMdd")
|
|
||||||
}
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Form
|
#region Form
|
||||||
@@ -466,15 +462,9 @@ $MaxStage = 4
|
|||||||
$SessionId = @($null) * 2
|
$SessionId = @($null) * 2
|
||||||
$ExitCode = 100
|
$ExitCode = 100
|
||||||
$Locale = $Locale
|
$Locale = $Locale
|
||||||
$RequestData = @{}
|
$OrgId = "y6jn8c31"
|
||||||
# This GUID applies to all visitors, regardless of their locale
|
$ProfileId = "606624d44113"
|
||||||
$RequestData["GetLangs"] = @("a8f8f489-4c7f-463a-9ca6-5cff94d8d041", "getskuinformationbyproductedition" )
|
$InstanceId = "560dc9f3-1aa5-4a2f-b63c-9e18f8d0e175"
|
||||||
# This GUID applies to visitors of the en-US download page. Other locales may get a different GUID.
|
|
||||||
$RequestData["GetLinks"] = @("6e2a1789-ef16-4f27-a296-74ef7ef5d96b", "GetProductDownloadLinksBySku" )
|
|
||||||
# Create a semi-random Linux User-Agent string
|
|
||||||
$FirefoxVersion = Get-Random -Minimum 110 -Maximum 135
|
|
||||||
$FirefoxDate = Get-RandomDate
|
|
||||||
$UserAgent = "Mozilla/5.0 (X11; Linux i586; rv:$FirefoxVersion.0) Gecko/$FirefoxDate Firefox/$FirefoxVersion.0"
|
|
||||||
$Verbosity = 1
|
$Verbosity = 1
|
||||||
if ($Debug) {
|
if ($Debug) {
|
||||||
$Verbosity = 5
|
$Verbosity = 5
|
||||||
@@ -483,7 +473,9 @@ if ($Debug) {
|
|||||||
} elseif ($Cmd -and $GetUrl) {
|
} elseif ($Cmd -and $GetUrl) {
|
||||||
$Verbosity = 0
|
$Verbosity = 0
|
||||||
}
|
}
|
||||||
$PlatformArch = Get-Arch
|
if (!$PlatformArch) {
|
||||||
|
$PlatformArch = Get-Arch
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
# Localization
|
# Localization
|
||||||
@@ -523,17 +515,11 @@ function Size-To-Human-Readable([uint64]$size)
|
|||||||
function Check-Locale
|
function Check-Locale
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$url = "https://www.microsoft.com/" + $QueryLocale + "/software-download/"
|
$url = "https://www.microsoft.com/" + $QueryLocale + "/software-download/windows11"
|
||||||
if ($Verbosity -ge 2) {
|
if ($Verbosity -ge 2) {
|
||||||
Write-Host Querying $url
|
Write-Host Querying $url
|
||||||
}
|
}
|
||||||
# Looks Microsoft are filtering our script according to the first query it performs with the spoofed user agent.
|
|
||||||
# So, to continue this pointless cat and mouse game, we simply add an extra first query with the default user agent.
|
|
||||||
# Also: "Hi Microsoft. You sure have A LOT OF RESOURCES TO WASTE to have assigned folks of yours to cripple scripts
|
|
||||||
# that merely exist because you have chosen to make the user experience from your download website utterly subpar.
|
|
||||||
# And while I am glad senpai noticed me (UwU), I feel compelled to ask: Don't you guys have better things to do?"
|
|
||||||
Invoke-WebRequest -UseBasicParsing -TimeoutSec $DefaultTimeout -MaximumRedirection 0 $url | Out-Null
|
Invoke-WebRequest -UseBasicParsing -TimeoutSec $DefaultTimeout -MaximumRedirection 0 $url | Out-Null
|
||||||
Invoke-WebRequest -UseBasicParsing -TimeoutSec $DefaultTimeout -MaximumRedirection 0 -UserAgent $UserAgent $url | Out-Null
|
|
||||||
} catch {
|
} catch {
|
||||||
# Of course PowerShell 7 had to BREAK $_.Exception.Status on timeouts...
|
# Of course PowerShell 7 had to BREAK $_.Exception.Status on timeouts...
|
||||||
if ($_.Exception.Status -eq "Timeout" -or $_.Exception.GetType().Name -eq "TaskCanceledException") {
|
if ($_.Exception.Status -eq "Timeout" -or $_.Exception.GetType().Name -eq "TaskCanceledException") {
|
||||||
@@ -543,6 +529,33 @@ function Check-Locale
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Get-Code-715-123130-Message
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$url = "https://www.microsoft.com/" + $QueryLocale + "/software-download/windows11"
|
||||||
|
if ($Verbosity -ge 2) {
|
||||||
|
Write-Host Querying $url
|
||||||
|
}
|
||||||
|
$r = Invoke-WebRequest -UseBasicParsing -TimeoutSec $DefaultTimeout -MaximumRedirection 0 $url
|
||||||
|
# Microsoft's handling of UTF-8 content is soooooooo *UTTERLY BROKEN*!!!
|
||||||
|
$r = [System.Text.Encoding]::UTF8.GetString($r.RawContentStream.ToArray())
|
||||||
|
# PowerShell 7 forces us to parse the HTML ourselves
|
||||||
|
$r = $r -replace "`n" -replace "`r"
|
||||||
|
$pattern = '.*<input id="msg-01" type="hidden" value="(.*?)"/>.*'
|
||||||
|
$msg = [regex]::Match($r, $pattern).Groups[1].Value
|
||||||
|
$msg = $msg -replace "<", "<" -replace "<[^>]+>" -replace "\s+", " "
|
||||||
|
if (($msg -eq $null) -or !($msg -match "715-123130")) {
|
||||||
|
throw
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
$msg = "Your IP address has been banned by Microsoft for issuing too many ISO download requests or for "
|
||||||
|
$msg += "belonging to a region of the world where sanctions currently apply. Please try again later.`r`n"
|
||||||
|
$msg += "If you believe this ban to be in error, you can try contacting Microsoft by referring to "
|
||||||
|
$msg += "message code 715-123130 and session ID "
|
||||||
|
}
|
||||||
|
return $msg
|
||||||
|
}
|
||||||
|
|
||||||
# Return an array of releases (e.g. 20H2, 21H1, ...) for the selected Windows version
|
# Return an array of releases (e.g. 20H2, 21H1, ...) for the selected Windows version
|
||||||
function Get-Windows-Releases([int]$SelectedVersion)
|
function Get-Windows-Releases([int]$SelectedVersion)
|
||||||
{
|
{
|
||||||
@@ -583,56 +596,98 @@ function Get-Windows-Languages([int]$SelectedVersion, [object]$SelectedEdition)
|
|||||||
$SessionIndex = 0
|
$SessionIndex = 0
|
||||||
foreach ($EditionId in $SelectedEdition) {
|
foreach ($EditionId in $SelectedEdition) {
|
||||||
$SessionId[$SessionIndex] = [guid]::NewGuid()
|
$SessionId[$SessionIndex] = [guid]::NewGuid()
|
||||||
# Microsoft download protection now requires the sessionId to be whitelisted through vlscppe.microsoft.com/tags
|
|
||||||
$url = "https://vlscppe.microsoft.com/tags?org_id=y6jn8c31&session_id=" + $SessionId[$SessionIndex]
|
# Microsoft download "protection" requires the sessionId to be whitelisted through vlscppe.microsoft.com/tags
|
||||||
|
$url = "https://vlscppe.microsoft.com/tags"
|
||||||
|
$url += "?org_id=" + $OrgId
|
||||||
|
$url += "&session_id=" + $SessionId[$SessionIndex]
|
||||||
if ($Verbosity -ge 2) {
|
if ($Verbosity -ge 2) {
|
||||||
Write-Host Querying $url
|
Write-Host Querying $url
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
Invoke-WebRequest -UseBasicParsing -TimeoutSec $DefaultTimeout -MaximumRedirection 0 -UserAgent $UserAgent $url | Out-Null
|
Invoke-WebRequest -UseBasicParsing -TimeoutSec $DefaultTimeout -MaximumRedirection 0 $url | Out-Null
|
||||||
} catch {
|
} catch {
|
||||||
Error($_.Exception.Message)
|
Error($_.Exception.Message)
|
||||||
return @()
|
return @()
|
||||||
}
|
}
|
||||||
$url = "https://www.microsoft.com/" + $QueryLocale + "/api/controls/contentinclude/html"
|
|
||||||
$url += "?pageId=" + $RequestData["GetLangs"][0]
|
# Microsoft download "protection" also requires an ov-df.microsoft.com request/reply
|
||||||
$url += "&host=www.microsoft.com"
|
# 1) Request mdt.js to get w and rticks. InstanceId is (currently) constant.
|
||||||
$url += "&segments=software-download," + $WindowsVersions[$SelectedVersion][0][1]
|
$url = "https://ov-df.microsoft.com/mdt.js"
|
||||||
$url += "&query=&action=" + $RequestData["GetLangs"][1]
|
$url += "?instanceId=" + $InstanceId
|
||||||
$url += "&sessionId=" + $SessionId[$SessionIndex]
|
$url += "&PageId=si"
|
||||||
$url += "&productEditionId=" + $EditionId
|
$url += "&session_id=" + $SessionId[$SessionIndex]
|
||||||
$url += "&sdVersion=2"
|
|
||||||
if ($Verbosity -ge 2) {
|
if ($Verbosity -ge 2) {
|
||||||
Write-Host Querying $url
|
Write-Host Querying $url
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
$r = Invoke-WebRequest -Method Post -UseBasicParsing -TimeoutSec $DefaultTimeout -UserAgent $UserAgent -SessionVariable "Session" $url
|
$r = Invoke-RestMethod -UseBasicParsing -TimeoutSec $DefaultTimeout -MaximumRedirection 0 $url
|
||||||
|
if ($r -eq $null) {
|
||||||
|
throw "Could not retrieve ov-df data"
|
||||||
|
}
|
||||||
|
# Extract w and rticks parameters
|
||||||
|
if ($r -match '[?&]w=([A-F0-9]+)') {
|
||||||
|
$w = $matches[1]
|
||||||
|
}
|
||||||
|
if ($r -match 'rticks\=\"\+?(\d+)') {
|
||||||
|
$rticks = $matches[1]
|
||||||
|
}
|
||||||
|
if (!$w -or !$rticks) {
|
||||||
|
throw "Could not extract ov-df data"
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
Error($_.Exception.Message)
|
||||||
|
return @()
|
||||||
|
}
|
||||||
|
# 2) Send a reply with session ID, current epoch and previously retrieved w and rticks
|
||||||
|
$url = "https://ov-df.microsoft.com/"
|
||||||
|
$url += "?session_id=" + $SessionId[$SessionIndex]
|
||||||
|
$url += "&CustomerId=" + $InstanceId
|
||||||
|
$url += "&PageId=si"
|
||||||
|
$url += "&w=" + $w
|
||||||
|
$url += "&mdt=" + [DateTimeOffset]::Now.ToUnixTimeMilliSeconds()
|
||||||
|
$url += "&rticks=" + $rticks
|
||||||
|
if ($Verbosity -ge 2) {
|
||||||
|
Write-Host Querying $url
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Invoke-WebRequest -UseBasicParsing -TimeoutSec $DefaultTimeout -MaximumRedirection 0 $url | Out-Null
|
||||||
|
} catch {
|
||||||
|
Error($_.Exception.Message)
|
||||||
|
return @()
|
||||||
|
}
|
||||||
|
|
||||||
|
$url = "https://www.microsoft.com/software-download-connector/api/getskuinformationbyproductedition"
|
||||||
|
$url += "?profile=" + $ProfileId
|
||||||
|
$url += "&productEditionId=" + $EditionId
|
||||||
|
$url += "&SKU=undefined"
|
||||||
|
$url += "&friendlyFileName=undefined"
|
||||||
|
$url += "&Locale=" + $QueryLocale
|
||||||
|
$url += "&sessionID=" + $SessionId[$SessionIndex]
|
||||||
|
if ($Verbosity -ge 2) {
|
||||||
|
Write-Host Querying $url
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
$r = Invoke-RestMethod -UseBasicParsing -TimeoutSec $DefaultTimeout -SessionVariable "Session" $url
|
||||||
|
if ($r -eq $null) {
|
||||||
|
throw "Could not retrieve languages from server"
|
||||||
|
}
|
||||||
if ($Verbosity -ge 5) {
|
if ($Verbosity -ge 5) {
|
||||||
Write-Host "=============================================================================="
|
Write-Host "=============================================================================="
|
||||||
Write-Host $r
|
Write-Host ($r | ConvertTo-Json)
|
||||||
Write-Host "=============================================================================="
|
Write-Host "=============================================================================="
|
||||||
}
|
}
|
||||||
if ($r -match "errorModalMessage") {
|
if ($r.Errors) {
|
||||||
Throw-Error -Req $r -Alt "Could not retrieve languages from server"
|
throw $r.Errors[0].Value
|
||||||
}
|
}
|
||||||
$r = $r -replace "`n" -replace "`r"
|
foreach ($Sku in $r.Skus) {
|
||||||
$pattern = '.*<select id="product-languages"[^>]*>(.*)</select>.*'
|
if (!$languages.Contains($Sku.Language)) {
|
||||||
$html = [regex]::Match($r, $pattern).Groups[1].Value
|
$languages[$Sku.Language] = @{ DisplayName = $Sku.LocalizedLanguage; Data = @() }
|
||||||
# Go through an XML conversion to keep all PowerShells happy...
|
|
||||||
$html = $html.Replace("selected value", "value")
|
|
||||||
$html = "<options>" + $html + "</options>"
|
|
||||||
$xml = [xml]$html
|
|
||||||
foreach ($var in $xml.options.option) {
|
|
||||||
$json = $var.value | ConvertFrom-Json;
|
|
||||||
if ($json) {
|
|
||||||
if (!$languages.Contains($json.language)) {
|
|
||||||
$languages[$json.language] = @{ DisplayName = $var.InnerText; Data = @() }
|
|
||||||
}
|
|
||||||
$languages[$json.language].Data += @{ SessionIndex = $SessionIndex; SkuId = $json.id }
|
|
||||||
}
|
}
|
||||||
|
$languages[$Sku.Language].Data += @{ SessionIndex = $SessionIndex; SkuId = $Sku.Id }
|
||||||
}
|
}
|
||||||
if ($languages.Length -eq 0) {
|
if ($languages.Length -eq 0) {
|
||||||
Throw-Error -Req $r -Alt "Could not parse languages"
|
throw "Could not parse languages"
|
||||||
}
|
}
|
||||||
} catch {
|
} catch {
|
||||||
Error($_.Exception.Message)
|
Error($_.Exception.Message)
|
||||||
@@ -682,65 +737,48 @@ function Get-Windows-Download-Links([int]$SelectedVersion, [int]$SelectedRelease
|
|||||||
$archs += $sep + $arch
|
$archs += $sep + $arch
|
||||||
$sep = ", "
|
$sep = ", "
|
||||||
}
|
}
|
||||||
$links += @(New-Object PsObject -Property @{ Type = $archs; Url = $link })
|
$links += @(New-Object PsObject -Property @{ Arch = $archs; Url = $link })
|
||||||
} catch {
|
} catch {
|
||||||
Error($_.Exception.Message)
|
Error($_.Exception.Message)
|
||||||
return @()
|
return @()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
foreach ($Entry in $SelectedLanguage.Data) {
|
foreach ($Entry in $SelectedLanguage.Data) {
|
||||||
$url = "https://www.microsoft.com/" + $QueryLocale + "/api/controls/contentinclude/html"
|
$url = "https://www.microsoft.com/software-download-connector/api/GetProductDownloadLinksBySku"
|
||||||
$url += "?pageId=" + $RequestData["GetLinks"][0]
|
$url += "?profile=" + $ProfileId
|
||||||
$url += "&host=www.microsoft.com"
|
$url += "&productEditionId=undefined"
|
||||||
$url += "&segments=software-download," + $WindowsVersions[$SelectedVersion][0][1]
|
$url += "&SKU=" + $Entry.SkuId
|
||||||
$url += "&query=&action=" + $RequestData["GetLinks"][1]
|
$url += "&friendlyFileName=undefined"
|
||||||
$url += "&sessionId=" + $SessionId[$Entry.SessionIndex]
|
$url += "&Locale=" + $QueryLocale
|
||||||
$url += "&skuId=" + $Entry.SkuId
|
$url += "&sessionID=" + $SessionId[$Entry.SessionIndex]
|
||||||
$url += "&language=" + $SelectedLanguage.Name
|
|
||||||
$url += "&sdVersion=2"
|
|
||||||
if ($Verbosity -ge 2) {
|
if ($Verbosity -ge 2) {
|
||||||
Write-Host Querying $url
|
Write-Host Querying $url
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
# Must add a referer for this request, else Microsoft's servers will deny it
|
# Must add a referer for this request, else Microsoft's servers may deny it
|
||||||
$ref = "https://www.microsoft.com/software-download/windows11"
|
$ref = "https://www.microsoft.com/software-download/windows11"
|
||||||
$r = Invoke-WebRequest -Method Post -Headers @{ "Referer" = $ref } -UseBasicParsing -TimeoutSec $DefaultTimeout -UserAgent $UserAgent -WebSession $Session $url
|
$r = Invoke-RestMethod -Headers @{ "Referer" = $ref } -UseBasicParsing -TimeoutSec $DefaultTimeout -SessionVariable "Session" $url
|
||||||
|
if ($r -eq $null) {
|
||||||
|
throw "Could not retrieve architectures from server"
|
||||||
|
}
|
||||||
if ($Verbosity -ge 5) {
|
if ($Verbosity -ge 5) {
|
||||||
Write-Host "=============================================================================="
|
Write-Host "=============================================================================="
|
||||||
Write-Host $r
|
Write-Host ($r | ConvertTo-Json)
|
||||||
Write-Host "=============================================================================="
|
Write-Host "=============================================================================="
|
||||||
}
|
}
|
||||||
if ($r -match "errorModalMessage") {
|
if ($r.Errors) {
|
||||||
$Alt = [regex]::Match($r.Content, '<p id="errorModalMessage">(.+?)<\/p>').Groups[1].Value -replace "<[^>]+>" -replace "\s+", " " -replace "\?\?\?", "-"
|
if ( $r.Errors[0].Type -eq 9) {
|
||||||
$Alt = [System.Text.Encoding]::UTF8.GetString([byte[]][char[]]$Alt)
|
$msg = Get-Code-715-123130-Message
|
||||||
if (!$Alt) {
|
throw $msg + $SessionId[$Entry.SessionIndex] + "."
|
||||||
$Alt = "Could not retrieve architectures from server"
|
} else {
|
||||||
} elseif ($Alt -match "715-123130") {
|
throw $r.Errors[0].Value
|
||||||
$Alt += " " + $SessionId[$Entry.SessionIndex] + "."
|
|
||||||
}
|
}
|
||||||
Throw-Error -Req $r -Alt $Alt
|
|
||||||
}
|
}
|
||||||
$pattern = '(?s)(<input.*?></input>)'
|
foreach ($ProductDownloadOption in $r.ProductDownloadOptions) {
|
||||||
ForEach-Object { [regex]::Matches($r, $pattern) } | ForEach-Object { $html += $_.Groups[1].value }
|
$links += @(New-Object PsObject -Property @{ Arch = (Get-Arch-From-Type $ProductDownloadOption.DownloadType); Url = $ProductDownloadOption.Uri })
|
||||||
# Need to fix the HTML and JSON data so that it is well-formed
|
|
||||||
$html = $html.Replace("class=product-download-hidden", "")
|
|
||||||
$html = $html.Replace("type=hidden", "")
|
|
||||||
$html = $html.Replace(" ", " ")
|
|
||||||
$html = $html.Replace("IsoX86", ""x86"")
|
|
||||||
$html = $html.Replace("IsoX64", ""x64"")
|
|
||||||
# As usual Microsoft's left hand is completely uncoordinated with right hand
|
|
||||||
$html = $html.Replace("Unknown", ""ARM64"")
|
|
||||||
$html = "<inputs>" + $html + "</inputs>"
|
|
||||||
$xml = [xml]$html
|
|
||||||
foreach ($var in $xml.inputs.input) {
|
|
||||||
$json = $var.value | ConvertFrom-Json;
|
|
||||||
if ($json) {
|
|
||||||
$links += @(New-Object PsObject -Property @{ Type = $json.DownloadType; Url = $json.Uri })
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if ($links.Length -eq 0) {
|
if ($links.Length -eq 0) {
|
||||||
Throw-Error -Req $r -Alt "Could not retrieve ISO download links"
|
throw "Could not retrieve ISO download links"
|
||||||
}
|
}
|
||||||
} catch {
|
} catch {
|
||||||
Error($_.Exception.Message)
|
Error($_.Exception.Message)
|
||||||
@@ -751,7 +789,7 @@ function Get-Windows-Download-Links([int]$SelectedVersion, [int]$SelectedRelease
|
|||||||
$i = 0
|
$i = 0
|
||||||
$script:SelectedIndex = 0
|
$script:SelectedIndex = 0
|
||||||
foreach($link in $links) {
|
foreach($link in $links) {
|
||||||
if ($link.Type -eq $PlatformArch) {
|
if ($link.Arch -eq $PlatformArch) {
|
||||||
$script:SelectedIndex = $i
|
$script:SelectedIndex = $i
|
||||||
}
|
}
|
||||||
$i++
|
$i++
|
||||||
@@ -921,12 +959,12 @@ if ($Cmd) {
|
|||||||
$i = 0
|
$i = 0
|
||||||
foreach ($link in $links) {
|
foreach ($link in $links) {
|
||||||
if ($Arch -eq "List") {
|
if ($Arch -eq "List") {
|
||||||
Write-Host " -" $link.Type
|
Write-Host " -" $link.Arch
|
||||||
} elseif ((!$Arch -and $script:SelectedIndex -eq $i) -or ($Arch -and $link.Type -match $Arch)) {
|
} elseif ((!$Arch -and $script:SelectedIndex -eq $i) -or ($Arch -and $link.Arch -match $Arch)) {
|
||||||
if (!$Arch -and $Verbosity -ge 1) {
|
if (!$Arch -and $Verbosity -ge 1) {
|
||||||
Write-Host "No architecture specified (-Arch). Defaulting to '$($link.Type)'."
|
Write-Host "No architecture specified (-Arch). Defaulting to '$($link.Arch)'."
|
||||||
}
|
}
|
||||||
$Selected += ", [" + $link.Type + "]"
|
$Selected += ", [" + $link.Arch + "]"
|
||||||
$winLink = $link
|
$winLink = $link
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1032,7 +1070,7 @@ $Continue.add_click({
|
|||||||
if ($links.Length -eq 0) {
|
if ($links.Length -eq 0) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
$script:Architecture = Add-Entry $Stage "Architecture" $links "Type"
|
$script:Architecture = Add-Entry $Stage "Architecture" $links "Arch"
|
||||||
if ($PipeName) {
|
if ($PipeName) {
|
||||||
$XMLForm.Height += $dh / 2;
|
$XMLForm.Height += $dh / 2;
|
||||||
$Margin = $Continue.Margin
|
$Margin = $Continue.Margin
|
||||||
@@ -1102,10 +1140,10 @@ $XMLForm.ShowDialog() | Out-Null
|
|||||||
exit $ExitCode
|
exit $ExitCode
|
||||||
|
|
||||||
# SIG # Begin signature block
|
# SIG # Begin signature block
|
||||||
# MIItPAYJKoZIhvcNAQcCoIItLTCCLSkCAQExDzANBglghkgBZQMEAgEFADB5Bgor
|
# MIIteAYJKoZIhvcNAQcCoIItaTCCLWUCAQExDzANBglghkgBZQMEAgEFADB5Bgor
|
||||||
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
|
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
|
||||||
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDFXTWq2lpU/6fR
|
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCB1dtbxSI71NO7p
|
||||||
# Ct1W7yWDg6b1THz8JSMDTQ5AW7weJ6CCEkAwggVvMIIEV6ADAgECAhBI/JO0YFWU
|
# SjiPlVZveiiexFLEwtNoEZ6KLHZtBKCCEkAwggVvMIIEV6ADAgECAhBI/JO0YFWU
|
||||||
# jTanyYqJ1pQWMA0GCSqGSIb3DQEBDAUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQI
|
# jTanyYqJ1pQWMA0GCSqGSIb3DQEBDAUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQI
|
||||||
# DBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoM
|
# DBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoM
|
||||||
# EUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2Vy
|
# EUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2Vy
|
||||||
@@ -1202,146 +1240,147 @@ exit $ExitCode
|
|||||||
# 4a6KRpYwLMYE9/ZBEBP7JpfiMt42q+QF6fyS8xauGiOGBOZW4ch7Wh+GBoe3JZUu
|
# 4a6KRpYwLMYE9/ZBEBP7JpfiMt42q+QF6fyS8xauGiOGBOZW4ch7Wh+GBoe3JZUu
|
||||||
# UPC4wZDC9LeRKz/otodtloaTEnW9YE9gPmfRttMWaNsQTg6y5sc74qLoVY0RSqcW
|
# UPC4wZDC9LeRKz/otodtloaTEnW9YE9gPmfRttMWaNsQTg6y5sc74qLoVY0RSqcW
|
||||||
# B2KScXAjuVHVkJJcOoPSuLoTjOhK3Ug4XbQmRypdteoizdTSnONGmW84RJyXquzi
|
# B2KScXAjuVHVkJJcOoPSuLoTjOhK3Ug4XbQmRypdteoizdTSnONGmW84RJyXquzi
|
||||||
# rIjw9CnLTggrZiYi9EZTo7URWNaARqLbSFpu0VMkdOBpWdXq5F6x6jslMYIaUjCC
|
# rIjw9CnLTggrZiYi9EZTo7URWNaARqLbSFpu0VMkdOBpWdXq5F6x6jslMYIajjCC
|
||||||
# Gk4CAQEwazBXMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVk
|
# GooCAQEwazBXMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVk
|
||||||
# MS4wLAYDVQQDEyVTZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcgQ0EgRVYgUjM2
|
# MS4wLAYDVQQDEyVTZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcgQ0EgRVYgUjM2
|
||||||
# AhA3xQo8HaADcccNx8YmkC/lMA0GCWCGSAFlAwQCAQUAoHwwEAYKKwYBBAGCNwIB
|
# AhA3xQo8HaADcccNx8YmkC/lMA0GCWCGSAFlAwQCAQUAoHwwEAYKKwYBBAGCNwIB
|
||||||
# DDECMAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO
|
# DDECMAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO
|
||||||
# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJOGS5HWMc2rDXvPKvX2nFz6
|
# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEII294xnKlxANHBu2tvimfevz
|
||||||
# Kgz3N3nMaspPXtcMKTojMA0GCSqGSIb3DQEBAQUABIICAJ74B4pGm7vaEYuhs3NT
|
# QJqK5wCkNZQhXg6EpkW0MA0GCSqGSIb3DQEBAQUABIICAB1iDg7emj2kT1B9y6ZJ
|
||||||
# DVwFMiBWnu7mul6K6Van7Itz0bECfra3r9wpUvcsAoOKEqZ9VX1AmJ/zoIQhQgq3
|
# RZ5n3DXh+Gg5HKqMed5qd8YowmRiHPgjAzwWe6P7mmJlEvtmbELdo2/nCfxlpU1y
|
||||||
# gPMhbPLeJuIwnjExCLHSwaJ9tXbETIMX50vMBOt6aLsVgnzT2VJTC5UTzvwcW/Lm
|
# 7ajlCcnGm+jcF/L0/UzLtc+VOpulivKJTLzg+f1vPdAsNmzZtSg5WbCauhh+KvYG
|
||||||
# Gaucxnm1bFMNmTMdeOZFLPZBB+WPaJ3dT2lgNU/usB0DyF+i5ilFPFUzesrMDzcV
|
# zUSktXygBgC08YbiA1aagSGCuIqvhJhO25yz96j5iXQhIZLiZHuSbgl6ZGs/miId
|
||||||
# x+ijkEOz1jxNxXGbTotPvXjMPkUnBIaYsTmeKhrzn085p8O5l0eUAqjEnYPvAq/n
|
# cZIqBlTJprRQ/YvO/6hVgPx1mEvdqBy6ZUBFaeR3sL0K3+dZCoZDkoVgNxjPhtaV
|
||||||
# WSvpohmXZa3V7pWRum5XPZ2fe4cs6GjMYmdmD+8ovW4G6KVbNkf75JFKJZ82Y9lq
|
# UvPisyociCVrwdOpjYT1rLI7dVXxG1giOfdIdsvHDJSbX5x+vFroMB3tQ7O65tAW
|
||||||
# qn4VO0r5vV4ffD0erFF/KGTavhvz/VlG2par1O/jfa6ue9yPaLLpWiynThz9/lGI
|
# dF+2ZtvgDp6UdjysojiKzPRI4ZdBWu1RKKm/khsArZnVBTnrkOuT5ErMYfKgrled
|
||||||
# zbvmAGJuIxCjRcA/Dp/QRkl1a8+VvXtaopd3hQTwgHhlXhnOLKzDKuLoJd9CsDPL
|
# sWdyoIHdUzwBHtOZ5jVVUZxjZ+uRdujpcUbKAeWJNU0rJaeKK2st5SZfoN7PAR0V
|
||||||
# 0krYSqps1PD7sAdpr4rx4Gkv+iT9vLJYD+N9KSpfW8BmrHKaKp2BnK79ERxo4fQm
|
# YULTcsi5qS74ExvDp61q6t4An8Ivdysx7BjrY8tYOqy1BL2KtHtr99GAbDxkyTUg
|
||||||
# bagOlVCX/FBmSYU+HW52fb2b9fwS7xVupOoruHiIksjTy7YWNgck3CW4WVKxp35y
|
# NOYEKhqXrLhJ/MEGW1SX5RDUbqmoSKdM9KN65vYzxAbUSEm9Srv/9DacAX6V0KVb
|
||||||
# i6SEO4u+1ivx9uhIYQnDJ4mEcezLU1QBFoc5UG6IW1QgbnYVbBwhlrp/poF90NHp
|
# P3xN0yGcGTD07211lZVus0G0wOBts3ejYa6VdR2oFGT7XbVKInq60gsc/9y3CMbn
|
||||||
# TC2UDXb1m+JfMPdjaOBZdothoYIXOjCCFzYGCisGAQQBgjcDAwExghcmMIIXIgYJ
|
# HX10NIIGIczSgTGhXGEP3ts0oYIXdjCCF3IGCisGAQQBgjcDAwExghdiMIIXXgYJ
|
||||||
# KoZIhvcNAQcCoIIXEzCCFw8CAQMxDzANBglghkgBZQMEAgEFADB4BgsqhkiG9w0B
|
# KoZIhvcNAQcCoIIXTzCCF0sCAQMxDzANBglghkgBZQMEAgEFADB3BgsqhkiG9w0B
|
||||||
# CRABBKBpBGcwZQIBAQYJYIZIAYb9bAcBMDEwDQYJYIZIAWUDBAIBBQAEIBw/qIiW
|
# CRABBKBoBGYwZAIBAQYJYIZIAYb9bAcBMDEwDQYJYIZIAWUDBAIBBQAEIF1ETvvL
|
||||||
# ZirjZAJAqvzJLoq2PiAMMR2U/b8N3B7swhynAhEArbB7KWdDox91SH7wp5yr5hgP
|
# QCdZF7O30x7x/Ai+Fh/pbIhey1FGc6XZYYjPAhAwhmXImjSup3iskTx2z/ccGA8y
|
||||||
# MjAyNDExMTgwMTQzNDFaoIITAzCCBrwwggSkoAMCAQICEAuuZrxaun+Vh8b56QTj
|
# MDI2MDIxNjE1MzQxNVqgghM6MIIG7TCCBNWgAwIBAgIQCoDvGEuN8QWC0cR2p5V0
|
||||||
# MwQwDQYJKoZIhvcNAQELBQAwYzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lD
|
# aDANBgkqhkiG9w0BAQsFADBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNl
|
||||||
# ZXJ0LCBJbmMuMTswOQYDVQQDEzJEaWdpQ2VydCBUcnVzdGVkIEc0IFJTQTQwOTYg
|
# cnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgVGltZVN0YW1w
|
||||||
# U0hBMjU2IFRpbWVTdGFtcGluZyBDQTAeFw0yNDA5MjYwMDAwMDBaFw0zNTExMjUy
|
# aW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0ExMB4XDTI1MDYwNDAwMDAwMFoXDTM2
|
||||||
# MzU5NTlaMEIxCzAJBgNVBAYTAlVTMREwDwYDVQQKEwhEaWdpQ2VydDEgMB4GA1UE
|
# MDkwMzIzNTk1OVowYzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ
|
||||||
# AxMXRGlnaUNlcnQgVGltZXN0YW1wIDIwMjQwggIiMA0GCSqGSIb3DQEBAQUAA4IC
|
# bmMuMTswOQYDVQQDEzJEaWdpQ2VydCBTSEEyNTYgUlNBNDA5NiBUaW1lc3RhbXAg
|
||||||
# DwAwggIKAoICAQC+anOf9pUhq5Ywultt5lmjtej9kR8YxIg7apnjpcH9CjAgQxK+
|
# UmVzcG9uZGVyIDIwMjUgMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
|
||||||
# CMR0Rne/i+utMeV5bUlYYSuuM4vQngvQepVHVzNLO9RDnEXvPghCaft0djvKKO+h
|
# ANBGrC0Sxp7Q6q5gVrMrV7pvUf+GcAoB38o3zBlCMGMyqJnfFNZx+wvA69HFTBdw
|
||||||
# Du6ObS7rJcXa/UKvNminKQPTv/1+kBPgHGlP28mgmoCw/xi6FG9+Un1h4eN6zh92
|
# bHwBSOeLpvPnZ8ZN+vo8dE2/pPvOx/Vj8TchTySA2R4QKpVD7dvNZh6wW2R6kSu9
|
||||||
# 6SxMe6We2r1Z6VFZj75MU/HNmtsgtFjKfITLutLWUdAoWle+jYZ49+wxGE1/UXjW
|
# RJt/4QhguSssp3qome7MrxVyfQO9sMx6ZAWjFDYOzDi8SOhPUWlLnh00Cll8pjrU
|
||||||
# fISDmHuI5e/6+NfQrxGFSKx+rDdNMsePW6FLrphfYtk/FLihp/feun0eV+pIF496
|
# cCV3K3E0zz09ldQ//nBZZREr4h/GI6Dxb2UoyrN0ijtUDVHRXdmncOOMA3CoB/iU
|
||||||
# OVh4R1TvjQYpAztJpVIfdNsEvxHofBf1BWkadc+Up0Th8EifkEEWdX4rA/FE1Q0r
|
# SROUINDT98oksouTMYFOnHoRh6+86Ltc5zjPKHW5KqCvpSduSwhwUmotuQhcg9tw
|
||||||
# qViTbLVZIqi6viEk3RIySho1XyHLIAOJfXG5PEppc3XYeBH7xa6VTZ3rOHNeiYnY
|
# 2YD3w6ySSSu+3qU8DD+nigNJFmt6LAHvH3KSuNLoZLc1Hf2JNMVL4Q1OpbybpMe4
|
||||||
# +V4j1XbJ+Z9dI8ZhqcaDHOoj5KGg4YuiYx3eYm33aebsyF6eD9MF5IDbPgjvwmnA
|
# 6YceNA0LfNsnqcnpJeItK/DhKbPxTTuGoX7wJNdoRORVbPR1VVnDuSeHVZlc4seA
|
||||||
# alNEeJPvIeoGJXaeBQjIK13SlnzODdLtuThALhGtyconcVuPI8AaiCaiJnfdzUcb
|
# O+6d2sC26/PQPdP51ho1zBp+xUIZkpSFA8vWdoUoHLWnqWU3dCCyFG1roSrgHjSH
|
||||||
# 3dWnqUnjXkRFwLtsVAxFvGqsxUA2Jq/WTjbnNjIUzIs3ITVC6VBKAOlb2u29Vwgf
|
# lq8xymLnjCbSLZ49kPmk8iyyizNDIXj//cOgrY7rlRyTlaCCfw7aSUROwnu7zER6
|
||||||
# ta8b2ypi6n2PzP0nVepsFk8nlcuWfyZLzBaZ0MucEdeBiXL+nUOGhCjl+QIDAQAB
|
# EaJ+AliL7ojTdS5PWPsWeupWs7NpChUk555K096V1hE0yZIXe+giAwW00aHzrDch
|
||||||
# o4IBizCCAYcwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/
|
# Ic2bQhpp0IoKRR7YufAkprxMiXAJQ1XCmnCfgPf8+3mnAgMBAAGjggGVMIIBkTAM
|
||||||
# BAwwCgYIKwYBBQUHAwgwIAYDVR0gBBkwFzAIBgZngQwBBAIwCwYJYIZIAYb9bAcB
|
# BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTkO/zyMe39/dfzkXFjGVBDz2GM6DAfBgNV
|
||||||
# MB8GA1UdIwQYMBaAFLoW2W1NhS9zKXaaL3WMaiCPnshvMB0GA1UdDgQWBBSfVywD
|
# HSMEGDAWgBTvb1NK6eQGfHrK4pBW9i/USezLTjAOBgNVHQ8BAf8EBAMCB4AwFgYD
|
||||||
# dw4oFZBmpWNe7k+SH3agWzBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsMy5k
|
# VR0lAQH/BAwwCgYIKwYBBQUHAwgwgZUGCCsGAQUFBwEBBIGIMIGFMCQGCCsGAQUF
|
||||||
# aWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRSU0E0MDk2U0hBMjU2VGltZVN0
|
# BzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wXQYIKwYBBQUHMAKGUWh0dHA6
|
||||||
# YW1waW5nQ0EuY3JsMIGQBggrBgEFBQcBAQSBgzCBgDAkBggrBgEFBQcwAYYYaHR0
|
# Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNFRpbWVTdGFt
|
||||||
# cDovL29jc3AuZGlnaWNlcnQuY29tMFgGCCsGAQUFBzAChkxodHRwOi8vY2FjZXJ0
|
# cGluZ1JTQTQwOTZTSEEyNTYyMDI1Q0ExLmNydDBfBgNVHR8EWDBWMFSgUqBQhk5o
|
||||||
# cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRSU0E0MDk2U0hBMjU2VGlt
|
# dHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRUaW1lU3Rh
|
||||||
# ZVN0YW1waW5nQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQA9rR4fdplb4ziEEkfZ
|
# bXBpbmdSU0E0MDk2U0hBMjU2MjAyNUNBMS5jcmwwIAYDVR0gBBkwFzAIBgZngQwB
|
||||||
# Q5H2EdubTggd0ShPz9Pce4FLJl6reNKLkZd5Y/vEIqFWKt4oKcKz7wZmXa5VgW9B
|
# BAIwCwYJYIZIAYb9bAcBMA0GCSqGSIb3DQEBCwUAA4ICAQBlKq3xHCcEua5gQezR
|
||||||
# 76k9NJxUl4JlKwyjUkKhk3aYx7D8vi2mpU1tKlY71AYXB8wTLrQeh83pXnWwwsxc
|
# CESeY0ByIfjk9iJP2zWLpQq1b4URGnwWBdEZD9gBq9fNaNmFj6Eh8/YmRDfxT7C0
|
||||||
# 1Mt+FWqz57yFq6laICtKjPICYYf/qgxACHTvypGHrC8k1TqCeHk6u4I/VBQC9VK7
|
# k8FUFqNh+tshgb4O6Lgjg8K8elC4+oWCqnU/ML9lFfim8/9yJmZSe2F8AQ/UdKFO
|
||||||
# iSpU5wlWjNlHlFFv/M93748YTeoXU/fFa9hWJQkuzG2+B7+bMDvmgF8VlJt1qQcl
|
# tj7YMTmqPO9mzskgiC3QYIUP2S3HQvHG1FDu+WUqW4daIqToXFE/JQ/EABgfZXLW
|
||||||
# 7YFUMYgZU1WM6nyw23vT6QSgwX5Pq2m0xQ2V6FJHu8z4LXe/371k5QrN9FQBhLLI
|
# U0ziTN6R3ygQBHMUBaB5bdrPbF6MRYs03h4obEMnxYOX8VBRKe1uNnzQVTeLni2n
|
||||||
# SZi2yemW0P8ZZfx4zvSWzVXpAb9k4Hpvpi6bUe8iK6WonUSV6yPlMwerwJZP/Gtb
|
# HkX/QqvXnNb+YkDFkxUGtMTaiLR9wjxUxu2hECZpqyU1d0IbX6Wq8/gVutDojBIF
|
||||||
# u3CKldMnn+LmmRTkTXpFIEB06nXZrDwhCGED+8RsWQSIXZpuG4WLFQOhtloDRWGo
|
# eRlqAcuEVT0cKsb+zJNEsuEB7O7/cuvTQasnM9AWcIQfVjnzrvwiCZ85EE8LUkqR
|
||||||
# Cwwc6ZpPddOFkM2LlTbMcqFSzm4cd0boGhBq7vkqI1uHRz6Fq1IX7TaRQuR+0BGO
|
# hoS3Y50OHgaY7T/lwd6UArb+BOVAkg2oOvol/DJgddJ35XTxfUlQ+8Hggt8l2Yv7
|
||||||
# zISkcqwXu7nMpFu3mgrlgbAW+BzikRVQ3K2YHcGkiKjA4gi4OA/kz1YCsdhIBHXq
|
# roancJIFcbojBcxlRcGG0LIhp6GvReQGgMgYxQbV1S3CrWqZzBt1R9xJgKf47Cdx
|
||||||
# BzR0/Zd2QwQ/l4Gxftt/8wY3grcc/nS//TVkej9nmUYu83BDtccHHXKibMs/yXHh
|
# VRd/ndUlQ05oxYy2zRWVFjF7mcr4C34Mj3ocCVccAvlKV9jEnstrniLvUxxVZE/r
|
||||||
# DXNkoPIdynhVAku7aRZOwqw6pDCCBq4wggSWoAMCAQICEAc2N7ckVHzYR6z9KGYq
|
# ptb7IRE2lskKPIJgbaP5t2nGj/ULLi49xTcBZU8atufk+EMF/cWuiC7POGT75qaL
|
||||||
# XlswDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lD
|
# 6vdCvHlshtjdNXOCIUjsarfNZzCCBrQwggScoAMCAQICEA3HrFcF/yGZLkBDIgw6
|
||||||
|
# SYYwDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lD
|
||||||
# ZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTEhMB8GA1UEAxMYRGln
|
# ZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTEhMB8GA1UEAxMYRGln
|
||||||
# aUNlcnQgVHJ1c3RlZCBSb290IEc0MB4XDTIyMDMyMzAwMDAwMFoXDTM3MDMyMjIz
|
# aUNlcnQgVHJ1c3RlZCBSb290IEc0MB4XDTI1MDUwNzAwMDAwMFoXDTM4MDExNDIz
|
||||||
# NTk1OVowYzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMTsw
|
# NTk1OVowaTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEw
|
||||||
# OQYDVQQDEzJEaWdpQ2VydCBUcnVzdGVkIEc0IFJTQTQwOTYgU0hBMjU2IFRpbWVT
|
# PwYDVQQDEzhEaWdpQ2VydCBUcnVzdGVkIEc0IFRpbWVTdGFtcGluZyBSU0E0MDk2
|
||||||
# dGFtcGluZyBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMaGNQZJ
|
# IFNIQTI1NiAyMDI1IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
|
||||||
# s8E9cklRVcclA8TykTepl1Gh1tKD0Z5Mom2gsMyD+Vr2EaFEFUJfpIjzaPp985yJ
|
# ALR4MdMKmEFyvjxGwBysddujRmh0tFEXnU2tjQ2UtZmWgyxU7UNqEY81FzJsQqr5
|
||||||
# C3+dH54PMx9QEwsmc5Zt+FeoAn39Q7SE2hHxc7Gz7iuAhIoiGN/r2j3EF3+rGSs+
|
# G7A6c+Gh/qm8Xi4aPCOo2N8S9SLrC6Kbltqn7SWCWgzbNfiR+2fkHUiljNOqnIVD
|
||||||
# QtxnjupRPfDWVtTnKC3r07G1decfBmWNlCnT2exp39mQh0YAe9tEQYncfGpXevA3
|
# /gG3SYDEAd4dg2dDGpeZGKe+42DFUF0mR/vtLa4+gKPsYfwEu7EEbkC9+0F2w4QJ
|
||||||
# eZ9drMvohGS0UvJ2R/dhgxndX7RUCyFobjchu0CsX7LeSn3O9TkSZ+8OpWNs5KbF
|
# LVSTEG8yAR2CQWIM1iI5PHg62IVwxKSpO0XaF9DPfNBKS7Zazch8NF5vp7eaZ2CV
|
||||||
# Hc02DVzV5huowWR0QKfAcsW6Th+xtVhNef7Xj3OTrCw54qVI1vCwMROpVymWJy71
|
# NxpqumzTCNSOxm+SAWSuIr21Qomb+zzQWKhxKTVVgtmUPAW35xUUFREmDrMxSNlr
|
||||||
# h6aPTnYVVSZwmCZ/oBpHIEPjQ2OAe3VuJyWQmDo4EbP29p7mO1vsgd4iFNmCKseS
|
# /NsJyUXzdtFUUt4aS4CEeIY8y9IaaGBpPNXKFifinT7zL2gdFpBP9qh8SdLnEut/
|
||||||
# v6De4z6ic/rnH1pslPJSlRErWHRAKKtzQ87fSqEcazjFKfPKqpZzQmiftkaznTqj
|
# GcalNeJQ55IuwnKCgs+nrpuQNfVmUB5KlCX3ZA4x5HHKS+rqBvKWxdCyQEEGcbLe
|
||||||
# 1QPgv/CiPMpC3BhIfxQ0z9JMq++bPf4OuGQq+nUoJEHtQr8FnGZJUlD0UfM2SU2L
|
# 1b8Aw4wJkhU1JrPsFfxW1gaou30yZ46t4Y9F20HHfIY4/6vHespYMQmUiote8lad
|
||||||
# INIsVzV5K6jzRWC8I41Y99xh3pP+OcD5sjClTNfpmEpYPtMDiP6zj9NeS3YSUZPJ
|
# jS/nJ0+k6MvqzfpzPDOy5y6gqztiT96Fv/9bH7mQyogxG9QEPHrPV6/7umw052Ak
|
||||||
# jAw7W4oiqMEmCPkUEBIDfV8ju2TjY+Cm4T72wnSyPx4JduyrXUZ14mCjWAkBKAAO
|
# yiLA6tQbZl1KhBtTasySkuJDpsZGKdlsjg4u70EwgWbVRSX1Wd4+zoFpp4Ra+MlK
|
||||||
# hFTuzuldyF4wEr1GnrXTdrnSDmuZDNIztM2xAgMBAAGjggFdMIIBWTASBgNVHRMB
|
# M2baoD6x0VR4RjSpWM8o5a6D8bpfm4CLKczsG7ZrIGNTAgMBAAGjggFdMIIBWTAS
|
||||||
# Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBS6FtltTYUvcyl2mi91jGogj57IbzAfBgNV
|
# BgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTvb1NK6eQGfHrK4pBW9i/USezL
|
||||||
# HSMEGDAWgBTs1+OC0nFdZEzfLmc/57qYrhwPTzAOBgNVHQ8BAf8EBAMCAYYwEwYD
|
# TjAfBgNVHSMEGDAWgBTs1+OC0nFdZEzfLmc/57qYrhwPTzAOBgNVHQ8BAf8EBAMC
|
||||||
# VR0lBAwwCgYIKwYBBQUHAwgwdwYIKwYBBQUHAQEEazBpMCQGCCsGAQUFBzABhhho
|
# AYYwEwYDVR0lBAwwCgYIKwYBBQUHAwgwdwYIKwYBBQUHAQEEazBpMCQGCCsGAQUF
|
||||||
# dHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQQYIKwYBBQUHMAKGNWh0dHA6Ly9jYWNl
|
# BzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQQYIKwYBBQUHMAKGNWh0dHA6
|
||||||
# cnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRSb290RzQuY3J0MEMGA1Ud
|
# Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRSb290RzQuY3J0
|
||||||
# HwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRy
|
# MEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdp
|
||||||
# dXN0ZWRSb290RzQuY3JsMCAGA1UdIAQZMBcwCAYGZ4EMAQQCMAsGCWCGSAGG/WwH
|
# Q2VydFRydXN0ZWRSb290RzQuY3JsMCAGA1UdIAQZMBcwCAYGZ4EMAQQCMAsGCWCG
|
||||||
# ATANBgkqhkiG9w0BAQsFAAOCAgEAfVmOwJO2b5ipRCIBfmbW2CFC4bAYLhBNE88w
|
# SAGG/WwHATANBgkqhkiG9w0BAQsFAAOCAgEAF877FoAc/gc9EXZxML2+C8i1NKZ/
|
||||||
# U86/GPvHUF3iSyn7cIoNqilp/GnBzx0H6T5gyNgL5Vxb122H+oQgJTQxZ822EpZv
|
# zdCHxYgaMH9Pw5tcBnPw6O6FTGNpoV2V4wzSUGvI9NAzaoQk97frPBtIj+ZLzdp+
|
||||||
# xFBMYh0MCIKoFr2pVs8Vc40BIiXOlWk/R3f7cnQU1/+rT4osequFzUNf7WC2qk+R
|
# yXdhOP4hCFATuNT+ReOPK0mCefSG+tXqGpYZ3essBS3q8nL2UwM+NMvEuBd/2vmd
|
||||||
# Zp4snuCKrOX9jLxkJodskr2dfNBwCnzvqLx1T7pa96kQsl3p/yhUifDVinF2ZdrM
|
# YxDCvwzJv2sRUoKEfJ+nN57mQfQXwcAEGCvRR2qKtntujB71WPYAgwPyWLKu6Rna
|
||||||
# 8HKjI/rAJ4JErpknG6skHibBt94q6/aesXmZgaNWhqsKRcnfxI2g55j7+6adcq/E
|
# ID/B0ba2H3LUiwDRAXx1Neq9ydOal95CHfmTnM4I+ZI2rVQfjXQA1WSjjf4J2a7j
|
||||||
# x8HBanHZxhOACcS2n82HhyS7T6NJuXdmkfFynOlLAlKnN36TU6w7HQhJD5TNOXrd
|
# LzWGNqNX+DF0SQzHU0pTi4dBwp9nEC8EAqoxW6q17r0z0noDjs6+BFo+z7bKSBwZ
|
||||||
# /yVjmScsPT9rp/Fmw0HNT7ZAmyEhQNC3EyTN3B14OuSereU0cZLXJmvkOHOrpgFP
|
# XTRNivYuve3L2oiKNqetRHdqfMTCW/NmKLJ9M+MtucVGyOxiDf06VXxyKkOirv6o
|
||||||
# vT87eK1MrfvElXvtCl8zOYdBeHo46Zzh3SP9HSjTx/no8Zhf+yvYfvJGnXUsHics
|
# 02OoXN4bFzK0vlNMsvhlqgF2puE6FndlENSmE+9JGYxOGLS/D284NHNboDGcmWXf
|
||||||
# JttvFXseGYs2uJPU5vIXmVnKcPA3v5gA3yAWTyf7YGcWoWa63VXAOimGsJigK+2V
|
# wXRy4kbu4QFhOm0xJuF2EZAOk5eCkhSxZON3rGlHqhpB/8MluDezooIs8CVnrpHM
|
||||||
# Qbc61RWYMbRiCQ8KvYHZE/6/pNHzV9m8BPqC3jLfBInwAM1dwvnQI38AC+R2AibZ
|
# iD2wL40mm53+/j7tFaxYKIqL0Q4ssd8xHZnIn/7GELH3IdvG2XlM9q7WP/UwgOkw
|
||||||
# 8GV2QqYphwlHK+Z/GqSFD/yYlvZVVCsfgPrA8g4r5db7qS9EFUrnEw4d2zc4GqEr
|
# /HQtyRN62JK4S1C8uw3PdBunvAZapsiI5YKdvlarEvf8EA+8hcpSM9LHJmyrxaFt
|
||||||
# 9u3WfPwwggWNMIIEdaADAgECAhAOmxiO+dAt5+/bUOIIQBhaMA0GCSqGSIb3DQEB
|
# oza2zNaQ9k+5t1wwggWNMIIEdaADAgECAhAOmxiO+dAt5+/bUOIIQBhaMA0GCSqG
|
||||||
# DAUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNV
|
# SIb3DQEBDAUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMx
|
||||||
# BAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQg
|
# GTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNVBAMTG0RpZ2lDZXJ0IEFz
|
||||||
# SUQgUm9vdCBDQTAeFw0yMjA4MDEwMDAwMDBaFw0zMTExMDkyMzU5NTlaMGIxCzAJ
|
# c3VyZWQgSUQgUm9vdCBDQTAeFw0yMjA4MDEwMDAwMDBaFw0zMTExMDkyMzU5NTla
|
||||||
# BgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k
|
# MGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsT
|
||||||
# aWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBHNDCC
|
# EHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9v
|
||||||
# AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL/mkHNo3rvkXUo8MCIwaTPs
|
# dCBHNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL/mkHNo3rvkXUo8
|
||||||
# wqclLskhPfKK2FnC4SmnPVirdprNrnsbhA3EMB/zG6Q4FutWxpdtHauyefLKEdLk
|
# MCIwaTPswqclLskhPfKK2FnC4SmnPVirdprNrnsbhA3EMB/zG6Q4FutWxpdtHauy
|
||||||
# X9YFPFIPUh/GnhWlfr6fqVcWWVVyr2iTcMKyunWZanMylNEQRBAu34LzB4TmdDtt
|
# efLKEdLkX9YFPFIPUh/GnhWlfr6fqVcWWVVyr2iTcMKyunWZanMylNEQRBAu34Lz
|
||||||
# ceItDBvuINXJIB1jKS3O7F5OyJP4IWGbNOsFxl7sWxq868nPzaw0QF+xembud8hI
|
# B4TmdDttceItDBvuINXJIB1jKS3O7F5OyJP4IWGbNOsFxl7sWxq868nPzaw0QF+x
|
||||||
# qGZXV59UWI4MK7dPpzDZVu7Ke13jrclPXuU15zHL2pNe3I6PgNq2kZhAkHnDeMe2
|
# embud8hIqGZXV59UWI4MK7dPpzDZVu7Ke13jrclPXuU15zHL2pNe3I6PgNq2kZhA
|
||||||
# scS1ahg4AxCN2NQ3pC4FfYj1gj4QkXCrVYJBMtfbBHMqbpEBfCFM1LyuGwN1XXhm
|
# kHnDeMe2scS1ahg4AxCN2NQ3pC4FfYj1gj4QkXCrVYJBMtfbBHMqbpEBfCFM1Lyu
|
||||||
# 2ToxRJozQL8I11pJpMLmqaBn3aQnvKFPObURWBf3JFxGj2T3wWmIdph2PVldQnaH
|
# GwN1XXhm2ToxRJozQL8I11pJpMLmqaBn3aQnvKFPObURWBf3JFxGj2T3wWmIdph2
|
||||||
# iZdpekjw4KISG2aadMreSx7nDmOu5tTvkpI6nj3cAORFJYm2mkQZK37AlLTSYW3r
|
# PVldQnaHiZdpekjw4KISG2aadMreSx7nDmOu5tTvkpI6nj3cAORFJYm2mkQZK37A
|
||||||
# M9nF30sEAMx9HJXDj/chsrIRt7t/8tWMcCxBYKqxYxhElRp2Yn72gLD76GSmM9GJ
|
# lLTSYW3rM9nF30sEAMx9HJXDj/chsrIRt7t/8tWMcCxBYKqxYxhElRp2Yn72gLD7
|
||||||
# B+G9t+ZDpBi4pncB4Q+UDCEdslQpJYls5Q5SUUd0viastkF13nqsX40/ybzTQRES
|
# 6GSmM9GJB+G9t+ZDpBi4pncB4Q+UDCEdslQpJYls5Q5SUUd0viastkF13nqsX40/
|
||||||
# W+UQUOsxxcpyFiIJ33xMdT9j7CFfxCBRa2+xq4aLT8LWRV+dIPyhHsXAj6Kxfgom
|
# ybzTQRESW+UQUOsxxcpyFiIJ33xMdT9j7CFfxCBRa2+xq4aLT8LWRV+dIPyhHsXA
|
||||||
# mfXkaS+YHS312amyHeUbAgMBAAGjggE6MIIBNjAPBgNVHRMBAf8EBTADAQH/MB0G
|
# j6KxfgommfXkaS+YHS312amyHeUbAgMBAAGjggE6MIIBNjAPBgNVHRMBAf8EBTAD
|
||||||
# A1UdDgQWBBTs1+OC0nFdZEzfLmc/57qYrhwPTzAfBgNVHSMEGDAWgBRF66Kv9JLL
|
# AQH/MB0GA1UdDgQWBBTs1+OC0nFdZEzfLmc/57qYrhwPTzAfBgNVHSMEGDAWgBRF
|
||||||
# gjEtUYunpyGd823IDzAOBgNVHQ8BAf8EBAMCAYYweQYIKwYBBQUHAQEEbTBrMCQG
|
# 66Kv9JLLgjEtUYunpyGd823IDzAOBgNVHQ8BAf8EBAMCAYYweQYIKwYBBQUHAQEE
|
||||||
# CCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUHMAKG
|
# bTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
|
||||||
# N2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJv
|
# BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3Vy
|
||||||
# b3RDQS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQu
|
# ZWRJRFJvb3RDQS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGln
|
||||||
# Y29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUd
|
# aWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAI
|
||||||
# IAAwDQYJKoZIhvcNAQEMBQADggEBAHCgv0NcVec4X6CjdBs9thbX979XB72arKGH
|
# MAYGBFUdIAAwDQYJKoZIhvcNAQEMBQADggEBAHCgv0NcVec4X6CjdBs9thbX979X
|
||||||
# LOyFXqkauyL4hxppVCLtpIh3bb0aFPQTSnovLbc47/T/gLn4offyct4kvFIDyE7Q
|
# B72arKGHLOyFXqkauyL4hxppVCLtpIh3bb0aFPQTSnovLbc47/T/gLn4offyct4k
|
||||||
# Kt76LVbP+fT3rDB6mouyXtTP0UNEm0Mh65ZyoUi0mcudT6cGAxN3J0TU53/oWajw
|
# vFIDyE7QKt76LVbP+fT3rDB6mouyXtTP0UNEm0Mh65ZyoUi0mcudT6cGAxN3J0TU
|
||||||
# vy8LpunyNDzs9wPHh6jSTEAZNUZqaVSwuKFWjuyk1T3osdz9HNj0d1pcVIxv76FQ
|
# 53/oWajwvy8LpunyNDzs9wPHh6jSTEAZNUZqaVSwuKFWjuyk1T3osdz9HNj0d1pc
|
||||||
# Pfx2CWiEn2/K2yCNNWAcAgPLILCsWKAOQGPFmCLBsln1VWvPJ6tsds5vIy30fnFq
|
# VIxv76FQPfx2CWiEn2/K2yCNNWAcAgPLILCsWKAOQGPFmCLBsln1VWvPJ6tsds5v
|
||||||
# I2si/xK4VC0nftg62fC2h5b9W9FcrBjDTZ9ztwGpn1eqXijiuZQxggN2MIIDcgIB
|
# Iy30fnFqI2si/xK4VC0nftg62fC2h5b9W9FcrBjDTZ9ztwGpn1eqXijiuZQxggN8
|
||||||
# ATB3MGMxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkG
|
# MIIDeAIBATB9MGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5j
|
||||||
# A1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0MDk2IFNIQTI1NiBUaW1lU3Rh
|
# LjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBUaW1lU3RhbXBpbmcgUlNB
|
||||||
# bXBpbmcgQ0ECEAuuZrxaun+Vh8b56QTjMwQwDQYJYIZIAWUDBAIBBQCggdEwGgYJ
|
# NDA5NiBTSEEyNTYgMjAyNSBDQTECEAqA7xhLjfEFgtHEdqeVdGgwDQYJYIZIAWUD
|
||||||
# KoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMBwGCSqGSIb3DQEJBTEPFw0yNDExMTgw
|
# BAIBBQCggdEwGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMBwGCSqGSIb3DQEJ
|
||||||
# MTQzNDFaMCsGCyqGSIb3DQEJEAIMMRwwGjAYMBYEFNvThe5i29I+e+T2cUhQhyTV
|
# BTEPFw0yNjAyMTYxNTM0MTVaMCsGCyqGSIb3DQEJEAIMMRwwGjAYMBYEFN1iMKyG
|
||||||
# hltFMC8GCSqGSIb3DQEJBDEiBCCLPWAm+aNyc4DrqvDwqzC7ow3BipFMugVd26EO
|
# Ci0wa9o4sWh5UjAH+0F+MC8GCSqGSIb3DQEJBDEiBCAROkPGEvLcoCA4oIHK59Hp
|
||||||
# cUUgxTA3BgsqhkiG9w0BCRACLzEoMCYwJDAiBCB2dp+o8mMvH0MLOiMwrtZWdf7X
|
# TW3+avNGAWkzvkXbV2i7EjA3BgsqhkiG9w0BCRACLzEoMCYwJDAiBCBKoD+iLNdc
|
||||||
# c9sF1mW5BZOYQ4+a2zANBgkqhkiG9w0BAQEFAASCAgA1D9F+ChwLLlPfrnjVN7y8
|
# hMVck4+CjmdrnK7Ksz/jbSaaozTxRhEKMzANBgkqhkiG9w0BAQEFAASCAgAPiz7y
|
||||||
# Raa08Q1yJoUiIPZw/m4rknXNCjyL768gux2rys7Y0ofhaTL8qB2U5605DNmkuDAw
|
# 1GJTY/Qkv2QBqTz1wCpn9tP+6GWU4ENS0CLFueRklgCbuY36ZOt24Zh09ScHUKAJ
|
||||||
# NwDXME2bka4xBxDJrI43XFVtu3SpKRbNcv5ujZs0jF4gA3GQykM9UahyusmaxwtQ
|
# am+xPP0uyfdmj1qwkrJR9JI6H2sCrPprB8jEbUFnRDroG+guP15PDZCPUnWp/gMp
|
||||||
# DILavBxCuVye9HX86Z1Bdac1wCWY6hvbtoT4ffm+/Uondgh8VzEWd36ImGOpAXQM
|
# h2RxYn8hzvb1kkzoj1rhTpJus6Mh1rPdJVa0s/2zun0pXLBHwERFYTOm9Omqf61a
|
||||||
# +UOR8t4JG5777yIBTv51W3qnEx7e4bazezEXIgC7DdXFSq18ypjJuCkLMrb2bWgp
|
# UcYnYWz6XIDHnbZZlZ2VabnbPCqreIR87Z9h9S4So9jIHQAOVunkio1G7VKsHsxq
|
||||||
# /CxGT2ff4itbsv8Z++oJI2oOewhlLiA5tVMkbB0lVGQbkeEP4nqUKwAvOt7g1i7f
|
# qJIPul8K0vAeFo/Wn/yhGe+OSFgzgb0hrtH8gCYCUyaTTpsTqWXdR4TKtNwGtybk
|
||||||
# uSxGdoNbaesSNefScqii1OTXHsLSjNciRQQJZMxJI44F15X7LOVdaaIbvgoLfIWy
|
# QlT0Tj8cm9eXEbqxRKJpaJqQVA39ugfzoPbsGgJzfLrP52r4rAN7Sk7c2ERAdHlR
|
||||||
# T9s+OgUxmAvDdZKpRcHO//tW6JqFCoi+gdW04mUSvME+MRx6RFZe1cjZNPpJEnwh
|
# Zv2Td7sQz1tbiB+NRQnz/hKbXN0amcikecq2yOMHJVCXvQyvfSh/Fp3QCFcmwxzM
|
||||||
# kmKGhndTmaBjg1nJH0okrfmR87jjIhulemrdJsUZtcdzCBxT1gW5AaHFOMUuHBkR
|
# 4uBpKtwYkchRmPbpCn8U6F5qW8YXzJpoHuQkwBGNEG0G+rZlQja4qEnNW9tv2NAr
|
||||||
# P9h0VG3f12fejgEotaDyTmPYBazFlwSrXtrr1uFmS0SDw681z5xGjK92279MlUpo
|
# N1MB6OIWUexpWpGsI0gNGp0Bs+bOwHRdQMlH+pw4ut7I3oHbnu4b0dBK0Kz8cQoh
|
||||||
# 8RBOupy5LSPC59Oi1j7SSeW+xyBfS+0aiyKEAYfk1qO0f3Eql9kTQBZjaizDdKmq
|
# L8LYVZ0Lf5vCl55XU2OYNLD9p8FcuupaTUI2ounYSPa3cozcHFQ3ij7eWB8iUP1q
|
||||||
# ubbhLFZ/dE5qax8nkz2Rxw==
|
# kSJ49Ctd2AzLw89SR8X/ljKfrbU5fmQN5V2WVw==
|
||||||
# SIG # End signature block
|
# SIG # End signature block
|
||||||
|
|||||||
Reference in New Issue
Block a user